2006-08-28  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasesrc.c: (gst_base_src_perform_seek):
	Small comment update.

	* plugins/elements/gstidentity.c: (gst_identity_class_init),
	(gst_identity_transform_ip):
	Drop-probability is broken, mention this in the code with a 
	FIXME and also in the property description.
	Make silent also be silent about the drop messages.

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

	* docs/manual/appendix-win32.xml:
	  Remove mention of popt, we don't depend on that any
	  longer (#353136). Add some comments pointing out that
	  this section is slightly outdated.

2006-08-28  Wim Taymans  <wim@fluendo.com>

	Patch by: Torsten Schoenfeld <kaffeetisch at gmx dot de>

	* gst/gstquery.c: (gst_query_new_segment):
	* tests/check/gst/gstquery.c: (GST_START_TEST):
	Initialize variables when creating a new segment query.
	Fixes #353121.

2006-08-28  Wim Taymans  <wim@fluendo.com>

	Patch by: Torsten Schoenfeld <kaffeetisch at gmx dot de>

	* gst/gstelement.c: (gst_element_get_bus):
	* tests/check/gst/gstelement.c: (GST_START_TEST):
	Check for NULL before _reffing the bus. Fixes #353122.

2006-08-25  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/manual/basics-bus.xml:
	  Docs update: fix wrong callback return value explanation; add
	  some lines about the implicit relationship between main loop
	  and main context; remove duplicate main loop variable declaration.

2006-08-24  Tim-Philipp Müller  <tim at centricular dot net>

	* tests/check/gst/gstcaps.c: (GST_START_TEST):
	  Don't leak caps in unit test; add a few more simple
	  checks. 

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

	* docs/gst/gstreamer-sections.txt:
	* gst/gstcaps.c: (gst_caps_structure_is_subset_field),
	(gst_caps_structure_is_subset), (gst_caps_merge),
	(gst_caps_merge_structure):
	* gst/gstcaps.h:
	* libs/gst/base/gstbasetransform.c:
	(gst_base_transform_transform_caps):
	* tests/check/gst/gstcaps.c: (GST_START_TEST), (gst_caps_suite):
	  implement caps merging (fixes #352580)

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

	* tools/Makefile.am:
	* tools/gst-plot-timeline.py:
          add debug-log plotting developer tool (#340674)

2006-08-23  Wim Taymans  <wim@fluendo.com>

	* gst/gstpad.c: (gst_pad_start_task), (gst_pad_pause_task),
	(gst_pad_stop_task):
	Improve debugging for task functions.

	* gst/gsttask.c: (gst_task_func), (gst_task_set_lock),
	(gst_task_start), (gst_task_pause), (gst_task_join):
	Make sure that the task function started and finished after a 
	join(). 
	Don't try to push the task function on the threadpool multiple
	times.
	Improve the g_warning message with some useful suggestions
	about how to fix the problem. 

2006-08-23  Wim Taymans  <wim@fluendo.com>

	* gst/gstutils.c: (gst_pad_proxy_getcaps):
	Handle RESYNC correctly in _proxy_getcaps.

2006-08-21  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstxml.c: (gst_xml_dispose), (gst_xml_parse_file),
	(gst_xml_parse_memory), (gst_xml_get_element):
	  Chain up to parent class in dispose function and also
	  unref the elements in the toplevel_elements GList.
	  Don't leak XmlDocPtr in _parse_file() and _parse_memory().
	  Always return a reference in gst_xml_get_element() rather
	  than only sometimes.

	* tools/gst-launch.c: (xmllaunch_parse_cmdline):
	  Don't leak GstXml object.

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

	* docs/gst/gstreamer-sections.txt:
	* gst/gstcaps.c: (gst_structure_is_equal_foreach),
	(gst_caps_merge):
	* gst/gstcaps.h:
	* libs/gst/base/gstbasetransform.c:
	(gst_base_transform_transform_caps):
	  API: Add gst_caps_merge() and use it in basetransform, fixes #345444
	  in a better way

2006-08-21  Edward Hervey  <edward@fluendo.com>

	* gst/gstxml.c: (gst_xml_class_init), (gst_xml_dispose):
	Implement GObject::dispose virtual method in GstXML so we can free the
	top_elements GList.

2006-08-21  Wim Taymans  <wim@fluendo.com>

	* gst/gstbuffer.c: (gst_buffer_make_metadata_writable),
	(gst_buffer_create_sub):
	Copy duration/offset_end/caps when creating a subbuffer of the
	complete parent.
	Make the subbuffer read-only when we make the metadata writable for
	now. Fixes #351768.

	* tests/check/gst/gstbuffer.c: (GST_START_TEST):
	Added check for metadata copy when creating subbuffers.

2006-08-21  Edward Hervey  <edward@fluendo.com>

	* libs/gst/base/gstbasetransform.c:
	(gst_base_transform_buffer_alloc):
	Only call downstream buffer_alloc if transform element is passthrough
	or always_in_place. Closes #350449.

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

	* ChangeLog:
          ChangeLog surgery to add comments to previous changes

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

	* gst/gst.c:
          Add comments

	* gst/gstpad.c: (gst_pad_set_active):
          Be more verbose in the log

	* libs/gst/base/gstbasetransform.c:
	(gst_base_transform_transform_caps):
          Simplify caps to get rid of duplicates, fixes #345444

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

	* gst/gstvalue.c:
	* gst/gstvalue.h:
          Use these optimizations only internaly.

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

	* gst/gstvalue.c: (gst_value_compare_list),
	(gst_value_compare_fraction_range),
	(gst_value_intersect_fraction_fraction_range),
	(gst_value_intersect_fraction_range_fraction_range),
	(gst_value_subtract_fraction_fraction_range),
	(gst_value_subtract_fraction_range_fraction_range),
	(gst_value_get_compare_func), (gst_value_compare),
	(gst_value_compare_with_func):
	* gst/gstvalue.h:
          Saves the expensive lookup of the compare function in many cases
         (#345444)

2006-08-18  Edward Hervey  <edward@fluendo.com>

	* tests/check/gst/gstinfo.c: (gst_info_suite):
	Disable test that require gstdebug if it wasn't built in core.

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

	* docs/random/ensonic/logging.txt:
	  update ideas
	  
	* gst/gstinfo.c: (gst_debug_log_default):
	  reorder fields, save some columns, add optinal color codes for log-
	  levels

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

	* docs/random/ensonic/logging.txt:
	  add ideas about making the logs abit more useful

2006-08-17  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/pwg/advanced-events.xml:
	* docs/pwg/titlepage.xml:
	  Update for 0.10 API (#340627). Add myself
	  to authors list.

2006-08-17  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/libs/gstreamer-libs-docs.sgml:
	* docs/libs/gstreamer-libs-sections.txt:
	* libs/gst/check/gstbufferstraw.c:
	  Make gstcheck stuff show up in docs (still needs to
	  be documented properly though).

2006-08-16  Jan Schmidt  <thaytan@mad.scientist.com>

	* docs/gst/gstreamer-sections.txt:
	* gst/Makefile.am:
	* gst/gst.c: (init_post):
	* gst/gst_private.h:
	* gst/gstquark.c: (_priv_gst_quarks_initialize):
	* gst/gstquark.h:
	* gst/gstquery.c: (gst_query_new_position),
	(gst_query_set_position), (gst_query_parse_position),
	(gst_query_new_duration), (gst_query_set_duration),
	(gst_query_parse_duration), (gst_query_new_convert),
	(gst_query_set_convert), (gst_query_parse_convert),
	(gst_query_new_segment), (gst_query_set_segment),
	(gst_query_parse_segment), (gst_query_new_seeking),
	(gst_query_set_seeking), (gst_query_parse_seeking):
	Add internal helpers for pre-registering quarks from static strings
	and using the quark values directly instead of looking them up when
	creating and parsing queries. Can be used for event construction too.
	Closes #350432.

2006-08-16  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c:
	Fix bogus docs.

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

	* gst/gstutils.c: (gst_util_set_value_from_string):
	  Fix memleak (#351502).

	* tests/check/gst/gstutils.c: (GST_START_TEST), (gst_utils_suite):
	  Add unit test for most of gst_util_set_value_from_string()
	  (not that one would want to encourage use of this function).

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

	* libs/gst/check/gstcheck.h:
	  Use const gchar * variables in fail_unless_equals_string
	  macro to avoid compiler warnings (and don't use tabs for
	  indenting).

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

	* tools/gst-launch.c: (print_tag):
	  More space on the left for the tag names, to cater
	  for the 'extended comment' tag (not touching the
	  string for the first line since it's translated).

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

	* libs/gst/check/gstcheck.h:
	  Fix ASSERT_CRITICAL and ASSERT_WARNING macros to actually
	  print something when they fail.

2006-08-14  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/gst/gstreamer-sections.txt:
	* gst/gsttaglist.c: (_gst_tag_initialize):
	* gst/gsttaglist.h:
	  API: add GST_TAG_EXTENDED_COMMENT (#350935).
	  Also change merge function for GST_TAG_COMMENT to
	  use_first.

2006-08-14  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstinfo.c: (gst_debug_print_object):
	  Make GST_PTR_FORMAT print messages as well.

	* tests/check/gst/gstinfo.c: (printf_extension_log_func),
	(GST_START_TEST), (gst_info_suite):
	  More tests.

2006-08-14  Edward Hervey  <edward@fluendo.com>

	* gst/gstelementfactory.c: (gst_element_register):
	If the GstElementClass doesn't have a GstElementDetails with all fields
	filled up correctly (longname, description AND author), then error out
	nicely instead of crashing.

2006-08-14  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gststructure.c:
	  Fix typo in docs and re-wrap docs blurb to not exceed 80 chars/line.

	* gst/gstvalue.h:
	  Expand on the difference between arrays and lists as we use them.
	  
2006-08-14  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasesrc.c: (gst_base_src_change_state):
	If the parent state change function failed, don't assume we can safely
	stop the source, this will be done when the pads are deactivated.

2006-08-14  Wim Taymans  <wim@fluendo.com>

	* gst/gstbuffer.c:
	* gst/gsttask.c: (gst_task_join):
	Small doc updates.

	* gst/gstpad.c: (gst_pad_activate_pull), (gst_pad_activate_push),
	(gst_pad_stop_task):
	When pad (de)activation failed for some reason, restore the old
	activation mode and set the pad to flushing instead of assuming the
	pad is deactivated.
	If the _task_join() failed, reinstall the task on the pad so that it can
	be stopped later and return an error.

2006-08-11  Andy Wingo  <wingo@pobox.com>

	* configure.ac:
	* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_packetizer_new):
	* tests/check/libs/gdp.c: (gst_dp_suite): GST_DISABLE_DEPRECATED
	is only for users of API that don't want to see deprecated
	functions in the headers; people that want to compile out
	deprecated code should pass -DGST_REMOVE_DEPRECATED into the
	CFLAGS. Fixes the build of multifdsink, or will soon..

2006-08-11  Wim Taymans  <wim@fluendo.com>

	* docs/gst/gstreamer-sections.txt:
	Add GstClockClass vmethod docs.

	* gst/gstcaps.h:
	Mark #endif with comment for associated #if

	* gst/gstclock.c: (gst_clock_id_wait):
	* gst/gstclock.h:
	Add vmethod wait_jitter to avoid an unneeded _get_time() for
	most clock implementations.
	Document vmethods.
	Flesh out docs about resolution methods.
	API: GstClockClass::wait_jitter

	* gst/gstsystemclock.c: (gst_system_clock_class_init),
	(gst_system_clock_async_thread),
	(gst_system_clock_id_wait_jitter_unlocked),
	(gst_system_clock_id_wait_jitter):
	Use base class wait_jitter variant for improved performance
	due to less clock polling.

2006-08-11  Edward Hervey  <edward@fluendo.com>

	* gst/gst.c: (gst_init_check), (init_post):
	Set gst as being initialized before scanning/updating the registry,
	since there might be some plugins that call gst_init() and we don't
	want to loop back in.
	Closes #350879

2006-08-11  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-qos.txt:
	Bring docs in line with the code. Mostly the sign of the jitter was
	wrong in the docs. Fixes #349943.

	* gst/gstclock.c:
	Fix the docs for the jitter.

	* gst/gstevent.c: (gst_event_new_custom), (gst_event_new_tag),
	(gst_event_parse_tag), (gst_event_new_buffer_size),
	(gst_event_parse_buffer_size), (gst_event_parse_qos),
	(gst_event_new_seek), (gst_event_parse_seek),
	(gst_event_new_navigation):
	Make sure the GstStructure has no parent when creating custom
	events.
	Add some more argument checking so that we avoid 0.0 rates.
	Flesh out the docs for the QoS event some more.

2006-08-11  Wim Taymans  <wim@fluendo.com>

	* docs/gst/gstreamer-sections.txt:
	* gst/gst.c: (gst_init_get_option_group), (gst_init_check),
	(ensure_current_registry_forking), (ensure_current_registry),
	(parse_one_option), (parse_goption_arg), (gst_deinit),
	(gst_registry_fork_is_enabled), (gst_registry_fork_set_enabled):
	* gst/gst.h:
	Doc updates.
	Added API and command line option to disable registry forking in
	addition to the environment variable.
	Constify some static arrays.
	Added some more debug.
	Don't deinit twice.
	API: gst_registry_fork_is_enabled()
	API: gst_registry_fork_set_enabled()
	API: --gst-disable-registry-fork command line option
	Fixes #348918.

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

	* gst/gst.c: (gst_init):
	  Fix typo in error message.

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

	* libs/gst/controller/gstcontroller.h:
          fix ABI size-correction

	* tests/check/libs/gdp.c: (gst_dp_suite):
          make tests that use deprecated API conditional

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

	* docs/libs/gstreamer-libs-sections.txt:
	* libs/gst/controller/gstcontroller.c:
	(_gst_controller_get_property), (_gst_controller_set_property),
	(_gst_controller_init), (_gst_controller_class_init):
	* libs/gst/controller/gstcontroller.h:
	* libs/gst/controller/gsthelper.c: (gst_object_get_control_rate),
	(gst_object_set_control_rate):
          API: add gst_object_{s,g}et_control_rate(), add private data section,
          fix docs

	* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_packetizer_new):
	* libs/gst/dataprotocol/dataprotocol.h:
          add deprecation guards to make gtk-doc happy and allow disabling cruft

2006-08-09  Tim-Philipp Müller  <tim at centricular dot net>

	* tests/check/Makefile.am:
	* tests/check/gst/.cvsignore:
	  Let's enable the new unit test as well.

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

	* configure.ac:
	* docs/gst/gstreamer-sections.txt:
	* gst/gstconfig.h.in:
	* gst/gstinfo.c: (_gst_debug_init), (gst_debug_print_segment),
	(_gst_info_printf_extension_ptr),
	(_gst_info_printf_extension_segment):
	  API: add GST_SEGMENT_FORMAT, which is a printf extension we
	  register that lets us easily dump GstSegments into debug
	  logs (#350419).

	* tests/check/gst/gstinfo.c: (segment_printf_extension_log_func),
	(info_segment_format_printf_extension), (gst_info_suite):
	  Add simple unit test that logs a bunch of different segments (not
	  valgrinded at the moment because of leaks in gst_debug_add_log_function).

2006-08-09  Edward Hervey  <edward@fluendo.com>

	* libs/gst/base/gstbasetransform.c:
	(gst_base_transform_buffer_alloc):
	Even if we can't figure out the proper format to request downstream,
	call buffer_alloc() downstream with the input parameters without setting
	the caps on the srcpad. This will force negotiation in the chain
	function.
	Closes #350449

2006-08-08  Edward Hervey  <edward@fluendo.com>

	* gst/gstghostpad.c: (gst_ghost_pad_do_unlink):
	Unlinking from a pad without a target is now a perfectly valid case
	which should NOT raise an assertion.
	This case would happen if a linked ghostpad its target set to NULL after
	it was previously linked.

2006-08-08  Edward Hervey  <edward@fluendo.com>

	* tests/check/libs/gdp.c:
	Also comment out the test (see below).

2006-08-08  Edward Hervey  <edward@fluendo.com>

	* tests/check/libs/gdp.c: (gst_dp_suite):
	Use the architecture information from config.h and not gcc macros
	in order to properly disable a test that fails on PPC64.

2006-08-04  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstelement.c: (gst_element_remove_pad):
	  Don't crash printing the warning if the pad has no parent.

2006-08-02  Wim Taymans  <wim@fluendo.com>

	* libs/gst/dataprotocol/dataprotocol.c:
	(gst_dp_header_from_buffer_any), (gst_dp_packet_from_caps_any),
	(gst_dp_crc), (gst_dp_header_payload_length),
	(gst_dp_header_payload_type), (gst_dp_packet_from_event),
	(gst_dp_packet_from_event_1_0), (gst_dp_buffer_from_header),
	(gst_dp_caps_from_packet), (gst_dp_event_from_packet_0_2),
	(gst_dp_event_from_packet), (gst_dp_validate_header),
	(gst_dp_validate_payload):
	Make debug category static
	Constify the crc table.
	Do some more arg checking in public functions.
	Fix some docs and do some small cleanups.

	* tests/check/libs/gdp.c: (GST_START_TEST), (gst_dp_suite):
	Add some more checks to see if GDP deals with bogus input.

2006-07-31  Wim Taymans  <wim@fluendo.com>

	* gst/gstvalue.c: (gst_value_compare_list):
	Fix GstValueList comparison code. Fixes #347293.

	* tests/check/gst/gstvalue.c: (GST_START_TEST):
	Check to test GstValueList comparison.

2006-07-31  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/gstelementfactory.c: (gst_element_factory_create):
	Remove unnecessary ref/unref pair

	* gst/parse/grammar.y:
	Make sure to free the parse buffer on all code paths.
	Move a g_free up to the error handler where it's easier to see.

	* tests/check/gst/gstevent.c: (test_event):
	Extending timeout for downstream travelling events to 10 seconds to
	hopefully avoid intermittent failure on the buildbots.

	* tests/check/pipelines/parse-launch.c: (run_delayed_test):
	Don't manually set the state of the src element - it will happen as a
	natural consequence of the pipeline changing state, and that way it
	will do it in the right order too.

2006-07-31  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasetransform.c:
	(gst_base_transform_buffer_alloc):
	Use OBJECT_LOCK and refcounting to get the pad caps in the
	buffer_alloc function because the caps could change while we are
	busy with them. Fixes #349105

2006-07-31  Wim Taymans  <wim@fluendo.com>

	* gst/gstutils.c: (gst_pad_get_fixed_caps_func):
	Protect _PAD_CAPS with OBJECT_LOCK.

2006-07-31  Wim Taymans  <wim@fluendo.com>

	* gst/gstpad.c: (gst_pad_class_init), (gst_pad_dispose),
	(gst_pad_get_property), (gst_pad_activate_pull),
	(gst_pad_activate_push), (gst_pad_set_blocked_async),
	(gst_pad_set_activate_function),
	(gst_pad_set_activatepull_function),
	(gst_pad_set_activatepush_function), (gst_pad_set_chain_function),
	(gst_pad_set_getrange_function),
	(gst_pad_set_checkgetrange_function), (gst_pad_set_event_function),
	(gst_pad_set_query_function), (gst_pad_set_query_type_function),
	(gst_pad_set_internal_link_function), (gst_pad_set_link_function),
	(gst_pad_set_unlink_function), (gst_pad_set_getcaps_function),
	(gst_pad_set_acceptcaps_function),
	(gst_pad_set_fixatecaps_function), (gst_pad_set_setcaps_function),
	(gst_pad_set_bufferalloc_function), (gst_pad_link_check_hierarchy),
	(gst_pad_get_caps_unlocked), (gst_pad_get_caps),
	(gst_pad_peer_get_caps), (gst_pad_accept_caps),
	(gst_pad_peer_accept_caps), (gst_pad_set_caps),
	(gst_pad_configure_sink), (gst_pad_configure_src),
	(gst_pad_get_allowed_caps), (gst_pad_get_negotiated_caps),
	(gst_pad_buffer_alloc_unchecked), (gst_pad_alloc_buffer_full),
	(gst_pad_query), (gst_pad_load_and_link), (handle_pad_block),
	(gst_pad_chain_unchecked), (gst_pad_push), (gst_pad_get_range),
	(gst_pad_send_event):
	Use _DEBUG_OBJECT when it makes sense.
	Protect GST_PAD_CAPS with the OBJECT_LOCK.
	Small cleanups and code reflows.
	Avoid caps refcounting in _accept_caps.
	Refactor alloc_buffer so that the code performed on the peer is in a
	separate function. Also if the pad does not implement a buffer alloc
	function, we should still check if the pad is flushing before falling
	back to the default allocator.

2006-07-31  Jan Schmidt  <thaytan@mad.scientist.com>

	* tests/check/pipelines/parse-launch.c: (GST_START_TEST):
	Make all uses of identity and fakesink have silent=true to avoid
	serialising every passing data structure, which is breaking tests
	on FC4 for some unknown reason.

2006-07-30  Stefan Kost  <ensonic@users.sf.net>

	* gst/parse/Makefile.am:
	* gst/parse/grammar.y:
	* gst/parse/parse.l:
          Reverted previous patch as it required to bump the flex dependency to
          2.5.31, where fc4/5 seem to ship only the ancient 2.5.4a :(

2006-07-30  Stefan Kost  <ensonic@users.sf.net>

	Patch by: Marc-Andre Lureau <marcandre.lureau@gmail.com>

	* gst/parse/Makefile.am:
	* gst/parse/grammar.y:
	* gst/parse/parse.l:
	  push & pop the state of the lexer for reentrant use case
	  Fixes #349180

2006-07-29  Tim-Philipp Müller  <tim at centricular dot net>

	* libs/gst/base/gstbasesrc.h:
	  Note in the docs that the ::newsegment vfunc is not actually used by
	  GstBaseSrc.

2006-07-28  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstcollectpads.c:
	(gst_collect_pads_set_flushing_unlocked), (gst_collect_pads_pop),
	(gst_collect_pads_clear), (gst_collect_pads_flush),
	(gst_collect_pads_event), (gst_collect_pads_chain):
	When flushing a pad, also clear the queued buffer so that we don't
	accidentally use it when we shouldn't.
	Fix leaks by inreffing incomming buffer.
	Flush out queued buffers in case of errors.
	Fixes #347452.

2006-07-28  Wim Taymans  <wim@fluendo.com>

	* docs/random/phonon-gst:
	Random notes about a Phonon backend.

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

	* libs/gst/base/gstbasetransform.c: (gst_base_transform_setcaps):
	Extra debug output
	* tests/check/libs/gdp.c: (gst_dp_suite):
	Take a whack at fixing the ppc compile using a different define to
	disable the broken test.

	* tests/check/pipelines/parse-launch.c: (GST_START_TEST):
	Remove excess g_print()

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

	* tests/check/pipelines/parse-launch.c: (expected_fail_pipe):
	Oops, meant to uncomment this line too to dampen the noise a bit.

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

	* gst/parse/grammar.y:
	* gst/parse/parse.l:
	* tests/check/pipelines/parse-launch.c: (expected_fail_pipe),
	(GST_START_TEST), (parse_suite):
	Fix some of the leaks exposed by extending the parse-launch testsuite,
	and move the 3 I can't figure out into a separate test that won't run
	the pipelines unless the appropriate line is uncommented.

2006-07-27  Tim-Philipp Müller  <tim at centricular dot net>

	* plugins/elements/gstfilesrc.c: (gst_file_src_create_read):
	  Requesting 0 bytes before the end of the file should result in
	  FLOW_OK and an empty buffer, not FLOW_UNEXPECTED. Thank you
	  unit test.

2006-07-27  Wim Taymans  <wim@fluendo.com>

	* gst/gstcaps.c: (gst_static_caps_get), (gst_caps_get_structure):
	Fix useless assert, a uint is always positive.

	* gst/gststructure.c: (gst_structure_nth_field_name),
	(gst_structure_foreach), (gst_structure_map_in_place):
	Check input arguments for public functions to avoid obvious crashes.

	* plugins/elements/gstfakesink.c: (gst_fake_sink_render):
	* plugins/elements/gstfakesink.h:
	Do less useless typechecking.

2006-07-27  Tim-Philipp Müller  <tim at centricular dot net>

	* plugins/elements/gstfilesrc.c: (gst_file_src_class_init):
	  Do not use mmap() by default since there are a number of error
	  conditions that we would like to handle in a non-fatal way that
	  will result in a SIGBUS if we use mmap(). Examples: external
	  devices (USB harddrive, portable music player) being unplugged
	  while in use; file on mounted CD/DVD that can't be read because
	  the medium is partly damaged. Fixes #348455 and #348475.

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

	* gst/gstquery.h:
	Delete unused and misleading define of GST_QUERY_TYPE_RATE_DEN -
	rates are a gdouble

2006-07-26  Stefan Kost  <ensonic@users.sf.net>

	* gst/gstregistry.c:
          Move big documentation comment into class section header, so that it
          appears in the API docs.

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

	* docs/gst/gstreamer-sections.txt:
	Oops. Commit the docs additions too for new API.
	Also, remove the mention of the non-existent GST_QUERY_TYPE_RATE_DEN

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

	* gst/gststructure.c: (gst_structure_id_set),
	(gst_structure_id_set_valist):
	* gst/gststructure.h:
	Add API for setting values into structures without performing
	a quark lookup, if the appropriate quark is already known.

	API: gst_structure_id_set
	API: gst_structure_id_set_valist

	* gst/parse/grammar.y:
	* gst/parse/parse.l:
	Remove some dead code shown by the coverage information.
	Don't throw a critical g_warning when encountering a syntax error,
	just warn and let the normal error path handle it.

	* plugins/elements/gstelements.c:
	Bump the rank of filesink up to PRIMARY so that it is preferred over
	gnomevfssink for file:// sink uri's

	* tests/check/pipelines/parse-launch.c: (expected_fail_pipe),
	(GST_START_TEST), (run_delayed_test),
	(gst_parse_test_element_base_init),
	(gst_parse_test_element_class_init), (gst_parse_test_element_init),
	(gst_parse_test_element_change_state),
	(gst_register_parse_element), (parse_suite):
	Beef up the tests for parse syntax to check that more error cases
	fail as they are supposed to. Increases the test coverage a bit.

2006-07-26  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/manual/basics-elements.xml:
	  Fix gst_element_link() example.

	* gst/gstutils.c:
	  Mention in API docs that one should usually gst_bin_add()
	  elements to a bin or pipeline before doing the linking.
	  
2006-07-26  Wim Taymans  <wim@fluendo.com>

	* gst/gstbuffer.c: (gst_buffer_get_type), (gst_buffer_new),
	(gst_subbuffer_get_type), (gst_buffer_create_sub):
	Avoid function call for known types by keeping the buffer and
	subbuffer GType global.

	* plugins/elements/gstfilesrc.c: (gst_file_src_create_read):
	Random silly optimisations in read() path.

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

	* tools/gst-launch.c: (main):
	  If the top-level of the parse is a normal bin, it doesn't do the
	  right logic to run as a top-level element, so place it inside a
	  pipeline.

2006-07-25  Tim-Philipp Müller  <tim at centricular dot net>

	* plugins/elements/gstfilesrc.c: (gst_file_src_set_property):
	  Remove superfluous g_object_notify() calls, GObject does
	  that for us automatically.

2006-07-25  Stefan Kost  <ensonic@users.sf.net>

	* gst/gstinfo.h:
	  Move the Win32 version from gst-plugins-good/gst/avi/avidemux.c to
	  here.

2006-07-24  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gsttaglist.c: (_gst_tag_initialize):
	  Allow more than one GST_TAG_IMAGE per taglist.

2006-07-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstminiobject.c:
	  update docs
	* plugins/elements/gstfdsrc.c: (gst_fd_src_set_property),
	(gst_fd_src_create):
	  log recurring events at LOG level
	  add more debug for when the fd gets set

2006-07-21  Stefan Kost  <ensonic@users.sf.net>

	* gst/gstparse.c: (gst_parse_launch):
	  Also remove reentrance checks if flex is MT save (#348179)
	 Fix my empty ChangeLog entry below

2006-07-21  Andy Wingo  <wingo@pobox.com>

	* docs/libs/gstreamer-libs-sections.txt: Attempt to pacify buildbot.

	* libs/gst/check/Makefile.am
	(libgstcheck_@GST_MAJORMINOR@include_HEADERS)
	(libgstcheck_@GST_MAJORMINOR@_la_SOURCES): 
	* libs/gst/check/gstbufferstraw.h:
	* libs/gst/check/gstbufferstraw.c: Add some new hype testing
	functions, thus proving I am still a GStreamer haxor. OK I wrote
	them a long time ago, but anyways.

2006-07-21  Stefan Kost  <ensonic@users.sf.net>

	* configure.ac:
	* gst/gstparse.c: (gst_parse_launch):
	  Check for flex version and omit mutex if we have a MT save flex
	  (fixes #348179)

2006-07-21  Wim Taymans  <wim@fluendo.com>

	* gst/gstparse.c: (gst_parse_launch):
	Protect recursive calls to _parse with a recursive mutex
	and busy flag.

2006-07-21  Wim Taymans  <wim@fluendo.com>

	* tests/check/gst/gstpad.c: (GST_START_TEST):
	Fix leak in test.

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

	* gst/gstparse.c: (gst_parse_launch):
          Do not hange on recursive uasge of gst_parse_launch()

2006-07-20  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gsttaglist.c:
	  Add some more docs, comments and FIXME 0.11s here and there
	  and  also fix some typos.

2006-07-20  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstsegment.h:
	  Convert tabs to spaces for better readability. 

2006-07-20  Edward Hervey  <edward@fluendo.com>

	* tests/check/libs/gdp.c: (gst_dp_suite):
	the test_buffer test fails at line 140 on ppc64 at the following
	check:
	fail_unless (GST_BUFFER_FLAG_IS_SET (newbuffer, GST_BUFFER_FLAG_IN_CAPS),
		"GST_BUFFER_IN_CAPS flag should have been copied !");
	See bug #348114 for more details.

2006-07-19  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/pwg/advanced-scheduling.xml:
	* gst/gstpad.c:
	  Fix typos (#348000).

2006-07-18  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/pwg/intro-basics.xml:
	  Fix wrong links (#347927).

2006-07-18  Stefan Kost  <ensonic@users.sf.net>

	* gst/gstregistry.h:
	* gst/gstregistryxml.c: (load_feature),
	(gst_registry_xml_read_cache), (gst_registry_xml_save_feature):
	* win32/common/config.h:
        make --disable-index work (#342564)

2006-07-18  Wim Taymans  <wim@fluendo.com>

	Patch by: Peter Kjellerstedt <pkj at axis dot com>

	* gst/Makefile.am:
	* gst/gsttrace.h:
	The attached patch adds two missing defines to gsttrace.h when tracing
	is disabled.  It also corrects one existing define.
	Fixes #347756.

2006-07-17  Wim Taymans  <wim@fluendo.com>

	* docs/gst/gstreamer-sections.txt:
	* gst/gst.c: (gst_segtrap_is_enabled), (gst_segtrap_set_enabled):
	* gst/gst.h:
	* gst/gstplugin.c: (_gst_plugin_fault_handler_restore):
	Add two functions to check and change the SIGSEGV behaviour
	when loading plugins.
	Don't mess with the SIGSEGV handler when we were told not to.
	Fixes #347794.
	API: gst_segtrap_is_enabled
	API: gst_segtrap_set_enabled

2006-07-14  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasesrc.c: (gst_base_src_update_length):
	* tests/check/elements/filesrc.c: (GST_START_TEST):
	Revert fix for regression in #347408 after release.

2006-07-14  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Antoine Tremblay <hexa00 at gmail com>

	* gst/gstutils.c: (gst_element_unlink):
	  Free iterator when done (#347311).

	* tests/check/gst/gstutils.c: (GST_START_TEST), (gst_utils_suite):
	  And add a test case for this.

2006-07-14  Jan Schmidt  <thaytan@mad.scientist.com>

	* configure.ac:
	Bump nano back to CVS

=== release 0.10.9 ===

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

	* configure.ac:
	  releasing 0.10.9, "On the road again"

2006-07-13  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasesrc.c: (gst_base_src_update_length):
	* tests/check/elements/filesrc.c: (GST_START_TEST):
	Revert pull-0 fix for release. Disable check. Fixes #347408.

2006-07-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* libs/gst/dataprotocol/dataprotocol.c:
	(gst_dp_event_from_packet_1_0):
	  Fixes #347337: failure to deserialize event packets with
	  empty payload (only event type)

2006-07-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/Makefile.am:
	  do not install a .c file in the header directory

2006-07-13  Edward Hervey  <edward@fluendo.com>

	* gst/gstghostpad.c: (gst_proxy_pad_set_target_unlocked):
	GhostPad no longer implicitely use the padtemplates of the targets.
	Fixes #347384

2006-07-11  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/gstvalue.c: (gst_value_compare_list),
	(gst_value_compare_array), (_gst_value_initialize):
	* tests/check/gst/gstvalue.c: (GST_START_TEST):
	Make GstValueArray comparison be order dependent as designed.
	Add checks for value lists and value array comparisons.
	Fixes #347221

2006-07-11  Edward Hervey  <edward@fluendo.com>

	* gst/gstbin.c: (activate_pads),
	(iterator_activate_fold_with_resync), (gst_bin_src_pads_activate),
	(gst_bin_change_state_func):
	(de)activate src pads before calling state_change on the childs.
	This is to avoid the case where a src ghostpad is blocked (holding the
	stream lock), which would block the deactivation of the ghostpad's
	target pad.
	* gst/gstghostpad.c: (gst_proxy_pad_do_query_type),
	(gst_proxy_pad_do_event), (gst_proxy_pad_do_query),
	(gst_proxy_pad_do_internal_link), (gst_proxy_pad_do_bufferalloc),
	(gst_proxy_pad_do_chain), (gst_proxy_pad_do_getrange),
	(gst_proxy_pad_do_checkgetrange), (gst_proxy_pad_do_getcaps),
	(gst_proxy_pad_do_acceptcaps), (gst_proxy_pad_do_fixatecaps),
	(gst_proxy_pad_do_setcaps), (gst_proxy_pad_set_target_unlocked),
	(gst_proxy_pad_set_target), (gst_proxy_pad_get_internal),
	(gst_proxy_pad_dispose), (gst_proxy_pad_init),
	(gst_ghost_pad_parent_set), (gst_ghost_pad_parent_unset),
	(gst_ghost_pad_class_init),
	(gst_ghost_pad_internal_do_activate_push),
	(gst_ghost_pad_internal_do_activate_pull),
	(gst_ghost_pad_do_activate_push), (gst_ghost_pad_do_activate_pull),
	(gst_ghost_pad_do_link), (gst_ghost_pad_do_unlink),
	(gst_ghost_pad_dispose), (gst_ghost_pad_new_no_target),
	(gst_ghost_pad_new), (gst_ghost_pad_set_target):
	GhostPads now create their internal GstProxyPad at creation (and not
	when they're linked, as it was being done previously).
	The internal and target pads are linked straight away.
	The data will also travel through the other pad in order to make
	pad blocking and probes non-hackish (the probe/block now really happens
	on the GhostPad and not on the target).
	* gst/gstpad.c: (gst_pad_set_blocked_async),
	(gst_pad_link_prepare), (gst_pad_push_event):
	Remove previous ghostpad cruft.
	* gst/gstutils.c: (gst_pad_add_data_probe),
	(gst_pad_add_event_probe), (gst_pad_add_buffer_probe),
	(gst_pad_remove_data_probe), (gst_pad_remove_event_probe),
	(gst_pad_remove_buffer_probe):
	Remove previous ghost pad cruft.
	Added more detailed debug statements.
	* tests/check/gst/gstghostpad.c: (GST_START_TEST):
	Fix the testsuite for refcounting changes.
	The comments about who has references were correct, but the refcount
	being checked wasn't the same (!?!).

	Fixes #341029

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

	* docs/gst/gstreamer-sections.txt:
	* gst/gstconfig.h.in:
        More docs for configuration options, add docs to gtk-doc.

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

	* gst/Makefile.am:
	* gst/gstconfig.h.in:
	* win32/common/config.h:
        Fix build when disabling tracing (fixes #344016). Also start to document
        the defines that disable the sub-systems.

2006-07-10  Edward Hervey  <edward@fluendo.com>

	* gst/gst.c: (ensure_current_registry_forking):
	let's make valgrind happy...

2006-07-09  Wim Taymans  <wim@fluendo.com>

	* gst/gstelement.c: (activate_pads),
	(iterator_activate_fold_with_resync), (gst_element_pads_activate):
	Better pad activation code: Reset the collect value too on resync.
	Add some comments.

2006-07-09  Wim Taymans  <wim@fluendo.com>

	* gst/gstpad.c: (gst_pad_init), (gst_pad_activate_pull),
	(gst_pad_activate_push):
	Use some more macros where it makes sense.
	Allow pad mode switching instead of asserting. When a pad
	is activated in one mode and we activate it in another, 
	deactivate it first before activating it in a different mode.
	Fixes #329198.

2006-07-08  Andy Wingo  <wingo@pobox.com>

	* tools/gst-launch.c (main): Handle err == NULL.

	* gst/gst.c (init_post, ensure_current_registry)
	(ensure_current_registry_forking)
	(ensure_current_registry_nonforking): Reduce #ifdef ratnest by
	factoring out the registry scanning into separate functions. Don't
	fork for the rescan is GST_REGISTRY_FORK=no; useful in debugging.
	Better environment var name/interface suggestions accepted.

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

	* gst/gstobject.c: (gst_object_set_name_default),
	(gst_object_set_name):
	  Random micro-optimisation: don't use a hash table
	  with strings as keys and the usual strdup/strcmp
	  involved, but rather just use the GQuark of the
	  type name as key, since it needs to be looked up
	  anyway to get the type name string.

	* tests/check/gst/gstobject.c: (GST_START_TEST):
	  Fix various leaks.

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

	* gst/gstbin.c: (compare_interface), (gst_bin_get_by_interface),
	(gst_bin_iterate_all_by_interface):
	  Can't use GPOINTER_TO_INT and GINT_TO_POINTER with GTypes.
	  GTypes are gulongs and thus the top 4 bytes might be cut
	  off on some platforms when doing GPOINTER_TO_INT, leading
	  to invalid GTypes and bad things happening (see RH bug #179654).
	  Also add a check to make sure the type passed in is really
	  an interface type.

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

	* .cvsignore:
	  Ignore more.

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

	* Makefile.am:
	* configure.ac:
	* gst-element-check.m4:
	* gst-element-check.m4.in:
	  Make gst-element-check-$VERSION.m4 call gst-inspect-$VERSION
	  instead of the unversioned gst-inspect (#324176, #168659).

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

	* gst/gstmessage.h:
	Use a valid int for the _MESSAGE_ANY enum value to avoid compiler
	warnings.

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

	* libs/gst/base/gstbasesrc.c: (gst_base_src_class_init),
	(gst_base_src_wait), (gst_base_src_update_length),
	(gst_base_src_get_range), (gst_base_src_default_check_get_range),
	(gst_base_src_check_get_range), (gst_base_src_pad_check_get_range),
	(gst_base_src_loop), (gst_base_src_start),
	(gst_base_src_activate_pull):
	Update docs.
	blocksize == 0 now means the default blocksize when working in push
	based mode.
	Remove some pointless asserts in _wait function.
	Fix offset/length calculations and EOS handling. We can now pull 0
	bytes as well, which is allowed.
	use _check_get_range() to decide if we can operate in _pull based
	mode.
	Fix refcounting leak when check_get_range function was not 
	implemented.
	API GstBaseSrc::blocksize range can be 0 too now (default)

	* tests/check/elements/filesrc.c: (GST_START_TEST),
	(filesrc_suite):
	Added check to test _get_range() behaviour.

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

	* gst/gstpad.c: (gst_pad_chain_unchecked), (gst_pad_chain),
	(gst_pad_push), (gst_pad_check_pull_range), (gst_pad_get_range),
	(gst_pad_pull_range):
	* gst/gstpad.h:
	Lots of comments and docs added to the pad functions.
	Flesh out the expected behaviour of the get_range() functions.

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

	* gst/gstbus.h:
	* gst/gstclock.h:
	* gst/gstevent.h:
	* gst/gstiterator.h:
	* gst/gstpad.h:
	* gst/gstplugin.h:
	* gst/gsttask.h:
	Remove comma at end of enumerator list. 

2006-07-05  Sebastien Moutte  <sebastien@moutte.net>

	* win32/common/libgstbase.def:
	* win32/common/libgstdataprotocol.def:
	* win32/common/libsgtreamer.def:
	Add new exported functions.

2006-07-05  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstpushsrc.c: (gst_push_src_check_get_range):
	Add some more docs here and there.

2006-07-05  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasesink.c: (gst_base_sink_preroll_object),
	(gst_base_sink_loop), (gst_base_sink_get_position):
	When operating in pull mode update the offset so that we
	read sequentially.

2006-07-05  Wim Taymans  <wim@fluendo.com>

	* gst/gstregistryxml.c: (read_string):
	Avoid strdup. (will happen in libxml, but hey!)

	* gst/gsturi.c:
	Add some more docs.

2006-07-05  Wim Taymans  <wim@fluendo.com>

	* gst/gstbuffer.c: (_gst_buffer_copy), (gst_buffer_create_sub):
	* tests/check/gst/gstbuffer.c: (GST_START_TEST),
	(gst_buffer_suite):
	No point in checking if the size of the subbuffer > 0, the
	code handles it correclty as demonstrated by unit test.
	Also add a unit test for the zero sized _new_and_alloc and
	_copy. Fixes #346663.

2006-07-05  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasetransform.c:
	(gst_base_transform_prepare_output_buffer),
	(gst_base_transform_buffer_alloc),
	(gst_base_transform_handle_buffer):
	Make sure the buffer we pass to transform_ip has a refcount of
	1 and thus is writable. Fixes #343196

2006-07-04  Jan Schmidt  <thaytan@mad.scientist.com>

	* plugins/elements/gstfilesrc.c: (gst_file_src_class_init),
	(gst_file_src_init), (gst_file_src_set_property),
	(gst_file_src_get_property), (gst_file_src_map_region):
	* plugins/elements/gstfilesrc.h:
	Add "sequential" property, off by default, to use madvise and hint
	to the kernel that sequential access is desired.
	Touch all retrieved pages by default to ensure they are pulled
	into memory. (Closes #345720)

2006-07-03  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-block.txt:
	* docs/design/part-dynamic.txt:
	Small docs updates.

2006-07-03  Wim Taymans  <wim@fluendo.com>

	* gst/gstcaps.c: (gst_caps_new_empty), (_gst_caps_free),
	(gst_caps_unref), (gst_static_caps_get),
	(gst_caps_append_structure):
	* gst/gstclock.c: (gst_clock_entry_new), (_gst_clock_id_free):
	Use GSlice when the glib we build against is >= 2.10

2006-07-03  Wim Taymans  <wim@fluendo.com>

	* gst/gstelement.c: (gst_element_pads_activate):
	Small cleanup in pad activation code.

2006-07-03  Wim Taymans  <wim@fluendo.com>

	Patch by: Peter Kjellerstedt <pkj at axis dot com>

	* gst/gst-i18n-app.h:
	* gst/gst-i18n-lib.h:
	* tools/gst-inspect.c: (print_signal_info):
	The attached patch will make the inclusion of gettext.h unconditional in
	gst/gst-i18n-app.h and gst/gst-i18n-lib.h, and it will remove the inclusion of
	libintl.h in tools/gst-inspect.c.
	This allows use of --disable-nls again and fixes #344642.

2006-07-03  Edward Hervey  <edward@fluendo.com>

	* gst/gstpad.c: (handle_pad_block), (gst_pad_push_event):
	Implement pad blocking on events according to part-block.txt.
	More comments on behaviour.
	* tests/check/gst/gstevent.c: (test_event):
	Send event to peer pad of blocked pad (else it will block).

2006-07-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* libs/gst/check/gstcheck.c: (gst_check_message_error),
	(gst_check_run_suite):
	  if we get the wrong message, give us the types as string
	* plugins/elements/gstfilesrc.c: (gst_file_src_start):
	  Fix a translatable
	* tests/check/elements/filesrc.c: (GST_START_TEST):
	  add a test for trying to open a non-existing file

2006-07-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* tests/check/gst/gstbin.c: (GST_START_TEST), (gst_bin_suite):
	  add a test for adding self

2006-07-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* libs/gst/check/gstcheck.h:
	  add some assert_ as alias for fail_unless_*
	* tests/check/gst/gst.c: (GST_START_TEST), (gst_suite):
	  increase test coverage

2006-07-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	  include lcov.mak for lcov coverage generation
	* tools/Makefile.am:
	  add to CLEANFILES

2006-07-02  Edward Hervey  <edward@fluendo.com>

	* tests/check/elements/.cvsignore:
	moaping

2006-07-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  don't set CFLAGS and friends for gcov, done from GST_GCOV now
	* tests/check/Makefile.am:
	  clean up gcov files

2006-07-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstcaps.c: (gst_caps_remove_and_get_structure):
	  remove gst_caps_simplify; it was not declared and not used
	  and deprecated in 0.8

2006-07-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/faq/gst-uninstalled:
	  don't put empty paths on PYTHONPATH
	* docs/gst/gstreamer-sections.txt:
	  remove some symbols that are not there

2006-07-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstcaps.c: (gst_caps_compare_structures):
	  whitespace fixes
	* tests/check/gst/gstbuffer.c: (GST_START_TEST):
	* tests/check/gst/gstcaps.c: (GST_START_TEST), (gst_caps_suite):
	  add more tests

2006-07-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* libs/gst/dataprotocol/Makefile.am:
	  build dataprotocol test by linking to the lib, instead of
	  compiling the source, so we get coverage
	* tests/check/Makefile.am:
	* tests/check/elements/filesrc.c: (event_func), (setup_filesrc),
	(cleanup_filesrc), (GST_START_TEST), (filesrc_suite):
	  add a test for filesrc

2006-07-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* tests/check/gst/gststructure.c: (GST_START_TEST),
	(gst_structure_suite):
	  Push coverage from 59.04% to 70.00%

2006-07-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* tests/check/Makefile.am:
	  gst-inspect every element; this makes sure that we also get
	  coverage on element's get/set functions

2006-07-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  set CFLAGS and friends to -O0 if gcov is being used
	  add GCOV LIBS
	* gst/Makefile.am:
	* libs/gst/base/Makefile.am:
	* libs/gst/check/Makefile.am:
	* libs/gst/controller/Makefile.am:
	* libs/gst/dataprotocol/Makefile.am:
	* libs/gst/net/Makefile.am:
	* plugins/elements/Makefile.am:
	* plugins/indexers/Makefile.am:
	  add makefile rules to generate gcov data and clean up
	* tests/check/Makefile.am:
	  add a coverage target that generates an html overview
	  of coverage data

2006-07-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* tests/check/elements/fakesink.c:
	* tests/check/elements/fakesrc.c:
	* tests/check/elements/fdsrc.c:
	* tests/check/elements/identity.c:
	* tests/check/generic/sinks.c: (gst_sinks_suite):
	* tests/check/generic/states.c:
	* tests/check/gst/gst.c:
	* tests/check/gst/gstabi.c:
	* tests/check/gst/gstbin.c:
	* tests/check/gst/gstbuffer.c: (gst_buffer_suite):
	* tests/check/gst/gstbus.c: (gst_bus_suite):
	* tests/check/gst/gstcaps.c: (GST_START_TEST):
	* tests/check/gst/gstelement.c:
	* tests/check/gst/gstevent.c: (gst_event_suite):
	* tests/check/gst/gstghostpad.c:
	* tests/check/gst/gstiterator.c: (gst_iterator_suite):
	* tests/check/gst/gstmessage.c: (gst_message_suite):
	* tests/check/gst/gstminiobject.c:
	* tests/check/gst/gstobject.c:
	* tests/check/gst/gstpad.c:
	* tests/check/gst/gstpipeline.c:
	* tests/check/gst/gstplugin.c:
	* tests/check/gst/gstquery.c: (gst_query_suite):
	* tests/check/gst/gstsegment.c: (gst_segment_suite):
	* tests/check/gst/gststructure.c:
	* tests/check/gst/gstsystemclock.c:
	* tests/check/gst/gsttag.c:
	* tests/check/gst/gsttask.c: (gst_task_suite):
	* tests/check/gst/gstutils.c:
	* tests/check/gst/gstvalue.c:
	* tests/check/libs/adapter.c:
	* tests/check/libs/basesrc.c:
	* tests/check/libs/collectpads.c:
	* tests/check/libs/controller.c:
	* tests/check/libs/gdp.c: (gst_dp_suite):
	* tests/check/libs/gstnetclientclock.c:
	* tests/check/libs/gstnettimeprovider.c:
	* tests/check/libs/libsabi.c: (libsabi_suite):
	* tests/check/libs/typefindhelper.c:
	* tests/check/pipelines/cleanup.c:
	* tests/check/pipelines/parse-launch.c:
	* tests/check/pipelines/simple-launch-lines.c:
	* tests/check/pipelines/stress.c: (stress_suite):
	  use the new macro

2006-07-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* libs/gst/check/gstcheck.c: (gst_check_run_suite):
	* libs/gst/check/gstcheck.h:
	  create a macro and function so that the simple unit test
	  case can be just one macro to create main()

2006-06-30  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstbin.c: (gst_bin_restore_thyself):
	* gst/gstxml.c: (gst_xml_make_element):
	  Fix deserialisation from XML. Set parent manually
	  instead of using gst_bin_add(), since gst_bin_add()
	  will unlink all pads of the element being added.
	  Fixes #341667.

2006-06-28  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Peter Kjellerstedt <pkj at axis com>

	* gst/gst.c: (prepare_for_load_plugin_func), (split_and_iterate):
	  Fix missing g_strdup() and double free when using the
	  --gst-plugin-load command line option (#346097).

2006-06-23  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstinfo.c:
	  Promote GST_DEBUG_CATEGORY_STATIC in example in docs.

	* libs/gst/net/gstnetclientclock.c:
	* libs/gst/net/gstnettimeprovider.c:
	  Use GST_DEBUG_CATEGORY_STATIC here too (#342503).

2006-06-23  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/manual/advanced-dataaccess.xml:
	  Fix buffer probe example compilation in
	  ADM (#345708).
	
2006-06-22  Edward Hervey  <edward@fluendo.com>

	* gst/gstelement.c: (gst_element_pads_activate):
	We need to deactivate src pads first and then sink pads.
	The reason is the src pads might be blocking while holding the streaming
	lock, so we need to deactivate them first so that deactivating the sink
	pads doesn't block (since it will require the streaming lock).

2006-06-22  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasetransform.c:
	(gst_base_transform_buffer_alloc):
	Forgot to remove two unneeded unrefs.
	Simplify a check _is_equal allready checks the obvious case.

2006-06-22  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-block.txt:
	Some docs about what pad_block should do.

2006-06-22  Wim Taymans  <wim@fluendo.com>

	* gst/gstcaps.c: (gst_caps_replace):
	Fix crasher when passed NULL. Doc clarification.
	Optimize for the trivial case.

	* gst/gstpipeline.c: (gst_pipeline_change_state):
	Small cleanups.

	* libs/gst/base/gstbasesrc.c: (gst_base_src_loop):
	Small documentation cleanup.

	* libs/gst/base/gstbasetransform.c:
	(gst_base_transform_buffer_alloc):
	Don't use silly gst_pad_get_negotiated_caps, GST_PAD_CAPS
	is what we need and it avoids a whole lot of redundant 
	refcount operations.

2006-06-22  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Philip Jägenstedt  <philip at lysator liu se>

	* docs/manual/advanced-dataaccess.xml:
	  Fix 'Embedding static elements' section to use
	  GST_PLUGIN_DEFINE_STATIC (#345607).

2006-06-21  Tim-Philipp Müller  <tim at centricular dot net>

	* tests/check/pipelines/simple-launch-lines.c: (test_stop_from_app):
	  Attempt to 'fix' spuriously failing test case: it seems like the
	  timeout of half a second is simply too small when the system is under
	  load otherwise, and the timeout doesn't really seem to serve any
	  particular purpose here. Give the pipeline a few seconds to preroll
	  first, and then give it another half a second to go from PAUSED to
	  PLAYING and marshal the message into the main thread.

2006-06-21  Tim-Philipp Müller  <tim at centricular dot net>

	* tools/gst-feedback-m.m:
	  Don't only use unversioned tools, try versioned tools as well
	  (#345086).

2006-06-21  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstbus.c: (gst_bus_class_init):
	  Fix some typos, make docs more explicit.

2006-06-20  Wim Taymans  <wim@fluendo.com>

	* tests/check/gst/gstghostpad.c: (block_callback),
	(GST_START_TEST), (gst_ghost_pad_suite):
	Added some more ghostpad tests, mainly blocking
	and probes.

2006-06-16  Wim Taymans  <wim@fluendo.com>

	* plugins/elements/gstfilesink.c: (gst_file_sink_open_file),
	(gst_file_sink_close_file), (gst_file_sink_do_seek),
	(gst_file_sink_event), (gst_file_sink_render):
	* plugins/elements/gstfilesink.h:
	Check if we can seek in the file instead of assuming
	we always can. Post an error when we are asked to seek in a
	non-seekable file (like a fifo). Fixes #343312.
	Some cleanups.

2006-06-16  Tim-Philipp Müller  <tim at centricular dot net>

	* tools/gst-launch.1.in:
	  Un-garble (fourcc) bit in filtered caps section.

2006-06-16  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/manual/advanced-autoplugging.xml:
	* docs/manual/basics-helloworld.xml:
	* docs/manual/highlevel-components.xml:
	  Don't leak bus reference in sample code.

2006-06-15  Tim-Philipp Müller  <tim at centricular dot net>

	* autogen.sh:
	  Add default for new --enable-plugin-docs switch.

	* configure.ac:
	  Use new GST_PLUGIN_DOCS macro to check for pyxml etc.
	  Fixes #344039.

	* docs/Makefile.am:
	  Use new ENABLE_PLUGIN_DOCS conditional.

2006-06-14  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c: (bin_query_duration_done), (gst_bin_query):
	Make it clear with a FIXME and a real define what the #if 0
	previously disabled.

2006-06-14  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasesink.c: (gst_base_sink_configure_segment),
	(gst_base_sink_preroll_object), (gst_base_sink_get_position):
	* libs/gst/base/gstbasetransform.c:
	(gst_base_transform_sink_eventfunc):
	* libs/gst/base/gstcollectpads.c: (gst_collect_pads_event):
	Don't randomly and silently reset a segment when the format 
	changes as this is a bug somewhere upstream. Fixes #330379.

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

	Patch by: Wouter Paesen  <wouter at kangaroot net>

	* libs/gst/controller/gstcontroller.c:
	(gst_controlled_property_new):
	  Fix controlling of float properties (#344849).

	* tests/check/libs/controller.c:
	(gst_test_mono_source_get_property),
	(gst_test_mono_source_set_property),
	(gst_test_mono_source_class_init), (GST_START_TEST):
	  While we're at it, add some float stuff to unit test.

2006-06-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/README:
	* docs/images/gdp-header.svg:
	  add a gdp image
	* docs/libs/Makefile.am:
	* docs/libs/gdp-header.png:
	* libs/gst/dataprotocol/dataprotocol.c:
	  add it to the API docs
	* docs/manual/intro-motivation.xml:
	  fix typo

2006-06-13  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gst.c: (scan_and_update_registry), (init_post):
	  If the fork()'ed child process can't write the updated registry cache
	  file to disk for some reason, make it exit with a failure exit code,
	  so that the parent can then re-scan the plugins itself and update the
	  registry structures in memory and work with that (rather than failing
	  when creating elements because seemingly no plugins are available).
	  Refactor registry scanning code into separate function for this and
	  also separate fork() and non-fork() code paths. Fixes #344748.

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

	* docs/manual/advanced-dataaccess.xml:
	Fix wrong PluginDesc. Fixes #344755.

2006-06-13  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstregistryxml.c: (gst_registry_xml_write_cache):
	  Fix silly bug that prevented us from creating
	  ~/.gstreamer-0.10 and writing the registry in one
	  go (the first call to g_mkstemp() would overwrite the
	  placeholder in the template string, so the second call
	  to g_mkstemp() after creating the missing directory
	  would then error out with 'invalid argument').

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

	* gst/gst.c: (init_post):
	Free string.

2006-06-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/glib-compat-private.h:
	* gst/glib-compat.c:
	* gst/glib-compat.h:
	* gst/gstvalue.c: (gst_value_serialize_flags):
	  remove GLib 2.6 compatibility code

2006-06-12  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/parse/Makefile.am:
	  Fix build with 'make -j N' even more (#340016).

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

	* docs/gst/gstreamer-sections.txt:
	Fix docs.

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

	* gst/gstsegment.c: (gst_segment_set_duration),
	(gst_segment_set_last_stop), (gst_segment_set_seek),
	(gst_segment_set_newsegment_full), (gst_segment_to_stream_time),
	(gst_segment_to_running_time), (gst_segment_clip):
	Use G_UNLIKELY to help the compiler a bit.

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

	Patch by: Stefan Kost <ensonic at sonicpulse dot de>

	* gst/gstevent.c: (gst_event_get_type):
	* gst/gstmessage.c:
	* gst/gstpad.c: (gst_pad_chain_unchecked), (gst_pad_chain),
	(gst_pad_push):
	constify quark registration strings. Fixes #344115
	Avoid unneeded type checking is _pad_push() by internally
	calling gst_pad_chain_unchecked().

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

	* gst/gstbuffer.c: (gst_buffer_get_type), (gst_buffer_finalize),
	(_gst_buffer_copy), (gst_buffer_is_metadata_writable),
	(gst_subbuffer_finalize), (gst_buffer_create_sub),
	(gst_buffer_is_span_fast), (gst_buffer_span):
	Init _type for consistency.
	Use _FLAGS macro to avoid type check.
	Avoid unneeded type checks in subbufer code.

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

	* gst/gst.c: (gst_debug_help):
	* gst/gstplugin.c: (gst_plugin_finalize), (gst_plugin_list_free):
	* gst/gstpluginfeature.c: (gst_plugin_feature_finalize),
	(gst_plugin_feature_list_free):
	* gst/gstregistry.c: (gst_registry_add_plugin),
	(gst_registry_add_feature), (gst_registry_plugin_filter),
	(gst_registry_feature_filter), (gst_registry_find_plugin),
	(gst_registry_find_feature), (gst_registry_get_plugin_list),
	(gst_registry_lookup_feature_locked), (gst_registry_lookup_locked):
	* gst/gstregistryxml.c: (load_feature),
	(gst_registry_xml_read_cache), (gst_registry_xml_write_cache):
	* gst/gstminiobject.c: (gst_mini_object_unref),
	(gst_mini_object_replace), (gst_value_mini_object_free),
	(gst_value_mini_object_copy):
	Use _CAST macros to avoid unneeded type checking.
	Added some more G_UNLIKELY.

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

	* gst/gstbuffer.h:
	Avoid unneeded type checking.
	API: GST_BUFFER_IS_DISCONT

	* gst/gstminiobject.h:
	Avoid type check in flag accessor.

	* gst/gstelementfactory.h:
	* gst/gstplugin.h:
	* gst/gstpluginfeature.h:
	Add _CAST macros.
	API: GST_ELEMENT_FACTORY_CAST
	API: GST_PLUGIN_CAST
	API: GST_PLUGIN_FEATURE_CAST

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

	* gst/gstobject.c: (gst_object_get_type), (gst_object_ref),
	(gst_object_unref):
	Add G_UNLIKELY in type registration.
	Avoid type check in _ref/_unref since that is also
	done in glib.

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

	* gst/gsterror.c: (gst_g_error_get_type):
	* gst/gstpadtemplate.c: (gst_pad_template_get_type),
	(gst_static_pad_template_get_type):
	* gst/gsttaglist.c: (gst_tag_list_get_type):
	* gst/gsttagsetter.c: (gst_tag_setter_get_type):
	* gst/gsttypefindfactory.c: (gst_type_find_factory_get_type):
	* gst/gsturi.c: (gst_uri_handler_get_type):
	* gst/gstvalue.c: (gst_date_get_type):
	* gst/gstxml.c: (gst_xml_get_type):
	* libs/gst/base/gstbasesink.c: (gst_base_sink_get_type),
	(gst_base_sink_preroll_object), (gst_base_sink_get_position):
	* libs/gst/base/gstbasesrc.c: (gst_base_src_get_type):
	Add G_UNLIKELY in type registration.

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

	* tools/gst-inspect.c: (print_signal_info):
	Properly print enum values.

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

	* gst/gstinfo.c: (gst_debug_set_active),
	(gst_debug_category_set_threshold), (_gst_debug_nameof_funcptr):
	* gst/gstinfo.h:
	Add some G_[UN]LIKELY.
	Maintain __gst_debug_min to avoid formatting the arguments of
	debug messages that will be dropped anyway to avoid a lot of 
	overhead from the debugging system.

2006-06-11  Stefan Kost  <ensonic@users.sf.net>

	* po/POTFILES.in:
	* po/POTFILES.skip:
	  add missing files containing translatable strings, tell intltool about
	  one exception

2006-06-11  Stefan Kost  <ensonic@users.sf.net>

	* tests/check/libs/.cvsignore:
	add test-binary to ignore list

2006-06-11  Stefan Kost  <ensonic@users.sf.net>

	* docs/libs/gstreamer-libs-docs.sgml:
	reorder (put dp into a chapter) and indent

2006-06-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  back to HEAD

=== release 0.10.8 ===

2006-06-10  Thomas Vander Stichele <thomas at apestaart dot org>

	* configure.ac:
	  releasing 0.10.8, "Soepeke, ik zie ou nog altijd nie"

2006-06-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gst.c: (init_post):
	  move pid declaration to declaration block

2006-06-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gst.c: (init_post):
	  use _exit() instead of exit() in our forked child; this ensures
	  that none of the registered exit handlers from whatever is using
	  GStreamer get executed.  This fixes gnome-mixer-applet failing
	  to load, because ORBit would shut down.
	  Spotted by: Edward Hervey  <edward@fluendo.com>
	  Fix suggested by: Tim-Philipp Müller  <tim at centricular dot net>
	  Fixes #344474

2006-06-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  back to TRUNK

=== release 0.10.7 ===

2006-06-09  Thomas Vander Stichele <thomas at apestaart dot org>

	* configure.ac:
	  releasing 0.10.7, "Soepeke, ik zie ou"

2006-06-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/de.po:
	* po/en_GB.po:
	* po/fr.po:
	* po/it.po:
	* po/nb.po:
	* po/nl.po:
	* po/ru.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	* po/zh_TW.po:
	* win32/common/config.h:
	  0.10.6.2 prerelease

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

	* gst/gstindex.c: (gst_index_gtype_resolver):
	* tools/gst-xmlinspect.c: (print_plugin_info):
	Fix leak spotted by coverity checker. Fixes #343827
	Fix another other leak found by paolo borelli.

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

	* libs/gst/dataprotocol/dataprotocol.c:
	(gst_dp_header_from_buffer_any), (gst_dp_packet_from_caps_any),
	(gst_dp_version_get_type), (gst_dp_init),
	(gst_dp_header_from_buffer), (gst_dp_header_from_buffer_1_0),
	(gst_dp_packet_from_caps), (gst_dp_packet_from_caps_1_0),
	(gst_dp_packet_from_event), (gst_dp_packet_from_event_1_0),
	(gst_dp_event_from_packet_0_2), (gst_dp_event_from_packet_1_0),
	(gst_dp_event_from_packet), (gst_dp_packetizer_new),
	(gst_dp_packetizer_free):
	* libs/gst/dataprotocol/dataprotocol.h:
	  API: add a GstDPPacketizer object, and create/free functions
	  API: add GstDPVersion enum
	  Add 1.0 event function that uses the string serialization
	  Serialize more useful buffer flags
	  Fixes #343988

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

	* tests/check/Makefile.am:
	* tests/check/gst/gstabi.c:
	* tests/check/gst/struct_ppc64.h:
	* tests/check/libs/libsabi.c:
	* tests/check/libs/struct_ppc64.h:
	  add ppc64 structure sizes

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

	* tests/check/Makefile.am:
	* tests/check/gst/gstabi.c:
	* tests/check/gst/struct_x86_64.h:
	* tests/check/libs/libsabi.c:
	* tests/check/libs/struct_x86_64.h:
	  generate and add structure size lists for x86_64

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

	* libs/gst/check/gstcheck.c: (gst_check_abi_list):
	* libs/gst/check/gstcheck.h:
	  factor out the method from tests that checks size of structures,
	  and add code to generate the header containing these sizes
	* tests/check/gst/gstabi.c: (GST_START_TEST):
	* tests/check/gst/struct_i386.h:
	* tests/check/libs/libsabi.c: (GST_START_TEST):
	* tests/check/libs/struct_i386.h:
	  use it

2006-06-06  Michael Smith  <msmith@fluendo.com>

	* gst/gstsegment.h:
	  Don't use c++-style comments, fixes #343929

2006-06-05  Edward Hervey  <edward@fluendo.com>

	* gst/gst.c:
	plugin_paths is not used if we build without registry support.

	* gst/gstsegment.c: (gst_segment_copy): 
	_copy() was always returning NULL...

2006-06-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* libs/gst/dataprotocol/dataprotocol.c:
	(gst_dp_header_from_buffer), (gst_dp_packet_from_caps),
	(gst_dp_packet_from_event):
	  factor out CRC code

2006-06-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* libs/gst/check/gstcheck.c: (gst_check_teardown_src_pad):
	  make sure we unset caps

2006-06-02  Michael Smith  <msmith@fluendo.com>

	* libs/gst/check/gstcheck.c: (gst_check_init),
	(gst_check_chain_func):
	* libs/gst/check/gstcheck.h:
	  Add a cond/mutex to the check support lib, signal this whenever we
	  add to the buffers list. This will allow tests to not busy-wait on
	  the buffer-list.

2006-06-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* libs/gst/dataprotocol/dataprotocol.c:
	(gst_dp_header_from_buffer), (gst_dp_packet_from_caps),
	(gst_dp_packet_from_event):
	  factor out some common header init code

2006-06-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/libs/gstreamer-libs-sections.txt:
	* docs/libs/tmpl/gstdataprotocol.sgml:
	* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_crc):
	* libs/gst/dataprotocol/dataprotocol.h:
	  API: make gst_dp_crc() public

2006-06-01  Stefan Kost  <ensonic@users.sf.net>

	* plugins/indexers/gstindexers.c: (plugin_init):
	conditionally register fileindexer (fixes #343598)

2006-06-01  Stefan Kost  <ensonic@users.sf.net>

	* gst/gsttagsetter.h:
	Can't cast ifaces to a class

	* libs/gst/net/gstnetclientclock.h:
	* libs/gst/net/gstnettimeprovider.h:
	* plugins/elements/gstfakesink.h:
	* plugins/elements/gstfakesrc.h:
	* plugins/elements/gstfdsink.h:
	* plugins/elements/gstfdsrc.h:
	* plugins/elements/gstfilesink.h:
	* plugins/elements/gstfilesrc.h:
	* plugins/elements/gstidentity.h:
	* plugins/elements/gstqueue.h:
	* plugins/elements/gsttee.h:
	* plugins/indexers/gstfileindex.c:
	* plugins/indexers/gstmemindex.c:
	* tests/old/examples/plugins/example.h:
	Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass

2006-06-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* libs/gst/dataprotocol/dataprotocol.c:
	(gst_dp_header_from_buffer):
	  make sure we zero the whole ABI-compatible area

2006-06-01  Wim Taymans  <wim@fluendo.com>

	Patch by: Alessandro Decina <alessandro at nnva dot org>

	* libs/gst/base/gstcollectpads.c: (gst_collect_pads_stop):
	Make sure the EOS flag is cleared from pads after a flush
	or stop. Fixes #343538.

	* tests/check/libs/collectpads.c: (GST_START_TEST),
	(gst_collect_pads_suite):
	Added test for collectpads reusage after EOS.

2006-05-30  Sebastien Moutte  <sebastien@moutte.net>

	* gst/gst.c:
	 set #include <sys/wait.h> in a #ifdef #ifdef HAVE_FORK
	* win32/common/libgstbase.def:
	 export gst_collect_pads_set_flushing
	* win32/common/libgstreamer.def:
	 export gst_pad_set_acceptcaps_function, gst_structure_empty_new,
	 gst_value_fraction_multiply
	* win32/vs6/gst_inspect.dsp:
	 add a link to intl.lib

2006-05-30  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstcollectpads.c: (gst_collect_pads_remove_pad),
	(gst_collect_pads_chain):
	Handle the case where a pad is removed from the collection
	that could cause the other pads to become collectable.

2006-05-30  Wim Taymans  <wim@fluendo.com>

	* gst/gstelement.c:
	Clarify the use of _release_request_pad() and
	_get_request_pad() a bit better.

	* libs/gst/base/gstadapter.c: (gst_adapter_peek),
	(gst_adapter_take_buffer):
	Fix some doc and comment typos.

2006-05-30  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* docs/gst/gstreamer-sections.txt:
	* docs/libs/gstreamer-libs-sections.txt:
	  add declared symbols

2006-05-30  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/gstsystemclock.c: (gst_system_clock_id_wait_unlocked):
	Add debug that can be enabled using a #define at the top of the file,
	for dumping stats about how late/early we were when waking up from
	waiting on the clock.

2006-05-30  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstcollectpads.c: (gst_collect_pads_check_pads):
	When rebuilding the pad list, don't leak the previous list.

2006-05-30  Wim Taymans  <wim@fluendo.com>

	Patch by: Lutz Mueller <lutz at topfrose dot de>

	* libs/gst/base/gstbasesrc.c: (gst_base_src_class_init),
	(gst_base_src_get_query_types), (gst_base_src_update_length):
	Publish supported query types.
	Update last_stop field in get_range mode so the position
	query works. Fixes #342321.

2006-05-30  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/gst/gstreamer-sections.txt:
	* gst/gsttaglist.c: (_gst_tag_initialize):
	* gst/gsttaglist.h:
	  API: add GST_TAG_PREVIEW_IMAGE (#343341).

2006-05-30  Wim Taymans  <wim@fluendo.com>

	Patch by: Alessandro Decina <alessandro at nnva dot org>

	* libs/gst/base/gstcollectpads.c: (gst_collect_pads_remove_pad):
	Unlock mutex when removing an unknown pad.
	Fixes #343334.

	* tests/check/Makefile.am:
	* tests/check/libs/collectpads.c: (collected_cb), (push_buffer),
	(push_event), (setup), (teardown), (GST_START_TEST),
	(gst_collect_pads_suite), (main):
	Added collecpads check, disabled for now as check crashes for
	some reason.

2006-05-29  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstcollectpads.c: (gst_collect_pads_finalize):
	Don't leak pads lists.

2006-05-29  Wim Taymans  <wim@fluendo.com>

	* docs/libs/gstreamer-libs-sections.txt:
	* libs/gst/base/gstcollectpads.c:
	(gst_collect_pads_set_flushing_unlocked),
	(gst_collect_pads_set_flushing), (gst_collect_pads_start),
	(gst_collect_pads_stop):
	* libs/gst/base/gstcollectpads.h:
	API: gst_collect_pads_set_flushing()
	Added api to set the pads to flushing, useful for seeking
	code in elements using collectpads.
	Clear segment when receiving a flush.

2006-05-29  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gst.c: (add_path_func), (init_post):
	  Don't scan registry paths passed via --gst-plugin-path immediately
	  (will crash, because absolutely nothing is set up and no types are
	  registered etc.); do this later in init_post(). Fixes #343057.

2006-05-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gst.c: (init_post):
	  if we have fork, fork while reading/rebuilding the registry
	  so the parent doesn't take the hit of having all plugins loaded
	  in memory.  Fixes #342777.
	* configure.ac:
	  Check if we have fork()
	* win32/common/config.h.in:
	  no fork() on win32

2006-05-26  Jan Schmidt  <thaytan@mad.scientist.com>

	* plugins/elements/gstelements.c:
	* plugins/elements/gstfilesrc.c: (gst_file_src_class_init),
	(gst_file_src_init), (gst_file_src_set_property),
	(gst_file_src_get_property), (gst_file_src_start):
	* plugins/elements/gstfilesrc.h:
	  API: GstFileSrc::use-mmap

	Add a use-mmap property to enable easier testing of all code paths.
	Bump rank to PRIMARY, so filesrc is the preferred file reader and used
	in the absence of gnomevfssrc. (Closes #340501)

2006-05-26  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* tools/gst-inspect.c:
	Add missing include, removes warning of ngettext not being defined on
	some arches.

2006-05-26  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/gstvalue.c: (gst_value_deserialize_fraction):
	Handle NULL input and output pointers silently as a failed conversion,
	rather than g_warnings.

2006-05-25  Wim Taymans  <wim@fluendo.com>

	* libs/gst/net/gstnetclientclock.c: (gst_net_client_clock_start):
	Initialize variable before using. Fixes #342820.

2006-05-24  Tim-Philipp Müller  <tim at centricular dot net>

	* libs/gst/base/gsttypefindhelper.c: (buf_helper_find_peek):
	  Fix off-by-one bug that would only allow peeks of N-1 bytes
	  from the start even if the buffer to typefind on contains
	  in fact N bytes of data (makes vorbis typefinding from a
	  vorbis identification header buffer work).

	* tests/check/Makefile.am:
	* tests/check/libs/.cvsignore:
	* tests/check/libs/typefindhelper.c: (GST_START_TEST),
	(gst_typefindhelper_suite), (main), (foobar_typefind),
	(plugin_init):
	  Add very basic unit test for gst_type_find_helper_for_buffer()
	  that checks for the problem fixed above.

2006-05-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* tools/gst-inspect.c: (print_interfaces),
	(print_element_properties_info), (print_element_list), (main):
	  add more translatable strings

2006-05-23  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Julien Moutte  <julien at moutte net>

	* docs/gst/gstreamer-sections.txt:
	  Make new GST_FLOW_IS_SUCCESS macro visible in docs.
	  
	* plugins/elements/gstfakesink.c: (gst_fake_sink_class_init),
	(gst_fake_sink_preroll):
	* plugins/elements/gstfakesink.h:
	  API: Add new GstFakeSink::preroll-handoff signal (#337100).

2006-05-23  Wim Taymans  <wim@fluendo.com>

	* gst/gstpad.c: (gst_flow_get_name), (gst_flow_to_quark):
	* gst/gstpad.h:
	Added _CUSTOM error and success GstFlowReturn that can be
	used be elements internally. 
	Added macro to check for SUCCESS flowreturns.
	API: GST_FLOW_CUSTOM_SUCCESS
	API: GST_FLOW_CUSTOM_ERROR
	API: GST_FLOW_IS_SUCCESS

	* tests/check/gst/gstpad.c: (GST_START_TEST), (gst_pad_suite):
	Added check for GstFlowReturn sanity.

2006-05-23  Wim Taymans  <wim@fluendo.com>

	Patch by: Mark Nauwelaerts <manauw at skynet dot be>

	* libs/gst/base/gstcollectpads.c: (gst_collect_pads_remove_pad),
	(gst_collect_pads_event):
	clear/reset segment info in FLUSH_STOP.
	Fixes #336929.

2006-05-22  Stefan Kost  <ensonic@users.sf.net>

	* libs/gst/base/gstcollectpads.c: (gst_collect_pads_stop),
	(gst_collect_pads_check_collected):
	Flush queued buffer on _stop(), fixes playing again (#342454)

2006-05-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* tests/check/gst/gststructure.c: (GST_START_TEST),
	(gst_structure_suite):
	  add a test for a complete structure

2006-05-19  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/faq/developing.xml:
	* docs/faq/faq.xml:
	* docs/faq/troubleshooting.xml:
	* docs/faq/using.xml:
	  Some minor FAQ updates that won't change the fact that
	  our FAQ is badly structured, full of information hardly
	  anyone new to GStreamer needs to know and lacking lots
	  of information people constantly ask for.
	  
2006-05-19  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/gstpad.c: (gst_pad_set_caps):
	  Short-circuit gst_pad_set_caps if setting the existing
	  caps pointer again, and avoid printing debug and 
	  reffing/unreffing the caps.

	* plugins/elements/gstqueue.c: (gst_queue_push_one):
	  There's actually no need to set the caps before pushing -
	  the acceptcaps method will handle it anyway.

2006-05-19  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/gst/gstreamer-sections.txt:
	* win32/common/libgstreamer.def:
	* gst/gstutils.c: (gst_element_seek_simple):
	* gst/gstutils.h:
	  API: add gst_element_seek_simple() (#342238).

2006-05-18  Edward Hervey  <edward@fluendo.com>

	* gst/gsttypefind.c: (gst_type_find_get_type):
	* gst/gsttypefind.h:
	Added GST_TYPE_TYPE_FIND and gst_type_find_get_type() so a GType gets
	registered for GstTypeFind pointers. This allows wrapping the structure
	in bindings (i.e. gst-python).

2006-05-18  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gsttagsetter.c:
	  Docs additions and fixes (see #339918).

2006-05-18  Jan Schmidt  <thaytan@mad.scientist.com>

	* plugins/elements/gstcapsfilter.c: (gst_capsfilter_prepare_buf):
	The caps intersection algorithm can produce multiple copies of the
	caps. Until that is fixed, we need to simplify the result to be
	sure whether the allowed caps are fixed or not.

	* plugins/elements/gstqueue.c: (gst_queue_init),
	(gst_queue_bufferalloc), (gst_queue_acceptcaps),
	(gst_queue_push_one):
	Proxied buffer alloc should not set the caps on the source pad.
	When pushing buffers, we always accept the caps change that triggers.
	This prevents negotiation errors caused by caps changing mid-stream 
	and then being refused on our source pad (because upstream is now
	refusing those caps).

2006-05-18  Tim-Philipp Müller  <tim at centricular dot net>

	* tests/examples/helloworld/helloworld.c: (main):
	  Must plug audioconvert and audioresample between decoder
	  and audio sink.

2006-05-17  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/gstregistryxml.c: (read_string), (load_pad_template),
	(load_feature), (load_plugin):
	Allow empty strings for some of the plugin fields so we don't 
	drop valid plugin entries that were written out correctly
	(Fixes #341479)

2006-05-17  Sebastien Moutte  <sebastien@moutte.net>
	
	* gst/gstregistryxml.c: (gst_registry_xml_write_cache):
	  Use g_remove and g_rename instead of remove and rename that don't 
	  handle utf8 characters. rename was failing for users who had specific
	  characters in their name then the registry was built at each 
	  gstreamer init.
	* win32/vs6/gst_inspect.dsp:
	* win32/vs6/gst_launch.dsp:
	* win32/vs6/libgstbase.dsp:
	* win32/vs6/libgstcoreelements.dsp:
	* win32/vs6/libgstreamer.dsp:
	  Use a debug version of libxml2 (libxml2D.lib,libxml2D.dll) for DEBUG 
	  build of libgstreamer and clean unused libraries in projects link 
	  settings.

2006-05-17  Edward Hervey  <edward@fluendo.com>

	* plugins/elements/gstqueue.c: (gst_queue_push_one):
	The queue is not responsible for pushing an EOS when receiving a fatal
	flow error. It's up to the real element driving the pipeline to do that.

2006-05-16  Edward Hervey  <edward@fluendo.com>

	* plugins/elements/gstqueue.c: (gst_queue_push_one):
	The queue was posting a non-needed GST_MESSAGE_ERROR when pushing a
	buffer returned a fatal error. It should just send an EOS and stop
	its task.
	Upstream elements will then properly receive the GST_FLOW_UNEXPECTED
	when pushing buffers on the queue and will be able to handle the event.

2006-05-16  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/manual/basics-bins.xml:
	* docs/manual/basics-init.xml:
	  Fix typos and minor errors in sample code (#341856).

2006-05-16  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-qos.txt:
	Fix indexes in formulas to make more sense.

2006-05-15  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasesink.c: (gst_base_sink_get_position):
	Don't report POSITION based on clock time if sync is
	disabled in a sink.

2006-05-15  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstobject.h:
	  Add cast to make compiler happy - refcount variable was a gint
	  in GstObject but is a guint in GObject and g_atomic_int_get()
	  wants a gint *.

2006-05-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/parse/Makefile.am:
	  chain commands using &&, which also makes parallel make work

2006-05-14  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/gst/gstreamer-sections.txt:
	* gst/gstevent.c:
	* gst/gstevent.h:
	* gst/gstmessage.h:
	  Minor docs fixes.

=== release 0.10.6 ===

2006-05-14  Jan Schmidt <thaytan@mad.scientist.com>

	* configure.ac:
	  releasing 0.10.6, "Take the cannoli"

2006-05-13  Tim-Philipp Müller  <tim at centricular dot net>

	* tools/gst-launch.c: (print_tag):
	  Fix use of uninitialized variable in the hypothetical
	  case that some broken plugin creates a GST_TAG_IMAGE
	  tag containing a NULL buffer (#341667).

2006-05-12  Tim-Philipp Müller  <tim at centricular dot net>

	* tools/gst-launch.c: (print_tag):
	  Print something more intelligible for image tags when
	  using the -t switch (#341556).

2006-05-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	  updates for win32
	* configure.ac:
	  define GST_MAJORMINOR so we have it available in win32/common/config.h
	  Possibly remove it from our Makefile.am files later
	* win32/common/config.h:
	* win32/common/config.h.in:
	  added GST_MAJORMINOR
	* win32/common/gstenumtypes.c: (register_gst_resource_error):
	* win32/common/gstversion.h:
	  updated

2006-05-12  Sebastien Moutte  <sebastien@moutte.net>

	* win32/MANIFEST:
	  Update win32 files listing.
	* win32/common/gstversion.h:
	  Add GST_MAJORMINOR definition.
	* win32/common/libgstreamer.def:
	  Add new exported functions.
	  
2006-05-12  Michael Smith  <msmith@fluendo.com>

	* gst/gstplugin.c: (gst_plugin_load_file):
	  If an so file has no plugin entry point, unload the module.

2006-05-11  Wim Taymans  <wim@fluendo.com>

	* plugins/elements/gstqueue.c: (gst_queue_chain), (gst_queue_loop),
	(gst_queue_set_property):
	Don't forget to signal the _chain or _loop function 
	when the queue size or thresholds change since that might
	cause them to make progres again.

2006-05-11  Stefan Kost  <ensonic@users.sf.net>

	* gst/gstclock.c: (gst_clock_class_init):
	* gst/gstindex.c: (gst_index_class_init):
	* gst/gstobject.c: (gst_object_class_init):
	* gst/gstpad.c: (gst_pad_class_init):
	* gst/gstpipeline.c: (gst_pipeline_class_init):
	* libs/gst/base/gstbasesink.c: (gst_base_sink_class_init):
	* libs/gst/base/gstbasesrc.c: (gst_base_src_class_init):
	* libs/gst/base/gstbasetransform.c:
	(gst_base_transform_class_init):
	* libs/gst/net/gstnetclientclock.c:
	(gst_net_client_clock_class_init):
	* libs/gst/net/gstnettimeprovider.c:
	(gst_net_time_provider_class_init):
	* plugins/elements/gstcapsfilter.c: (gst_capsfilter_class_init):
	* plugins/elements/gstfakesink.c: (gst_fake_sink_class_init):
	* plugins/elements/gstfakesrc.c: (gst_fake_src_class_init):
	* plugins/elements/gstfdsink.c: (gst_fd_sink_class_init):
	* plugins/elements/gstfdsrc.c: (gst_fd_src_class_init):
	* plugins/elements/gstfilesink.c: (gst_file_sink_class_init):
	* plugins/elements/gstfilesrc.c: (gst_file_src_class_init):
	* plugins/elements/gstidentity.c: (gst_identity_class_init):
	* plugins/elements/gsttee.c: (gst_tee_class_init):
	* tests/old/examples/plugins/example.c: (gst_example_class_init):
	* tests/old/testsuite/threads/signals.c: (gst_test_class_init):
          G_OBJECT_CLASS macro usage batch cleanup, fixes #337747 for core

2006-05-11  Wim Taymans  <wim@fluendo.com>

	* gst/gstbuffer.c: (_gst_buffer_initialize):
	Register subbufer along with the buffer type so that
	it does not accidentally gets registered from N
	different streaming threads in a non threadsafe way.

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

	* gst/gstbuffer.h:
	* gst/gstevent.h:
	* gst/gstmessage.h:
	  Make gtk-doc generate docs for our inlined gst_buffer_ref(),
	  gst_event_ref() and gst_message_ref() functions again
	  (ugly hack, please do fix if there's a better way besides
	  overrides.txt, which doesn't seem to work).

2006-05-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* libs/gst/check/gstcheck.h:
	  add an assert for setting state to avoid lots of repetitive code
	  in the future

2006-05-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstvalue.c: (gst_value_serialize_flags):
	  fix a leak if no flags are set
	* tests/check/gst/gstvalue.c: (GST_START_TEST):
	  fix leak in tests

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

	* docs/manual/basics-pads.xml:
	  Expand a bit on caps and filtered links and update
	  examples that were still using the no longer existing
	  gst_pad_link_filtered() (#338206).

2006-05-10  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstcollectpads.c: (gst_collect_pads_finalize),
	(gst_collect_pads_add_pad), (gst_collect_pads_remove_pad),
	(gst_collect_pads_set_flushing), (gst_collect_pads_start),
	(gst_collect_pads_stop):
	* libs/gst/base/gstcollectpads.h:
	No need to call _stop in _finalize.
	Iterate the main pad list in _finalize.
	Added some more debug.
	Free lists and data in the right order.
	Also free data whem doing _remove_pad when stopped for
	backward compatibility protect ::started with PAD_LOCK as
	well.

2006-05-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gststructure.c: (gst_structure_gtype_from_abbr),
	(gst_structure_parse_value):
	  add some comments
	  rename a method so that it actually says what it does better

2006-05-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstevent.c: (_gst_event_initialize):
	* gst/gstformat.c: (_gst_format_initialize):
	  make sure some essential types used by events are registered
	  as part of gst_init()
	* gst/gstvalue.c: (gst_value_serialize_flags):
	  if no flags are set, serialize them to a value that represents NONE
	  so that deserializing them works
	* tests/check/gst/gstvalue.c: (GST_START_TEST), (gst_value_suite):
	  add tests for serialization and deserialization of flags

2006-05-10  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstcollectpads.c: (gst_collect_pads_collect),
	(gst_collect_pads_collect_range), (gst_collect_pads_available),
	(gst_collect_pads_check_pads), (gst_collect_pads_check_collected),
	(gst_collect_pads_event), (gst_collect_pads_chain):
	Update docs.
	Better debug info.
	Catch and return errors from the collect function
	Refuse data on eos pads.

2006-05-10  Edward Hervey  <edward@fluendo.com>

	* gst/gstinterface.h:
	GST_IMPLEMENTS_INTERFACE and GST_IS_IMPLEMENTS_INTERFACE use the normal
	GInterface type checking.
	They were previously using non-defined macros.

2006-05-09  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstcollectpads.c: (gst_collect_pads_init),
	(gst_collect_pads_finalize), (gst_collect_pads_add_pad),
	(gst_collect_pads_remove_pad), (gst_collect_pads_set_flushing),
	(gst_collect_pads_start), (gst_collect_pads_stop),
	(gst_collect_pads_peek), (gst_collect_pads_pop),
	(gst_collect_pads_available), (gst_collect_pads_read),
	(gst_collect_pads_flush), (gst_collect_pads_check_pads),
	(gst_collect_pads_is_collected), (gst_collect_pads_event),
	(gst_collect_pads_chain):
	* libs/gst/base/gstcollectpads.h:
	Clean up the mess that is collectpads, add comments and
	FIXMEs where needed.
	Maintain a separate pad list so we can add pads while
	collecting the other ones. For this we need a new separate 
	lock (see comics).
	Fix memory leak in finalize.
	Refactor some weird code to set/unset pad flushing flags, mark
	with comments.
	Don't crash in _available, _read, _flush when we're EOS.

	* tests/check/libs/.cvsignore:
	Ignore adapter check binary.

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

	* gst/gstindex.c: (gst_index_resolver_get_type):
	* plugins/elements/gstfakesink.c:
	(gst_fake_sink_state_error_get_type):
	* plugins/elements/gstfakesrc.c: (gst_fake_src_data_get_type),
	(gst_fake_src_sizetype_get_type), (gst_fake_src_filltype_get_type):
	* plugins/elements/gstqueue.c: (queue_leaky_get_type):
	  Const-ify GEnumValue arrays.

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

	* tests/check/gst/gstbuffer.c: (GST_START_TEST):
	  Add test case for flags + gst_buffer_make_metadata_writable().

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

	* gst/gstbuffer.c: (gst_buffer_make_metadata_writable):
	  gst_buffer_make_metadata_writable() should maintain the
	  buffer flags (those that make sense at least) (see #340859).

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

	* tools/gst-inspect.c:
	* tools/gst-launch.c:
	* tools/gst-typefind.c:
	* tools/gst-xmlinspect.c:
	* tools/tools.h:
	  Fix up includes: need to include stdlib.h in tools.h for exit().

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

	* gst/gsttaglist.c: (_gst_tag_initialize):
	* gst/gsttaglist.h:
	  API: add GST_TAG_IMAGE tag (#340721).

2006-05-08  Wim Taymans  <wim@fluendo.com>

	* gst/gstquery.c:
	Added some docs for the segment query.

2006-05-08  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasesrc.c: (gst_base_src_perform_seek),
	(gst_base_src_loop), (gst_base_src_change_state):
	Always push non-flushing serialized events in the streaming 
	thread.

2006-05-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gsterror.c: (_gst_stream_errors_init):
	  Add a missing error string.

2006-05-08  Jan Schmidt  <thaytan@mad.scientist.com>

	* libs/gst/base/gstbasesink.c: (gst_base_sink_configure_segment):
	Add applied_rate to the debug

	* libs/gst/base/gstbasesrc.c: (gst_base_src_perform_seek):
	Copy applied_rate into the outgoing NEWSEGMENT event

2006-05-08  Wim Taymans  <wim@fluendo.com>

	Patch by: Philippe Rouquier <philippero at libertysurf dot fr>

	* libs/gst/base/gstbasesink.c: (gst_base_sink_set_flushing),
	(gst_base_sink_change_state):
	call ::unlock before taking the PREROLL_LOCK so we can safely
	handle elements that lock in ::render.
	Fixes #340174.

2006-05-08  Edward Hervey  <edward@fluendo.com>

	* autogen.sh: (CONFIGURE_DEF_OPT): 
	Darwin's libtoolize is in fact called glibtoolize.
	Adding glibtoolize to the list of accepted names for libtoolize.

2006-05-08  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasesrc.c: (gst_base_src_loop):
	Unify error handling, don't post an error message
	when a push() returns EOS but perform our normal EOS
	handling code. Fixes #340772.

2006-05-08  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-overview.txt:
	Make upsteam/downstream concepts more clear.
	Give an example of serialized/non-serialized events.

	* docs/design/part-events.txt:
	* docs/design/part-streams.txt:
	Mention applied_rate.

	* docs/design/part-trickmodes.txt:
	Mention applied rate, flesh out some more use cases.

	* gst/gstevent.c: (gst_event_new_new_segment),
	(gst_event_parse_new_segment), (gst_event_new_new_segment_full),
	(gst_event_parse_new_segment_full), (gst_event_new_tag),
	(gst_event_parse_tag), (gst_event_new_buffer_size),
	(gst_event_parse_buffer_size), (gst_event_new_qos),
	(gst_event_parse_qos), (gst_event_parse_seek),
	(gst_event_new_navigation):
	* gst/gstevent.h:
	Add applied_rate field to NEWSEGMENT event.
	API: gst_event_new_new_segment_full()
	API: gst_event_parse_new_segment_full()

	* gst/gstsegment.c: (gst_segment_init), (gst_segment_set_seek),
	(gst_segment_set_newsegment), (gst_segment_set_newsegment_full),
	(gst_segment_to_stream_time), (gst_segment_to_running_time):
	* gst/gstsegment.h:
	Add applied_rate to GstSegment structure.
	Make calculation of stream_time and running_time more correct
	wrt rate/applied_rate.
	Add some more docs.
	API: GstSegment::applied_rate field
	API: gst_segment_set_newsegment_full();

	* libs/gst/base/gstbasesink.c: (gst_base_sink_configure_segment),
	(gst_base_sink_get_sync_times), (gst_base_sink_get_position):
	* libs/gst/base/gstbasetransform.c:
	(gst_base_transform_sink_eventfunc),
	(gst_base_transform_handle_buffer):
	Parse and use applied_rate in the GstSegment field.

	* tests/check/gst/gstevent.c: (GST_START_TEST):
	Add check for applied_rate field.

	* tests/check/gst/gstsegment.c: (GST_START_TEST),
	(gstsegments_suite):
	Add more checks for various GstSegment operations.

2006-05-08  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasesink.c: (gst_base_sink_get_sync_times),
	(gst_base_sink_do_sync), (gst_base_sink_chain_unlocked),
	(gst_base_sink_get_position), (gst_base_sink_change_state):
	Store the sync time of the buffer end position separatly in a
	new variable eos_rtime so we can properly sync the EOS event.
	Fixes #340697.
	Fix the docs for gst_base_sink_set_qos_enabled().
	Don't set segment start to invalid value when we receive a 
	non TIME newsegment.
	get closer to handling position reporting for negative rates 
	correctly.

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

	* gst/gstcaps.c:
	Docs about how to print caps for debug purposes.

	* gst/gstpadtemplate.c: (gst_static_pad_template_get):
	use gst_caps_make_writable instead of gst_caps_copy, Fixes #340608

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

	* gst/gstelement.c:
	  use full enum names and preprend a '%' in docs strings to make recent 
	  gtk-doc turn that into a link

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

	* docs/manual/basics-bins.xml:
	* docs/manual/basics-bus.xml:
	* docs/manual/basics-pads.xml:
	  Some typo fixes, some additions, some clarifications. 

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

	* tools/gst-inspect.c: (main):
	* tools/gst-launch.c: (main):
	* tools/gst-run.c: (main):
	* tools/gst-typefind.c: (main):
	* tools/gst-xmlinspect.c: (main):
	  Use the string passed to g_option_context_new() for
	  what it's intended for - the program name is already
	  printed elsewhere.

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

	* tools/Makefile.am:
	* tools/gst-inspect.c: (main):
	* tools/gst-launch.c: (main):
	* tools/gst-xmlinspect.c: (main):
	* tools/tools.h:
	  Add back --version command line option (#340460).

	* tools/gst-typefind.c: (have_type_handler), (typefind_file), (main):
	  Add --version option and use GOption for argument parsing; refactor a
	  bit; accept directories as arguments and recurse into them; lastly,
	  print a decent error message when things go wrong.

2006-05-05  Maciej Katafiasz  <mathrick@freedesktop.org>

	* docs/manual/basics-bins.xml:
	Don't mention GstThread (#340611)
	* docs/manual/basics-elements.xml:
	Update link to GObject tutorial (#340607)
	
2006-05-05  Wim Taymans  <wim@fluendo.com>

	* gst/gstbuffer.h:
	* gst/gstminiobject.c:
	Add note about refcounting and miniobject/buffer writeability
	to docs. Fixes #340604

	* gst/gstelementfactory.h:
	Added some explanation about @klass.

2006-05-05  Maciej Katafiasz  <mathrick@freedesktop.org>

	* docs/manual/intro-motivation.xml:
	* docs/manual/manual.xml:
	Avoid CORBA & Bonobo references (#340598)

2006-05-05  Maciej Katafiasz  <mathrick@freedesktop.org>

	* docs/manual/basics-bus.xml:
	* docs/manual/basics-pads.xml:
	Fix up some inaccuracies and omissions (#340609)
	
2006-05-05  Maciej Katafiasz  <mathrick@freedesktop.org>

	* gst/gstghostpad.c:
	  Small typo in docs (#340625)

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

	* gst/parse/Makefile.am:
	  Make 'make -j' proof (see #340698).

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

	* configure.ac:
	  Require GLib-2.8 here as well.

2006-05-05  Wim Taymans  <wim@fluendo.com>

	* gst/glib-compat.c:
	* gst/gst.c: (init_pre):
	* gst/gstobject.c: (gst_object_init), (gst_object_ref),
	(gst_object_unref), (gst_object_replace), (gst_object_dispose),
	(gst_object_dispatch_properties_changed):
	* gst/gstobject.h:
	* gst/gstregistryxml.c: (gst_registry_xml_read_cache):
	* gst/gststructure.c: (gst_structure_set_valist):
	* gst/gstvalue.c: (gst_date_get_type), (_gst_value_initialize):
	Remove pre glib2.8 compatibility, fixes #340508

2006-05-04  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gsttaglist.h:
	  Mention type of tags in doc blurbs.

2006-05-04  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/gstpad.c: (gst_pad_init), (gst_pad_configure_sink),
	(gst_pad_configure_src), (gst_pad_push):
	Restore acceptcaps checking behaviour now that good plugins have
	been released.

2006-05-04  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: James Andrewartha <trs80 at tartarus uwa edu au>

	* gst/gst.c:
	* gst/gstbus.c:
	* gst/gstclock.c:
	* gst/gstevent.c:
	* gst/gstformat.c:
	* gst/gstmessage.c:
	* gst/gstparse.c:
	* gst/gstquery.c:
	* gst/gstutils.c:
	* gst/parse/Makefile.am:
	* libs/gst/base/gstadapter.c:
	* libs/gst/base/gstbasesrc.c:
	* libs/gst/base/gstpushsrc.c:
	* libs/gst/base/gsttypefindhelper.c:
	* plugins/elements/gstfakesrc.c:
	* plugins/elements/gstidentity.c:
	  Make sure gstprivate.h and/or config.h are
	  always included first, otherwise some of our
	  defines (like _FILE_OFFSET_BITS) might be
	  redefined in the system headers. Fixes build
	  on opensolaris (#340016).

2006-05-04  Wim Taymans  <wim@fluendo.com>

	* docs/libs/gstreamer-libs-sections.txt:
	API: addition: gst_adapter_take_buffer()
	
	* libs/gst/base/gstadapter.c: (gst_adapter_push),
	(gst_adapter_peek), (gst_adapter_take), (gst_adapter_take_buffer),
	(gst_adapter_available_fast):
	* libs/gst/base/gstadapter.h:
	Prepare for optimizing the hell out of this hugely inefficient
	piece of code. 
	Added gst_adapter_take_buffer() so we can at least start thinking
	about subbuffering and merging.
	Added some comments.

	* tests/check/Makefile.am:
	* tests/check/libs/adapter.c: (GST_START_TEST),
	(gst_adapter_suite), (main):
	Added GstAdapter check.

2006-05-04  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-overview.txt:
	Fix some typos, add blurb about buffer flags.

2006-05-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/libs/gstreamer-libs-sections.txt:
	  make sure GstBaseTransformClass shows up in the docs
	* libs/gst/base/gstbasetransform.c:
	* libs/gst/base/gstbasetransform.h:
	  move docs so gtk-doc picks it up now

2006-05-02  Stefan Kost  <ensonic@users.sf.net>

	* docs/libs/gstreamer-libs-sections.txt:
	  add missing symbols to docs

2006-05-02  Stefan Kost  <ensonic@users.sf.net>

	* libs/gst/base/gstcollectpads.c: (gst_collect_pads_event):
	  back out the newsegment handling change, see #340060 for ongoing
	  discussion

2006-04-30  Tim-Philipp Müller  <tim at centricular dot net>

	* tools/gst-run.c: (get_candidates), (main):
	  Fix wrong g_file_test() usage (see glib docs for why it doesn't
	  work); fix typo in error message. Fixes #340079.

2006-04-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/Makefile.am:
	* docs/Makefile.am:
	* docs/faq/Makefile.am:
	* docs/gst/Makefile.am:
	* docs/libs/Makefile.am:
	* docs/manual/Makefile.am:
	* docs/plugins/Makefile.am:
	* docs/pwg/Makefile.am:
	* docs/slides/Makefile.am:
	* docs/upload.mak:
	* common/upload.mak:
	  move upload.mak to common

2006-04-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* tests/check/gst/gstghostpad.c: (GST_START_TEST):
	  add more asserts on refcounts
	  do more cleanup at end of tests
	  fix test leaks showing in FC5

2006-04-29  Stefan Kost  <ensonic@users.sf.net>

	* plugins/elements/gsttypefindelement.c:
	(gst_type_find_element_handle_event):
	reverted wrong change and reflowed code to avoid others falling into
	this trap

2006-04-28  Stefan Kost  <ensonic@users.sf.net>

	* libs/gst/base/gstcollectpads.c: (gst_collect_pads_event):
	  fix changelog entry about last collectpads change,
	  add notes about proper fix

2006-04-28  Stefan Kost  <ensonic@users.sf.net>

	* gst/gst.c:
	* gst/gstregistry.c: (gst_registry_scan_path_level),
	(gst_registry_scan_path):
	* gst/gstregistry.h:
	  only write out registry if it has changed, fixes #338339

2006-04-28  Stefan Kost  <ensonic@users.sf.net>

	* gst/gstbin.c:
	* gst/gstpipeline.c:
	* plugins/elements/gstcapsfilter.c:
	* plugins/elements/gstfakesink.c:
	* plugins/elements/gstfakesrc.c:
	* plugins/elements/gstfdsink.c:
	* plugins/elements/gstfdsrc.c:
	* plugins/elements/gstfilesink.c:
	* plugins/elements/gstfilesrc.c:
	* plugins/elements/gstidentity.c:
	* plugins/elements/gstqueue.c:
	* plugins/elements/gsttee.c:
	* plugins/elements/gsttypefindelement.c:
	(gst_type_find_element_handle_event):
	  make GstElementDetails const

2006-04-28  Stefan Kost  <ensonic@users.sf.net>

	* libs/gst/base/gstbasesink.c: (gst_base_sink_event):
	* libs/gst/base/gstcollectpads.c: (gst_collect_pads_base_init),
	(gst_collect_pads_is_collected), (gst_collect_pads_event):
	  more detailed debug and formatting cleanup,
	  forward newsegments to src-pad (so that e.g. adder not eats them)

2006-04-28  Stefan Kost  <ensonic@users.sf.net>

	* gst/gstutils.c: (gst_element_link_pads):
	  cleanup double code

2006-04-28  Stefan Kost  <ensonic@users.sf.net>

	* libs/gst/controller/gstcontroller.c:
	(gst_controller_sync_values):
	  some little tuning
	* tests/check/libs/controller.c: (GST_START_TEST),
	(gst_controller_suite):
	  a new test for live value handling

2006-04-28  Wim Taymans  <wim@fluendo.com>

	* gst/gstutils.c: (push_and_ref):
	Added some more docs.
	Fix refcount issue whith gst_element_found_tags() helper 
	function. Fixes #338335

	* tests/check/gst/gstutils.c: (GST_START_TEST), (gst_utils_suite):
	Added testsuite for gst_element_found_tags().

2006-04-28  Michael Smith  <msmith@fluendo.com>

	* gst/gstvalue.c: (gst_value_serialize_flags):
	  Avoid NULL dereference when trying to serialize flags containing
	  invalid values.

2006-04-28  Michael Smith  <msmith@fluendo.com>

	* plugins/elements/gsttypefindelement.c:
	(gst_type_find_element_handle_event):
	  If we get EOS before any data is accumulated, don't use
	  uninitialised local variables.

2006-04-28  Michael Smith  <msmith@fluendo.com>

	* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_packet_from_event),
	(gst_dp_event_from_packet):
	  Fixes in reading/writing events over GDP (not currently used?) - 
	  dereferencing NULL events for unknown/invalid event types, memory
	  leak, and change g_warning to GST_WARNING.

2006-04-28  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasesink.c: (gst_base_sink_is_too_late),
	(gst_base_sink_do_render_stats), (gst_base_sink_render_object),
	(gst_base_sink_get_position), (gst_base_sink_change_state):
	When frame dropping is enabled, we should not ignore frames
	without a duration.
	Update some documentation.

2006-04-28  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasesrc.c: (gst_base_src_perform_seek),
	(gst_base_src_send_event), (gst_base_src_change_state):
	Documentation updates.

2006-04-28  Wim Taymans  <wim@fluendo.com>

	* plugins/elements/gstfdsink.c: (gst_fd_sink_render),
	(gst_fd_sink_check_fd), (gst_fd_sink_update_fd):
	handle EAGAIN, EINTR and short writes correctly. Also clean
	up some error cases, avoid a deadlock on bad file descriptors and
	use GST_DEBUG_OBJECT.
	Fixes #339843

2006-04-28  Wim Taymans  <wim@fluendo.com>

	* gst/gstvalue.c: (gst_value_serialize_buffer),
	(gst_value_deserialize_buffer):
	Don't try to serialize a GValue with a NULL buffer. 
	Fixes #339821.

	* tests/check/gst/gstvalue.c: (GST_START_TEST), (gst_value_suite):
	Added check for serialisation of NULL buffers.

2006-04-28  Wim Taymans  <wim@fluendo.com>

	* gst/gstminiobject.c: (gst_value_take_mini_object):
	Taking a NULL miniobject is valid, fix the case where
	we try to unref the NULL miniobject.

2006-04-28  Wim Taymans  <wim@fluendo.com>

	Patch by: Stefan Kost <ensonic at sonicpulse dot de>

	* gst/gstbin.c: (gst_bin_handle_message_func):
	Update docs.
	Don't leak bin refcount when a state recalc is
	in progress and we delay another one #339808.

2006-04-28  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-TODO.txt:
	Mention QoS as an ongoing work item.

	* docs/design/part-buffering.txt:
	New doc about buffering that needs to be fleshed out
	at some point.

	* docs/design/part-qos.txt:
	More QoS policy for decoders/demuxers/transforms

	* docs/design/part-trickmodes.txt:
	Small update.

2006-04-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  back to HEAD

=== release 0.10.5 ===

2006-04-28  Thomas Vander Stichele <thomas at apestaart dot org>

	* configure.ac:
	  releasing 0.10.5, "Fogo"

2006-04-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Wim Taymans

	* gst/gstpad.c: (gst_pad_init), (gst_pad_configure_sink),
	(gst_pad_configure_src), (gst_pad_push):
	* gst/gstpipeline.c: (gst_pipeline_init):
	  Fix internal data flow errors.  Fixes #338711.

2006-04-12  Wim Taymans  <wim@fluendo.com>

	* tests/check/gst/gstelement.c: (GST_START_TEST):
	Don't leak the factory.

2006-04-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* win32/common/config.h:
	  prerelease

2006-04-12  Tim-Philipp Müller  <tim at centricular dot net>

	* libs/gst/controller/gstcontroller.c: (gst_controller_unset),
	(gst_controller_unset_all):
	  Free allocated GstTimedValues when freeing list nodes.
	  Should fix leaks 'make check-valgrind' complains about.

	* win32/common/libgstcontroller.def:
	  Add gst_controller_unset_all.

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

	* docs/libs/gstreamer-libs-sections.txt:
	* libs/gst/controller/gstcontroller.c: (gst_controller_unset),
	(gst_controller_unset_all):
	* libs/gst/controller/gstcontroller.h:
	API: Added new method gst_controller_unset_all()
	fixed gst_controller_unset()
	* tests/check/libs/controller.c: (GST_START_TEST),
	(gst_controller_suite):
	Added two testcases for new and fixed method

2006-04-11  Tim-Philipp Müller  <tim at centricular dot net>

	* libs/gst/net/gstnettimepacket.c: (gst_net_time_packet_send):
	  MSG_DONTWAIT is not defined on Cygwin, so work
	  around that (fixes #317048).
	  
2006-04-11  Wim Taymans  <wim@fluendo.com>

	* gst/gstelementfactory.c: (gst_element_register),
	(gst_element_factory_create), (gst_element_factory_make):
	Some cleanups.
	Fixed a FIXME.
	Updated docs (Fixes #131079)

	* gst/gstpluginfeature.c: (gst_plugin_feature_load):
	Small cleanups.

	* tests/check/gst/gstelement.c: (GST_START_TEST),
	(gst_element_suite):
	Added testcase for elementfactory class field.

2006-04-10  Wim Taymans  <wim@fluendo.com>

	* gst/gstsegment.c:
	Added some more docs.

	* libs/gst/base/gstbasesink.c: (gst_base_sink_perform_qos),
	(gst_base_sink_reset_qos):
	Calculate more accurate rate values.

2006-04-09  Sebastien Moutte  <sebastien@moutte.net>

	* gst/gst_private.h:
	  add a new #ifdef to use __declspec(dllimport) only for
	  other modules and not for gstreamer core
	* gst/gstbasesink.c: (gst_base_sink_perform_qos):
	  use gst_guint64_to_gdouble for conversion
	* win32/common/libgstreamer.def:
	  add new exported functions
	* win32/vs6/gst_inspect.dsp:
	* win32/vs6/gst_launch.dsp:
	* win32/vs6/libgstbase.dsp:
	* win32/vs6/libgstcontroller.dsp:
	* win32/vs6/libgstcoreelements.dsp:
	* win32/vs6/libgstdataprotocol.dsp:
	* win32/vs6/libgstnet.dsp:
	  update project files

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

	* gst/gstbuffer.c: (gst_subbuffer_class_init):
	* gst/gstclock.c: (gst_clock_class_init):
	* gst/gstelement.c: (gst_element_class_init):
	* gst/gstindex.c: (gst_index_class_init):
	* gst/gstindexfactory.c: (gst_index_factory_class_init):
	* gst/gstobject.c: (gst_object_class_init),
	(gst_signal_object_class_init):
	* gst/gstpad.c: (gst_pad_class_init):
	* gst/gstpadtemplate.c: (gst_pad_template_class_init):
	* gst/gstpluginfeature.c: (gst_plugin_feature_class_init):
	* gst/gstregistry.c: (gst_registry_class_init):
	* gst/gstsystemclock.c: (gst_system_clock_class_init):
	* gst/gsttask.c: (gst_task_class_init):
	* gst/gstxml.c: (gst_xml_class_init):
	* libs/gst/base/gstbasesink.c: (gst_base_sink_class_init):
	* libs/gst/base/gstbasesrc.c: (gst_base_src_class_init),
	(gst_base_src_loop):
	* libs/gst/controller/gstcontroller.c:/
	(_gst_controller_class_init):
	* plugins/elements/gstfdsrc.c: (gst_fd_src_class_init):
	* plugins/indexers/gstfileindex.c: (gst_file_index_class_init):
	* plugins/indexers/gstmemindex.c: (gst_mem_index_class_init):
	* tests/old/examples/plugins/example.c: (gst_example_class_init):
	* tests/old/testsuite/threads/signals.c: (gst_test_class_init):
	Fix #337365 (g_type_class_ref <-> g_type_class_peek_parent)

2006-04-08  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstpad.c: (gst_pad_link):
	  Must set peer pads before calling the link function, otherwise
	  a task started from a link function might get a flow-not-linked
	  result when trying to push because the other thread where the
	  linking happens hasn't had a chance to set the peers yet. This
	  might happen for example when a queue gets linked to a downstream
	  element, as queue starts a streaming task when its source pad
	  gets linked. Happens in real life when playing back flac/musepack
	  files in playbin (#332390).
	  
2006-04-08  Stefan Kost  <ensonic@users.sf.net>

	* gst/gstindex.h:
	* gst/gstxml.h:
	* libs/gst/base/gstadapter.h:
	* libs/gst/base/gstbasesink.h:
	* libs/gst/base/gstbasesrc.h:
	* libs/gst/base/gstbasetransform.h:
	* libs/gst/base/gstcollectpads.h:
	* libs/gst/base/gstpushsrc.h:
	Fix broken GObject macros

2006-04-07  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasesink.c: (gst_base_sink_get_sync_times):
	Initialize start and stop times, thanks valgrind.

2006-04-07  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasesink.c: (gst_base_sink_get_sync_times):
	Be a bit nicer to badly behaving upstream elements that expect
	us to deal with non TIME segments and timestamps (such as fakesrc
	in the testsuite).

2006-04-07  Wim Taymans  <wim@fluendo.com>

	* gst/gstbus.c:
	Small documentation clarification about the signal watch.

	* libs/gst/base/gstbasesink.c: (gst_base_sink_get_sync_times),
	(gst_base_sink_wait_clock), (gst_base_sink_do_sync),
	(gst_base_sink_perform_qos), (gst_base_sink_reset_qos),
	(gst_base_sink_do_render_stats), (gst_base_sink_render_object),
	(gst_base_sink_get_position_last),
	(gst_base_sink_get_position_paused), (gst_base_sink_change_state):
	Convert and store timestamps in stream time and running time, the
	raw timestamps are not usefull, also document this better.
	Use different window sizes for good and bad QoS observations so
	we react to badness a little quicker.
	Keep track of the amount of rendered and dropped buffers.
	Send QoS timestamps in running time.

	* libs/gst/base/gstbasetransform.c:
	(gst_base_transform_sink_eventfunc),
	(gst_base_transform_handle_buffer):
	Compare QoS timestamps against running time.

2006-04-06  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstpad.c:
	  Typo fixes in docs.

2006-04-06  Michael Smith  <msmith@fluendo.com>

	* gst/gstpad.c: (gst_pad_set_property):
	  Use g_value_get_object() instead of g_value_dup_gst_object(),
	  to avoid double-reffing the pad template (which we then sink,
	  so this worked previously if (and only if) the pad template
	  was floating.

	* gst/gstpadtemplate.c: (gst_pad_template_init),
	(gst_pad_template_pad_created):
	  Never return floating references to pad templates, create
	  them as initially-sunken.

	  Document an extra function (and make this stop sinking our
	  pad template, since that is now guaranteed to do nothing,
	  since we created it sunken).

	* gst/gstghostpad.c:
	  Fix docs typo.

2006-04-06  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstinfo.c: (__gst_in_valgrind):
	  Add some newlines.

	* plugins/elements/gsttypefindelement.c:
	(gst_type_find_element_chain):
	  Don't leak buffer caps.

2006-04-06  Michael Smith  <msmith@fluendo.com>

	* gst/parse/grammar.y:
	  Fix a leak in parse-launch for any source-or-sink named element 
	  references used.

	* tests/check/pipelines/parse-launch.c: (expected_fail_pipe):
	  Unref the pipeline if it exists after we've failed parsing.

2006-04-05  Michael Smith  <msmith@fluendo.com>

	* gst/gstpipeline.c: (gst_pipeline_init):
	  When we create a pipeline bus, initially create it in flushing mode.
	  Fixes leaks in at least one test, and makes a new pipeline work the
	  same as one that has gone to READY and then back to NULL.

	* gst/gstelement.c:
	  Typo fix in docs.

2006-04-05  Michael Smith  <msmith@fluendo.com>

	* tests/check/gst/gstghostpad.c: (GST_START_TEST):
	  Unref a pad we reffed.
	* tests/check/gst/gstutils.c: (GST_START_TEST):
	  Unref bins

2006-04-05  Michael Smith  <msmith@fluendo.com>

	* gst/gstquery.c: (gst_query_set_formats),
	(gst_query_set_formatsv):
	  Fix leaking GValues in queries, as shown by valgrind/testsuite.

2006-04-05  Michael Smith  <msmith@fluendo.com>

	* tests/check/generic/sinks.c: (GST_START_TEST):
	  Fix a variety of memleaks in sinks check, which are only sometimes 
	  shown by running the tests under valgrind (weird?).

2006-04-05  Jan Schmidt  <thaytan@mad.scientist.com>

	* docs/version.entities.in:
	  Fix the substituted entity name after thomas' changes on the
	  weekend.

2006-04-05  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/gstinfo.c: (__gst_in_valgrind): Use printf instead of
	VALGRIND_PRINTF
	
2006-04-05  Andy Wingo  <wingo@pobox.com>

	* gst/gstpad.c (gst_pad_set_blocked_async): More debug.

	* libs/gst/base/gstbasetransform.c
	(gst_base_transform_sink_eventfunc): When resetting our segment on
	FLUSH_STOP, also update the flag saying we haven't seen a
	newsegment.

2006-04-04  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Paolo Borelli  <pborelli at katamail dot com>

	* gst/gstplugin.c: (gst_plugin_finalize), (gst_plugin_class_init),
	(gst_plugin_check_license):
	  minor clean-ups: G_DEFINE_TYPE already takes care of the
	  parent_class stuff, no need to do it twice. Mark array of
	  license strings as constant. (#337103)
	  
2006-04-04  Michael Smith  <msmith@fluendo.com>

	* tools/gst-inspect.c: (print_element_list):
	  Free the right plugin list; fixes a memory leak.

2006-04-04  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Mark Nauwelaerts  <manauw at skynet dot be>

	* plugins/elements/gstfilesink.c: (gst_file_sink_render):
	  Don't error out on empty buffers (#336945).
	  
2006-04-04  Jan Schmidt  <thaytan@mad.scientist.com>

	* docs/libs/gstreamer-libs-sections.txt:
	* gst/gsttaglist.c:
	* libs/gst/base/gstbasesink.c:
	* libs/gst/base/gstbasesink.h:
	* libs/gst/base/gstbasesrc.c:
	* libs/gst/base/gstbasesrc.h:
	  Documentation updates. Make BaseSink and BaseSrc docs contain the
	  class structure so that people can actually see the prototypes for
	  virtual functions they're supposed to be overriding.

2006-04-04  Tim-Philipp Müller  <tim at centricular dot net>

	* plugins/elements/gsttypefindelement.c:
	(gst_type_find_element_chain):
	  More debug info; when skipping typefinding, send cached
	  events in all cases.

2006-04-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  use new AS_VERSION and AS_NANO macros
	* gst/gst-i18n-lib.h:
	* gst/gst.c:
	* gst/gsterror.c:
	* gst/gstversion.h.in:
	* win32/common/config.h:
	* win32/common/config.h.in:
	  update accordingly

2006-03-31  Michael Smith  <msmith@fluendo.com>

	* plugins/elements/gsttypefindelement.c:
	(gst_type_find_element_chain):
	  Do not typefind content if the buffers already have caps.
	  Neccesary for icydemux (#333657), and the right thing to do anyway.

2006-03-30  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasesink.c: (gst_base_sink_init),
	(gst_base_sink_finalize), (gst_base_sink_set_qos_enabled),
	(gst_base_sink_is_qos_enabled), (gst_base_sink_do_sync),
	(gst_base_sink_record_qos_observation),
	(gst_base_sink_perform_qos), (gst_base_sink_reset_qos),
	(gst_base_sink_is_too_late), (gst_base_sink_render_object),
	(gst_base_sink_change_state):
	More QoS measurements as described in the design doc.
	Get rid of ringbuffer with observations, running average is
	more simple and equally good.
	Calculates valid proportion now.
	Added beginning of flood measurement.

2006-03-29  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-qos.txt:
	* gst/gstclock.c:
	Small documentation updates and additions.

2006-03-29  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasesrc.c: (gst_base_src_finalize),
	(gst_base_src_send_event), (gst_base_src_loop),
	(gst_base_src_change_state):
	Perform the EOS logic when we reach the segment stop position.
	Fix compilation on gcc4.1

2006-03-29  Wim Taymans  <wim@fluendo.com>

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

	* plugins/elements/gstqueue.c: (gst_queue_init),
	(gst_queue_locked_flush), (gst_queue_handle_sink_event),
	(gst_queue_set_property):
	* plugins/elements/gstqueue.h:
	In queue, when EOS is received, if minimum threshold > max_size -
	current_level, there is chance that queue blocks forever in conditional
	item del wait. This is because the queue is not emptied completely due
	to minimum threshold.  Here is another approach. Instead of setting
	cur_levels to max in EOS, just zero all minimum threshold levels. This
	should make sure that queue gives out all data. When going to READY
	(stop) state, just reset the original minimum threshold levels.
	Fixes #336336.

2006-03-29  Tim-Philipp Müller  <tim at centricular dot net>

	* plugins/elements/gsttypefindelement.c: (stop_typefinding),
	(gst_type_find_element_handle_event),
	(gst_type_find_element_send_cached_events),
	(gst_type_find_element_change_state):
	* plugins/elements/gsttypefindelement.h:
	  When typefinding is done in push mode, we should cache
	  events we receive during typefinding instead of just
	  dropping them (e.g. newsegment, custom events from
	  dvdreadsrc etc.) and then send them out once we've
	  determined the type of the stream (and decodebin
	  has had a chance to plug in a decoder/demuxer).
	  
2006-03-27  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-qos.txt:
	First QoS ideas.

2006-03-27  Wim Taymans  <wim@fluendo.com>

	Inspired by a patch of: Lutz Mueller <lutz at topfrose dot de>

	* libs/gst/base/gstbasesrc.c: (gst_base_src_finalize),
	(gst_base_src_send_event), (gst_base_src_change_state):
	Handle element seek correctly when we are streaming.
	Fixes #326998.

2006-03-24  Michael Smith  <msmith@fluendo.com>

	* docs/faq/gst-uninstalled:
	  Set up LD_LIBRARY_PATH to point at all the gstreamer libs. This will
	  allow you to correctly run intalled applications built against old 
	  core, using plugins that require updated core (e.g. running
	  installed totem against a full uninstalled gstreamer stack)

2006-03-24  Stefan Kost  <ensonic@users.sf.net>

	* libs/gst/base/gstcollectpads.c: (gst_collect_pads_is_collected):
	more debug details

2006-03-24  Wim Taymans  <wim@fluendo.com>

	* docs/gst/gstreamer-sections.txt:
	Rearrange the order of the methods so that related methods
	are grouped together in sections.

2006-03-24  Stefan Kost  <ensonic@users.sf.net>

	* gst/gstelement.c:
	  Little clarification in the docs

2006-03-24  Stefan Kost  <ensonic@users.sf.net>

	* docs/README:
	formatting fix
	* plugins/elements/gstidentity.c:
	* plugins/elements/gstqueue.c:
	* plugins/elements/gsttee.c:
	* plugins/elements/gsttypefindelement.c:
	GST_ELEMENT_DETAILS formatting

2006-03-24  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasesink.h:
	Only add fields, not insert or we break ABI.

2006-03-23  Tim-Philipp Müller  <tim at centricular dot net>

	* win32/common/libgstbase.def:
	* win32/common/libgstreamer.def:
	  Update, add recently added functions.

2006-03-23  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/gst/gstreamer-sections.txt:
	* gst/gstutils.c: (gst_pad_query_peer_position),
	(gst_pad_query_peer_duration), (gst_pad_query_peer_convert):
	* gst/gstutils.h:
	  API: add some new utility functions:
	   - gst_pad_query_peer_position()
	   - gst_pad_query_peer_duration()
	   - gst_pad_query_peer_convert()
	  
2006-03-23  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasesink.c: (gst_base_sink_class_init),
	(gst_base_sink_init), (gst_base_sink_finalize),
	(gst_base_sink_set_qos_enabled), (gst_base_sink_is_qos_enabled),
	(gst_base_sink_set_property), (gst_base_sink_get_property),
	(gst_base_sink_commit_state), (gst_base_sink_get_sync_times),
	(gst_base_sink_wait_clock), (gst_base_sink_do_sync),
	(gst_base_sink_add_qos_observation), (gst_base_sink_send_qos),
	(gst_base_sink_perform_qos), (gst_base_sink_reset_qos),
	(gst_base_sink_is_too_late), (gst_base_sink_render_object),
	(gst_base_sink_preroll_object), (gst_base_sink_event),
	(gst_base_sink_chain_unlocked), (gst_base_sink_get_position_last),
	(gst_base_sink_get_position_paused), (gst_base_sink_get_position),
	(gst_base_sink_query), (gst_base_sink_change_state):
	Decouple max-lateness and the fact that QoS messages are generated
	with a new property (qos).
	added API: GstBaseSink::async_play()
	Add vmethod so subclasses can be notified of ASYNC playing
	state changes.
	Collect timestamp start and stop to report better current
	position in EOS/PLAYING/PAUSED/READY/NULL.
	Refactor QoS/frame dropping and other measurements.
	API: GstBaseSrc::qos
	Fixes #326311

	* libs/gst/base/gstbasesink.h:
	Added Private struct.
	API: gst_base_sink_set_qos_enabled()
	API: gst_base_sink_is_qos_enabled()

2006-03-23  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstregistryxml.c: (gst_registry_xml_read_cache):
	  If compiling against GLib-2.8 or newer, try to read the
	  registry file using GMappedFile first before falling back
	  to fopen() + fread() (#332151).

2006-03-22  Wim Taymans  <wim@fluendo.com>

	* gst/gstinfo.c: (gst_debug_set_active),
	(gst_debug_category_set_threshold):
	Disable debugging unless explicitly activated.
	Fixes #335480.

2006-03-22  Wim Taymans  <wim@fluendo.com>

	* gst/gstelement.c: (gst_element_set_locked_state),
	(gst_element_dispose):
	Cleanup the error case.

	* gst/gstobject.c: (gst_object_dispose):
	print a critical when some object was disposed with
	a parent, also revive the object since it might
	crash the parent.

2006-03-22  Tim-Philipp Müller  <tim at centricular dot net>

	* tools/gst-launch.1.in:
	  Fix another typo.

2006-03-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* tests/check/Makefile.am:
	  disable some tests when we don't have a registry
	* tests/check/gst/gstutils.c: (gst_utils_suite):
	  don't build the part that needs parsing

2006-03-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/Makefile.am
	* tests/examples/Makefile.am:
	  fix --disable-parse build

2006-03-21  Tim-Philipp Müller  <tim at centricular dot net>

	* tools/gst-feedback.1.in:
	  Fix typo: s/feeback/feedback/ (#133494).

2006-03-21  Tim-Philipp Müller  <tim at centricular dot net>

	* tools/Makefile.am:
	* tools/gst-launch.1.in:
	  Add FILES section and correct entry about GST_REGISTRY_PATH
	  environment variable (#133495; #133494).

2006-03-21  Tim-Philipp Müller  <tim at centricular dot net>

	* tools/Makefile.am:
	* tools/gst-md5sum.1.in:
	* tools/gst-md5sum.c:
	  Remove gst-md5sum and man page (the md5sink element
	  required was removed ages ago)

2006-03-21  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gststructure.c: (gst_structure_id_set_value):
	  Make sure that string fields in structures/taglists
	  contain valid UTF-8 - we don't want to pass rubbish to
	  applications because of a buggy plugin (cp. #334167).

2006-03-21  Edward Hervey  <edward@fluendo.com>

	* gst/gstbin.c: (gst_bin_dispose), (gst_bin_provide_clock_func),
	(gst_bin_handle_message_func):
	* gst/gstclock.c: (gst_clock_dispose), (gst_clock_set_master):
	* gst/gstelement.c: (gst_element_set_clock), (gst_element_dispose),
	(gst_element_set_bus_func):
	* gst/gstghostpad.c: (gst_proxy_pad_dispose):
	* gst/gstminiobject.c: (gst_value_set_mini_object),
	(gst_value_take_mini_object):
	* gst/gstpad.c: (gst_pad_set_pad_template):
	* gst/gstpipeline.c: (gst_pipeline_dispose),
	(gst_pipeline_use_clock), (gst_pipeline_auto_clock):
	* libs/gst/base/gstcollectpads.c: (gst_collect_pads_pop),
	(gst_collect_pads_chain):
	* libs/gst/net/gstnettimeprovider.c:
	(gst_net_time_provider_set_property):
	Series of fixes for dereferenced pointers that gcc 4.1 complains about.
	It's in fact all issues with gst_*object_replace().

2006-03-21  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Loïc Minier  <lool + gnome at via dot ecp dot fr>
	
	* pkgconfig/gstreamer-check-uninstalled.pc.in:
	* pkgconfig/gstreamer-check.pc.in:
	  Use @CHECK_LIBS@ here instead of hard-coding -lcheck (#334109).

2006-03-21  Edward Hervey  <edward@fluendo.com>

	* gst/gstbuffer.h:
	* gst/gstevent.h:
	* gst/gstmessage.h:
	gst_[buffer|event|message]_ref() macros are replaced by a static
	inline functions because gcc-4.1 will about if the return value
	isn't used.
	* tests/check/gst/gstevent.c: (event_probe):
	gst_event_ref now has to be given a GstEvent* , fix check accordingly.

2006-03-20  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/gstutils.h:
	Add G_UNLIKELY to our boilerplate to optimise the 'already registered
	the type' case. (Closes: #335195 for now). In the future, when we
	depend on GLib 2.10, we could also intern the type name using
	g_intern_static_string()

2006-03-20  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c: (gst_bin_handle_message_func),
	(bin_query_max_init), (bin_query_position_fold),
	(bin_query_position_done), (gst_bin_query):
	Position query should also take max of all streams.

2006-03-20  Wim Taymans  <wim@fluendo.com>

	* plugins/elements/gstfakesrc.c: (gst_fake_src_class_init),
	(gst_fake_src_finalize):
	Fix leaks in fakesrc.

	* tests/check/pipelines/parse-launch.c: (GST_START_TEST):
	Fix leaks in the testcase.

2006-03-19  Sebastien Moutte  <sebastien@moutte.net>

	* gst/gst_private.h:
	  add win32 specific import decoration(__declspec(dllimport)) 
	  for all extern GstDebugCategory * variables
	* win32/common/libgstbase.def:
	* win32/common/libgstcontroller.def:
	* win32/common/libgstreamer.def:
	  Add some exports, remove empty lines
	* win32/common/libgstdataprotocol.def:
	* win32/common/libgstdataprotocol.dsp:
	* win32/common/libgstnet.def:
	* win32/common/libgstnet.dsp:
	  new project files and exportation files added
	
2006-03-19  Wim Taymans  <wim@fluendo.com>

	* tests/check/libs/basesrc.c: (eos_event_counter):
	Use proper return value for probe.

2006-03-17  Wim Taymans  <wim@fluendo.com>

	* gst/gstpad.c: (gst_pad_accept_caps), (gst_pad_alloc_buffer_full),
	(gst_pad_push):
	Don't leak buffers, caps and pads on negotiation errors.

2006-03-16  Stefan Kost  <ensonic@users.sf.net>

	* docs/faq/cvs.xml:
	* docs/faq/dependencies.xml:
	* docs/faq/developing.xml:
	* docs/faq/faq.xml:
	* docs/faq/general.xml:
	* docs/faq/getting.xml:
	* docs/faq/legal.xml:
	* docs/faq/troubleshooting.xml:
	* docs/faq/using.xml:
	Faq review and update.

2006-03-16  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/gstpad.c: (gst_pad_accept_caps), (gst_pad_alloc_buffer_full),
	(gst_pad_push):
	Don't pound the cpu to pieces by checking get_caps when accept_caps
	is called with the same caps as the pad already has.
	Use GST_DEBUG_OBJECT when outputting caps change information.

2006-03-15  Wim Taymans  <wim@fluendo.com>

	* gst/gstclock.c: (gst_clock_class_init):
	Fix docs.

2006-03-15  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/gstbuffer.h:
	Documentation fix.

	* gst/gstpad.c: (gst_pad_init), (gst_pad_acceptcaps_default),
	(gst_pad_accept_caps), (gst_pad_configure_sink),
	(gst_pad_configure_src), (gst_pad_chain), (gst_pad_push):
	Make the default acceptcaps behaviour be to check the requested 
	caps against the gst_pad_get_caps output. 

	Ensure that gst_pad_accept_caps is used to check caps when a pad
	doesn't have a setcaps function, so that pads automatically refuse 
	caps that they don't allow in their pad template. (Fixes #332986)

	When a buffer with attached caps is pushed, ensure that the source 
	pad receives those caps even if the element didn't call
	gst_pad_set_caps first.

2006-03-15  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstadapter.c:
	Add some docs.

2006-03-15  Tim-Philipp Müller  <tim at centricular dot net>

	* win32/common/libgstbase.def:
	* win32/common/libgstcontroller.def:
	* win32/common/libgstreamer.def:
	  Add a whole bunch of missing functions (#334434).

2006-03-14  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasesink.c: (gst_base_sink_configure_segment),
	(gst_base_sink_get_sync_times), (gst_base_sink_wait_clock),
	(gst_base_sink_do_sync), (gst_base_sink_do_qos):
	Better debug info when we receive a segment event.
	Reorganize a bit so we can pass the get_times() results around.
	Use the segment format when calculating the running time.
	Don't do QoS is sync is disabled or we have no clock or the
	element does not want us to sync to the clock.
	Don't drop buffers if QoS is disabled for now.

2006-03-14  Wim Taymans  <wim@fluendo.com>

	* gst/gstclock.c: (gst_clock_class_init), (do_linear_regression):
	Marked the stats property as unimplemented so people don't get
	wild ideas.
	Add debug message when regression goes wrong.
	Added some more docs.

2006-03-14  Wim Taymans  <wim@fluendo.com>

	* gst/gstsegment.c: (gst_segment_to_stream_time):
	Return correct return type in case of errors.

2006-03-14  Wim Taymans  <wim@fluendo.com>

	* gst/gstformat.c: (gst_format_get_name), (gst_format_to_quark):
	  Don't segfault on invalid formats.

2006-03-14  Tim-Philipp Müller  <tim at centricular dot net>

	* libs/gst/base/gstbasesink.c: (gst_base_sink_get_sync_times):
	  Can't use gst_segment_to_running_time() when the segment
	  is not in GST_TIME_FORMAT (like with filesink, for example).
	  Stops flac encoding pipelines from spewing critical warnings
	  at EOS (#331248).
	  
2006-03-14  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstpipeline.c: (gst_pipeline_class_init):
	  Add 'Since: 0.10.5' to gtk-doc blurb for added property.

	* plugins/elements/gsttypefindelement.c:
	(gst_type_find_element_handle_event):
	  Don't try to typefind empty streams.

2006-03-14  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasesink.c: (gst_base_sink_do_sync),
	(gst_base_sink_do_qos):
	Separate QoS calculation.
	Only drop buffers when lateness is bigger than the 
	duration of the buffer.

2006-03-13  Wim Taymans  <wim@fluendo.com>

	* gst/gstpipeline.c: (gst_pipeline_set_property),
	(gst_pipeline_get_property), (do_pipeline_seek),
	(gst_pipeline_change_state), (gst_pipeline_set_delay),
	(gst_pipeline_get_delay):
	Don't deadlock when reading properties.

2006-03-13  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasetransform.c:
	(gst_base_transform_class_init), (gst_base_transform_init),
	(gst_base_transform_sink_event),
	(gst_base_transform_sink_eventfunc),
	(gst_base_transform_src_event), (gst_base_transform_src_eventfunc),
	(gst_base_transform_handle_buffer), (gst_base_transform_chain),
	(gst_base_transform_set_property),
	(gst_base_transform_get_property),
	(gst_base_transform_change_state), (gst_base_transform_update_qos),
	(gst_base_transform_set_qos_enabled),
	(gst_base_transform_is_qos_enabled):
	* libs/gst/base/gstbasetransform.h:
	Make basetransform virtual method for src events too.
	Handle QOS in basetransform.
	API: gst_base_transform_update_qos()
	API: gst_base_transform_set_qos_enabled()
	API: gst_base_transform_is_qos_enabled()

2006-03-13  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasesink.c: (gst_base_sink_init),
	(gst_base_sink_do_sync):
	Small cleanups.
	Use QOS debug category.

2006-03-13  Wim Taymans  <wim@fluendo.com>

	* plugins/elements/gstqueue.c:
	Very small doc update.

2006-03-13  Wim Taymans  <wim@fluendo.com>

	* gst/gst_private.h:
	* gst/gstinfo.c: (_gst_debug_init):
	Added QOS debug category

2006-03-13  Wim Taymans  <wim@fluendo.com>

	* docs/gst/gstreamer-sections.txt:
	* gst/gstbin.c: (bin_bus_handler), (gst_bin_handle_message_func):
	* gst/gstbin.h:
	* gst/gstbus.c: (gst_bus_class_init):
	* gst/gstbus.h:
	* gst/gstclock.c:
	* gst/gstelement.c: (gst_element_set_locked_state):
	* gst/gstsegment.c:
	Documentation updates.

	* gst/gstpipeline.c: (gst_pipeline_get_type),
	(gst_pipeline_class_init), (gst_pipeline_init),
	(gst_pipeline_dispose), (gst_pipeline_set_property),
	(gst_pipeline_get_property), (do_pipeline_seek),
	(gst_pipeline_send_event), (gst_pipeline_change_state),
	(gst_pipeline_provide_clock_func), (gst_pipeline_set_delay),
	(gst_pipeline_get_delay):
	* gst/gstpipeline.h:
	Added methods for setting the delay.
	API: gst_pipeline_set_delay()
	API: gst_pipeline_get_delay()
	Add pipeline debug category
	Various cleanups.
	Updated docs.
	Don't reset stream time when seek failed.

2006-03-13  Wim Taymans  <wim@fluendo.com>

	* docs/design/draft-klass.txt:
	* docs/design/part-clocks.txt:
	* docs/design/part-events.txt:
	* docs/design/part-gstbin.txt:
	* docs/design/part-gstpipeline.txt:
	* docs/design/part-messages.txt:
	* docs/design/part-negotiation.txt:
	* docs/design/part-overview.txt:
	* docs/design/part-preroll.txt:
	* docs/design/part-seeking.txt:
	* docs/design/part-states.txt:
	* docs/design/part-streams.txt:
	Documentation updates.

2006-03-12  Julien MOUTTE  <julien@moutte.net>

	* gst/gsttaglist.c: Fix rubbish docs that are encouraging
	us to leak strings...

2006-03-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* libs/gst/net/gstnettimeprovider.c:
	  fix docs
	* win32/common/config.h:
	  update

2006-03-12  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Julio M. Merino Vidal <jmmv at netbsd org>

	* configure.ac:
	  Don't check for libgnomeui (leftover from old examples
	  that aren't built or disted any longer) (#334303).
	  
2006-03-11  Tim-Philipp Müller  <tim at centricular dot net>

	* plugins/elements/gstfdsink.c: (gst_fd_sink_render):
	* plugins/elements/gstfilesink.c: (gst_file_sink_render):
	  Emit RESOURCE_NO_SPACE_LEFT error here as well when
	  there's no space left on the device.

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

	* gst/gstclock.h:
	  Fix GST_CLOCK_TIME_IS_VALID signedness issues - we need
	  to cast the input to GstClockTime before comparing with
	  another GstClockTime value.

2006-03-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  back to trunk

=== release 0.10.4 ===

2006-03-10  Thomas Vander Stichele <thomas at apestaart dot org>

	* configure.ac:
	  releasing 0.10.4, "Light"

2006-03-10  Michael Smith  <msmith@fluendo.com>

	* libs/gst/dataprotocol/dataprotocol.c:
	  Fix docs for dataprocotol to not get the return types completely
	  wrong for a few functions.

2006-03-09  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/gst/gstreamer-sections.txt:
	* gst/gstpipeline.c: (gst_pipeline_class_init),
	(gst_pipeline_init), (gst_pipeline_set_property),
	(gst_pipeline_get_property), (gst_pipeline_change_state),
	(gst_pipeline_set_auto_flush_bus),
	(gst_pipeline_get_auto_flush_bus):
	* gst/gstpipeline.h:
	  Add new API: gst_pipeline_set_auto_flush_bus() and
	  gst_pipeline_get_auto_flush_bus() to disable automatic
	  flushing of the pipeline's GstBus when going from READY
	  to NULL state (#332045).

2006-03-09  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/gst/gstreamer-sections.txt:
	* gst/gsturi.c: (gst_uri_has_protocol):
	* gst/gsturi.h:
	   Add new API: gst_uri_has_protocol() (#333779).

2006-03-09  Wim Taymans  <wim@fluendo.com>

	* gst/gstclock.c: (gst_clock_entry_new),
	(gst_clock_id_compare_func), (gst_clock_id_wait),
	(gst_clock_id_wait_async), (gst_clock_id_unschedule),
	(gst_clock_init), (gst_clock_get_internal_time),
	(gst_clock_set_master), (do_linear_regression),
	(gst_clock_add_observation), (gst_clock_set_property):
	* gst/gstclock.h:
	Review docs.
	Small cleanups.
	Fix a possible segfault when the window-size is made smaller.
	Calculate jitter before performing the clock wait. Ideally
	the clock implementation should calculate jitter but we need
	API breakage for that.

	* gst/gstsystemclock.c: (gst_system_clock_init):
	Docs review.
	
	* libs/gst/base/gstbasesink.c: (gst_base_sink_do_sync):
	Remove leftover else

	* tests/check/gst/gstsystemclock.c: (GST_START_TEST),
	(gst_systemclock_suite):
	Added check to test GST_CLOCK_DIFF.

2006-03-09  Tim-Philipp Müller  <tim at centricular dot net>

	* libs/gst/base/gsttypefindhelper.c: (helper_find_get_length),
	(gst_type_find_helper_get_range):
	  If we are provided with the size, we should implement
	  GstTypeFind::get_length, so that typefind functions who
	  want to can actually peek at the middle of a file.

2006-03-08  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/manual/advanced-dataaccess.xml:
	  Add some very very basic error checking.

	* docs/pwg/appendix-checklist.xml:
	  Some updates to the list of things to check when writing an element.

2006-03-08  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-element-transform.txt:
	Added some docs about the design of tranform elements.

	* libs/gst/base/gstbasesrc.c: (gst_base_src_perform_seek),
	(gst_base_src_loop), (gst_base_src_change_state):
	Mark buffers with the DISCONT flag.

2006-03-08  Michael Smith  <msmith@fluendo.com>

	* gst/gstregistry.h:
	* gst/gstregistryxml.c: (gst_registry_save),
	(gst_registry_save_escaped), (gst_registry_xml_save_caps),
	(gst_registry_xml_save_pad_template),
	(gst_registry_xml_save_feature), (gst_registry_xml_save_plugin),
	(gst_registry_xml_write_cache):
	  Rewrite registry-saving to avoid race conditions and check for
	  failed writes.

2006-03-08  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasetransform.c:
	(gst_base_transform_transform_caps),
	(gst_base_transform_transform_size),
	(gst_base_transform_prepare_output_buffer),
	(gst_base_transform_get_unit_size),
	(gst_base_transform_buffer_alloc),
	(gst_base_transform_handle_buffer),
	(gst_base_transform_change_state):
	Cleanups, separate normal flow from errors, add sensible
	DEBUG lines.
	Don't try to renegotiate when allocating an output buffer.
	Also copy DISCONT buffer flag when copying a buffer.
	Reset the transform after we finish streaming, not during.

2006-03-08  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasesink.c: (gst_base_sink_do_sync):
	Use last buffer timestamp in qos message.

2006-03-07  Wim Taymans  <wim@fluendo.com>

	Patch by: Christophe Fergeau

	* docs/pwg/advanced-tagging.xml:
	* docs/pwg/building-pads.xml:
	  fixes #333416

2006-03-07  Wim Taymans  <wim@fluendo.com>

	* docs/libs/gstreamer-libs-sections.txt:
	Added basesink new methods.

	* gst/gstevent.c:
	* gst/gstevent.h:
	Docs updates. Flesh out the QoS docs.

	* libs/gst/base/gstadapter.c:
	Small doc clarification about ownership and flushing.

	* libs/gst/base/gstbasesink.c: (gst_base_sink_set_sync),
	(gst_base_sink_get_sync), (gst_base_sink_set_max_lateness),
	(gst_base_sink_get_max_lateness), (gst_base_sink_set_property),
	(gst_base_sink_get_property), (gst_base_sink_do_sync):
	* libs/gst/base/gstbasesink.h:
	API additions: 
	Added new methods to allow subclass to control max-lateness 
	and sync.
	Generate very basic QoS events based on last sync observation.
	Updated docs, fix typo, added some QoS blurb.

	* libs/gst/base/gstbasesrc.c:
	Remove obsolete _get_state() calls from docs.

2006-03-07  Wim Taymans  <wim@fluendo.com>

	* docs/libs/gstreamer-libs-sections.txt:
	* libs/gst/base/gstbasetransform.h:
	API addition: Fix #333669, Add pad accessor defines for GstBaseTransform
	Fix docs for GstBaseSrc.

2006-03-07  Wim Taymans  <wim@fluendo.com>

	* docs/gst/gstreamer-sections.txt:
	* gst/gstbuffer.h:
	* gst/gstvalue.c:
	* libs/gst/base/gstbasetransform.h:
	Small documentation fixes.

2006-03-07  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstvalue.c:
	  Document thread-unsafety of gst_value_register_foo_func()
	  when used at the same time as gst_value_foo() (#322628).

2006-03-07  Tim-Philipp Müller  <tim at centricular dot net>

	* libs/gst/base/gstpushsrc.c: (gst_push_src_class_init),
	(gst_push_src_check_get_range):
	  Push sources don't support pull mode by default.

2006-03-06  Tim-Philipp Müller  <tim at centricular dot net>

	* libs/gst/base/gstbasesrc.c: (gst_base_src_class_init),
	(gst_base_src_init), (gst_base_src_pad_check_get_range),
	(gst_base_src_default_check_get_range):
	* libs/gst/base/gstbasesrc.h:
	  API addition:  Add ::check_get_range() vfunc to GstBaseSrc (#332611),
	  provide default implementation, and rename
	  gst_base_src_check_get_range() to
	  gst_base_src_pad_check_get_range() for clarity.

2006-03-06  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasesink.c: (gst_base_sink_class_init):
	Make property overridable.

2006-03-06  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasesink.c: (gst_base_sink_class_init),
	(gst_base_sink_init), (gst_base_sink_set_property),
	(gst_base_sink_get_property), (gst_base_sink_do_sync):
	* libs/gst/base/gstbasesink.h:
	API addition: Make max-lateness a property.

2006-03-06  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasesink.c: (gst_base_sink_wait_clock),
	(gst_base_sink_do_sync), (gst_base_sink_render_object):
	Don't ever draw a frame that is >10ms late.

2006-03-06  Michael Smith  <msmith@fluendo.com>

	* gst/gstmessage.c: (_gst_message_copy):
	  When copying a message, set the parent_refcount of the enclosed
	  structure to point at the copy, not the original message.

2006-03-06  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Christophe Fergeau

	* gst/gstutils.h:
	  Do proper cast here to make GST_BOILERPLATE_WITH_INTERFACE
	  usable in c++ code (#333417)

2006-03-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstclock.h:
	  Show GST_CLOCK_TIME_NONE as 99:99:99.999999999

2006-03-05  Tim-Philipp Müller  <tim at centricular dot net>

	* libs/gst/base/gstbasetransform.c:
	(gst_base_transform_transform_caps):
	  Make sure caps are writable before passing them to
	  gst_caps_append().

2006-03-04  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gsterror.h:
	  Fix some minor docs errors.

2006-03-04  Tim-Philipp Müller  <tim at centricular dot net>

	  Patch by: Ross Burton <ross at burtonini dot com>

	* gst/gsterror.c: (_gst_resource_errors_init):
	* gst/gsterror.h:
	  Add GST_RESOURCE_ERROR_NO_SPACE_LEFT (for #333352;

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

	* gst/gst.c:
	Add a check and output a g_warning when GStreamer is built
	against GLib 2.6 but running against 2.8 or higher, and vice 
	versa. (Closes: #323542)

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

	* gst/parse/parse.l:
	  Commit patch for parse_launch syntax from #331255. Removes 
	  support for quoted strings and mimetypes when writing filtered 
	  caps. See the bug report for more details - I'm pretty sure this
	  obscure feature is not in use by _anyone_ anywhere.

	  With this simple change, the size of the gstreamer.so here 
	  drops from 2193KB to 1565KB.

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

	* plugins/elements/gsttypefindelement.h:
	* plugins/elements/gsttypefindelement.c:
	(gst_type_find_element_src_event), (start_typefinding),
	(stop_typefinding), (gst_type_find_element_handle_event),
	(gst_type_find_element_chain),
	(gst_type_find_element_chain_do_typefinding):
	  Use gst_type_find_helper_for_buffer() for chain-based
	  typefinding.

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

	* plugins/elements/gsttypefindelement.c:
	(gst_type_find_element_class_init),
	(gst_type_find_element_set_property),
	(gst_type_find_element_get_property):
	  Deprecate "maximum" property (not only was it only taken into
	  account for typefinding in push-mode anyway, it also was never
	  actually possible to set it in the first place because the
	  property was registered with the numeric property ID for the
	  "minimum" property). Register "maximum" property correctly,
	  for the sake of future copy'n'pasters. Remove some cruft
	  from property get/set functions.

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

	* plugins/elements/gsttypefindelement.c:
	(gst_type_find_element_activate):
	  Use gst_type_find_helper_get_range() here, so we
	  can honour the "minimum" property and also emit
	  the signal with the correct probability of the found caps.

2006-03-02  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/libs/gstreamer-libs-sections.txt:
	* libs/gst/base/gsttypefindhelper.c: (helper_find_peek),
	(helper_find_suggest), (gst_type_find_helper_get_range),
	(gst_type_find_helper):
	* libs/gst/base/gsttypefindhelper.h:
	  New API: gst_type_find_helper_get_range() (#333042).

2006-03-02  Michael Smith  <msmith@fluendo.com>

	* gst/gstregistryxml.c: (load_feature):
	  Asserting on a failure to read part of the registry is Not Cool.
	  Just log a warning and return NULL (which is already handled)

2006-02-28  Sebastien Moutte  <sebastien@moutte.net>

	* win32/common/libgstbase.def:
	  added export of gst_type_find_helper_for_buffer
	* win32/common/libgstbase.def:
	  added some exports : gst_bin_iterate_elements, gst_iterator_resync,
	  gst_ghost_pad_get_target

2006-02-28  Wim Taymans  <wim@fluendo.com>

	* docs/design/draft-klass.txt:
	We use Filter now.
	Added Connector to mark elements that are only used to
	allow pipeline connections.
	Moved Debug to extra feature since most of them are 
	functionally something else.

2006-02-28  Wim Taymans  <wim@fluendo.com>

	* docs/design/draft-klass.txt:
	Some updates and clarifications.

2006-02-28  Wim Taymans  <wim@fluendo.com>

	* docs/design/draft-klass.txt:
	Proposal for klass field values.

	* docs/design/part-streams.txt:
	Start of a doc describing stream anatomy.

2006-02-28  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c: (gst_bin_get_type), (gst_bin_handle_message_func):
	Help the compiler a bit with type registration.
	Use existing forward cod path instead of duplicating it when 
	handling a message.
	
	* gst/gstbus.c: (gst_bus_get_type):
	* gst/gstcaps.c: (gst_caps_get_type), (gst_static_caps_get_type):
	* gst/gstchildproxy.c: (gst_child_proxy_get_type):
	* gst/gstclock.c: (gst_clock_get_type):
	* gst/gstelement.c: (gst_element_get_type),
	* gst/gstelementfactory.c: (gst_element_factory_get_type):
	* gst/gstindexfactory.c: (gst_index_factory_get_type):
	* gst/gstminiobject.c: (gst_mini_object_get_type):
	* gst/gstpad.c: (gst_pad_get_type):
	* gst/gstsegment.c: (gst_segment_get_type):
	* gst/gststructure.c: (gst_structure_get_type):
	* gst/gstsystemclock.c: (gst_system_clock_get_type):
	* gst/gsttask.c: (gst_task_get_type), (gst_task_join):
	* gst/gstvalue.c:
	Help compiler with type registration.

	* plugins/elements/gstqueue.c: (gst_queue_handle_sink_event):
	Small doc update.

2006-02-27  Tim-Philipp Müller  <tim at centricular dot net>

	* plugins/elements/gsttypefindelement.c:
	(gst_type_find_element_handle_event):
	  When we get an EOS event and have not found a type yet
	  (most likely because we had not yet accumulated
	  TYPE_FIND_MIN_SIZE of data yet), try to determine the
	  type given the data we have so far. Fixes typefinding
	  for very short streams again, most notably quicktime
	  redirections as used on Apple's trailer site (#331701).

2006-02-27  Tim-Philipp Müller  <tim at centricular dot net>

	* libs/gst/base/gsttypefindhelper.c: (type_find_factory_rank_cmp),
	(gst_type_find_helper):
	  Try typefinding factories with the highest rank first.

2006-02-27  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/libs/gstreamer-libs-docs.sgml:
	* docs/libs/gstreamer-libs-sections.txt:
	* libs/gst/base/gsttypefindhelper.c:
	  Add section for typefind helper and add documentation
	  for the old and the new function.

2006-02-27  Tim-Philipp Müller  <tim at centricular dot net>

	* libs/gst/base/gsttypefindhelper.c: (buf_helper_find_peek),
	(buf_helper_find_suggest), (type_find_factory_rank_cmp),
	(gst_type_find_helper_for_buffer):
	* libs/gst/base/gsttypefindhelper.h:
	  New API: gst_type_find_helper_for_buffer() (#332723).
	  
2006-02-27  Michael Smith  <msmith@fluendo.com>

	Patch by: Loïc Minier

	* configure.ac:
	* docs/Makefile.am:
	* docs/slides/Makefile.am:
	  prevent CVS directories getting disted.

2006-02-27  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstcaps.c: (gst_caps_ref), (gst_caps_unref):
	  Use the REFCOUNTING category for caps refcounting.
	  
2006-02-26  Tim-Philipp Müller  <tim at centricular dot net>

	* plugins/elements/gsttypefindelement.c: (stop_typefinding):
	  This should be 0 not GST_CLOCK_TIME_NONE (see #331701).

2006-02-26  Tim-Philipp Müller  <tim at centricular dot net>

	* plugins/elements/gsttypefindelement.c:
	(gst_type_find_element_activate):
	  Use gst_pad_check_pull_range() before _activate_pull()
	  to avoid unnecessary open/close (see #331690).

2006-02-24  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstutils.c:
	  Docs enhancement: make it crystal clear what the
	  gst_pad_add_*_probe() callbacks should look like.

2006-02-24  Tim-Philipp Müller  <tim at centricular dot net>

	* libs/gst/base/gstbasesrc.c:
	  Document how applications can stop recording from
	  live sources (see #330996).

2006-02-23  Tim-Philipp Müller  <tim at centricular dot net>

	* tests/check/Makefile.am:
	* tests/check/libs/basesrc.c: (eos_event_counter),
	(basesrc_eos_events_pull), (basesrc_eos_events_push),
	(basesrc_eos_events_push_live_op), (basesrc_eos_events_pull_live_op),
	(gst_basesrc_suite), (main):
	  ... and add some tests for the base source EOS stuff.

2006-02-23  Tim-Philipp Müller  <tim at centricular dot net>

	* tests/check/gst/gstutils.c: (test_buffer_probe_n_times):
	  Test case originally showed the problem fixed below,
	  but was then amended. Add checks back at the place
	  where they used to be.

2006-02-23  Tim-Philipp Müller  <tim at centricular dot net>

	* libs/gst/base/gstbasesrc.c: (gst_base_src_class_init),
	(gst_base_src_init), (gst_base_src_loop),
	(gst_base_src_activate_push), (gst_base_src_activate_pull),
	(gst_base_src_change_state):
	* libs/gst/base/gstbasesrc.h:
	  Don't unconditionally send EOS when going from PAUSED to
	  READY state, esp. make sure we don't send two EOS events
	  in some cases (e.g. one when reaching EOS and one when
	  going from PAUSED to READY). Also, we don't want to send
	  EOS events when operating in pull mode. However, we do
	  want to send an EOS event when shutting down a live
	  source explicitly, for example (fixes #330996).
	  
2006-02-23  Tim-Philipp Müller  <tim at centricular dot net>

	* plugins/elements/gstfilesrc.c: (gst_file_src_create_read):
	  Update src->read_position after a seek when not using mmap.
	  Fixes #332277, patch by: Renchi Raju <renchi gmail com>

2006-02-21  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/Makefile.am:
	* gst/gstparse.h:
	* gst/gstutils.c:
	* gst/gstutils.h:
	Make things work with --disable-parse as they do with 
	--disable-load-save - the symbols involved disappear, but the
	header is still installed and GST_DISABLE_PARSE is included via
	gstconfig.h

2006-02-20  Julien MOUTTE  <julien@moutte.net>

	* libs/gst/base/gstbasetransform.c:
	(gst_base_transform_change_state): Fix a stupid bug. I was 
	sure I compiled that.

2006-02-20  Julien MOUTTE  <julien@moutte.net>

	* gst/gstpad.c: (gst_pad_set_blocked_async):
	* gst/gstutils.c: (gst_pad_add_data_probe),
	(gst_pad_add_event_probe), (gst_pad_add_buffer_probe),
	(gst_pad_remove_data_probe), (gst_pad_remove_event_probe),
	(gst_pad_remove_buffer_probe): Make those function act on the
	ghostpad target when it's a ghostpad. (Closes #331727)

2006-02-20  Julien MOUTTE  <julien@moutte.net>

	* libs/gst/base/gstbasetransform.c:
	(gst_base_transform_change_state): Make basetransform reusable.
	(Closes #331898)

2006-02-20  Jan Schmidt  <thaytan@mad.scientist.com>

	* docs/random/release:
	Move the current documentation of how to do a release to the top
	of the file.

	* gst/gstbin.c: (gst_bin_class_init),
	(gst_bin_handle_message_func):
	Allow multiple state-recalculation threads. (Closes #328873)

2006-02-19  Julien MOUTTE  <julien@moutte.net>

	* gst/gstinfo.h: Add GST_STR_NULL to the second string.
	* gst/gstpad.c: (gst_pad_set_event_function),
	(gst_pad_set_query_function), (gst_pad_set_query_type_function),
	(gst_pad_set_getcaps_function): GST_DEBUG_PAD_NAME evaluates to
	2 strings. You can't use the STR_NULL macro on that.

2006-02-19  Sebastien Moutte <sebastien@moutte.net>

	* gst/gstpad.c: (gst_pad_set_event_function),
	(gst_pad_set_query_function), (gst_pad_set_query_type_function),
	(gst_pad_set_getcaps_function)
	* gst/parse/grammar.y: (gst_parse_found_pad), (gst_parse_perform_delayed_link)
	  Fixed NULL pointer used in GST_CAT_DEBUG using GST_STR_NULL macro
	  So now, we can use --gst-debug-level=5 on Windows
	* win32/common/libgstcontroller.def:
	  Added export of gst_controller_init
	* win32/vs6/libgstcontroller.dsp:
	  Fixed Release post build configuration

2006-02-17  Wim Taymans  <wim@fluendo.com>

	* tests/check/gst/gstquery.c: (GST_START_TEST):
	Added another check.

2006-02-15  Tim-Philipp Müller  <tim at centricular dot net>

	* plugins/elements/gsttypefindelement.c: (find_peek):
	  We can do peeks at non-zero offsets, as long as they
	  fall within the buffer we have.

2006-02-15  Jan Schmidt  <thaytan@mad.scientist.com>

	* tests/check/Makefile.am:
	* tests/check/pipelines/parse-launch.c: (setup_pipeline),
	(expected_fail_pipe), (check_pipeline_runs), (GST_START_TEST),
	(parse_suite), (main):
	  Add testsuite for parse launch syntax

2006-02-14  Tim-Philipp Müller  <tim at centricular dot net>

	* plugins/elements/gsttypefindelement.c:
	(gst_type_find_element_chain):
	  When typefinding is unsuccessful in the chain function, don't
	  error out immediately. Only error out with NO_CAPS_FOUND if
	  the amount of data is at least MAX_TYPEFIND_SIZE bytes,
	  otherwise simply wait for more data so we can try typefinding
	  again with more data later. Also, don't attempt to typefind
	  if we have less than MIN_TYPEFIND_SIZE data available. Overall,
	  this should improve typefinding from network sources where the
	  size of the first buffer can be somewhat random.

2006-02-14  Wim Taymans  <wim@fluendo.com>

	* docs/gst/gstreamer-sections.txt:
	* gst/gstpadtemplate.c:
	* gst/gstpadtemplate.h:
	Fix padtemplate docs, fixes #328805.

2006-02-14  Wim Taymans  <wim@fluendo.com>

	* tools/gst-launch.c: (main):
	NO_PREROLL is not an ERROR so don't send confusing messages
	to the user.

2006-02-14  Wim Taymans  <wim@fluendo.com>

	Patch by: Torsten Schoenfeld

	* gst/gstregistry.c: (gst_registry_get_default),
	(_gst_registry_cleanup):
	Protect default registry with lock and ref/sink it.
	Fixes #324818

2006-02-14  Wim Taymans  <wim@fluendo.com>

	* gst/gstbuffer.c:
	* gst/gstquery.c: (gst_query_list_add_format),
	(gst_query_set_formatsv), (gst_query_parse_formats_length),
	(gst_query_parse_formats_nth):
	* libs/gst/base/gstbasesink.c: (gst_base_sink_get_sync_times):
	Docs fixes.

2006-02-14  Wim Taymans  <wim@fluendo.com>

	* docs/gst/gstreamer-sections.txt:
	Reworked query docs.

	* gst/gstquery.c: (gst_query_new_formats),
	(gst_query_list_add_format), (gst_query_set_formats),
	(gst_query_set_formatsv), (gst_query_parse_formats_length),
	(gst_query_parse_formats_nth):
	* gst/gstquery.h:
	Flesh out formats query, added some new methods.
	Fix part of #324398.

	* tests/check/gst/gstquery.c: (GST_START_TEST), (gstquery_suite):
	Added query creation tests.

2006-02-14  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/gstpad.c: (fixate_value):
	Add a default fixation for fraction lists.

2006-02-13  Wim Taymans  <wim@fluendo.com>

	* gst/gsttask.c: (gst_task_init), (gst_task_func),
	(gst_task_set_lock), (gst_task_start), (gst_task_pause),
	(gst_task_join):
	* gst/gsttask.h:
	Detect and warn for obvious deadlocks. fixes #320340
	Fix error case where lock was not released.

	* tests/check/Makefile.am:
	* tests/check/gst/gsttask.c: (task_func2), (GST_START_TEST),
	(task_func), (gst_element_suite), (main):
	Add task check.

2006-02-13  Wim Taymans  <wim@fluendo.com>

	* docs/gst/gstreamer-sections.txt:
	* gst/gstbus.c:
	Add new functions to docs.

2006-02-13  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-TODO.txt:
	Updated TODO list, basesrc supports seeking to non-bytes
	formats.

	* docs/design/part-element-sink.txt:
	Update docs.

	* gst/gstbin.c: (bin_replace_message),
	(gst_bin_handle_message_func):
	* gst/gstbus.c: (gst_bus_post), (gst_bus_pop):
	* gst/gstevent.c: (gst_event_finalize):
	* gst/gstpad.c: (gst_pad_event_default_dispatch),
	(gst_pad_send_event):
	Use shiny new _TYPE_NAME macros.

	* libs/gst/base/gstbasesrc.c: (gst_base_src_get_range):
	Move debug statement up.

	* gst/gstelement.c: (gst_element_set_locked_state):
	Add some debugging.

2006-02-13  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/gst/gstreamer-sections.txt:
	* gst/gstmessage.h:
	* gst/gstquery.h:
	  New API: add GST_MESSAGE_TYPE_NAME and GST_QUERY_TYPE_NAME
	  macros (#330906). Also, document the already existing
	  GST_QUERY_TYPE macro.

2006-02-13  Wim Taymans  <wim@fluendo.com>

	* tests/check/gst/gstutils.c: (data_probe), (buffer_probe),
	(event_probe), (GST_START_TEST):
	Only events up to the pipeline EOS are counted, there are
	some more when going to NULL currently which we don't care
	about for now.

2006-02-13  Wim Taymans  <wim@fluendo.com>

	* gst/gstpad.c: (gst_pad_send_event):
	Correctly check flushing and emit probes. fixes #330125

2006-02-10  Andy Wingo  <wingo@pobox.com>

	* gst/gstbus.c (gst_bus_class_init): Declare our private data
	structure.
	(gst_bus_init): Cache the location of the private data in the
	instance structure.
	(gst_bus_enable_sync_message_emission) 
	(gst_bus_disable_sync_message_emission): Implement new public
	functions.
	(gst_bus_post): Emit the sync-message signal if the user asked for
	it. Fixes #330684.

	* gst/gstbus.h (GstBus): Use a padding pointer to cache the
	location of the bus-private structure.
	(gst_bus_enable_sync_message_emission)
	(gst_bus_disable_sync_message_emission): API addition

2006-02-10  Jan Schmidt  <thaytan@mad.scientist.com>

	Patch by: Vincent Torri

	* docs/pwg/building-boiler.xml:
	PWG patch from #326800

2006-02-09  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	* docs/Makefile.am:
	* docs/design/Makefile.am:
	  Dist design docs.

2006-02-08  Jan Schmidt  <thaytan@mad.scientist.com>

	* configure.ac:
	  back to CVS

=== release 0.10.3 ===

2006-02-08  Jan Schmidt <thaytan@mad.scientist.com>

	* configure.ac:
	  releasing 0.10.3, "Like a virgin"

2006-02-08  Jan Schmidt  <thaytan@mad.scientist.com>

	* configure.ac:
	  2nd prerelease of 0.10.3
	  Bump libtool versioning.

2006-02-07  Andy Wingo  <wingo@pobox.com>

	* libs/gst/base/gstcollectpads.c (gst_collect_pads_chain): Only
	update last_stop if we're in TIME format and the timestamp is
	valid.

	* libs/gst/base/gstcollectpads.c (gst_collect_pads_event) 
	* libs/gst/base/gstbasetransform.c (gst_base_transform_eventfunc): 
	* libs/gst/base/gstbasesink.c (gst_base_sink_configure_segment):
	If we get a new newsegment with a different format, adapt
	accordingly.

	* gst/gstclock.c (gst_clock_set_calibration): Accept a numerator
	of 0. Not a problem, really.

	* libs/gst/base/gstbasesink.c (gst_base_sink_chain_unlocked): Only
	warn if sync=true.

2006-02-06  Jan Schmidt  <thaytan@mad.scientist.com>

	* configure.ac:
	  Prelease of 0.10.3

2006-02-06  Sebastien Moutte  <sebastien@moutte.net>

	* win32/vs7:
	  project files updated to the default vs7 configuration
	* win32/common/libgstbase.def:
	* win32/common/libgstreamer.def:
	  added new symbols,
	  removed empty lines,
	  sorted all exported symbols alphabetically
	* win32/common/dirent.c:
	* win32/common/dirent.h:
	* win32/common/gchar.h:
	  use windows line end.
	  
2006-02-06  Tim-Philipp Müller  <tim at centricular dot net>

	* libs/gst/base/gstbasesrc.c: (gst_base_src_change_state):
	  Send EOS event when stopping.

2006-02-06  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/README:
	  Tell folks what to do if the plugin-foobar.xml file
	  hasn't been generated for a newly-added plugin.

2006-02-05  Julien MOUTTE  <julien@moutte.net>

	* libs/gst/base/gstcollectpads.c: (gst_collect_pads_finalize),
	(gst_collect_pads_add_pad), (gst_collect_pads_remove_pad),
	(gst_collect_pads_start), (gst_collect_pads_stop),
	(gst_collect_pads_event): Collectpads now holds a reference
	to the GstPad that was added. Indeed we don't want to look
	at pads that might just go away with no warning...

2006-02-05  Julien MOUTTE  <julien@moutte.net>

	* libs/gst/base/gstcollectpads.c: (gst_collect_pads_add_pad),
	(gst_collect_pads_start), (gst_collect_pads_stop),
	(gst_collect_pads_event), (gst_collect_pads_chain):
	* libs/gst/base/gstcollectpads.h: Handle flush. Adapted from
	Mark Nauwelaerts's patch on bug #328491.

2006-02-04  Tim-Philipp Müller  <tim at centricular dot net>

	* tests/check/gst/gstutils.c: (test_parse_bin_from_description),
	(gst_utils_suite):
	  Add some simple tests for gst_parse_bin_from_description() and
	  gst_bin_find_unconnected_pad() (#329069).

2006-02-04  Tim-Philipp Müller  <tim at centricular dot net>

	* tools/gst-launch.c: (event_loop), (main):
	  Catch errors during preroll (#320084).

2006-02-03  Tim-Philipp Müller  <tim at centricular dot net>

	* plugins/elements/gsttypefindelement.c:
	(gst_type_find_element_activate):
	  Post TYPE_NOT_FOUND error message when typefinding
	  is unsuccessful in the activate function as well.

2006-02-02  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-element-sink.txt:
	Updated doc.

2006-02-02  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasesink.c: (gst_base_sink_do_sync),
	(gst_base_sink_render_object),
	(gst_base_sink_queue_object_unlocked):
	Only keep track of prerollable items when we are 
	prerolling.
	Before rendering after preroll, always check if we
	have queued items.
	Added some more debugging.

2006-02-02  Wim Taymans  <wim@fluendo.com>

	* gst/gstelement.c: (gst_element_continue_state),
	(gst_element_set_state_func), (gst_element_change_state):
	Fixed #326576, been running this for quite some time with
	no regressions at all.

2006-02-02  Wim Taymans  <wim@fluendo.com>

	* common/gst.supp:
	Added more suppressions

2006-02-02  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-element-sink.txt:
	Updated document.

	* libs/gst/base/gstbasesink.c: (gst_base_sink_init),
	(gst_base_sink_finalize), (gst_base_sink_preroll_queue_flush),
	(gst_base_sink_configure_segment), (gst_base_sink_commit_state),
	(gst_base_sink_get_sync_times), (gst_base_sink_wait_clock),
	(gst_base_sink_do_sync), (gst_base_sink_render_object),
	(gst_base_sink_preroll_object),
	(gst_base_sink_queue_object_unlocked),
	(gst_base_sink_queue_object), (gst_base_sink_event),
	(gst_base_sink_chain_unlocked), (gst_base_sink_chain),
	(gst_base_sink_loop), (gst_base_sink_activate_pull),
	(gst_base_sink_get_position), (gst_base_sink_change_state):
	* libs/gst/base/gstbasesink.h:
	Totally refactored matching the design doc.
	Use two segments, one to clip incomming buffers and another to
	perform sync.
	Handle queueing correctly, bypass the queue when playing.
	Make EOS cancelable.
	Handle errors correctly when operating in pull based mode.

	* tests/check/elements/fakesink.c: (GST_START_TEST),
	(fakesink_suite):
	Added new check for sinks.

2006-02-02  Wim Taymans  <wim@fluendo.com>

	* gst/gstsegment.c: (gst_segment_clip):
	No reason to refuse to clip when start == -1

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

	* docs/README:
	* docs/manual/intro-basics.xml:
	* docs/manual/intro-preface.xml:
	* docs/manual/manual.xml:
	* docs/pwg/advanced-dparams.xml:
	* docs/pwg/intro-basics.xml:
	* docs/pwg/intro-preface.xml:
	* docs/pwg/pwg.xml:
	  describe dparams (controller) for plugins
	  unify docs a little more

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

	* docs/gst/gstreamer-sections.txt:
	* gst/gstutils.c: (element_find_unconnected_pad),
	(gst_bin_find_unconnected_pad), (gst_parse_bin_from_description):
	* gst/gstutils.h:
	  Add new API: gst_parse_bin_from_description() and
	  gst_bin_find_unconnected_pad() (#329069).

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

	* docs/manual/README:
	  uncover a nasty detail of the docs build

2006-01-31  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c: (bin_remove_messages), (bin_query_duration_done):
	Don't cache duration messages if we're not going to use or
	free them.

2006-01-31  Stefan Kost  <ensonic@users.sf.net>

	* docs/manual/advanced-dparams.xml:
	* docs/pwg/advanced-dparams.xml:
	  more dparam docs
	* gst/gstindex.c:
	  fix docs
	* libs/gst/controller/lib.c: (gst_controller_init):
	  init just once

2006-01-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstelement.c: (gst_element_message_full):
	  also show file/line/func if no additional debug was given

2006-01-31  Sebastien Moutte  <sebastien@moutte.net>
	
	* win32/vs7/grammar.vcproj:
	  activate copy of autogenerated files for Release mode

2006-01-30  Sebastien Moutte  <sebastien@moutte.net>
	
	* win32/common/libgstreamer.def:
	  export gst_value_compare

2006-01-30  Jan Schmidt  <thaytan@mad.scientist.com>

	* plugins/elements/Makefile.am:
	* plugins/elements/gstelements.c:
	* plugins/elements/gstfdsink.c: (_do_init),
	(gst_fd_sink_base_init), (gst_fd_sink_class_init),
	(gst_fd_sink_init), (gst_fd_sink_dispose), (gst_fd_sink_query),
	(gst_fd_sink_render), (gst_fd_sink_check_fd), (gst_fd_sink_start),
	(gst_fd_sink_stop), (gst_fd_sink_unlock), (gst_fd_sink_update_fd),
	(gst_fd_sink_set_property), (gst_fd_sink_uri_get_type),
	(gst_fd_sink_uri_get_protocols), (gst_fd_sink_uri_get_uri),
	(gst_fd_sink_uri_set_uri), (gst_fd_sink_uri_handler_init):
	* plugins/elements/gstfdsink.h:
	Port fdsink to 0.10 (patch by Philippe Rouquier) (Fixes #325490)

2006-01-30  Stefan Kost  <ensonic@users.sf.net>

	* docs/manual/advanced-dparams.xml:
	  describe controller
	* docs/manual/advanced-position.xml:
	* docs/manual/basics-init.xml:
	* docs/manual/manual.xml:
	* docs/manual/titlepage.xml:
	* docs/pwg/pwg.xml:
	* docs/pwg/titlepage.xml:
	  cleanup xml (more to come)
	* libs/gst/controller/gstcontroller.c:
	  fix typo

2006-01-30  Sebastien Moutte  <sebastien@moutte.net>
	
	* win32/vs6/grammar.dsp:
	  add autogen of gstmarshal.c,h for Release mode
		
2006-01-30  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasesink.c: (gst_base_sink_init),
	(gst_base_sink_preroll_queue_empty), (gst_base_sink_commit_state),
	(gst_base_sink_handle_object), (gst_base_sink_event),
	(gst_base_sink_is_prerolled), (gst_base_sink_wait),
	(gst_base_sink_do_sync), (gst_base_sink_handle_event),
	(gst_base_sink_handle_buffer), (gst_base_sink_set_flushing),
	(gst_base_sink_deactivate), (gst_base_sink_activate),
	(gst_base_sink_activate_pull), (gst_base_sink_get_position),
	(gst_base_sink_query), (gst_base_sink_change_state):
	Basesink cleanups, remove some old code.
	Handle the case where a subclass can preroll in the render
	method (mostly audiosinks).
	Handle more events.
	Remove some locks around variables that are now protected
	with the PREROLL_LOCK (clock_id, flushing, ..).
	Optimize position query some more, do correct locking.
	Remove old code to push queue in state change, this is not
	needed anymore since preroll blocks on all prerollable items 
	now.
	Almost implemented as described in design doc.

2006-01-30  Wim Taymans  <wim@fluendo.com>

	* tests/check/gst/gstbin.c: (GST_START_TEST):
	Wait for refcount to settle down before checking.

2006-01-30  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-element-sink.txt:
	Pseudo code overview of desired sink behaviour regarding
	preroll.

2006-01-29  Sebastien Moutte  <sebastien@moutte.net>
	* win32/vs6/grammar.dsp:
	  fix some bugs in Release mode for autogenerated files
		
2006-01-29  Sebastien Moutte  <sebastien@moutte.net>
	* win32/common/libgstbase.def:
	* win32/common/libgstreamer.def:
	  export some new symbols: gst_base_src_set_format,
	  gst_iterator_next, gst_structure_set_valist

2006-01-29  Julien MOUTTE  <julien@moutte.net>

	* gst/gstghostpad.c: (gst_proxy_pad_set_target_unlocked):
	Set pad functions unconditionally. Fixes #329105.

2006-01-29  Sebastien Moutte  <sebastien@moutte.net>
	* win32/vs8:
	  add vs8 project files created by Sergey Scobich

2006-01-28  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/gstutils.c: (gst_element_unlink_pads):
	Don't leak pad references.

	* tests/check/elements/fakesink.c: (GST_START_TEST):
	* tests/check/generic/sinks.c: (GST_START_TEST):
	* tests/check/generic/states.c: (GST_START_TEST):
	* tests/check/gst/gstbin.c: (GST_START_TEST):
	* tests/check/gst/gstcaps.c: (GST_START_TEST):
	* tests/check/gst/gstelement.c: (GST_START_TEST):
	* tests/check/gst/gstghostpad.c: (GST_START_TEST):
	* tests/check/gst/gstiterator.c: (GST_START_TEST):
	* tests/check/gst/gstvalue.c: (GST_START_TEST):
	Fix a bunch of leaks. Make generic/sinks.c
	use a bit less cpu by slowing the buffer rate
	between fakesrc and fakesink.
	
2006-01-27  Stefan Kost  <ensonic@users.sf.net>
	* gst/gstcaps.c:
	* gst/gstelement.c: (gst_element_send_event):
	* gst/gstevent.c:
	* gst/gstinfo.c:
	* gst/gstiterator.c:
	* gst/gstiterator.h:
	* gst/gstpad.c: (gst_pad_send_event):
	* gst/gststructure.c:
	* gst/gsturi.c:
	* gst/gstutils.c:
	* gst/gstvalue.c:
	* libs/gst/base/gstadapter.c:
	  doc fixes, to link to function, just write gst_cool_function(), don't
	  prefix with '#'

2006-01-27  Jan Schmidt  <thaytan@mad.scientist.com>

	* plugins/elements/gsttee.c: (gst_tee_do_push),
	(gst_tee_handle_buffer):
	Always prefer an actual return value from a src
	pad in place of NOT_LINKED. This means we return
	WRONG_STATE when all src pads are WRONG_STATE
	instead of NOT_LINKED.

	Lock when replacing the last message to prevent
	racing with the get_property method.

	Add debug output

2006-01-27  Jan Schmidt  <thaytan@mad.scientist.com>

	* tests/check/Makefile.am:
	* tests/check/gst/gstquery.c: (GST_START_TEST), (gstquery_suite),
	(main):
	Add a very simple check that should have caught the memleak I fixed
	last night (if not for the slice allocator hiding it)

2006-01-27  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/gstbin.c: (gst_bin_dispose), (gst_bin_provide_clock_func),
	(gst_bin_remove_func), (gst_bin_handle_message_func),
	(bin_query_duration_fold), (bin_query_generic_fold):
	Clean up references to the clock provider when disposed or when
	handling a clock-lost message from it.

	Unref sinks when performing a query via gst_iterator_fold, as the
	gst_bin_iterate_sinks iterator refs each item. (Fixes #323874)

	* gst/gstclock.c: (gst_clock_class_init), (gst_clock_dispose),
	(gst_clock_set_master):
	Drop our reference to the master clock, if any, when we are disposed.

	* gst/gsttypefindfactory.c: (gst_type_find_factory_dispose):
	Chain up in dispose. 

2006-01-26  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasesrc.c: (gst_base_src_get_range):
	Add some debugging.

2006-01-26  Julien MOUTTE  <julien@moutte.net>

	* plugins/elements/gsttee.c: (gst_tee_do_push),
	(gst_tee_handle_buffer): Apply patch from #328715. Tee now
	handles pad being NOT_LINKED or in WRONG_STATE.

2006-01-26  Stefan Kost  <ensonic@users.sf.net>

	* win32/MANIFEST:
	  more updating

2006-01-26  Stefan Kost  <ensonic@users.sf.net>

	* win32/MANIFEST:
	  remove obsolete entry

2006-01-26  Stefan Kost  <ensonic@users.sf.net>

	* docs/gst/gstreamer-sections.txt:
	* gst/gstbin.c: (bin_element_is_src), (src_iterator_filter),
	(gst_bin_iterate_sources), (gst_bin_send_event):
	* gst/gstbin.h:
	* gst/gstelement.c: (gst_element_send_event):
	* gst/gstevent.c:
	* gst/gstpad.c: (gst_pad_send_event):
	  added code for downstream events, reviewed docs in gstevent.c

2006-01-25  Julien MOUTTE  <julien@moutte.net>

	* libs/gst/base/gstbasesink.c: (gst_base_sink_get_position):
	We only query position using the clock in the playing state.
	Query peer in the other cases.
	* win32/common/config.h: Updates.

2006-01-24  Wim Taymans  <wim@fluendo.com>

	* gst/gstsystemclock.c: (gst_system_clock_id_wait_unlocked):
	A clock entry that is scheduled for the exact time of the
	clock is still in time.

	* libs/gst/base/gstbasesink.c: (gst_base_sink_handle_object),
	(gst_base_sink_do_sync):
	Add some more debug info.

2006-01-23  Sebastien Moutte  <sebastien@moutte.net>

	* win32/vs7:
	  Add new vs7 project files and solution.

2006-01-23  Sebastien Moutte  <sebastien@moutte.net>

	* win32/vs7:
	  all files removed as they were out-dated.

2006-01-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/random/release:
	  update notes
	* gst/gstbin.c: (gst_bin_init):
	* gst/gstbus.c: (gst_bus_new):
	* gst/gstbus.h:
	* gst/gstpipeline.c: (gst_pipeline_init):
	  use gst_bus_new(), improve logging, fix docs
	* win32/common/config.h:
	  update for cvs build

2006-01-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* autogen.sh:
	  up required version of automake to 1.7

2006-01-20  Sebastien Moutte  <sebastien@moutte.net>

	* win32/common/libgstreamer.def:
	  export gst_buffer_is_metadata_writable

2006-01-20  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/gst/gstreamer-sections.txt:
	* gst/gstevent.h:
	  Add gst_event_replace() (#327001)

2006-01-20  Wim Taymans  <wim@fluendo.com>

	* gst/gstpad.c: (gst_pad_link_check_compatible_unlocked):
	Make it actually compile too..

2006-01-20  Wim Taymans  <wim@fluendo.com>

	* gst/gstcaps.c:
	Clarify behaviour of _is_equal() when passing NULL parameters.

	* gst/gstpad.c: (gst_pad_link_check_compatible_unlocked),
	(gst_pad_set_caps):
	Cleanups. Don't unref NULL caps.
	When setting the same caps, protect caps of the pad with
	proper lock.
	Use full functionality of _is_equal() when comparing caps.

2006-01-20  Jan Schmidt  <thaytan@mad.scientist.com>

	* libs/gst/base/gstcollectpads.c: (gst_collect_pads_is_collected):
	Don't loop infinitely if there are no buffers to present. Partially
	fixes #327197, but collectpads is just broken for reusing elements
	to do multiple encodes atm.

2006-01-20  Jan Schmidt  <thaytan@mad.scientist.com>

	* tools/gst-inspect.c: (print_element_features):
	* tools/gst-xmlinspect.c: (main):
	URL_HANDLER is not a plugin feature we can search for in
	the registry.

2006-01-19  Edward Hervey  <edward@fluendo.com>

	* gst/gstelement.c: (gst_element_pads_activate): 
	When activating, do src pads first, then sink pads.
	When de-activating, do sink pads first, then src pads.

2006-01-19  Jan Schmidt  <thaytan@mad.scientist.com>

	* docs/gst/gstreamer-sections.txt:
	Add gst_index_add_associationv to the docs

2006-01-19  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/gstevent.c:
	  Fix docs typo

	* plugins/elements/gstqueue.c: (gst_queue_handle_sink_event),
	(gst_queue_chain), (gst_queue_push_one), (gst_queue_loop):
	  Do some refactoring. Doesn't actually change functionality,
	  but makes landing the DRAIN event easier later.

2006-01-19  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/pwg/advanced-scheduling.xml:
	  Update from 0.9.x to 0.10 API and make example a bit
	  clearer.

2006-01-19  Jan Schmidt  <thaytan@mad.scientist.com>

	* docs/gst/gstreamer-sections.txt:
	Add gst_buffer_(is|make)_metadata_writable methods.

2006-01-19  Jan Schmidt  <thaytan@mad.scientist.com>

	* docs/design/part-sparsestreams.txt:
	Update sparse streams doc, hopefully for greater clarity

2006-01-18  Jan Schmidt  <thaytan@mad.scientist.com>

	* docs/design/part-events.txt:
	Remove mention of FILLER events.
	Add DRAIN event.

	* docs/design/part-sparsestreams.txt:
	Write some things about using NEWSEGMENT to keep sparse streams
	flowing.

2006-01-18  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstbin.c: (gst_bin_dispose):
	  Guard gst_object_unref call against a NULL object (dispose
	  can theoretically be called multiple times).
	  
2006-01-18  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c: (gst_bin_element_set_state):
	* gst/gstclock.c: (gst_clock_id_wait):
	Added some more debug info.

	* libs/gst/base/gstadapter.c:
	Added more docs.

	* libs/gst/base/gstbasesink.c: (gst_base_sink_handle_object),
	(gst_base_sink_do_sync), (gst_base_sink_chain):
	Added some comments.

2006-01-18  Wim Taymans  <wim@fluendo.com>

	* tests/check/Makefile.am:
	* tests/check/elements/fakesink.c: (chain_async_buffer),
	(chain_async), (chain_async_return), (GST_START_TEST),
	(fakesink_suite), (main):
	Added fakesink test that checks prerolling and clipping
	behaviour.

	* tests/check/gst/gstutils.c: (GST_START_TEST):
	Make check run faster so that buildbots don't timeout.

2006-01-18  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasesink.c: (gst_base_sink_handle_object),
	(gst_base_sink_do_sync):
	Some cleanups.
	When the sink finishes blocking on the preroll buffer, it can
	immediatly render it instead of rendering when the next buffer
	arrives.

2006-01-18  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasesink.c: (gst_base_sink_set_property),
	(gst_base_sink_get_property), (gst_base_sink_do_sync),
	(gst_base_sink_chain):
	Small cleanups.
	GST_ELEMENT_CLOCK and sync are protected with LOCK.
	Don't store _last_stop if the buffer is dropped.

2006-01-18  Tim-Philipp Müller  <tim at centricular dot net>

	* plugins/elements/gsttypefindelement.c:
	(gst_type_find_element_class_init):
	  'have-type' signal needs to be G_SIGNAL_RUN_FIRST, as it is the
	  object method handler that sets the caps on the pad and we want
	  that to happen before we emit the signal (fixes e.g. feeding a
	  plain text file to decodebin).

2006-01-18  Christian Schaller  <Christian@fluendo.com>

	* gst/gstplugin.c: Add MPL and Proprietary as license options

2006-01-18  Andy Wingo  <wingo@pobox.com>

	* gst/gstindex.h (gst_index_add_associationv): Add to header. The
	symbol was exported before, it appears this was just an oversight.
	Fixes #168703.
	Patch by: Torsten Schoenfeld <kaffeetisch at gmx.de>

	* gst/gstindex.c (gst_index_add_associationv): Changed int in
	prototype to gint. OK since this prototype was not in the header.

2006-01-17  Andy Wingo  <wingo@pobox.com>

	* gst/gstregistry.c (_gst_registry_remove_cache_plugins): Lock the
	registry while we remove plugins.

	* tools/gst-inspect.c (print_element_info): Don't unref the
	factory arg, that should be the responsibility of whatever code
	received the ref. Fixes a double-free when called from
	print_element_list via gst-inspect-0.10 -a. Fixes #327324.
	(main): Unref the factory if we have one.
	(print_element_list): No change -- relies on the
	plugin_feature_list_free to free the list of features.

2006-01-17  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/gstbuffer.c: (gst_buffer_is_metadata_writable),
	(gst_buffer_make_metadata_writable):
	* gst/gstbuffer.h:
	* libs/gst/base/gstbasetransform.c:
	(gst_base_transform_prepare_output_buf):
	* plugins/elements/gstcapsfilter.c: (gst_capsfilter_prepare_buf):
	* tests/check/gst/gstbuffer.c: (GST_START_TEST), (gst_test_suite):
	  Replace gst_buffer_(make|is)_metadata_writable patch now
	  that the release is out.

2006-01-17  Andy Wingo  <wingo@pobox.com>

	* gst/gstregistry.c: Reflow design comment. Update so as to speak
	in the present tense without reference to versions.

	* gst/gstregistry.c (gst_registry_add_plugin)
	(gst_registry_remove_plugin, gst_registry_remove_feature)
	(gst_registry_find_feature, gst_registry_get_feature_list)
	(gst_registry_get_plugin_list, gst_registry_lookup_feature)
	(gst_registry_lookup, gst_registry_scan_path)
	(_gst_registry_remove_cache_plugins)
	(gst_registry_get_feature_list_by_plugin): Add argument
	validation.

=== release 0.10.2 ===

2006-01-16  Thomas Vander Stichele <thomas at apestaart dot org>

	* configure.ac:
	  releasing 0.10.2, "If man is five"

2006-01-16  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/gstbuffer.c:
	* gst/gstbuffer.h:
	* libs/gst/base/gstbasetransform.c:
	(gst_base_transform_prepare_output_buf):
	* plugins/elements/gstcapsfilter.c: (gst_capsfilter_prepare_buf):
	* tests/check/gst/gstbuffer.c: (gst_test_suite):
	  Back out patch until after the release.

2006-01-16  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/gstminiobject.c:
	  Spelling fix in docs.
	* ChangeLog - remove conflict indicator

2006-01-16  Jan Schmidt  <thaytan@mad.scientist.com>

	Reviewed By: Andy Wingo

	* gst/gstbuffer.c: (gst_buffer_is_metadata_writable),
	(gst_buffer_make_metadata_writable):
	* gst/gstbuffer.h:
	  Add gst_buffer_(is|make)_metadata_writable as analogues of
	  gst_buffer_(is|make)_writable.

	* libs/gst/base/gstbasetransform.c:
	(gst_base_transform_prepare_output_buf):
	* plugins/elements/gstcapsfilter.c: (gst_capsfilter_prepare_buf):
	  Use name gst_buffer_(is|make)_metadata_writable functions.

	* tests/check/gst/gstbuffer.c: (GST_START_TEST), (gst_test_suite):
	  Test gst_buffer_(is|make)_metadata_writable
	
	  (Closes: #324162)

2006-01-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/manual/Makefile.am:
	  don't do parallel make
	* configure.ac:
	  AC_SUBST HOST_CPU
	* win32/common/config.h.in:
	  add generations for HOST_CPU and GST_MAJORMINOR
	* win32/common/config.h:
	  commit generated result

2006-01-13  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/manual/appendix-integration.xml:
	  Update GNOME integration section to use gst_init_get_option_group()
	  instead of the old popt stuff (#322911). Also, GNOME applications
	  should  now use gconf*sink and gconf*src instead of the old gconf
	  helper lib we had.

2006-01-13  Stefan Kost  <ensonic@users.sf.net>


	* docs/gst/gstreamer-docs.sgml:
	* docs/gst/gstreamer-sections.txt:
	* docs/libs/gstreamer-libs-sections.txt:
	  add new API entries to the docs
	* libs/gst/controller/Makefile.am:
	* libs/gst/controller/gstcontroller.c:
	* libs/gst/controller/gstcontroller.h:
	* libs/gst/controller/gstcontrollerprivate.h:
	* libs/gst/controller/gsthelper.c:
	* libs/gst/controller/gstinterpolation.c:
	  move private structs to private header
	* po/README:
	  gstreamer-0.7 -> gstreamer-0.10
	* tests/check/libs/struct_i386.h:
	  remove private structs

2006-01-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* plugins/indexers/Makefile.am:
	  Fixes as part of #317048

2006-01-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* plugins/indexers/Makefile.am:
	  fix #316086 - compilation when mmap is missing

2006-01-12  Sebastien Moutte  <sebastien@moutte.net>

	* libs/gst/base/gstbasesink.c:
	  *cur = (now - base) * basesink->segment.abs_rate + time; replaced by 
	  *cur = gst_guint64_to_gdouble(now - base) * basesink->segment.abs_rate + time; for vs6
	* win32/common/config.h:
	  added some defines GST_MAJORMINOR and HOST_CPU
	* win32/common/libgstbase.def:
	* win32/common/libgstreamer.def:
	  added some exported functions.

2006-01-12  Stefan Kost  <ensonic@users.sf.net>

	* libs/gst/controller/gstcontroller.c:
	(gst_controlled_property_set_interpolation_mode),
	(gst_controlled_property_new):
	* libs/gst/controller/gstcontroller.h:
	* libs/gst/controller/gstinterpolation.c:
	(interpolate_none_get_string_value_array):
	  make G_TYPE_STRING controlable

2006-01-12  Stefan Kost  <ensonic@users.sf.net>

	* tools/README:
	* tools/gst-feedback.1.in:
	* tools/gst-inspect.1.in:
	* tools/gst-launch.1.in:
	* tools/gst-md5sum.1.in:
	* tools/gst-typefind.1.in:
	* tools/gst-xmlinspect.1.in:
	* tools/gst-xmllaunch.1.in:
	  cleanup man-pages, remove reference to gst-register, document env-vars

2006-01-12  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/gstbuffer.c: (gst_buffer_span):
	  gst_buffer_span should copy the timestamp of the first buffer
	  if they were both originally overlapping subbuffers of the 
	  same parent, using the same logic as the 'slow copy' case.

2006-01-11  Jan Schmidt  <thaytan@mad.scientist.com>

	* libs/gst/base/gstcollectpads.c: (gst_collect_pads_pop):
	  Need to awaken ALL the pads when we pop a buffer, otherwise
	  collectpads only works when there is 2 input streams.

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

	* docs/random/ensonic/media-device-daemon.txt:
	  more ideas (dbus)
	* gst/gstbuffer.c:
	  fix doc example, add clarification
	* tools/gst-launch.1.in:
	  add initial info about GST_PLUGIN_PATH, needs more work

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

	* docs/manual/basics-bins.xml:
	* docs/manual/basics-elements.xml:
	* docs/manual/intro-basics.xml:
	  Some more minor docs additions and updates.

2006-01-11  Wim Taymans  <wim@fluendo.com>

	* docs/manual/basics-bins.xml:
	* docs/manual/basics-elements.xml:
	Some small fixes as pointed out by Ser-ver on IRC.

2006-01-10  Edward Hervey  <edward@fluendo.com>

	* plugins/elements/gstidentity.c: (gst_identity_transform_ip):
	Set the buffer offset/offset_end to GST_CLOCK_TIME_NONE when using
	the single-segment mode.

2006-01-10  Brian Cameron  <brian dot cameron at sun dot com>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* libs/gst/base/gstbasesrc.c: (gst_base_src_init),
	(gst_base_src_perform_seek), (gst_base_src_send_event),
	(gst_base_src_set_property), (gst_base_src_get_property),
	(gst_base_src_loop), (gst_base_src_start),
	(gst_base_src_activate_push):
	* libs/gst/base/gstbasesrc.h:
	  Name (private) union; makes Sun's Forte compiler happy (#324900).

2006-01-09  Tim-Philipp Müller  <tim at centricular dot net>

	* README:
	  gst-register is gone.

2006-01-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstvalue.c: (_gst_value_initialize):
	  make the G_TYPE_DATE instantiation work if debug is disabled

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

	* gst/gstmessage.c: (gst_message_parse_tag),
	(gst_message_parse_error), (gst_message_parse_warning):
	  Don't crash when return location for error/warning debug
	  string is NULL; add fact that return locations can be
	  NULL to docs where appropriate.

2006-01-05  Wim Taymans  <wim@fluendo.com>

	* gst/gstplugin.c: (gst_plugin_load_file):
	Replace strdup by g_strdup.

2006-01-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/pwg/advanced-types.xml:
	  fix doc borkage

2006-01-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	submitted by: Abel Cheung

	* po/LINGUAS:
	* po/zh_TW.po:
	  Added Chinese (traditional) translation

2006-01-04  Wim Taymans  <wim@fluendo.com>

	* docs/manual/basics-pads.xml:
	* docs/plugins/Makefile.am:
	* docs/plugins/gstreamer-plugins-docs.sgml:
	* docs/plugins/gstreamer-plugins-sections.txt:
	* docs/pwg/advanced-clock.xml:
	* docs/pwg/advanced-scheduling.xml:
	* docs/pwg/advanced-types.xml:
	* plugins/elements/gstfdsink.c:
	* plugins/elements/gstfdsrc.c:
	* plugins/elements/gstfdsrc.h:
	* plugins/elements/gstidentity.c: (gst_identity_class_init):
	* plugins/elements/gstidentity.h:
	* plugins/elements/gstqueue.h:
	* plugins/elements/gsttee.c:
	* plugins/elements/gsttee.h:
	* plugins/elements/gsttypefindelement.c:
	(gst_type_find_element_class_init):
	* plugins/elements/gsttypefindelement.h:
	Small updates to various docs.
	Added core plugins to docs.

2006-01-03  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* common/gst.supp:
	  add a suppression for liboil's uninitialized variable

2006-01-02  James Livingston  <jrl at ids dot org dot au>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstutils.h:
	  Add prototype for _get_type() function to GST_BOILERPLATE_FULL
	  macro, so that gcc doesn't complain if the -Wmissing-prototypes
	  compiler switch is being used (#325429).

2005-12-29  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstbin.c: (gst_bin_query):
	  Disable duration query caching in bins until it gets
	  fixed (see #324807).

2005-12-27  Tim-Philipp Müller  <tim at centricular dot net>

	* tools/gst-inspect.c: (print_element_properties_info):
	  Handle properties of POINTER and BOXED type.

2005-12-27  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gst.c: (init_post):
	  Init tags stuff and some other things before loading
	  any static plugins (there may be other static plugins
	  than just the GStreamer ones, and they may want to
	  register their own tags or formats or whatever, and
	  preferably without segfaulting).

	* plugins/elements/gstqueue.c: (gst_queue_handle_src_query):
	  Print at least a warning in the debug logs if we drop a
	  query just because we don't know how to adjust the value
	  in the particular format.

2005-12-24  David Schleef  <ds@schleef.org>

	* tools/gstreamer-completion:
	  Replacement for gst-complete written in sh and sed.  Only
	  completes names of features, but that's 90% of what I want
	  it for.  Properties are not available in registry.xml.  (Maybe
	  they should be...)

=== release 0.10.1 ===

2005-12-23  Thomas Vander Stichele <thomas at apestaart dot org>

	* configure.ac:
	  releasing 0.10.1, "Nollaig chridheil"

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

	* docs/faq/cvs.xml:
	  Add missing quote, should be make ERROR_CFLAGS="".

2005-12-20  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-trickmodes.txt:
	More documentation on trickmodes.

2005-12-20  Edward Hervey  <edward@fluendo.com>

	* gst/gstcaps.c: (gst_static_caps_get_type):
	* gst/gstcaps.h:
	  API addition: GST_TYPE_STATIC_CAPS
	Added gpointer GType for GstStaticCaps so we can wrap them in bindings.
	* gst/gstpadtemplate.c: (gst_static_pad_template_get_type):
	* gst/gstpadtemplate.h:
	  API addition: GST_TYPE_STATIC_PAD_TEMPLATE
	Added gpointer GType for GstStaticPadTemplate so we can wrap them in
	bindings.

2005-12-18  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstadapter.c:
	* libs/gst/base/gstadapter.h:
	* libs/gst/base/gstbasesink.c: (gst_base_sink_class_init),
	(gst_base_sink_get_position):
	* libs/gst/base/gstbasesink.h:
	* libs/gst/base/gstbasesrc.c: (gst_base_src_class_init),
	(gst_base_src_default_query), (gst_base_src_default_do_seek),
	(gst_base_src_do_seek), (gst_base_src_perform_seek),
	(gst_base_src_send_event), (gst_base_src_update_length),
	(gst_base_src_get_range), (gst_base_src_loop),
	(gst_base_src_start):
	* libs/gst/base/gstbasesrc.h:
	* libs/gst/base/gstbasetransform.h:
	* libs/gst/base/gstcollectpads.h:
	* libs/gst/base/gstpushsrc.c:
	* libs/gst/base/gstpushsrc.h:
	* libs/gst/dataprotocol/dataprotocol.c:
	* libs/gst/dataprotocol/dataprotocol.h:
	* libs/gst/net/gstnetclientclock.h:
	* libs/gst/net/gstnettimeprovider.h:
	Documentation updates.

2005-12-18  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/manual/basics-helloworld.xml:
	  Remove superfluous closing bracket in helloworld example.

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

	* tools/gst-launch.1.in:
	  Update gst-launch man page; add a section with useful
	  environment variables. Fixes #323882.

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

	* gst/gst.c:
	* gst/gst_private.h:
	  change some char* into char[]

2005-12-16  Wim Taymans  <wim@fluendo.com>

	* gst/gstregistryxml.c: (load_feature):
	Cleanups.
	Don't use g_object_unref on GstObjects so that we avoid
	leaks on unsafe glibs.

2005-12-16  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c: (gst_bin_recalc_state):
	Small doc updates.

2005-12-16  Wim Taymans  <wim@fluendo.com>

	* common/check.mak:
	Added make forever target for check.

2005-12-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gst.c: (init_post):
	  make the registry cache file HOST_CPU-dependent

2005-12-16  Andy Wingo  <wingo@pobox.com>

	* plugins/elements/gstbufferstore.c
	(gst_buffer_store_cleared_func): Pay attention to g_list_append
	return value.

	* tests/check/gst/gstobject.c
	(test_fake_object_name_threaded_unique): Pay attention to
	g_list_sort return value.

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

	* tools/gst-feedback-m.m:
	  Update for 0.9/0.10 (fixes #323870).

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

	* gst/gstminiobject.c: (gst_value_mini_object_lcopy):
	  Fix lcopy for mini objects, the mini object needs to be ref'ed.
	  
	* tests/check/gst/gstminiobject.c: (my_foo_init),
	(my_foo_get_property), (my_foo_set_property), (my_foo_class_init),
	(test_value_collection), (gst_mini_object_suite):
	  Add test to ensure refcounts end up as expected when passing
	  GstMiniObjects through g_object_get() and g_object_set().

2005-12-14  Julien MOUTTE  <julien@moutte.net>

	* libs/gst/base/gstcollectpads.c: (gst_collect_pads_base_init),
	(gst_collect_pads_remove_pad), (gst_collect_pads_is_collected),
	(gst_collect_pads_event), (gst_collect_pads_chain): Refactoring
	of collectpads. This version removes a lot of races without
	touching API/ABI. Yay !

2005-12-14  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/gstpad.c: (gst_pad_activate_pull), (gst_pad_link_prepare):
	  Don't allow activation of a srcpad in pull_range if it has no
	  getrange function.
	  Change some debug statements to be a little clearer

	* plugins/elements/gsttypefindelement.c:
	(gst_type_find_handle_src_query):
	  Check that we have a peer before executing queries thereupon.

	* tests/examples/metadata/read-metadata.c: (message_loop):
	  Use gst_bus_pop instead of gst_bus_poll when we just want it to
	  immediately return us any available message with 0 timeout.

2005-12-12  Michael Smith  <msmith@fluendo.com>

	* gst/gsttypefindfactory.c: (gst_type_find_factory_call_function):
	  Don't unref factories after calling them.
	* libs/gst/base/gsttypefindhelper.c: (gst_type_find_helper):
	* plugins/elements/gsttypefindelement.c:
	(gst_type_find_element_chain):
	  Free lists of factories after using them. Fixing typefinding memory
	  leaks.

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

	* gst/gstpluginfeature.c: (gst_plugin_feature_finalize),
	(gst_plugin_feature_load):
	  more meaningful debug output
	* configure.ac:
	* tests/Makefile.am:
	* tests/old/examples/Makefile.am:
	  make make distcheck happy again

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

	* plugins/elements/gsttypefindelement.c: (stop_typefinding):
	  Catch the special case where we are operating chain-based,
	  but the downstream peer pad has no chain function. Emit a
	  custom error message in this case instead of letting the
	  core generate one implying that this is some sort of core
	  bug. It's not, it just means that whatever got plugged
	  into the pipeline downstream when we announced the type
	  can only operate pull-based, while our source can only
	  operate push-based (e.g. http://foo/bar.mov ! qtdemux ! ...)
	  Error string has not been marked for translation yet, as
	  it probably needs some more work first.

	(gst_type_find_element_get_best_possibility):
	  Add helper function to find the best of all available
	  found possibilities that qualify given the min. threshold.

	(gst_type_find_element_handle_event):
	  Fix the case where we get an EOS while still in TYPEFIND
	  mode (we want to chose the best of all possible types,
	  not just the first type that happens to be in our unsorted
	  list of possible types).

	(gst_type_find_element_chain):
	  Make sure we return GST_FLOW_ERROR when we errored out
	  in stop_typefinding(); also, don't just find the best of
	  all found type entries and then use the last examined
	  type entry, but actually use the best entry.

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

	* tests/examples/typefind/typefind.c: (type_found):
	* tests/examples/xml/runxml.c: (xml_loaded):
	  More gcc4 fixes and a mem leak fix.

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

	* tests/examples/xml/createxml.c: (object_saved):
	  gcc 4 fixes

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

	* tests/Makefile.am:
	  enable the examples even more

2005-12-12  Andy Wingo  <wingo@pobox.com>

	* libs/gst/net/gstnettimeprovider.c
	(gst_net_time_provider_class_init, gst_net_time_provider_init)
	(gst_net_time_provider_set_property)
	(gst_net_time_provider_get_property):
	API addition: Export "active" as a GObject property.
	(gst_net_time_provider_thread): Only respond to time queries if
	the time provider is active.

	* libs/gst/net/gstnettimeprovider.h: Add an "active" boolean to
	NetTimeProvider, preserving binary compat.

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

	* tests/examples/controller/audio-example.c: (main):
	* tests/examples/launch/Makefile.am:
	  convert comments again

2005-12-12  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstpushsrc.c:
	Fix typo.

2005-12-12  Wim Taymans  <wim@fluendo.com>

	* docs/libs/gstreamer-libs-sections.txt:
	Added new symbol to docs.

	* libs/gst/base/gstbasesrc.c: (gst_base_src_class_init),
	(gst_base_src_init), (gst_base_src_set_format),
	(gst_base_src_default_query), (gst_base_src_query),
	(gst_base_src_default_do_seek), (gst_base_src_do_seek),
	(gst_base_src_perform_seek), (gst_base_src_send_event),
	(gst_base_src_default_event), (gst_base_src_event_handler),
	(gst_base_src_set_property), (gst_base_src_get_property),
	(gst_base_src_wait), (gst_base_src_do_sync),
	(gst_base_src_update_length), (gst_base_src_get_range),
	(gst_base_src_check_get_range), (gst_base_src_loop),
	(gst_base_src_default_negotiate), (gst_base_src_start),
	(gst_base_src_activate_push), (gst_base_src_activate_pull),
	(gst_base_src_change_state):
	* libs/gst/base/gstbasesrc.h:
	Implement seeking to other formats than _BYTES.
	Implement more seeking methods correctly.
	Doc updates.
	Added query vmethod.
	Added do_seek vmethod to make life easier for subclasses
	when seeking.
	API addition: gst_base_src_set_format()

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

	* tests/examples/Makefile.am:
	  added that too

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

	* configure.ac:
	* docs/random/ensonic/media-device-daemon.txt:
	* tests/examples/controller/.cvsignore:
	* tests/examples/controller/Makefile.am:
	* tests/examples/controller/audio-example.c: (main):
	* tests/examples/helloworld/.cvsignore:
	* tests/examples/helloworld/Makefile.am:
	* tests/examples/helloworld/helloworld.c: (event_loop), (main):
	* tests/examples/launch/.cvsignore:
	* tests/examples/launch/Makefile.am:
	* tests/examples/launch/mp3parselaunch.c: (event_loop), (main):
	* tests/examples/metadata/.cvsignore:
	* tests/examples/metadata/Makefile.am:
	* tests/examples/metadata/read-metadata.c: (message_loop),
	(make_pipeline), (print_tag), (main):
	* tests/examples/queue/.cvsignore:
	* tests/examples/queue/Makefile.am:
	* tests/examples/queue/queue.c: (event_loop), (main):
	* tests/examples/typefind/.cvsignore:
	* tests/examples/typefind/Makefile.am:
	* tests/examples/typefind/typefind.c: (type_found), (event_loop),
	(main):
	* tests/examples/xml/.cvsignore:
	* tests/examples/xml/Makefile.am:
	* tests/examples/xml/createxml.c: (object_saved), (main):
	* tests/examples/xml/runxml.c: (xml_loaded), (event_loop), (main):
	* tests/old/examples/Makefile.am:
	* tests/old/examples/TODO:
	* tests/old/examples/controller/.cvsignore:
	* tests/old/examples/controller/Makefile.am:
	* tests/old/examples/controller/audio-example.c:
	* tests/old/examples/helloworld/.cvsignore:
	* tests/old/examples/helloworld/Makefile.am:
	* tests/old/examples/helloworld/helloworld.c:
	* tests/old/examples/launch/.cvsignore:
	* tests/old/examples/launch/Makefile.am:
	* tests/old/examples/launch/mp3parselaunch.c:
	* tests/old/examples/launch/mp3play:
	* tests/old/examples/manual/Makefile.am:
	* tests/old/examples/metadata/Makefile.am:
	* tests/old/examples/metadata/read-metadata.c:
	* tests/old/examples/queue/.cvsignore:
	* tests/old/examples/queue/Makefile.am:
	* tests/old/examples/queue/queue.c:
	* tests/old/examples/typefind/.cvsignore:
	* tests/old/examples/typefind/Makefile.am:
	* tests/old/examples/typefind/typefind.c:
	* tests/old/examples/xml/.cvsignore:
	* tests/old/examples/xml/Makefile.am:
	* tests/old/examples/xml/createxml.c:
	* tests/old/examples/xml/runxml.c:
	  applied some simple fixing to some examples
	  re-enabled the working examples

2005-12-12  Wim Taymans  <wim@fluendo.com>

	* gst/gstsegment.c: (gst_segment_init),
	(gst_segment_set_last_stop), (gst_segment_set_seek),
	(gst_segment_set_newsegment), (gst_segment_to_stream_time),
	(gst_segment_to_running_time):
	Added more documentation.
	Make sure the last_pos value is updated properly.
	Make sure to_stream_time and to_running_time don't
	operate on wrong values.

	* tests/check/gst/gstsegment.c: (GST_START_TEST):
	Update check.

2005-12-12  Michael Smith  <msmith@fluendo.com>

	* plugins/elements/gsttypefindelement.c: (free_entry),
	(gst_type_find_element_chain):
	  Now that we're not leaking factories, make sure we keep references
	  to them while we need them.

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

	* tests/check/gst/struct_i386.h:
	  ifdef out the XML structs

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

	* gst/gstvalue.c: (gst_value_transform_double_fraction):
	  floor is not needed, F is always positive; this obviates the
	  need for adding -lm when building without libxml

2005-12-12  Wim Taymans  <wim@fluendo.com>

	* libs/gst/base/gstbasesink.c: (gst_base_sink_get_position):
	Take current playback rate into account when reporting
	the position.

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

	* docs/manual/mime-world.fig:
	  Let's try this again, this time with a file that is
	  actually in XFig format.

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

	* docs/manual/mime-world.fig:
	  Add audioconvert element to diagram so that it
	  matches the text and the code (fixes #319526).

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

	* docs/pwg/building-chainfn.xml:
	* docs/pwg/building-pads.xml:
	* docs/pwg/building-state.xml:
	* docs/pwg/other-source.xml:
	  Update state change stuff for 0.10 (fixes #322969).

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

	* docs/manual/advanced-dataaccess.xml:
	* docs/manual/appendix-checklist.xml:
	* docs/manual/appendix-programs.xml:
	* docs/manual/basics-pads.xml:
	* docs/manual/highlevel-components.xml:
	* docs/manual/manual.xml:
	  Update for 0.10: s/0.9/0.10/; s/audioscale/audiorsample/;
	  add converters in front of pipelines; remove curly
	  brackets for threads stuff, they no longer exist; use
	  GST_TYPE_FRACTION for framerates; update some pieces of
	  code to 0.10, but there's plenty more to do.

	* docs/manual/appendix-porting.xml:
	  Expand on asynchroneous state changes; s/0.9/0.10/;
	  mention disappearance of gst_init_get_popt_table()
	  (fixes #322916).

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

	* docs/faq/using.xml:
	  Spider no longer exists, and neither does gst-launch-ext.
	  Update examples to use decodebin and playbin and put
	  converters in front of sinks (fixes #323726).

2005-12-09  Michael Smith  <msmith@fluendo.com>

	* plugins/elements/gsttypefindelement.c: (find_peek),
	(gst_type_find_element_chain):
	  Fix leaking element factories in typefinding.
	  Fix problem where we forgot about a probable type on non-seekable
	  files, and thus later mis-typefound it.

2005-12-09  Michael Smith  <msmith@fluendo.com>

	* common/m4/gst-makecontext.m4:
	* common/m4/gst-mcsc.m4:
	* configure.ac:
	* win32/common/config.h:
	* win32/common/config.h.in:
	  Remove makecontext stuff; not used in 0.10 and causes problems on
	  HPUX according to bug #322441

2005-12-07  Wim Taymans  <wim@fluendo.com>

	* tests/check/Makefile.am:
	* tests/check/libs/libsabi.c: (GST_START_TEST), (gstabi_suite),
	(main):
	* tests/check/libs/struct_i386.h:
	Added ABI check for libs

2005-12-07  Wim Taymans  <wim@fluendo.com>

	* tests/check/Makefile.am:
	And add the struct_i386.h to dist.

2005-12-07  Wim Taymans  <wim@fluendo.com>

	* tests/check/Makefile.am:
	* tests/check/gst/.cvsignore:
	* tests/check/gst/gstabi.c: (GST_START_TEST), (gstabi_suite),
	(main):
	* tests/check/gst/struct_i386.h:
	Added check for ABI compatibility.

2005-12-07  Wim Taymans  <wim@fluendo.com>

	* plugins/elements/gstfakesrc.c: (gst_fake_src_class_init),
	(gst_fake_src_get_times), (gst_fake_src_create):
	Fix broken sync option, fixes #323259

2005-12-07  Wim Taymans  <wim@fluendo.com>

	* gst/gstbuffer.c:
	Small docs update.

	* gst/gstcaps.c: (gst_caps_is_equal):
	Don't assert on NULL <--> X. Fixes #323260

	* gst/gstminiobject.c: (gst_mini_object_replace):
	If we're doing atomic operations, we might just as well use
	the proper way to get an atomic pointer.

	* libs/gst/base/gstbasesink.c: (gst_base_sink_get_position):
	Clean up debugging.

2005-12-07  Michael Smith  <msmith@fluendo.com>

	* gst/parse/grammar.y:
	  Remove handling of { } for threads.

2005-12-06  David Schleef  <ds@schleef.org>

	* libs/gst/base/gstbasetransform.c: speling fix.

2005-12-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/libs/tmpl/gstdataprotocol.sgml:
	* docs/random/omega/testing/gstobject.c:
	* gst/gst.c:
	* gst/gstclock.c:
	* gst/gstelement.c:
	* gst/gstelementfactory.c:
	* gst/gsterror.c:
	* gst/gstevent.c:
	* gst/gstghostpad.c:
	* gst/gstinfo.c:
	* gst/gstpadtemplate.c:
	* gst/gstregistryxml.c:
	* gst/gsttaglist.c:
	* gst/gsttagsetter.c:
	* gst/gsttypefind.c:
	* gst/gstvalue.c:
	* libs/gst/base/gstbasesrc.c:
	* libs/gst/net/gstnetclientclock.c:
	* libs/gst/net/gstnettimeprovider.c:
	* plugins/elements/gstfakesrc.c:
	* plugins/elements/gstfdsrc.c:
	* plugins/elements/gstfilesrc.c:
	* plugins/elements/gstidentity.c:
	* plugins/elements/gstqueue.c:
	* plugins/elements/gsttypefindelement.c:
	* plugins/indexers/gstfileindex.c:
	* plugins/indexers/gstmemindex.c:
	* tests/check/gst/gsttag.c:
	* tests/old/examples/cutter/cutter.c:
	* tests/old/examples/mixer/mixer.c:
	* tests/old/examples/xml/runxml.c: (main):
	* tests/old/testsuite/caps/normalisation.c:
	* tests/old/testsuite/debug/global.c:
	* tests/old/testsuite/parse/parse1.c:
	* tools/gst-xmlinspect.c:
	* win32/common/dirent.c:
	  expand tabs

=== release 0.10.0 ===

2005-12-05   <thomas (at) apestaart (dot) org>

	* configure.ac:
	  releasing 0.10.0, "Maroilles"

2005-12-05  Thomas Vander Stichele  <thomas at apestaart dot org>

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

	* po/LINGUAS:
	* po/zh_CN.po:
	  added Chinese (Traditional) translation

2005-12-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/gst/gstreamer-sections.txt:
	* docs/libs/tmpl/gstdataprotocol.sgml:
	* docs/random/thomasvs/TODO:
	* gst/gstutils.c:
	* gst/gstutils.h:
	  fix docs

2005-12-05  Andy Wingo  <wingo@pobox.com>

	patch by: Wim Taymans <wim@fluendo.com>

	* libs/gst/base/gstbasetransform.c
	(gst_base_transform_prepare_output_buf)
	(gst_base_transform_buffer_alloc):
	* plugins/elements/gstqueue.c (gst_queue_bufferalloc): Call
	alloc_buffer_and_set_caps.

	* gst/gstpad.c (gst_pad_alloc_buffer): Changed to not call
	set_caps on the source pad.
	(gst_pad_alloc_buffer_and_set_caps): New function, does what
	alloc_buffer used to do. Fixes #322874.

	* docs/gst/gstreamer-sections.txt: 
	* docs/design/part-negotiation.txt: 
	* docs/pwg/advanced-negotiation.xml: Update for the alloc_buffer
	changes.

2005-12-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Sebastien Moutte

	* win32/MANIFEST:
	* win32/common/config.h.in:
	* win32/vs6/libgstcontroller.dsp:
	  win32 build fixes

2005-12-05  Wim Taymans  <wim@fluendo.com>

	* gst/gstcaps.c: (gst_caps_is_equal):
	* plugins/elements/gstfakesrc.c: (gst_fake_src_class_init),
	(gst_fake_src_create):
	Back out previous code changes, leave doc updates, file bugs 
	instead. 

2005-12-05  Wim Taymans  <wim@fluendo.com>

	* plugins/elements/gstfakesrc.c: (gst_fake_src_class_init),
	(gst_fake_src_get_times), (gst_fake_src_create):
	* plugins/elements/gstfakesrc.h:
	Fix broken sync code.

2005-12-05  Wim Taymans  <wim@fluendo.com>

	* gst/gstcaps.c: (gst_caps_is_equal):
	Comparing NULL against !NULL yields different caps, not a
	failure.

2005-12-05  Wim Taymans  <wim@fluendo.com>

	* gst/gstpipeline.c:
	Fix small typo in docs.

2005-12-05  Andy Wingo  <wingo@pobox.com>

	patch by: Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gst.c (init_post): remove hard-coded 0.9 location for
	registries/plugins with a MAJORMINOR one.
	(plugin_desc): Rename library from gstcoreleements to
	staticelements. Fixes #323222.

2005-12-05  Tim-Philipp Müller  <tim at centricular dot net>

	* libs/gst/base/gstcollectpads.c: (gst_collect_pads_base_init):
	  Change debug category to 'collectpads' from 'collect_pads'
	  (fixes #323250).

2005-12-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Sebastien Moutte

	* libs/gst/controller/gstinterpolation.c:
	  use convert function for uint64/double
	* win32/vs6/libgstcontroller.dsp:
	  link to GLib

2005-12-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstutils.c: (gst_util_guint64_to_gdouble),
	(gst_util_gdouble_to_guint64), (gst_util_uint64_scale_int64):
	* gst/gstutils.h:
	* tests/check/gst/gstutils.c: (GST_START_TEST), (gst_utils_suite):
	  add tests that seem to show that the guint64/gdouble conversions
	  are correct.

2005-12-02  Wim Taymans  <wim@fluendo.com>

	* gst/gstregistry.c: (gst_registry_add_path):
	* gst/gstregistry.h:
	* gst/gstregistryxml.c:
	Fix docs again.

2005-12-02  Wim Taymans  <wim@fluendo.com>

	* gst/gstutils.c: (gst_util_uint64_scale_int64),
	(gst_util_uint64_scale_int):
	Small cleanup.

	* libs/gst/base/gstbasesink.c: (gst_base_sink_handle_object):
	Add debug log line.

	* libs/gst/base/gstbasetransform.c: (gst_base_transform_event):
	Add FIXME.

2005-12-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* win32/MANIFEST:
	* win32/common/config.h:
	* win32/vs6/gstreamer.dsw:
	* win32/vs6/libgstcoreelements.dsp:
	* win32/vs6/libgstelements.dsp:
	  renamed core elements plugin

2005-12-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* tools/gst-run.c: (compare_major_minor), (find_highest_version),
	(get_candidates):
	  do piece-wise major/minor comparison so 0.9 < 0.10
	  also allow .exe extensions for tools

2005-12-02  Michael Smith  <msmith@fluendo.com>

	* gst/gst.c:
	  Escape a % to make gtkdoc happier; bug 322958.

=== release 0.9.7 ===

2005-12-01   <thomas (at) apestaart (dot) org>

	* configure.ac:
	  releasing 0.9.7, "My Dog Has No Nose"

2005-12-01  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* common/gst-xmlinspect.py:
	* configure.ac:
	* docs/libs/tmpl/gstdataprotocol.sgml:
	* docs/random/release:
	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/de.po:
	* po/en_GB.po:
	* po/fr.po:
	* po/it.po:
	* po/nb.po:
	* po/nl.po:
	* po/ru.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* win32/common/config.h:
	* win32/common/config.h.in:
	* win32/vs6/gst_inspect.dsp:
	* win32/vs6/gst_launch.dsp:
	* win32/vs6/libgstbase.dsp:
	* win32/vs6/libgstelements.dsp:
	* win32/vs6/libgstreamer.dsp:
	* win32/vs7/GStreamer.vcproj:
	* win32/vs7/gst-inspect.vcproj:
	* win32/vs7/gst-launch.vcproj:
	* win32/vs7/libgstbase.vcproj:
	  bump GST_MAJORMINOR to 0.10
	  reset libtool version

2005-12-01  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* po/LINGUAS:
	* po/bg.po:
	  Added Bulgarian translation by (Alexander Shopov)

2005-12-01  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* tests/check/gst/gstplugin.c:
	  fix test

2005-12-01  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* common/gst-xmlinspect.py:
	* common/gtk-doc-plugins.mak:
	* configure.ac:
	* docs/Makefile.am:
	* docs/gst/Makefile.am:
	* docs/gst/gstreamer-docs.sgml:
	* docs/gst/gstreamer-sections.txt:
	* docs/gst/gstreamer.types:
	* docs/gst/gstreamer.types.in:
	* docs/plugins/Makefile.am:
	* docs/plugins/gstreamer-plugins-docs.sgml:
	* docs/plugins/gstreamer-plugins-sections.txt:
	* docs/plugins/gstreamer-plugins.types:
	* docs/plugins/inspect.stamp:
	* docs/plugins/inspect/plugin-coreelements.xml:
	* docs/plugins/inspect/plugin-coreindexers.xml:
	* docs/plugins/scanobj-build.stamp:
	* gstreamer.spec.in:
	* plugins/elements/Makefile.am:
	* plugins/elements/gstelements.c:
	* plugins/elements/gstfakesink.c:
	* plugins/elements/gstfakesrc.c:
	* plugins/elements/gstfilesink.c:
	* plugins/elements/gstfilesrc.c:
	* plugins/elements/gstqueue.c:
	* plugins/indexers/Makefile.am:
	* plugins/indexers/gstindexers.c:
	  document core plugins in a separate document just like all the
	  others
	  rename these plugins to something starting with core

2005-12-01  Andy Wingo  <wingo@pobox.com>

	* gst/gstevent.h (struct _GstEvent): Meant to remove the extra
	padding here before, but it missed the commit.

2005-12-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* libs/gst/controller/gstinterpolation.c:
	  whitespace prices have crashed, we should feel free to use some now
	  use gst_guint64_to_gdouble

2005-12-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* libs/gst/controller/gstcontroller.c:
	* libs/gst/controller/gsthelper.c:
	* libs/gst/controller/gstinterpolation.c:
	* libs/gst/controller/lib.c:
	  wrap config.h include

2005-12-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/gst/gstreamer-sections.txt:
	  update docs

2005-12-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* plugins/elements/gstelements.c:
	* plugins/elements/gstfdsink.c: (gst_fd_sink__base_init),
	(gst_fd_sink__class_init), (gst_fd_sink__init),
	(gst_fd_sink__chain), (gst_fd_sink__set_property),
	(gst_fd_sink__get_property):
	* plugins/elements/gstfdsink.h:
	* plugins/elements/gstfdsrc.c: (_do_init), (gst_fd_src_base_init),
	(gst_fd_src_class_init), (gst_fd_src_init), (gst_fd_src_dispose),
	(gst_fd_src_update_fd), (gst_fd_src_start), (gst_fd_src_stop),
	(gst_fd_src_unlock), (gst_fd_src_set_property),
	(gst_fd_src_get_property), (gst_fd_src_create),
	(gst_fd_src_is_seekable), (gst_fd_src_get_size),
	(gst_fd_src_uri_get_type), (gst_fd_src_uri_get_protocols),
	(gst_fd_src_uri_get_uri), (gst_fd_src_uri_set_uri),
	(gst_fd_src_uri_handler_init):
	* plugins/elements/gstfdsrc.h:
	* plugins/elements/gstqueue.c: (gst_queue_get_type):
	  more anal cleanup

2005-11-30  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* docs/gst/Makefile.am:
	* docs/gst/gstreamer.types.in:
	* gst/Makefile.am:
	  fix the docs build

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

	* configure.ac:
	* gst/Makefile.am:
	* gst/gst.c:
	* gst/gstplugin.h:
	* gst/gstregistry.h:
	* tests/benchmarks/complexity.c:
	* tests/benchmarks/mass-elements.c:
	* tests/check/Makefile.am:
	* tools/Makefile.am:
	* tools/gst-inspect.c:
	* tools/gst-xmlinspect.c:
	  various fixes to make
	  --disable-nls --disable-registry --disable-loadsave
	  --disable-parse --disable-gst-debug
	  work and get the core .so down to 360444 bytes after stripping

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

	* Makefile.am:
	* configure.ac:
	  descend into tests
	* docs/random/thomasvs/TODO:
	* tests/Makefile.am:
	* tests/README:
	  add a README

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

	* win32/GStreamer.vcproj:
	* win32/MANIFEST:
	* win32/Makefile:
	* win32/Makefile.inspect:
	* win32/Makefile.launch:
	* win32/Makefile.register:
	* win32/README.txt:
	* win32/gst-inspect.vcproj:
	* win32/gst-launch.vcproj:
	* win32/gst-register.vcproj:
	* win32/gstelements.vcproj:
	* win32/gstgetbits.def:
	* win32/gstgetbits.vcproj:
	* win32/gstreamer-dbg.def:
	* win32/gstreamer.def:
	* win32/libgstbase.def:
	* win32/libgstbase.vcproj:
	* win32/link_oldruntime.c:
	* win32/mman.c:
	* win32/mman.h:
	* win32/mman.inl:
	* win32/msvc71.sln:
	  move even more stuff, win32/ is nice and clean now

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

	* libs/gst/control/.cvsignore:
	* win32/MANIFEST:
	* win32/config.h:
	* win32/dirent.c:
	* win32/dirent.h:
	* win32/gstbytestream.def:
	* win32/gstbytestream.vcproj:
	* win32/gstconfig.h:
	* win32/gstenumtypes.c:
	* win32/gstenumtypes.h:
	* win32/gstoptimalscheduler.vcproj:
	* win32/gstversion.h:
	* win32/gtchar.h:
	* win32/testsuite/bins.vcproj:
	* win32/testsuite/bytestream.vcproj:
	* win32/testsuite/caps.vcproj:
	* win32/testsuite/cleanup.vcproj:
	* win32/testsuite/clock.vcproj:
	* win32/testsuite/debug.vcproj:
	* win32/testsuite/dlopen.vcproj:
	* win32/testsuite/dynparams.vcproj:
	* win32/testsuite/elements.vcproj:
	* win32/testsuite/ghostpads.vcproj:
	* win32/testsuite/indexers.vcproj:
	* win32/testsuite/negotiation.vcproj:
	* win32/testsuite/parse.vcproj:
	* win32/testsuite/plugin.vcproj:
	* win32/testsuite/refcounting.vcproj:
	* win32/testsuite/schedulers.vcproj:
	* win32/testsuite/states.vcproj:
	* win32/testsuite/tags.vcproj:
	* win32/testsuite/threads.vcproj:
	  remove old win32 stuff that isn't maintained and should be
	  reorganized

2005-11-30  Andy Wingo  <wingo@pobox.com>

	* configure.ac (GST_PKG_DEPS): Revert previous patch, makes
	loading the gst.interfaces python module bork.

	* configure.ac (GST_PKG_DEPS): Use gmodule-no-export-2.0.pc,
	available since GLib 2.2. Fixes #318031.

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

	* Makefile.am:
	* check/.cvsignore:
	* check/Makefile.am:
	* check/elements/.cvsignore:
	* check/elements/fakesrc.c:
	* check/elements/fdsrc.c:
	* check/elements/identity.c:
	* check/generic/.cvsignore:
	* check/generic/states.c:
	* check/gst-libs/.cvsignore:
	* check/gst-libs/controller.c:
	* check/gst-libs/gdp.c:
	* check/gst/.cvsignore:
	* check/gst/capslist.h:
	* check/gst/gst.c:
	* check/gst/gstbin.c:
	* check/gst/gstbuffer.c:
	* check/gst/gstbus.c:
	* check/gst/gstcaps.c:
	* check/gst/gstelement.c:
	* check/gst/gstevent.c:
	* check/gst/gstghostpad.c:
	* check/gst/gstiterator.c:
	* check/gst/gstmessage.c:
	* check/gst/gstminiobject.c:
	* check/gst/gstobject.c:
	* check/gst/gstpad.c:
	* check/gst/gstpipeline.c:
	* check/gst/gstplugin.c:
	* check/gst/gstsegment.c:
	* check/gst/gststructure.c:
	* check/gst/gstsystemclock.c:
	* check/gst/gsttag.c:
	* check/gst/gstutils.c:
	* check/gst/gstvalue.c:
	* check/net/.cvsignore:
	* check/net/gstnetclientclock.c:
	* check/net/gstnettimeprovider.c:
	* check/pipelines/.cvsignore:
	* check/pipelines/cleanup.c:
	* check/pipelines/simple_launch_lines.c:
	* check/pipelines/stress.c:
	* check/states/.cvsignore:
	* check/states/sinks.c:
	* configure.ac:
	* examples/Makefile.am:
	* examples/appreader/.cvsignore:
	* examples/appreader/Makefile.am:
	* examples/appreader/appreader.c:
	* examples/controller/.cvsignore:
	* examples/controller/Makefile.am:
	* examples/controller/audio-example.c:
	* examples/cutter/.cvsignore:
	* examples/cutter/Makefile.am:
	* examples/cutter/cutter.c:
	* examples/cutter/cutter.h:
	* examples/events/Makefile.am:
	* examples/events/seek.c:
	* examples/helloworld/.cvsignore:
	* examples/helloworld/Makefile.am:
	* examples/helloworld/helloworld.c:
	* examples/helloworld2/.cvsignore:
	* examples/helloworld2/Makefile.am:
	* examples/helloworld2/helloworld2.c:
	* examples/launch/.cvsignore:
	* examples/launch/Makefile.am:
	* examples/launch/mp3parselaunch.c:
	* examples/launch/mp3play:
	* examples/manual/.cvsignore:
	* examples/manual/Makefile.am:
	* examples/manual/extract.pl:
	* examples/metadata/Makefile.am:
	* examples/metadata/read-metadata.c:
	* examples/mixer/.cvsignore:
	* examples/mixer/Makefile.am:
	* examples/mixer/mixer.c:
	* examples/mixer/mixer.h:
	* examples/pingpong/.cvsignore:
	* examples/pingpong/Makefile.am:
	* examples/pingpong/pingpong.c:
	* examples/plugins/.cvsignore:
	* examples/plugins/Makefile.am:
	* examples/plugins/example.c:
	* examples/plugins/example.h:
	* examples/pwg/.cvsignore:
	* examples/pwg/Makefile.am:
	* examples/pwg/extract.pl:
	* examples/queue/.cvsignore:
	* examples/queue/Makefile.am:
	* examples/queue/queue.c:
	* examples/queue2/.cvsignore:
	* examples/queue2/Makefile.am:
	* examples/queue2/queue2.c:
	* examples/queue3/.cvsignore:
	* examples/queue3/Makefile.am:
	* examples/queue3/queue3.c:
	* examples/queue4/.cvsignore:
	* examples/queue4/Makefile.am:
	* examples/queue4/queue4.c:
	* examples/retag/.cvsignore:
	* examples/retag/Makefile.am:
	* examples/retag/retag.c:
	* examples/retag/transcode.c:
	* examples/thread/.cvsignore:
	* examples/thread/Makefile.am:
	* examples/thread/thread.c:
	* examples/typefind/.cvsignore:
	* examples/typefind/Makefile.am:
	* examples/typefind/typefind.c:
	* examples/xml/.cvsignore:
	* examples/xml/Makefile.am:
	* examples/xml/createxml.c:
	* examples/xml/runxml.c:
	* tests/Makefile.am:
	* tests/check/Makefile.am:
	* testsuite/.cvsignore:
	* testsuite/Makefile.am:
	* testsuite/Rules:
	* testsuite/caps/.cvsignore:
	* testsuite/caps/Makefile.am:
	* testsuite/caps/app_fixate.c:
	* testsuite/caps/audioscale.c:
	* testsuite/caps/caps.c:
	* testsuite/caps/caps.h:
	* testsuite/caps/caps_strings:
	* testsuite/caps/compatibility.c:
	* testsuite/caps/deserialize.c:
	* testsuite/caps/enumcaps.c:
	* testsuite/caps/eratosthenes.c:
	* testsuite/caps/filtercaps.c:
	* testsuite/caps/fixed.c:
	* testsuite/caps/fraction-convert.c:
	* testsuite/caps/fraction-multiply-and-zero.c:
	* testsuite/caps/intersect2.c:
	* testsuite/caps/intersection.c:
	* testsuite/caps/normalisation.c:
	* testsuite/caps/random.c:
	* testsuite/caps/renegotiate.c:
	* testsuite/caps/sets.c:
	* testsuite/caps/simplify.c:
	* testsuite/caps/string-conversions.c:
	* testsuite/caps/structure.c:
	* testsuite/caps/subtract.c:
	* testsuite/caps/union.c:
	* testsuite/debug/.cvsignore:
	* testsuite/debug/Makefile.am:
	* testsuite/debug/category.c:
	* testsuite/debug/commandline.c:
	* testsuite/debug/global.c:
	* testsuite/debug/output.c:
	* testsuite/debug/printf_extension.c:
	* testsuite/dlopen/.cvsignore:
	* testsuite/dlopen/Makefile.am:
	* testsuite/dlopen/dlopen_gst.c:
	* testsuite/dlopen/loadgst.c:
	* testsuite/elements/.cvsignore:
	* testsuite/elements/Makefile.am:
	* testsuite/elements/gst-inspect-check.in:
	* testsuite/elements/struct_i386.h:
	* testsuite/elements/struct_size.c:
	* testsuite/indexers/.cvsignore:
	* testsuite/indexers/Makefile.am:
	* testsuite/indexers/cache1.c:
	* testsuite/indexers/indexdump.c:
	* testsuite/parse/.cvsignore:
	* testsuite/parse/Makefile.am:
	* testsuite/parse/parse1.c:
	* testsuite/parse/parse2.c:
	* testsuite/plugin/.cvsignore:
	* testsuite/plugin/Makefile.am:
	* testsuite/plugin/README:
	* testsuite/plugin/dynamic.c:
	* testsuite/plugin/linked.c:
	* testsuite/plugin/loading.c:
	* testsuite/plugin/registry.c:
	* testsuite/plugin/static.c:
	* testsuite/plugin/static2.c:
	* testsuite/plugin/testplugin.c:
	* testsuite/plugin/testplugin2.c:
	* testsuite/plugin/testplugin2_s.c:
	* testsuite/plugin/testplugin_s.c:
	* testsuite/refcounting/.cvsignore:
	* testsuite/refcounting/Makefile.am:
	* testsuite/refcounting/bin.c:
	* testsuite/refcounting/element.c:
	* testsuite/refcounting/element_pad.c:
	* testsuite/refcounting/mainloop.c:
	* testsuite/refcounting/mem.c:
	* testsuite/refcounting/mem.h:
	* testsuite/refcounting/object.c:
	* testsuite/refcounting/pad.c:
	* testsuite/refcounting/sched.c:
	* testsuite/refcounting/thread.c:
	* testsuite/states/.cvsignore:
	* testsuite/states/Makefile.am:
	* testsuite/states/bin.c:
	* testsuite/states/locked.c:
	* testsuite/states/parent.c:
	* testsuite/threads/.cvsignore:
	* testsuite/threads/159566.c:
	* testsuite/threads/159852.c:
	* testsuite/threads/Makefile.am:
	* testsuite/threads/queue.c:
	* testsuite/threads/signals.c:
	* testsuite/threads/staticrec.c:
	* testsuite/threads/thread.c:
	* testsuite/threads/threadb.c:
	* testsuite/threads/threadc.c:
	* testsuite/threads/threadd.c:
	* testsuite/threads/threade.c:
	* testsuite/threads/threadf.c:
	* testsuite/threads/threadg.c:
	* testsuite/threads/threadh.c:
	* testsuite/threads/threadi.c:
	  move all of these under tests

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

	* configure.ac:
	* tests/Makefile.am:
	  fix distcheck

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

	* docs/gst/gstreamer-sections.txt:
	* tests/sched/.cvsignore:
	* tests/sched/Makefile.am:
	* tests/sched/cases/(fs-fs).xml:
	* tests/sched/cases/(fs-i-fs).xml:
	* tests/sched/cases/(fs-i-i-fs).xml:
	* tests/sched/cases/(fs-i-q[i-fs]).xml:
	* tests/sched/dynamic-pipeline.c:
	* tests/sched/interrupt1.c:
	* tests/sched/interrupt2.c:
	* tests/sched/interrupt3.c:
	* tests/sched/runtestcases:
	* tests/sched/runxml.c:
	* tests/sched/sched-stress.c:
	* tests/sched/sort.c:
	* tests/sched/testcases:
	* tests/sched/testcases1.tc:
	* tests/seeking/.cvsignore:
	* tests/seeking/Makefile.am:
	* tests/seeking/seeking1.c:
	* tests/threadstate/.cvsignore:
	* tests/threadstate/Makefile.am:
	* tests/threadstate/test1.c:
	* tests/threadstate/test2.c:
	* tests/threadstate/threadstate1.c:
	* tests/threadstate/threadstate2.c:
	* tests/threadstate/threadstate3.c:
	* tests/threadstate/threadstate4.c:
	* tests/threadstate/threadstate5.c:
	  remove obsolete tests
	* configure.ac:
	* tests/bench-complexity.scm:
	* tests/bench-mass_elements.scm:
	* tests/complexity.c:
	* tests/complexity.gnuplot:
	* tests/instantiate/.cvsignore:
	* tests/instantiate/Makefile.am:
	* tests/instantiate/caps.c:
	* tests/mass_elements.c:
	* tests/network-clock-utils.scm:
	* tests/network-clock.scm:
	* tests/plot-data:
	First pass at cleaning up tests/ dir before moving the rest
	Combined with CVS surgery

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

	* po/POTFILES.in:
	  queue has moved, update

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

	* docs/gst/gstreamer-sections.txt:
	  remove double entries from the docs
	* gst/gst_private.h:
	* gst/gstinfo.c: (_gst_debug_init):
	  remove the THREAD debug category
	* gst/Makefile.am:
	* gst/gstqueue.c:
	* gst/gstqueue.h:
	* docs/gst/gstreamer.types:
	* plugins/elements/gstqueue.c: (gst_queue_get_type),
	(gst_queue_init), (gst_queue_finalize), (gst_queue_change_state):
	  completely move queue and fix up debugging categories

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

	* plugins/elements/gstidentity.c: (gst_identity_transform_ip):
	  make initialization portable, using LL is not

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

	* win32/common/gstconfig.h:
	  add large padding

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

	* win32/common/libgstreamer.def:
	  rename symbols; sort base section

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

	* gst/gstclock.c: (do_linear_regression):
	  remove crack non-portable handrolled DEBUG macro

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

	* docs/random/release:
	  update notes
	* win32/common/gstenumtypes.c: (register_gst_object_flags),
	(gst_object_flags_get_type), (register_gst_bin_flags),
	(gst_bin_flags_get_type), (register_gst_buffer_flag),
	(gst_buffer_flag_get_type), (register_gst_bus_flags),
	(gst_bus_flags_get_type), (register_gst_bus_sync_reply),
	(gst_bus_sync_reply_get_type), (register_gst_caps_flags),
	(gst_caps_flags_get_type), (register_gst_clock_return),
	(gst_clock_return_get_type), (register_gst_clock_entry_type),
	(gst_clock_entry_type_get_type), (register_gst_clock_flags),
	(gst_clock_flags_get_type), (register_gst_state),
	(gst_state_get_type), (register_gst_state_change_return),
	(gst_state_change_return_get_type), (register_gst_state_change),
	(gst_state_change_get_type), (register_gst_element_flags),
	(gst_element_flags_get_type), (register_gst_core_error),
	(gst_core_error_get_type), (register_gst_library_error),
	(gst_library_error_get_type), (register_gst_resource_error),
	(gst_resource_error_get_type), (register_gst_stream_error),
	(gst_stream_error_get_type), (register_gst_event_type_flags),
	(gst_event_type_flags_get_type), (register_gst_event_type),
	(gst_event_type_get_type), (register_gst_seek_type),
	(gst_seek_type_get_type), (register_gst_seek_flags),
	(gst_seek_flags_get_type), (register_gst_format),
	(gst_format_get_type), (register_gst_index_certainty),
	(gst_index_certainty_get_type), (register_gst_index_entry_type),
	(gst_index_entry_type_get_type),
	(register_gst_index_lookup_method),
	(gst_index_lookup_method_get_type), (register_gst_assoc_flags),
	(gst_assoc_flags_get_type), (register_gst_index_resolver_method),
	(gst_index_resolver_method_get_type), (register_gst_index_flags),
	(gst_index_flags_get_type), (register_gst_debug_level),
	(gst_debug_level_get_type), (register_gst_debug_color_flags),
	(gst_debug_color_flags_get_type), (register_gst_iterator_result),
	(gst_iterator_result_get_type), (register_gst_iterator_item),
	(gst_iterator_item_get_type), (register_gst_message_type),
	(gst_message_type_get_type), (register_gst_mini_object_flags),
	(gst_mini_object_flags_get_type), (register_gst_pad_link_return),
	(gst_pad_link_return_get_type), (register_gst_flow_return),
	(gst_flow_return_get_type), (register_gst_activate_mode),
	(gst_activate_mode_get_type), (register_gst_pad_direction),
	(gst_pad_direction_get_type), (register_gst_pad_flags),
	(gst_pad_flags_get_type), (register_gst_pad_presence),
	(gst_pad_presence_get_type), (register_gst_pad_template_flags),
	(gst_pad_template_flags_get_type), (register_gst_pipeline_flags),
	(gst_pipeline_flags_get_type), (register_gst_plugin_error),
	(gst_plugin_error_get_type), (register_gst_plugin_flags),
	(gst_plugin_flags_get_type), (register_gst_rank),
	(gst_rank_get_type), (register_gst_query_type),
	(gst_query_type_get_type), (register_gst_tag_merge_mode),
	(gst_tag_merge_mode_get_type), (register_gst_tag_flag),
	(gst_tag_flag_get_type), (register_gst_task_state),
	(gst_task_state_get_type), (register_gst_alloc_trace_flags),
	(gst_alloc_trace_flags_get_type),
	(register_gst_type_find_probability),
	(gst_type_find_probability_get_type), (register_gst_uri_type),
	(gst_uri_type_get_type), (register_gst_parse_error),
	(gst_parse_error_get_type):
	* win32/common/gstenumtypes.h:
	* win32/common/gstversion.h:
	  update visual studio generated files

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

	* win32/vs6/libgstbase.dsp:
	* win32/vs6/libgstelements.dsp:
	  update project files for new locations

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

	* Makefile.am:
	  remove some files
	* README:
	  reinstate and update
	* DEVEL:
	* REQUIREMENTS:
	  removed
	* LICENSE:
	* docs/random/LICENSE:
	  moved to random

2005-11-30  Edward Hervey  <edward@fluendo.com>

	* gst/gsttypefind.c: (gst_type_find_register):
	* gst/gsttypefind.h:
	* gst/gsttypefindfactory.c: (gst_type_find_factory_init),
	(gst_type_find_factory_dispose):
	* gst/gsttypefindfactory.h:
	Fix memory leak in GstTypeFindFactory.

2005-11-29  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* gst/gst.c:
	* plugins/elements/Makefile.am:
	* plugins/elements/gstelements.c:
	* plugins/elements/gstqueue.c:
	  move queue from core to the elements plugin

2005-11-29  Andy Wingo  <wingo@pobox.com>

	* libs/gst/base/gstbasetransform.h: 
	* libs/gst/base/gstbasesrc.h: 
	* libs/gst/base/gstbasesink.h: en-LARGE the padding.

	* gst/gstconfig.h.in (GST_PADDING_LARGE): New define, the number
	of pointers by which to pad very extensible base classes (like the
	ones in libs/gst/base).

2005-11-29  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* docs/gst/gstreamer-docs.sgml:
	* docs/gst/gstreamer-sections.txt:
	* docs/libs/gstreamer-libs-docs.sgml:
	* docs/libs/gstreamer-libs-sections.txt:
	  moving documentation from core to lib

2005-11-29  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* check/Makefile.am:
	* configure.ac:
	* docs/gst/Makefile.am:
	* gst/Makefile.am:
	* gst/base/.cvsignore:
	* gst/base/Makefile.am:
	* gst/base/README:
	* gst/base/gstadapter.c:
	* gst/base/gstadapter.h:
	* gst/base/gstbasesink.c:
	* gst/base/gstbasesink.h:
	* gst/base/gstbasesrc.c:
	* gst/base/gstbasesrc.h:
	* gst/base/gstbasetransform.c:
	* gst/base/gstbasetransform.h:
	* gst/base/gstcollectpads.c:
	* gst/base/gstcollectpads.h:
	* gst/base/gstpushsrc.c:
	* gst/base/gstpushsrc.h:
	* gst/base/gsttypefindhelper.c:
	* gst/base/gsttypefindhelper.h:
	* gst/check/Makefile.am:
	* gst/check/gstcheck.c:
	* gst/check/gstcheck.h:
	* gst/net/Makefile.am:
	* gst/net/gstnet.h:
	* gst/net/gstnetclientclock.c:
	* gst/net/gstnetclientclock.h:
	* gst/net/gstnettimepacket.c:
	* gst/net/gstnettimepacket.h:
	* gst/net/gstnettimeprovider.c:
	* gst/net/gstnettimeprovider.h:
	* libs/gst/Makefile.am:
	* libs/gst/base/Makefile.am:
	* libs/gst/base/gstbasetransform.c:
	* libs/gst/check/Makefile.am:
	* plugins/elements/Makefile.am:
	* po/POTFILES.in:
	  CVS surgery + support to move base, check, and net out of gst
	  and into libs/gst

2005-11-29  Andy Wingo  <wingo@pobox.com>

	* gst/gstevent.h (struct _GstEvent): Only one pointer of padding.

	* gst/gststructure.h (struct _GstStructure): Only one pointer of
	padding.

	* gst/gstquery.h (struct _GstQuery): Only one pointer of padding.

	* gst/gstpluginfeature.h: Remove a comment in PluginFeature.

	* gst/gstplugin.h (struct _GstPluginClass): Add some padding.

	* gst/gstobject.h: (struct _GstObject): Only one pointer of
	padding; reduces object size by about 30%. We don't expect
	anything else to go into gstobject.

	* gst/gstminiobject.h (struct _GstMiniObject)
	(struct _GstMiniObjectClass): Only one pointer of padding; the
	payload is only a pointer and two ints anyway. For the class there
	are only two methods as well.
	
	* gst/gstelement.h (struct _GstElementClass): Removed
	the state_changed signal callback, it is not used.

2005-11-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/gst/gstreamer.types:
	  fix includes, though they are a little dinky

2005-11-29  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* check/Makefile.am:
	  look in the right place for elements, a lot more chance of
	  success
	* gst/Makefile.am:
	  remove indexers and elements subdirs
	* plugins/Makefile.am:
	  make indexers conditional

2005-11-29  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* Makefile.am:
	* configure.ac:
	* plugins/elements/Makefile.am:
	* plugins/elements/gstcapsfilter.c:
	* plugins/elements/gstfilesink.c:
	* plugins/elements/gstfilesrc.c:
	* plugins/elements/gstidentity.c:
	* plugins/indexers/Makefile.am:
	  do CVS surgery and related build fixery to move elements
	  and indexers in a new gstreamer/plugins directory, out of the
	  gst/ directory

2005-11-29  Andy Wingo  <wingo@pobox.com>

	* check/Makefile.am:
	* pkgconfig/gstreamer-net-uninstalled.pc.in:
	* pkgconfig/gstreamer-net.pc.in:
	* gst/net/Makefile.am: Rename gstnet-tempname to gstnet. Fixes
	#322257.

2005-11-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* tools/Makefile.am:
	* tools/gst-complete.1.in:
	* tools/gst-complete.c:
	* tools/gst-compprep.1.in:
	* tools/gst-compprep.c:
	  removing -compprep and -complete

2005-11-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstevent.c: (gst_event_new_new_segment),
	(gst_event_parse_new_segment):
	* gst/gstevent.h:
	  fix #320529 - clean up new_segment API and structure.
	  Let's hope everyone was using the methods, and not the structure.

2005-11-29  Edward Hervey  <edward@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
	(gst_base_sink_event), (gst_base_sink_do_sync),
	(gst_base_sink_activate_pull), (gst_base_sink_change_state):
	Properly handle non GST_FORMAT_TIME segment
	* gst/elements/gstidentity.c: (gst_identity_transform_ip):
	Properly handle non GST_FORMAT_TIME segment
	* gst/gstsegment.c:
	This function is valid if the accumulator is 0 and the format
	is different from the requested format.
	
2005-11-29  Jan Schmidt  <thaytan@mad.scientist.com>

	* docs/gst/gstreamer-sections.txt:
	Add gst_query_new_seeking and gst_query_parse_seeking to the
	docs.

2005-11-29  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/base/gstbasetransform.c: (gst_base_transform_buffer_alloc):
	  Treat a pad alloc with new caps the same as if we were not
	  negotiated, in order to allow a changing upstream output
	  to produce a new format of data.

2005-11-29  Edward Hervey  <edward@fluendo.com>

	* gst/base/gstbasetransform.c: (gst_base_transform_class_init),
	(gst_base_transform_event), (gst_base_transform_eventfunc):
	The event virtual method is now properly implemented, with a default
	handler
	Sub classes should call the parent_class event method. They should
	return FALSE if they had a problem handling the given event, or don't
	want GstBaseTransform to send that even downstream
	* gst/elements/gstidentity.c: (gst_identity_class_init),
	(gst_identity_init), (gst_identity_event),
	(gst_identity_transform_ip), (gst_identity_set_property),
	(gst_identity_get_property):
	* gst/elements/gstidentity.h:
	Added the single-segment boolean property.
	If set to TRUE, it will output a single segment of data, starting from
	0, will eat up all incoming newsegment, and modify the timestamp of the
	buffers accordingly

2005-11-29  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstghostpad.c: (gst_proxy_pad_get_target):
	  Don't ref NULL target pad (#322751). Improve docs.

2005-11-29  Michael Smith  <msmith@fluendo.com>

	* gst/gstregistryxml.c: (load_plugin):
	  Don't crash if we failed to load a feature from a plugin. 

2005-11-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/pipelines/simple_launch_lines.c: (setup_pipeline),
	(GST_START_TEST):
	  use more check API and less GLib API

2005-11-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	  don't run checks if we don't have check
	* common/check.mak:
	  remove the registry when running make torture
	* docs/gst/gstreamer-sections.txt:
	  remove second multiply
	* gst/gstqueue.c: (gst_queue_loop):
	  fix a compile warning when disabling debug

2005-11-28  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/gstinfo.h:
	Hey! Let's print the pad name if the pointer != NULL instead
	of when it == NULL :-)

2005-11-28  Wim Taymans  <wim@fluendo.com>

	* check/gst/gstutils.c: (GST_START_TEST):
	Updated check, add some scaling accuracy checking code.

	* gst/gstutils.c: (gst_util_div128_64),
	(gst_util_uint64_scale_int64), (gst_util_uint64_scale),
	(gst_util_uint64_scale_int):
	Fix 6 times faster division code. Optimize for common 
	1/1 and less common X/1 cases.

2005-11-28  Wim Taymans  <wim@fluendo.com>

	* check/gst/gstutils.c: (GST_START_TEST), (gst_utils_suite):
	More checks.

	* gst/gstclock.c: (gst_clock_finalize), (gst_clock_set_master),
	(do_linear_regression), (gst_clock_add_observation):
	Cleanups.
	Release lock when the clock cannot be slaved.
	Catch the case where the regression returned an invalid denominator.

	* gst/gstutils.c: (gst_util_div128_64_iterate),
	(gst_util_div128_64), (gst_util_uint64_scale_int64),
	(gst_util_uint64_scale), (gst_util_uint64_scale_int):
	Add protentially more performant non-iterative 128/64 divide function
	that unfortunatly does not work yet.
	Shortcut the trivial 0/X = 0 case.
	Remove the warnings on overflow.

2005-11-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstplugin.c: (gst_plugin_register_func):
	  everything causing a plugin not to load should be at least a WARNING

2005-11-28  Stefan Kost  <ensonic@users.sf.net>

	* docs/random/ensonic/dparams.txt:
	  some TODOs for the next dev cycle
	* libs/gst/controller/gstcontroller.c:
	(gst_controlled_property_set_interpolation_mode),
	(gst_controlled_property_new):
	* libs/gst/controller/gstcontroller.h:
	  use base type to assign acccessor functions

2005-11-28  Jan Schmidt  <thaytan@mad.scientist.com>

	* check/Makefile.am:
	Oops, that should have been top_srcdir

2005-11-28  Jan Schmidt  <thaytan@mad.scientist.com>

	* check/Makefile.am:
	* check/elements/fdsrc.c: (GST_START_TEST):
	Use a cmdline define to specify the location of a file to use for
	testing, to avoid breaking distcheck.

2005-11-28  Andy Wingo  <wingo@pobox.com>

	* gst/gstpad.c (fixate_value): Use array functions for arrays.

2005-11-28  Edward Hervey  <edward@fluendo.com>

	* tools/gst-launch.c: (main):
	Clarify the output strings, makes it easier to translate.
	Fixes #322626

2005-11-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/Makefile.am:
	  don't try and build net if we don't even have <sys/socket.h>

2005-11-27  Jan Schmidt  <thaytan@mad.scientist.com>

	* check/Makefile.am:
	* check/elements/fdsrc.c: (event_func), (setup_fdsrc),
	(cleanup_fdsrc), (GST_START_TEST), (fdsrc_suite), (main):
	  Add tests for fdsrc seekability

	* gst/elements/gstfdsrc.c: (gst_fdsrc_class_init),
	(gst_fdsrc_init), (gst_fdsrc_update_fd), (gst_fdsrc_start),
	(gst_fdsrc_set_property), (gst_fdsrc_is_seekable),
	(gst_fdsrc_get_size), (gst_fdsrc_uri_set_uri):
	* gst/elements/gstfdsrc.h:
	  fdsrc should not be a 'live' source.
	  Implement seeking on seekable fd's.

	* gst/gstquery.c: (gst_query_new_seeking),
	(gst_query_parse_seeking):
	* gst/gstquery.h:
	  Implement SEEKING query functions: 
	    *_new_seeking and *_parse_seeking

2005-11-27  Stefan Kost  <ensonic@users.sf.net>

	* gst/gstelement.c: (gst_element_dispose):
	  don't loop forever

	* gst/gstiterator.c:
	* gst/gststructure.c:
	  doc fixes

	* libs/gst/controller/gstcontroller.c:
	(gst_controlled_property_set_interpolation_mode):
	* libs/gst/controller/gstcontroller.h:
	* libs/gst/controller/gstinterpolation.c:
	(interpolate_none_get_enum_value_array):
	  support controlling enums

2005-11-27  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstvalue.c:
	  Improve documentation for gst_value_union().

	* gst/gstvalue.h:
	  Change return value for union, intersect and subtract functions
	  from gint to gboolean.

2005-11-27  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstvalue.c: (gst_value_serialize_any_list),
	(gst_value_transform_any_list_string),
	(gst_value_deserialize_list), (gst_value_deserialize_array),
	(gst_value_set_int_range), (gst_value_deserialize_int_range),
	(gst_value_set_double_range), (gst_value_deserialize_double_range),
	(gst_value_set_fraction_range_full),
	(gst_value_deserialize_fraction_range),
	(gst_value_deserialize_caps), (gst_value_deserialize_buffer),
	(gst_value_deserialize_boolean),
	(gst_value_deserialize_int_helper), (gst_value_deserialize_double),
	(gst_value_serialize_float), (gst_value_deserialize_float),
	(gst_string_wrap), (gst_value_deserialize_string),
	(gst_value_deserialize_enum), (gst_value_deserialize_flags),
	(gst_value_union_int_range_int_range),
	(gst_value_intersect_int_range_int_range),
	(gst_value_intersect_double_range_double_range),
	(gst_value_create_new_range), (gst_value_subtract_int_range_int),
	(gst_value_subtract_int_range_int_range),
	(gst_value_subtract_double_double_range),
	(gst_value_subtract_double_range_double_range),
	(gst_value_deserialize_fraction):
	* gst/gstvalue.h:
	  Use gint, gdouble and gchar in our API instead of int, double and
	  char (and make usage in gstvalue.c more consistent).

2005-11-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/Makefile.am:
	* libs/gst/controller/Makefile.am:
	* libs/gst/dataprotocol/Makefile.am:
	  fix up Makefile.am and remove GST_ENABLE_NEW

2005-11-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* gst/Makefile.am:
	* gst/base/Makefile.am:
	* gst/check/Makefile.am:
	* gst/elements/Makefile.am:
	* gst/net/Makefile.am:
	  update LDFLAGS use some more

2005-11-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/m4/gst-doc.m4:
	  Fixes #312589

2005-11-26  Edward Hervey  <edward@fluendo.com>

	* gst/gstpluginfeature.c: (gst_plugin_feature_load):
	This shouldn't issue a g_warning since it returns NULL if it
	couldn't find the plugin, and all functions using this behave
	properly on a NULL return. Switching to a GST_WARNING.

2005-11-25  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/gstbin.c: (gst_bin_handle_message_func):
	Don't leak clock messages.

2005-11-25  Wim Taymans  <wim@fluendo.com>

	* gst/gstutils.c: (gst_util_uint64_scale_int64),
	(gst_util_uint64_scale_int):
	Optimisations, remove unneeded vars.

2005-11-25  Wim Taymans  <wim@fluendo.com>

	* check/gst/gstutils.c: (GST_START_TEST), (gst_utils_suite):
	Added more checks for the high precision uint64 cases.

	* gst/gstutils.c: (gst_util_uint64_scale_int64),
	(gst_util_uint64_scale), (gst_util_uint64_scale_int):
	Implement high precision (guint64 * guint64) / guint64.

2005-11-24  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesrc.c: (gst_base_src_query):
	Fix wrong percentage query.

	* gst/gstutils.c: (gst_util_uint64_scale),
	(gst_util_uint64_scale_int):
	Add some more common cases that can be handled 
	efficiently to _scale.

2005-11-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/gst/gstminiobject.c: (thread_ref), (GST_START_TEST),
	(gst_mini_object_suite):
	  don't use check calls from threads; check probably isn't
	  threadsafe and using a lock to make it threadsafe would
	  defeat the purpose of this check
	* gst/check/gstcheck.c:
	* gst/check/gstcheck.h:
	  use GST_DEBUG some more

2005-11-24  Wim Taymans  <wim@fluendo.com>

	* gst/gstutils.c: (gst_util_uint64_scale),
	(gst_util_uint64_scale_int):
	Chain trivial case to _scale_int.

2005-11-24  Wim Taymans  <wim@fluendo.com>

	* check/gst/gstutils.c: (GST_START_TEST), (gst_utils_suite):
	Added test for scaling.

	* gst/gstclock.h:
	Small doc fix.

	* gst/gstutils.c: (gst_util_uint64_scale_int):
	Implemented high precision scaling code.

2005-11-24  Stefan Kost  <ensonic@users.sf.net>

	* gst/gstinfo.h:
	  do not crash on pad==NULL

2005-11-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	Patch by: Stefan Kost

	* common/gtk-doc.mak:
	* docs/gst/Makefile.am:
	* docs/libs/Makefile.am:
	  Fix distcheck issues for the libraries docs build
	  Closes #319599.

2005-11-24  Michael Smith <msmith@fluendo.com>

	* docs/manual/basics-helloworld.xml:
	  Fix bug #315027: memory leak in example code in docs.

2005-11-24  Michael Smith <msmith@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
	  Unlock the PREROLL_LOCK in a failure case.

2005-11-24  Wim Taymans  <wim@fluendo.com>

	* docs/gst/gstreamer-sections.txt:
	* gst/base/gstadapter.h:
	* gst/base/gstbasesink.h:
	* gst/base/gstbasesrc.h:
	* gst/base/gstbasetransform.h:
	* gst/base/gstpushsrc.h:
	* gst/elements/gstfakesink.h:
	* gst/elements/gstfakesrc.c: (gst_fake_src_data_get_type):
	* gst/elements/gstfakesrc.h:
	* gst/elements/gstfilesink.h:
	* gst/elements/gstfilesrc.h:
	* gst/gst.c:
	* gst/gstbin.c:
	* gst/gstbuffer.c: (_gst_buffer_copy):
	* gst/gstbus.h:
	* gst/gstcaps.c:
	* gst/gstchildproxy.c:
	* gst/gstclock.c:
	* gst/gstelement.c:
	* gst/gstelementfactory.c:
	* gst/gstelementfactory.h:
	* gst/gstevent.c:
	* gst/gstghostpad.h:
	* gst/gstindex.h:
	* gst/gstinterface.h:
	* gst/gstminiobject.c:
	* gst/gstminiobject.h:
	* gst/gstpad.c:
	* gst/gstpad.h:
	* gst/gstpadtemplate.h:
	* gst/gstpipeline.h:
	* gst/gstpluginfeature.h:
	* gst/gstquery.h:
	* gst/gstqueue.h:
	* gst/gsttaglist.c:
	* gst/gsttaglist.h:
	* gst/gsttagsetter.c:
	* gst/gsttagsetter.h:
	* gst/gsttrace.c:
	* gst/gsttrace.h:
	* gst/gsttypefind.h:
	* gst/gsturi.h:
	* gst/gstvalue.c:
	* gst/net/gstnetclientclock.c:
	* gst/net/gstnetclientclock.h:
	* gst/net/gstnettimepacket.c:
	* gst/net/gstnettimeprovider.c:
	* gst/net/gstnettimeprovider.h:
	Doc fixes.

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, "Always On Time"

2005-11-23  Wim Taymans  <wim@fluendo.com>

	* docs/gst/gstreamer-sections.txt:
	* gst/glib-compat.c:
	* gst/gsttagsetter.c:
	* gst/gstvalue.c:
	* gst/net/gstnetclientclock.c:
	* gst/net/gstnettimepacket.h:
	Doc updates.

2005-11-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/faq/using.xml:
	* docs/libs/tmpl/gstcontrol.sgml:
	* docs/manual/advanced-dparams.xml:
	* docs/manual/appendix-checklist.xml:
	* docs/manual/basics-elements.xml:
	* docs/pwg/other-source.xml:
	* docs/random/moving-plugins:
	* gst/gstpad.c:
	* tools/gst-launch.1.in:
	  remove mentions of sinesrc

2005-11-23  Michael Smith <msmith@fluendo.com>

	* docs/gst/gstreamer-sections.txt:
	  Update for new API and API changes.
	* gst/gstobject.h:
	  Documentation fix: GST_TRYLOCK -> GST_OBJECT_TRYLOCK
	* gst/gstvalue.c:
	  Documentation typo fix.
	* gst/net/gstnettimepacket.c:
	  Documentation fixes for arguments.

2005-11-23  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/gststructure.c: (gst_structure_get_fraction),
	(gst_structure_parse_value),
	(gst_structure_fixate_field_nearest_fraction):
	* gst/gststructure.h:
	* gst/gstutils.c: (gst_util_uint64_scale_int):
	* gst/gstutils.h:
	* scripts/update-funcnames:
	API Changes. 
	Rename gst_util_clock_time_scale to gst_util_uint64_scale_int
	Make gst_structure_fixate_field_nearest_fraction take a numerator
	and denominator argument instead of a GValue
	add gst_structure_get_fraction helper function.

2005-11-23  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-TODO.txt:
	Update TODO.

	* gst/net/gstnetclientclock.c: (gst_net_client_clock_thread):
	* gst/net/gstnetclientclock.h:
	Use parent fields for timeout and window_size.

2005-11-23  Andy Wingo  <wingo@pobox.com>

	* check/net/gstnetclientclock.c (test_functioning): Adjust to
	rate_num/rate_denom change.

	* gst/net/gstnetclientclock.c
	(gst_net_client_clock_observe_times): Take the SLAVE_LOCK not the
	OBJECT_LOCK. Don't call add_observation with the lock.

	* gst/gstclock.c (gst_clock_init): Initialize the rate as a
	fraction.
	(gst_clock_adjust_unlocked): Adjust using uint64_scale and the
	rate fraction.
	(gst_clock_set_calibration, gst_clock_get_calibration): Change to
	deal with rate as a fraction whose numerator and denominator are
	GstClockTime values.
	(gst_clock_set_master): Only use the OBJECT_LOCK to set the
	master; the other fields are protected by the SLAVE_LOCK.
	(do_linear_regression): Note that this must be called with the
	SLAVE_LOCK.
	(gst_clock_add_observation): Take the SLAVE_LOCK, not the
	OBJECT_LOCK. Call set_calibration instead of touching the
	variables directly.
	(gst_clock_set_property, gst_clock_get_property): Protect
	master/slave parameters with the SLAVE_LOCK.

	* gst/gstclock.h (GstClock): Remove rate, add rate_numerator and
	rate_denominator. PR3C1S3. Add a new lock, the SLAVE_LOCK, and
	note that all of the instance variables that add_observation and
	the set_master functions use are protected by that lock and not
	the OBJECT_LOCK.
	(GST_CLOCK_SLAVE_LOCK, GST_CLOCK_SLAVE_UNLOCK): New macros.

	* gst/gstclock.c (gst_clock_add_observation): No longer requires
	the caller to take the object lock.

2005-11-23  Wim Taymans  <wim@fluendo.com>

	* gst/gsterror.c: (_gst_core_errors_init):
	* gst/gsterror.h:
	Add error for clock stuff.

	* gst/gstpipeline.c: (gst_pipeline_change_state),
	(gst_pipeline_set_clock):
	Post clock error when clock cannot be used in a pipeline.

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

	* docs/gst/gstreamer-sections.txt:
	  make two symbols from gstinfo private for the docs
	* gst/base/gstcollectpads.h:
	* gst/gstutils.c:
	  fix doc typos, update docs

2005-11-22  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_class_init),
	(gst_base_sink_wait), (gst_base_sink_do_sync),
	(gst_base_sink_handle_event):
	* gst/base/gstbasesink.h:
	No need to store the clock, the parent element class already
	has it.

	* gst/gstbin.c: (gst_bin_set_clock_func), (gst_bin_add_func):
	Updates for clock_set returning a gboolean

	* gst/gstclock.c: (gst_clock_entry_new), (gst_clock_id_wait),
	(gst_clock_id_wait_async), (gst_clock_class_init),
	(gst_clock_init), (gst_clock_finalize),
	(gst_clock_get_internal_time), (gst_clock_get_time),
	(gst_clock_slave_callback), (gst_clock_set_master),
	(gst_clock_get_master), (do_linear_regression),
	(gst_clock_add_observation), (gst_clock_set_property),
	(gst_clock_get_property):
	* gst/gstclock.h:
	Implement master/slave. When setting a clock as a slave, a
	periodic timeout is scheduled to sample master and slave times.
	Then the slave clock is recalibrated to match offset and rate
	of the master clock.
	Update logging a bit.
	Add flag so that a clock can state that is cannot be slaved to
	another clock.

	* gst/gstelement.c: (gst_element_set_clock):
	* gst/gstelement.h:
	The set clock returns a gboolean for when an element cannot
	deal with the selected clock in the pipeline. 

	* gst/gstpipeline.c: (gst_pipeline_change_state),
	(gst_pipeline_set_clock):
	* gst/gstpipeline.h:
	Handle the case where the selected clock cannot be set on
	the pipeline.

	* gst/net/gstnetclientclock.c: (gst_net_client_clock_class_init),
	(gst_net_client_clock_init), (gst_net_client_clock_finalize),
	(gst_net_client_clock_set_property),
	(gst_net_client_clock_get_property),
	(gst_net_client_clock_observe_times):
	* gst/net/gstnetclientclock.h:
	Use regression code in GstClock parent, remove duplicated
	functionality.

2005-11-22  Michael Smith <msmith@fluendo.com>

	* gst/gstutils.c: (gst_util_clock_time_scale):
	* gst/gstutils.h:
	* docs/gst/gstreamer-sections.txt:
	  Rename method to have extra underscore.

2005-11-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/elements/Makefile.am:
	* gst/elements/gstfakesink.c: (gst_fake_sink_state_error_get_type):
	* gst/elements/gstfakesrc.c: (gst_fake_src_data_get_type),
	(gst_fake_src_sizetype_get_type), (gst_fake_src_filltype_get_type),
	(gst_fake_src_init), (gst_fake_src_prepare_buffer),
	(gst_fake_src_alloc_buffer), (gst_fake_src_get_size):
	* gst/elements/gstfakesrc.h:
	* gst/gstqueue.c: (queue_leaky_get_type):
	  correctly fix GEnumValues so that nick is the short lowercase
	  dashed tag
	* tools/gst-inspect.c: (print_element_properties_info):
	  also show the nick, since it's useful to use from parse_launch
	  syntax
	  Fixes #322139

2005-11-22  Michael Smith <msmith@fluendo.com>

	* gst/gstutils.c: (gst_util_clocktime_scale):
	* gst/gstutils.h:
	* docs/gst/gstreamer-sections.txt:
	  Add util method for scaling a clocktime by a fraction. Useful 
	  implementation is left as an exercise for the reader.

2005-11-22  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/gstvalue.c: (gst_value_collect_fraction_range):
	If needed, allocate storage in the destination value during
	collection.

2005-11-22  Edward Hervey  <edward@fluendo.com>

	* docs/gst/gstreamer-sections.txt:
	* gst/Makefile.am:
	* gst/gst.h:
	* gst/gsturitype.c:
	* gst/gsturitype.h:
	* gst/gstutils.c: (gst_util_set_object_arg):
	* tools/gst-compprep.c: (main):
	* tools/gst-inspect.c: (print_element_properties_info):
	Removed GstURI, closes bug #321061

2005-11-22  Jan Schmidt  <thaytan@mad.scientist.com>

	* check/gst/gststructure.c: (GST_START_TEST):
	* gst/gststructure.c: (gst_structure_parse_value):
	  Oops, broke automatic string type parsing.
	  Add a test to catch it in future.

2005-11-22  Andy Wingo  <wingo@pobox.com>

	* gst/gsttagsetter.c (gst_tag_setter_get_tag_merge_mode) 
	(gst_tag_setter_set_tag_merge_mode, gst_tag_setter_get_tag_list):
	Actually rename the function implementations. Grr.

2005-11-22  Jan Schmidt  <thaytan@mad.scientist.com>

	* check/gst/capslist.h:
	  Comment test cases
	* check/gst/gststructure.c: (GST_START_TEST),
	(gst_structure_suite):
	  Test automatic value type detection in gst_structure_from_string.
	* gst/gststructure.c: (gst_structure_parse_value):
	  Add fraction as a type we try and guess automatically in
	  caps/structure strings.

2005-11-22  Andy Wingo  <wingo@pobox.com>

	patch by: Torsten Schoenfeld <kaffeetisch gmx de>

	* gst/gsttagsetter.h:
	* gst/gsttagsetter.c: (gst_tag_setter_merge_tags)
	(gst_tag_setter_add_tags, gst_tag_setter_add_tag_values)
	(gst_tag_setter_add_tag_valist)
	(gst_tag_setter_add_tag_valist_values): Renamed from _merge, _add,
	_add_values, _add_valist, and _add_valist_values. Since this is an
	interface the function suffixes should be more explicit so
	language binding don't end up with element.add_valist ->
	gst_tag_setter_add_valist, for example. Fixes #322069.

2005-11-22  Jan Schmidt  <thaytan@mad.scientist.com>

	* check/gst/gstcaps.c: (GST_START_TEST):
	  Extend caps string tests to check that a caps to string
	  conversion is reversible and produces the same caps.

	* gst/gststructure.c: (gst_structure_value_get_generic_type):
	  Output "fraction" as the generic type fraction range, so caps
	  serialisation and deserialisation works.
	* check/gst/capslist.h:
	* gst/gstvalue.c: (gst_value_deserialize_fraction):
	  Support 'MIN' and 'MAX' for deserialising fractions.

2005-11-22  Andy Wingo  <wingo@pobox.com>

	* gst/gstevent.h (gst_event_new_new_segment)
	(gst_event_parse_new_segment, gst_event_new_buffer_size)
	(gst_event_parse_buffer_size, gst_ghost_pad_new_no_target):
	Renamed from *_newsegment, *_buffersize, *_notarget.

	* scripts/update-funcnames: New script, performs the changes
	listed above.

2005-11-22  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
	Make sure the GstFlowReturn is returned.

	* gst/gstbus.c: (gst_bus_add_signal_watch_full),
	(gst_bus_add_signal_watch):
	* gst/gstbus.h:
	add gst_bus_add_signal_watch_full.

	* gst/gstplugin.c: (gst_plugin_load_file):
	Small style cleanup.

2005-11-22  Jan Schmidt  <thaytan@mad.scientist.com>

	* check/gst/gstevent.c: (test_event), (GST_START_TEST):
	  Block the fakesrc srcpad when we send an event, to avoid
	  contention on the stream_lock causing random test failures.

2005-11-22  Jan Schmidt  <thaytan@mad.scientist.com>

	* check/gst/gstvalue.c: (GST_START_TEST):
	* gst/gstvalue.c: (gst_value_fraction_subtract):
	  Fix subtraction.

2005-11-22  Stefan Kost  <ensonic@users.sf.net>

	* gst/gst.h:
	  include "gstchildproxy.h"
	* gst/gstchildproxy.h:
	* libs/gst/controller/gstcontroller.h:
	  use G_GNUC_NULL_TERMINATED

2005-11-22  Jan Schmidt  <thaytan@mad.scientist.com>

	* check/gst/capslist.h:
	* check/gst/gstcaps.c: (GST_START_TEST):
	* check/gst/gstvalue.c: (GST_START_TEST), (gst_value_suite):
	* gst/gststructure.c: (gst_structure_parse_range),
	(gst_structure_fixate_field_nearest_fraction):
	* gst/gststructure.h:
	* gst/gstvalue.c: (gst_value_init_fraction_range),
	(gst_value_free_fraction_range), (gst_value_copy_fraction_range),
	(gst_value_collect_fraction_range),
	(gst_value_lcopy_fraction_range), (gst_value_set_fraction_range),
	(gst_value_set_fraction_range_full),
	(gst_value_get_fraction_range_min),
	(gst_value_get_fraction_range_max),
	(gst_value_serialize_fraction_range),
	(gst_value_transform_fraction_range_string),
	(gst_value_compare_fraction_range),
	(gst_value_deserialize_fraction_range),
	(gst_value_intersect_fraction_fraction_range),
	(gst_value_intersect_fraction_range_fraction_range),
	(gst_value_subtract_fraction_fraction_range),
	(gst_value_subtract_fraction_range_fraction),
	(gst_value_subtract_fraction_range_fraction_range),
	(gst_value_collect_fraction), (gst_value_fraction_multiply),
	(gst_value_fraction_subtract), (gst_value_deserialize_fraction),
	(gst_value_transform_string_fraction), (_gst_value_initialize):
	* gst/gstvalue.h:
	  Implement fraction ranges and extend GstFraction to support
	  arithmetic subtraction, as well as deserialization from integer
	  strings such as "100"
	  Add a testsuite as for int and double range set operations

2005-11-21  Andy Wingo  <wingo@pobox.com>

	* gst/gsttaglist.h: 
	* gst/gstcaps.h: 
	* gst/gststructure.h: Add glib-compat.h.

2005-11-21  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c: (gst_bin_change_state_func):
	Fix for #321595

2005-11-21  Wim Taymans  <wim@fluendo.com>

	* gst/gstsegment.h:
	And add a nice define too.

2005-11-21  Wim Taymans  <wim@fluendo.com>

	* gst/gstsegment.c: (gst_segment_copy), (gst_segment_get_type),
	(gst_segment_new), (gst_segment_free), (gst_segment_init),
	(gst_segment_set_duration), (gst_segment_set_last_stop),
	(gst_segment_set_seek), (gst_segment_set_newsegment),
	(gst_segment_to_stream_time), (gst_segment_to_running_time),
	(gst_segment_clip):
	* gst/gstsegment.h:
	Make binding friendly.

2005-11-21  Andy Wingo  <wingo@pobox.com>

	* gst/gsttagsetter.h: 
	* gst/gsttaglist.h: 
	* gst/gststructure.h: 
	* gst/gstcaps.h: 
	* gst/gstutils.h: Sprinkle NULL_TERMINATED to taste. Fixes
	#319940.

	* gst/gsterror.c (_gst_core_errors_init):
	* gst/gsterror.h (GST_CORE_ERROR_MISSING_PLUGIN): New error
	category.

	* gst/Makefile.am (gst_headers): Add glib-compat.h.
	(noinst_HEADERS): noinst the -private.

2005-11-21  Michael Smith <msmith@fluendo.com>

	* gst/gstplugin.h:
	* gst/gstregistry.h:
	  Remove unimplemented declarations for which we can see no sensible
	  use.

2005-11-21  Andy Wingo  <wingo@pobox.com>

	* gst/gst.h: Include glib-compat.h.

	* gst/glib-compat.h: Add G_GNUC_NULL_TERMINATED.

	* gst/glib-compat.c: Include the public and the private header.

	* gst/glib-compat-private.h: Copied here from glib-compat.h.

	* gst/gstvalue.c: 
	* gst/gstpad.c: 
	* gst/gstregistryxml.c: s/glib-compat/glib-compat-private/.

	* check/gst/gstevent.c (create_custom_events): Check that
	FLUSH_STOP is serialized.

	* check/elements/identity.c (event_func): 
	* check/elements/fakesrc.c (event_func): No stream lock, the core
	takes it.

	* gst/base/gstbasetransform.c (gst_base_transform_event): No more
	stream lock taking, yay.

	* gst/gstevent.h (GST_EVENT_FLUSH_STOP): Marked as serialized to
	ensure that core takes the stream lock.

	* gst/base/gstbasesrc.c (gst_base_src_do_seek): Update for stream
	lock name change.

	* gst/base/gstbasesink.c (gst_base_sink_event): No need to take
	the stream lock for EOS, NEWSEGMENT, or FLUSH_STOP, the core does
	it already. For the flush start we do take it though so we get the
	right preroll state change messages.

	* gst/gstqueue.c (gst_queue_sink_activate_push): No need to take
	the stream lock here, the core does it for us.

	* gst/gstpad.h (GST_PAD_GET_STREAM_LOCK): Renamed from
	GST_STREAM_GET_LOCK.
	(GST_PAD_STREAM_LOCK, GST_PAD_STREAM_TRYLOCK) 
	(GST_PAD_STREAM_UNLOCK, GST_PAD_STREAM_UNLOCK_FULL) 
	(GST_PAD_STREAM_LOCK_FULL): Renamed from GST_STREAM_*.
	(GST_PAD_GET_PREROLL_LOCK): Renamed from GST_PREROLL_GET_LOCK.
	(GST_PAD_PREROLL_LOCK, GST_PAD_PREROLL_TRYLOCK) 
	(GST_PAD_PREROLL_UNLOCK): Renamed from GST_PREROLL_*.

	* gst/gstpad.c: Update for stream lock name change.

	* gst/base/gstbasesink.c: Update for preroll lock name change.

2005-11-21  Wim Taymans  <wim@fluendo.com>

	* gst/gstclock.c: (gst_clock_init), (gst_clock_set_master),
	(gst_clock_get_master):
	* gst/gstclock.h:
	* gst/gstsystemclock.c: (gst_system_clock_init):
	Convert Clock flags to object flags.
	Added methods to manage master/slave clocks.

2005-11-21  Wim Taymans  <wim@fluendo.com>

	* check/gst/gstsegment.c: (GST_START_TEST):
	* docs/design/part-TODO.txt:
	* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
	(gst_base_sink_event), (gst_base_sink_do_sync),
	(gst_base_sink_activate_pull), (gst_base_sink_get_position),
	(gst_base_sink_query), (gst_base_sink_change_state):
	* gst/base/gstbasesink.h:
	* gst/base/gstbasesrc.c: (gst_base_src_init), (gst_base_src_query),
	(gst_base_src_default_newsegment),
	(gst_base_src_configure_segment), (gst_base_src_do_seek),
	(gst_base_src_get_range), (gst_base_src_loop),
	(gst_base_src_change_state):
	* gst/base/gstbasesrc.h:
	* gst/base/gstbasetransform.c:
	(gst_base_transform_prepare_output_buf),
	(gst_base_transform_event), (gst_base_transform_change_state):
	* gst/base/gstbasetransform.h:
	* gst/base/gstcollectpads.c: (gst_collect_pads_add_pad),
	(gst_collect_pads_event):
	* gst/base/gstcollectpads.h:
	* gst/elements/gstfakesrc.c: (gst_fake_src_init),
	(gst_fake_src_create):
	* gst/elements/gstfakesrc.h:
	* gst/elements/gstidentity.c: (gst_identity_transform_ip):
	* gst/gstsegment.c: (gst_segment_init), (gst_segment_set_duration),
	(gst_segment_set_last_stop), (gst_segment_set_seek),
	(gst_segment_set_newsegment), (gst_segment_to_stream_time),
	(gst_segment_to_running_time), (gst_segment_clip):
	* gst/gstsegment.h:
	More segment updates, replace code in plugins with segment
	helper functions.

2005-11-21  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/elements/gstfdsrc.c: (gst_fdsrc_uri_set_uri):
	Don't ignore sscanf results

2005-11-21  Andy Wingo  <wingo@pobox.com>

	* gst/gstpad.h (GST_IS_PAD_FAST): Removed.

	* *.h:
	* *.c: Ran scripts/update-macros. Oh yes.

	* gst/gstobject.h (GST_OBJECT_GET_LOCK, GST_OBJECT_LOCK)
	(GST_OBJECT_TRYLOCK, GST_OBJECT_UNLOCK): Renamed from
	GST_GET_LOCK, etc.

	* scripts/update-macros: New script. Run it on your files to
	change GST_LOCK to GST_OBJECT_LOCK, and the same for UNLOCK as
	well.

2005-11-21  Stefan Kost  <ensonic@users.sf.net>

	* docs/gst/Makefile.am:
	* docs/gst/gstreamer-docs.sgml:
	* docs/gst/gstreamer-sections.txt:
	* docs/gst/gstreamer.types:
	* gst/gstinfo.h:
	  more docs fixes, add new api to the docs

2005-11-21  Andy Wingo  <wingo@pobox.com>

	* gst/gstbin.c (gst_bin_remove_func): Wim claims I can remove this
	state_broadcast call.

	* gst/gstsegment.c (gst_segment_init): Initialize abs_rate.

2005-11-21  Julien MOUTTE  <julien@moutte.net>

	* gst/gstvalue.c: (gst_value_intersect_array): Fix wrong
	function calls for arrays.

2005-11-21  Stefan Kost  <ensonic@users.sf.net>

	* docs/random/ensonic/media-device-daemon.txt:
	  wild idea, can this be done?
	* docs/gst/gstreamer-sections.txt:
	* gst/gsterror.h:
	* gst/gstfilter.c:
	* gst/gstfilter.h:
	* gst/gstplugin.h:
	* gst/gstpluginfeature.c:
	* gst/gsttrace.c:
	* gst/gstvalue.c:
	* gst/gstvalue.h:
	  doc fixes and additions

2005-11-21  Andy Wingo  <wingo@pobox.com>

	* gst/base/gstbasesrc.c (GST_LIVE_BROADCAST, GST_LIVE_SIGNAL) 
	(GST_LIVE_TIMED_WAIT, GST_LIVE_WAIT, GST_LIVE_GET_COND) 
	(GST_LIVE_UNLOCK, GST_LIVE_TRYLOCK, GST_LIVE_LOCK) 
	(GST_LIVE_GET_LOCK): Moved here from gstbasesrc.h. They are
	private to the basesrc implementation.

	* gst/gstpad.c (gst_pad_send_event): Doc more. Take stream lock on
	behalf of event function if necessary. It should no longer be
	necessary to take the stream lock in pad's event functions. Fixes
	#320299.

2005-11-21  Jan Schmidt  <thaytan@mad.scientist.com>
	* docs/gst/gstreamer-sections.txt:
	* gst/gststructure.c: (gst_structure_fixate_field_nearest_int),
	(gst_structure_fixate_field_nearest_double),
	(gst_structure_fixate_field_boolean):
	* gst/gststructure.h:
	* win32/common/libgstreamer.def:
	* win32/gstreamer.def:

	Rename gst_caps_structure_fixate_* to gst_structure_fixate_*
	(#322027)

2005-11-21  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/elements/gstfdsrc.c: (_do_init), (gst_fdsrc_class_init),
	(gst_fdsrc_init), (gst_fdsrc_dispose), (gst_fdsrc_set_property),
	(gst_fdsrc_uri_get_type), (gst_fdsrc_uri_get_protocols),
	(gst_fdsrc_uri_get_uri), (gst_fdsrc_uri_set_uri),
	(gst_fdsrc_uri_handler_init):
	* gst/elements/gstfdsrc.h:
	  Port fd:// URI handler from 0.8 to fdsrc

2005-11-21  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstvalue.c: (gst_value_transform_fourcc_string),
	(gst_value_serialize_fourcc):
	* gst/gstvalue.h:
	  Drop leading '%' from GST_FOURCC_FORMAT, thus making it
	  consistent with our other format defines (#320324).

2005-11-21  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstvalue.c: (gst_value_is_fixed):
	  Revert previous commit. Value lists are by definition
	  not fixed, as they are a list of possible values.

2005-11-21  Andy Wingo  <wingo@pobox.com>

	* gst/gstevent.h (GST_EVENT_FILLER): Removed. Can be added back
	during the stable series if we need it. Fixes #319178.

	* gst/gstevent.c (gst_event_new_filler): Removed.

	* check/gst/gstevent.c: Update comment about filler events.

2005-11-21  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstvalue.c: (gst_value_is_fixed):
	  Should handle both value arrays and value lists.

2005-11-21  Andy Wingo  <wingo@pobox.com>

	patch by: Alessandro Dessina <alessandro nnva org>

	* gst/gstvalue.c (gst_value_is_fixed): Use gst_value_array
	functions to access arrays. Fixes #321962.

2005-11-21  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/gst/gstreamer.types:
	  gst_collectpads_get_type => gst_collect_pads_get_type.
	  
	* gst/base/gstbasetransform.c:
	  Remove unused SIGNAL_HANDOFF enum.

2005-11-21  Andy Wingo  <wingo@pobox.com>

	* gst/gstevent.h (GstEventTypeFlags): New data type, the flags of
	the event type (upstream, downstream, serialized). Renamed
	GST_EVDIR_* and GST_EVSER to GST_EVENT_TYPE_*.
	(GstEventType): Use GstEventTypeFlags. Rename CUSTOM_UP to
	CUSTOM_UPSTREAM, CUSTOM_DS to CUSTOM_DOWNSTREAM, etc.

	* gst/gstevent.c: Update for new CUSTOM event names.

	* check/gst/gstevent.c: Update check for new CUSTOM event names.

	* gst/gstevent.h:
	* gst/gstevent.c (gst_event_type_get_flags): New function. Fixes
	bug #319392.

2005-11-21  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/gst/gstreamer-sections.txt:
	* win32/common/libgstbase.def:
	* win32/libgstbase.def:
	* gst/base/gstcollectpads.c: (gst_collect_pads_base_init),
	(gst_collect_pads_class_init), (gst_collect_pads_init),
	(gst_collect_pads_finalize), (gst_collect_pads_new),
	(gst_collect_pads_set_function), (gst_collect_pads_add_pad),
	(gst_collect_pads_remove_pad), (gst_collect_pads_is_active),
	(gst_collect_pads_collect), (gst_collect_pads_collect_range),
	(gst_collect_pads_start), (gst_collect_pads_stop),
	(gst_collect_pads_peek), (gst_collect_pads_pop),
	(gst_collect_pads_available), (gst_collect_pads_read),
	(gst_collect_pads_flush), (gst_collect_pads_event),
	(gst_collect_pads_chain):
	* gst/base/gstcollectpads.h:
	  Rename gst_collecpads_foo() => gst_collect_pads_foo(). Document
	  unimplemented functions as unimplemented. Add padding to
	  GstCollectData. (#320766, #320423)

2005-11-21  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstmessage.c:
	  Improve docs for DURATION message (usage of duration parameter)
	  (#320113)

2005-11-20  Wim Taymans  <wim@fluendo.com>

	* check/Makefile.am:
	* check/gst/gstsegment.c: (GST_START_TEST), (gstevents_suite),
	(main):
	* gst/Makefile.am:
	* gst/gst.h:
	* gst/gstsegment.c: (gst_segment_init), (gst_segment_set_duration),
	(gst_segment_set_seek), (gst_segment_set_newsegment),
	(gst_segment_to_stream_time), (gst_segment_to_running_time),
	(gst_segment_clip):
	* gst/gstsegment.h:
	Added segment helper structure and methods. Not fully implemented
	yet.
	Added segment check.

2005-11-20  Jan Schmidt  <thaytan@mad.scientist.com>

	* check/gst/gstvalue.c: (GST_START_TEST), (gst_value_suite):
	  Add a deserialisation test for fractions
	* examples/metadata/read-metadata.c: (message_loop),
	(make_pipeline), (main):
	  Fix up metadata reading sample.
	* gst/base/gstbasesink.c: (gst_base_sink_do_sync):
	  Debug format fix
	* gst/base/gstbasesrc.c: (gst_base_src_default_negotiate):
	  Don't try and fixate empty caps
	* gst/gst_private.h:
	  Wrap in G_BEGIN_DECLS/G_END_DECLS
	* gst/gstvalue.c: (gst_value_collect_fraction),
	(gst_value_set_fraction), (gst_value_get_fraction_denominator),
	(gst_value_transform_string_fraction),
	(gst_value_compare_fraction):
	  Add some extra guards to ensure that we don't end up 
	  with an invalid denominator of 0 in a gstfraction and
	  that fractions always get reduced.

2005-11-20  Wim Taymans  <wim@fluendo.com>

	* docs/gst/gstreamer-sections.txt:
	* gst/gstbuffer.h:
	* gst/gstelement.c:
	* gst/gstformat.c:
	* gst/gstformat.h:
	* gst/gstindex.h:
	* gst/gstquery.c:
	* gst/gstquery.h:
	* gst/gstvalue.c:
	Doc fixes.

2005-11-20  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-TODO.txt:
	* gst/gstcaps.h:
	Make a proper enum of the flag.

2005-11-19  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-TODO.txt:
	* gst/gstformat.c: (_gst_format_initialize), (gst_format_get_name),
	(gst_format_to_quark), (gst_format_register):
	* gst/gstformat.h:
	* gst/gstquery.c: (_gst_query_initialize),
	(gst_query_type_get_name), (gst_query_type_to_quark),
	(gst_query_type_register):
	* gst/gstquery.h:
	Add type to quark and type to string conversions.

2005-11-19  Andy Wingo  <wingo@pobox.com>

	* gst/gstbuffer.h (GST_BUFFER_FLAG_ORIGINAL): Removed. Fixes
	#320097.

2005-11-19  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-TODO.txt:
	* gst/gstbin.c: (gst_bin_class_init), (gst_bin_provide_clock_func),
	(gst_bin_add_func), (gst_bin_remove_func), (bin_bus_handler),
	(gst_bin_handle_message_func):
	* gst/gstbin.h:
	Make message handling overridable.

2005-11-19  Andy Wingo  <wingo@pobox.com>

	* gst/gstpad.h (GST_PAD_IS_USABLE): Removed. Fixes #321235.

	* gst/gstclock.h:
	* gst/gstclock.c (GstClock, GstClockClass): Change resolution to
	be a GstClockTime.
	(gst_clock_set_resolution, gst_clock_get_resolution): Resolution
	is a GstClockTime. Fixes #321710.

	* gst/gstclock.h (GstClock): Remove offset property. Add
	internal_calibration and external_calibration. Fix padding. Pad
	also by GstClockTime so we don't run into problems.

	* gst/gstclock.c (gst_clock_set_rate_offset): Remove.
	(gst_clock_get_rate_offset): Remove.
	(gst_clock_set_time_adjust): Remove. Fixes #321712.

	* gst/gstutils.h:
	* gst/gstutils.c (g_static_rec_cond_wait)
	(g_static_rec_cond_timed_wait): Removed, no longer needed.

	* gst/gstbin.c: Remove terrible continue_state prototype.

	* gst/gstelement.h (gst_element_continue_state): Make public.

	* gst/gstelement.h:
	* gst/gstelement.c (gst_element_commit_state): Removed, replaced
	by continue_state. Fixes #319389.

	* gst/gstindex.h (GstIndexFilter): Actually pass on the user_data.
	Really fixes #168438. However I don't see anywhere where the
	filter function is called... stupid GStreamer...
	
	* gst/gstindex.h (GstIndex): Add field for user_data_destroy. We
	don't have a dispose function, so it won't get called when the
	object is unreffed, but oh well!

	* gst/gstindex.c (gst_index_set_filter_full): New API function,
	allows a destroy function to be set so user_data can be freed.
	Fixes #168438.
	(gst_index_set_filter): Call gst_index_set_filter_full.

	* check/gst/gstvalue.c (test_string): Add test for bug #165650.

	* gst/gstvalue.c (gst_string_wrap): Trying to serialize a NULL
	string should produce an error, given the lack of a way to
	represent NULL strings. Fixes #165650.
	
	* gst/gstvalue.h: 
	* gst/gstvalue.c (gst_value_array_append_value) 
	(gst_value_array_prepend_value, gst_value_array_get_size) 
	(gst_value_array_get_value): New API, copied from
	gst_value_list_*, only operates on arrays.
	(gst_value_list_append_value, gst_value_list_prepend_value) 
	(gst_value_list_concat, gst_value_list_get_size) 
	(gst_value_list_get_value): Only operate on lists. Fixes #156633.

	* gst/gstvalue.c (gst_value_init_list_or_array): Renamed from
	init_list, because it works on both.
	(copy_garray_of_gstvalue): Renamed from gst_value_list_copy_array.
	(gst_value_copy_list_or_array): Renamed from copy_list.
	(gst_value_free_list_or_array): Renamed from free_list.
	(gst_value_collect_list_or_array): Renamed from collect_list.
	(gst_value_lcopy_list_or_array): Renamed from lcopy_list.
	(gst_value_list_or_array_peek_pointer): Renamed from
	list_peek_pointer.
	(_gst_value_array_value_table, _gst_value_list_value_table):
	Update value table functions.
	(gst_value_compare_list_or_array): Renamed from compare_list.

	* gsttaglist.h: Whoops, foreach function returns void. Also fix
	some constness.

	* gst/gsttaglist.c:
	* gst/gsttaglist.h (gst_tag_list_foreach): Operates on a const
	GstTagList*. Fixes #143472.

	* gst/gststructure.h: Clarify what the foreach/map functions can
	or can't do to their arguments.

2005-11-18  Wim Taymans  <wim@fluendo.com>

	* gst/gstclock.c: (gst_clock_set_calibration),
	(gst_clock_get_calibration):
	Doc and API fixes.
	Calibration can be set with internal time equal to current
	internal time too.

2005-11-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gsterror.c:
	* gst/gsterror.h:
	  document

2005-11-18  Andy Wingo  <wingo@pobox.com>

	* configure.ac: 
	* pkgconfig/gstreamer-net.pc.in:
	* pkgconfig/gstreamer-net-uninstalled.pc.in:
	* pkgconfig/Makefile.am: Add net pkgconfig files.

2005-11-18  Stefan Kost  <ensonic@users.sf.net>

	* gst/gstcaps.c:
	* gst/gstghostpad.c:
	* gst/gsttrace.c:
	* gst/gstvalue.c:
	* gst/gstvalue.h:
	  docs fixes

2005-11-18  Andy Wingo  <wingo@pobox.com>

	* gst/net/gstnetclientclock.c: Turn off debugging.

	* check/net/gstnetclientclock.c (test_functioning): Assert that the
	times connverge somewhat. Can't make a real test.

	* gst/net/gstnetclientclock.c (do_linear_regression): Use all
	integer arithmetic. Return the minimum of the domain, which can be
	set as "internal" for gst_clock_set_calibration.
	(gst_net_client_clock_observe_times): Call _set_calibration.
	(gst_net_client_clock_new): Call _set_calibration instead of
	rate_offset.

	* check/net/gstnetclientclock.c (test_functioning): Use the right
	adjustment api.

	* gst/gstclock.h:
	* gst/gstclock.c (gst_clock_get_calibration) 
	(gst_clock_set_calibration): New functions, obsolete the ones I
	added yesterday. Doh. Precision issues mean we have to extrapolate
	from a point in the more recent past than 1970.
	(gst_clock_get_rate_offset, gst_clock_set_rate_offset): Mark as
	obsolete.
	(gst_clock_adjust_unlocked): Use the right calibration data.

2005-11-18  Edward Hervey  <edward@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_change_state): 
	Also reset the ->current_* values in READY->PAUSED

2005-11-18  Andy Wingo  <wingo@pobox.com>

	* gst/net/gstnetclientclock.c (gst_net_client_clock_thread):
	Whoops, check the right fd. Also add some debugging.
	(gst_net_client_clock_observe_times): Adjust for int64 offset.
	(do_linear_regression): Add a crapload of debugging. Subtract off
	the minimum values from the input series to discard unneeded bits.
	Use only int arithmetic. There is still double arithmetic when
	calculating the intercept that needs fixing. Return boolean to
	indicate success; FALSE would mean the domain or range is too
	great. Still needs fixes.

2005-11-18  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_get_position):
	For the current position in stream time, we need to subtract
	accumulated time.
	
	* gst/gstsystemclock.c: (gst_system_clock_async_thread):
	Release lock before calling the callback function of async
	entries.

2005-11-18  Andy Wingo  <wingo@pobox.com>

	* gst/net/gstnetclientclock.c (gst_net_client_clock_class_init):
	Port goes all the way to MAXUINT16.

	* gst/net/gstnettimeprovider.c: Make the port range the same as
	for the kernel: 0 assigns, otherwise ports are less than
	MAXUINT16.

	* check/net/gstnettimeprovider.c: Adapt for 0 == kernel assigns
	port change.

	* check/net/gstnetclientclock.c (test_functioning): Add the start
	of another test. 

2005-11-18  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c: (gst_bin_provide_clock_func), (gst_bin_add_func),
	(gst_bin_remove_func), (bin_bus_handler):
	* gst/gstbin.h:
	Removing a clock provider from a bin, triggers a clock lost message
	so that a new clock will be selected.
	Adding a clock to a bin triggers a clock provider message.
	Make sure we reselect a clock when we received a clock lost message.
	Keep a reference to the element that provided the clock.

2005-11-18  Andy Wingo  <wingo@pobox.com>

	* gst/net/gstnetclientclock.c (gst_net_client_clock_new): Adjust
	the clock initially so it produces values around the base time.
	(gst_net_client_clock_class_init): Typo fix.
	(gst_net_client_clock_thread): Add note on when the socket gets
	closed.

2005-11-17  Wim Taymans  <wim@fluendo.com>

	* gst/net/gstnetclientclock.c: (gst_net_client_clock_finalize):
	Free remote and local time arrays.

2005-11-17  Wim Taymans  <wim@fluendo.com>

	* gst/net/gstnetclientclock.c: (do_linear_regression),
	(gst_net_client_clock_do_select), (gst_net_client_clock_thread):
	Fix compilation, uninitialized vars and a forgotten continue.

2005-11-17  Andy Wingo  <wingo@pobox.com>

	* check/Makefile.am (check_PROGRAMS): 
	* check/net/gstnetclientclock.c: Add a most minimal test for the
	net client clock. More to come later.

	* gst/net/gstnet.h: 
	* gst/net/Makefile.am: Add netclientclock.

	* gst/net/gstnetclientclock.h:
	* gst/net/gstnetclientclock.c: New files, implement an untested
	GstClock that takes its time from a network time provider.
	Implements the algorithm in network-clock.scm.

	* tests/network-clock.scm (*window-size*): Rename from
	*queue-length*.
	* tests/network-clock.scm (network-time): 
	* tests/network-clock-utils.scm (q-push): Update callers.

2005-11-17  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c: (gst_bin_provide_clock_func),
	(gst_bin_sort_iterator_new):
	And unref the child too..

2005-11-17  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c: (gst_bin_dispose), (gst_bin_provide_clock_func),
	(gst_bin_sort_iterator_new), (gst_bin_iterate_sorted):
	Refactor the sort iterator so it can be used while holding the
	LOCK too.
	Make clock selection select a clock closest to the source.

2005-11-17  Michael Smith <msmith@fluendo.com>

	* gst/gstclock.c: (gst_clock_init), (gst_clock_adjust_unlocked),
	(gst_clock_set_rate_offset), (gst_clock_get_rate_offset):
	* gst/gstclock.h:
	  Anonymous structs are a gcc (and some other compilers) extension, so
	  don't use them. Since this is only for ABI-compatibility, and our
	  API/ABI freeze is over in a few days, this whole thing will only
	  last a few days, so don't bother trying to think up a meaningful
	  name for the struct.

2005-11-17  Andy Wingo  <wingo@pobox.com>

	* gst/gstclock.h (GstClock): Add rate and offset properties,
	preserving ABI stability. Add rate/offset accessors. Will file bug
	for the freeze break.

	* gst/gstclock.c (gst_clock_adjust_unlocked): Implement using rate
	and offset, trying to keep precision and avoiding
	underflow/overflow.
	(gst_clock_set_rate_offset, gst_clock_get_rate_offset): New
	functions. Make gst_clock_set_time_adjust obsolete.
	(gst_clock_set_time_adjust): Note that this function is obsolete.
	Will file bug soon.

	* gst/base/gstbasetransform.h: Make the ABI-stability hack
	greppable by using GST_PADDING-1+1.

2005-11-17  Torsten Schoenfeld  <kaffeetisch at gmx dot net>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstmessage.c: (gst_message_parse_clock_lost):
	  Assertion should check for CLOCK_LOST, not NEW_CLOCK (#321648).

	* gst/gstpadtemplate.h:
	* gst/gstpluginfeature.h:
	  Don't use c++ style comments in headers (#321638).

2005-11-16  Andy Wingo  <wingo@pobox.com>

	* gst/net/gstnettimepacket.c (gst_net_time_packet_send): Free
	buffer.

	* check/net/gstnettimeprovider.c: Check to see that the time
	provider actually provides times. Works, yo!

2005-11-16  Wim Taymans  <wim@fluendo.com>

	* check/Makefile.am:
	Enable more tests.

	* check/elements/fakesrc.c: (GST_START_TEST):
	Set element to NULL before disposing it.

2005-11-16  Andy Wingo  <wingo@pobox.com>

	* gst/net/Makefile.am:
	* gst/net/gstnet.h:
	* gst/net/gstnettimeprovider.c: 
	* gst/net/gstnettimeprovider.h: Use the timepacket stuff in the
	provider, include it from gstnet.h, and add it to the build.

	* gst/net/gstnettimepacket.h: 
	* gst/net/gstnettimepacket.c: New files, abstracts out the packet
	sending and receiving.

2005-11-16  Wim Taymans  <wim@fluendo.com>

	* check/Makefile.am:
	Enable valgrind check.

	* gst/elements/gstfakesrc.c: (gst_fake_src_alloc_parent),
	(gst_fake_src_alloc_buffer):
	Fix memleak.

2005-11-16  Wim Taymans  <wim@fluendo.com>

	* gst/net/gstnettimeprovider.c: (gst_net_time_provider_finalize):
	Call parent finalize too.

2005-11-16  Wim Taymans  <wim@fluendo.com>

	* check/Makefile.am:
	Enable valgrind check that should work fine now.

	* gst/elements/gsttypefindelement.c: (gst_type_find_element_init):
	* gst/gstqueue.c: (gst_queue_init):
	Fix memleaks in pad allocation.

2005-11-16  Andy Wingo  <wingo@pobox.com>

	* gst/net/Makefile.am:
	* gst/net/gstnet.h: New part of core to hold network elements and
	objects. Put in core because it exposes API that applications want
	to use. The library is named libgstnet-tempname right now because
	of the existing libgstnet in gst-plugins-base. Solution is
	probably to rename the one in plugins-base; will file a bug for
	the freeze break.

	* gst/net/gstnettimeprovider.c: 
	* gst/net/gstnettimeprovider.h: New object to export a GstClock's
	get_time call over the network.

	* configure.ac: 
	* gst/Makefile.am (lib_LTLIBRARIES): Add gstnet to the build.

	* check/Makefile.am:
	* check/net/gstnettimeprovider.c: A most minimal test suite. Will
	get additions shortly.

2005-11-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstpad.c: (gst_pad_new_from_static_template):
	* gst/gstpad.h:
	  add gst_pad_new_from_static_template functions
	* gst/check/gstcheck.c: (gst_check_setup_src_pad),
	(gst_check_setup_sink_pad):
	* gst/elements/gsttee.c: (gst_tee_init):
	  and use them

2005-11-16  Wim Taymans  <wim@fluendo.com>

	* gst/gstpad.c: (gst_pad_pause_task):
	Removed warning, it's not really an error either.

2005-11-16  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasetransform.c:
	(gst_base_transform_prepare_output_buf),
	(gst_base_transform_event):
	Check if the caps are NULL, this can happen if the element
	is shutting down and the pad caps are set to NULL.

2005-11-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/elements/gsttee.c: (gst_tee_init):
	  fix pad template leak in tee

2005-11-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/glib-compat.c: (g_value_dup_gst_object):
	* gst/glib-compat.h:
	* gst/gstpad.c: (gst_pad_set_property):
	  use gst_object_ref when setting the pad template; this will
	  trigger the pad template leaks on GLib 2.6 and the slaves

2005-11-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/glib-compat.c: (gst_flags_get_first_value):
	* gst/glib-compat.h:
	* gst/gstregistryxml.c:
	  remove functions copied from GLib 2.6

2005-11-16  Michael Smith <msmith@fluendo.com>

	* gst/Makefile.am:
	  Don't link against VALGRIND_LIBS. That was always the wrong thing to
	  do, but only breaks with newer valgrind versions. We're not a
	  valgrind tool, we have no link-time dependencies on libcoregrind.

2005-11-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/base/gstbasesrc.c: (gst_base_src_default_negotiate):
	  some debug changes
	* gst/gstmessage.h:
	  typo fixes

2005-11-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/base/gstbasesrc.c: (gst_base_src_init):
	* gst/elements/gsttypefindelement.c: (gst_type_find_element_init):
	* gst/gstqueue.c: (gst_queue_init):
	* gst/gstregistryxml.c: (load_feature):
	  Revert all these unrefs, they don't even pass make check !

2005-11-15  Johan Dahlin  <johan@gnome.org>

	* gst/base/gstbasesrc.c: (gst_base_src_init):
	* gst/elements/gsttypefindelement.c: (gst_type_find_element_init):
	* gst/gstqueue.c: (gst_queue_init): 
	Free pad templates, fixes a couple of leaks.

2005-11-15  Daniel Fischer  <dan at f3c dot com>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstpad.c: (gst_pad_get_property):
	  GST_PAD_PAD_TEMPLATE(pad) gets the pad template, while
	  GST_PAD_TEMPLATE(pad) does a cast. We want the former here.
	  (#321452)

2005-11-15  Wim Taymans  <wim@fluendo.com>

	* gst/gstevent.c:
	Small doc update.

2005-11-15  Andy Wingo  <wingo@pobox.com>

	* gst/gstelement.c (gst_element_set_base_time): Add debugging.

	* gst/gstpipeline.c (gst_pipeline_set_new_stream_time): Document
	using GST_CLOCK_TIME_NONE to disable base time management.
	(do_pipeline_seek, gst_pipeline_change_state): Don't reset stream
	time if it was NONE before.
	(gst_pipeline_change_state): Only munge the base time if
	stream_time != GST_CLOCK_TIME_NONE.

	* check/gst/gstpipeline.c (test_base_time): Punt around the
	problem of the probe not being called, because that's not the
	issue I'm looking at. Add a check that setting stream_time to NONE
	disables base time management.
	
2005-11-15  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_change_state):
	segment_stop == -1 at startup.

	* gst/base/gstbasetransform.c: (gst_base_transform_event),
	(gst_base_transform_change_state):
	Init segment values at start.

2005-11-15  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
	0 segment values are 0 in any format.

	* gst/base/gstbasetransform.c: (gst_base_transform_event):
	* gst/base/gstbasetransform.h:
	Parse newsegment correctly in basetransform

	* gst/elements/gstidentity.c: (gst_identity_transform_ip):
	Sync to clock using updated segment values.

2005-11-15  Andy Wingo  <wingo@pobox.com>

	* check/gst/gstpipeline.c (test_base_time): Add check that the
	base time and stream time are reset correctly.

2005-11-15  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-TODO.txt:
	Some more TODO items.

2005-11-15  Andy Wingo  <wingo@pobox.com>

	* gst/elements/gstfakesrc.c (gst_fake_src_create): It's not an
	error if the user selected "no clock" as the clocking method.

	* check/gst/gstpipeline.c (test_base_time): New test for buffer
	timestamps with live capture.

	* gst/elements/gstfakesrc.c (gst_fake_src_create): If the datarate
	is 0 but we are a live source, timestamp the buffers using the
	element's clock.

2005-11-14  Stefan Kost  <ensonic@users.sf.net>

	* docs/gst/gstreamer-sections.txt:
	* gst/gsterror.c:
	* gst/gstghostpad.c:
	* gst/gstobject.h:
	* gst/gstxml.c:
	  more section docs

2005-11-14  Wim Taymans  <wim@fluendo.com>

	* common/gst.supp:
	  add suppressions from Wim's Debian machine

2005-11-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/gst.supp:
	  add suppressions from Andy's AMD64 Ubuntu machine

2005-11-14  Andy Wingo  <wingo@pobox.com>

	* gst/gstpad.c (gst_pad_set_active): Change docs; parent's
	STATE_LOCK not necessary. Fixes #311489.

	* gst/gsterror.c (FILE_A_BUG): Be polite *and* helpful. Fixes
	#305291.

	* gst/gstindex.c (gst_index_add_object): Note in the docs that
	this function is not implemented.

2005-11-14  Julien MOUTTE  <julien@moutte.net>

	* gst/base/gstbasetransform.c:
	(gst_base_transform_prepare_output_buf):
	Ref the source pad caps while we need them.
	Fixes (#321386)

2005-11-11  Wim Taymans  <wim@fluendo.com>

	* docs/gst/gstreamer-sections.txt:
	Added some docs for GstCollectData.

	* gst/base/gstadapter.c:
	Some small code example fix.

	* gst/base/gstcollectpads.c:
	* gst/base/gstcollectpads.h:
	Document some more.

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, "Bike Lunch Day"

2005-11-11  Wim Taymans  <wim@fluendo.com>

	* gst/gstbuffer.c: (_gst_buffer_copy):
	Copy more flags.

	* gst/gstcaps.c: (gst_caps_is_equal):
	Fix some docs.
	Make _is_equal fast in the trivial cases.

	* gst/gstminiobject.c:
	* gst/gstminiobject.h:
	More docs. Spifify .h file.

	* gst/gstutils.c:
	Small doc update.

2005-11-11  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasetransform.c:
	(gst_base_transform_prepare_output_buf),
	(gst_base_transform_handle_buffer):
	Small cleanups.
	If we're processing a buffer and need to allocate an output
	buffer, we cannot accept a format change. If we did get a 
	format change, we have to alloc a buffer ourselves of the 
	right size.

2005-11-11  Wim Taymans  <wim@fluendo.com>

	* gst/gstpad.c: (gst_pad_get_caps), (gst_pad_peer_get_caps):
	While checking the flag for reentrancy in the gstcaps function
	is nice to detect recursive invocations, it also makes it 
	impossible to call getcaps from multiple threads, which must be
	possible. So, checking for recursive calls has to go.

2005-11-11  Michael Smith <msmith@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_do_sync):
	  Don't sync on buffers that fall partially outside our current
	  segment. Prevents an assertion failure/abort playing some files.

2005-11-10  Andy Wingo  <wingo@pobox.com>

	* check/gst/gstbin.c (test_message_state_changed_children): Style
	fix..

	* gst/gstbus.c (poll_destroy, poll_func, gst_bus_poll): Implement
	gst_bus_poll with the signal watch. Ensures that poll and a signal
	watch see the same messages.

	* check/gst/gstbus.c (test_watch_with_poll): New test, checks that
	a poll and a watch at the same time get the same messages.

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

	* gst/base/gstbasetransform.c: (gst_base_transform_transform_caps):
	* gst/gstcaps.c: (gst_caps_intersect):
	  Don't call gst_caps_do_simplify - it doesn't respect order of caps
	  and it's not needed.

2005-11-10  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-TODO.txt:
	Updated todo.

2005-11-10  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_do_sync):
	* gst/base/gstbasesrc.c: (gst_base_src_wait),
	(gst_base_src_do_sync), (gst_base_src_get_range):
	Implement clock sync in base class.

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

	patch by: Tim-Philipp Müller <tim at centricular dot net>

	* gst/gststructure.c: (gst_structure_parse_field),
	(gst_structure_from_string):
	  Forward-port a 0.8 patch to handle escaped spaces in structure string,
	  so that gst_parse_launch() can deal with spaces in filtered link
	  caps (fixes #164479)
	* check/gst/capslist.h:
	* check/gst/gststructure.c: (GST_START_TEST):
	  add unit tests for this change

2005-11-10  Wim Taymans  <wim@fluendo.com>

	* docs/gst/gstreamer-sections.txt:
	* gst/gstelement.c:
	* gst/gstelement.h:
	Fix docs, move some STATE macros to private.

2005-11-10  Wim Taymans  <wim@fluendo.com>

	* check/gst/gstghostpad.c: (GST_START_TEST), (gst_ghost_pad_suite):
	Added check for bug #317341

	* gst/gstbuffer.c:
	* gst/gstbuffer.h:
	Some more spiffifying.

	* gst/gstghostpad.c: (gst_ghost_pad_do_link):
	Call peer linkfunction if we are a source pad. Totally fixes
	#317341

	* gst/gstpad.c:
	Update docs, source pads should call the peer linkfunction
	so they can atomically perform the pad link.

2005-11-09  Wim Taymans  <wim@fluendo.com>

	* gst/gstbuffer.c:
	* gst/gstbuffer.h:
	Uber-spiffy-spiffify some more.

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

	* gst/base/gstcollectpads.c: (gst_collectpads_add_pad):
	* gst/elements/gstfilesink.c: (gst_file_sink_init):
	* gst/elements/gsttypefindelement.c: (gst_type_find_element_init):
	* gst/gstghostpad.c: (gst_ghost_pad_set_internal),
	(gst_ghost_pad_init), (gst_ghost_pad_new_notarget):
	* gst/gstpad.c: (gst_pad_init):
	  Use GST_DEBUG_FUNCPTR() more extensively.

2005-11-09  Wim Taymans  <wim@fluendo.com>

	* gst/gstobject.c: (gst_object_class_init):
	* gst/gstobject.h:
	Documentation fixes.

2005-11-09  Edward Hervey  <edward@fluendo.com>

	* gst/gsttypefindfactory.c:
	Fix docs.
	
2005-11-09  Edward Hervey  <edward@fluendo.com>

	* gst/base/gsttypefindhelper.c:
	* gst/gsttypefind.c:
	* gst/gsttypefind.h:
	Fix docs.

2005-11-09  Wim Taymans  <wim@fluendo.com>

	* gst/gstiterator.c:
	Fix revision data.

	* gst/gsttask.c:
	* gst/gsttask.h:
	Fix docs.

2005-11-09  Wim Taymans  <wim@fluendo.com>

	* gst/gstevent.h:
	* gst/gsturi.h:
	Fix docs.

2005-11-09  Wim Taymans  <wim@fluendo.com>

	* docs/gst/gstreamer-sections.txt:
	Moved the message async delivery private lock and cond
	to the private section.

	* gst/gstmessage.c:
	* gst/gstmessage.h:
	Fixed docs.

2005-11-09  Edward Hervey  <edward@fluendo.com>

	* docs/gst/gstreamer-sections.txt:
	* gst/gsturi.c:
	* gst/gsturi.h:
	Document GstURIHandler

2005-11-09  Wim Taymans  <wim@fluendo.com>

	* gst/gstiterator.c: (gst_iterator_fold), (gst_iterator_foreach),
	(gst_iterator_find_custom):
	* gst/gstiterator.h:
	Fix iterator docs.

2005-11-09  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.h:
	Document another field.

	* gst/gststructure.c:
	* gst/gststructure.h:
	Document.

2005-11-09  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.h:
	Documented structs.

2005-11-09  Wim Taymans  <wim@fluendo.com>

	* docs/gst/gstreamer-sections.txt:
	Added some new macros.

	* gst/gstclock.c:
	* gst/gstclock.h:
	* gst/gstobject.h:
	Docs updates.

2005-11-09  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-TODO.txt:
	Some more items for the TODO

	* gst/gstcaps.c:
	* gst/gstcaps.h:
	Document GstCaps.

2005-11-09  Andy Wingo  <wingo@pobox.com>

	* gst/base/gstbasesink.c: Add the beginning of docs here -- have
	to work on something else now tho...

	* gst/base/gstadapter.c: More adapter docs.

	* gst/elements/gstfilesink.c (gst_file_sink_start) 
	(gst_file_sink_stop): New functions, replace the state change
	handler.
	(gst_file_sink_class_init): Hook up the start and stop functions.
	(gst_file_sink_base_init): Don't set the state change handler any
	more. It was a bit ugly too, being set from here...
	(gst_file_sink_get_property, gst_file_sink_set_property):
	Cleanups...
	(gst_file_sink_set_location): More robust check that doesn't call
	GST_STATE. Ugggggg.

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

	* gst/base/gstbasetransform.c: (gst_base_transform_event):
	  Hold STREAM_LOCK while pushing newsegment or tag events as well.

2005-11-08  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_preroll_queue_empty),
	(gst_base_sink_do_sync), (gst_base_sink_handle_event),
	(gst_base_sink_chain), (gst_base_sink_change_state):
	* gst/base/gstbasesink.h:
	* gst/base/gstbasesrc.h:
	* gst/gstelement.h:
	* gst/gstevent.h:
	Avoid excessive typechecking in macros.

	* gst/gstminiobject.c: (gst_mini_object_get_type),
	(gst_mini_object_init), (gst_mini_object_new),
	(gst_mini_object_free):
	* gst/gstobject.c: (gst_object_class_init), (gst_object_init),
	(gst_object_finalize):
	Remove cruft code, optimize alloc_trace.

2005-11-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/faq/gst-uninstalled:
	  fix up PS1 for systems that try to reset it

2005-11-07  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesrc.c: (gst_base_src_init),
	(gst_base_src_get_range):
	Set the segment_end to -1 initially. Fixed typefind.

2005-11-07  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/base/gstadapter.c:
	  Debug category should be 'adapter', not 'GstAdapter'.
	  
	* gst/base/gstcollectpads.c: (gst_collectpads_base_init),
	(gst_collectpads_class_init), (gst_collectpads_init),
	(gst_collectpads_peek), (gst_collectpads_pop),
	(gst_collectpads_event), (gst_collectpads_chain):
	  Add debug category and some debugging output. Use boilerplate
	  macros. Remove some extraneous words from docs.

2005-11-05  Andy Wingo  <wingo@pobox.com>

	* gst/base/gstpushsrc.c: Shorten by 30% via use of boilerplate
	macro.

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

	* docs/gst/gstreamer-sections.txt:
	* gst/gstcaps.h:
	* gst/gstinfo.c:
	* gst/gstminiobject.h:
	* gst/gstobject.h:
	* gst/gstutils.h:
	  more docs added

2005-11-04  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesrc.c: (gst_base_src_get_range):
	Small update to stop at the configured segment_end
	position.

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

	* gst/gstregistry.c:
	* gst/gstregistry.h:
	  added missing docs

2005-11-04  Edward Hervey  <edward@fluendo.com>

	* gst/base/gstbasesrc.c: (gst_base_src_get_range):
	Check if we are doing a segment seek and have arrived at the
	end of that segment.

2005-11-04  Wim Taymans  <wim@fluendo.com>

	* gst/gstbus.c: (gst_bus_post), (gst_bus_set_sync_handler):
	Don't leak a mutex unlock in case of an error.

	* gst/gstbus.h:
	Doc fixes.

2005-11-04  Wim Taymans  <wim@fluendo.com>

	* gst/gstbus.c: (gst_bus_class_init), (gst_bus_init),
	(gst_bus_post):
	Get the context to wake up only once.

2005-11-03  Wim Taymans  <wim@fluendo.com>

	* check/states/sinks.c: (GST_START_TEST):
	Uncomment fixed check.

	* docs/design/part-TODO.txt:
	Updated TODO.

	* gst/base/gstbasesink.c: (gst_base_sink_commit_state),
	(gst_base_sink_handle_object), (gst_base_sink_do_sync),
	(gst_base_sink_get_position):
	If we are going to PLAYING, post the right pending state
	when we post the intermediate paused message.

	* gst/gstelement.c: (gst_element_continue_state),
	(gst_element_set_state_func), (gst_element_change_state):
	Don't post state changes that were between the same state
	and were not ASYNC.

2005-11-03  Stefan Kost  <ensonic@users.sf.net>

	* docs/gst/gstreamer-sections.txt:
	* gst/gstcaps.h:
	* gst/gstinfo.c:
	* gst/gstminiobject.h:
	* gst/gstobject.h:
	* gst/gstutils.h:
	  more docs and doc style fixes

2005-11-03  Stefan Kost  <ensonic@users.sf.net>

	* docs/gst/gstreamer-sections.txt:
	* gst/gstelement.c:
	* gst/gstminiobject.c:
	doc fixes

2005-11-03  Andy Wingo  <wingo@pobox.com>

	* check/states/sinks.c (test_livesrc_sink): Add checks that the
	state-changed messages actually have the right order and the right
	values.

2005-11-03  Wim Taymans  <wim@fluendo.com>

	* check/states/sinks.c: (GST_START_TEST), (gst_object_suite):
	Added some more checks. Specifically the case where NO_PREROLL
	elements are in the pipeline.

	* gst/base/gstbasesink.c: (gst_base_sink_commit_state),
	(gst_base_sink_handle_object), (gst_base_sink_do_sync),
	(gst_base_sink_get_position):
	Post READY->PAUSED state change messages too.
	Fix bug where VOID was posted as pending state...

	* gst/gstbin.c: (gst_bin_recalc_state):
	use _element_continue_state() to continue the state change.

	* gst/gstelement.c: (gst_element_continue_state),
	(gst_element_commit_state), (gst_element_set_state_func),
	(gst_element_change_state), (gst_element_change_state_func):
	Lots of state change cleanups, assign the STATE_RETURN in
	a new continue_state() function that also propagates the
	last return value from a state change to the app.
	Update some debug statements with proper category.

2005-11-03  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-events.txt:
	* docs/design/part-gstpipeline.txt:
	* docs/design/part-messages.txt:
	* docs/design/part-overview.txt:
	* docs/design/part-seeking.txt:
	* docs/design/part-states.txt:
	* docs/design/part-trickmodes.txt:
	* docs/manual/advanced-position.xml:
	Small docs updates.

	* gst/gstobject.h:
	People think !! is ugly, this looks better.

	* gst/gstpad.c: (gst_pad_set_blocked_async):
	Remove !! since it's fixed elsewhere now.

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

	* gst/gstminiobject.h:
	* gst/gstobject.h:
	  Add !! to _FLAG_IS_SET macros to make the result boolean.

2005-11-03  Edward Hervey  <edward@fluendo.com>

	* gst/gstpad.c: (gst_pad_set_blocked_async):
	comparing a flag and a gboolean rarely returns coherent results...
	Added two characters (!!) to make that work correctly.
	
2005-11-03  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstbus.c: (gst_bus_class_init):
	  Fix some typos.
	  
	* gst/gstqueue.c: (gst_queue_loop):
	  Don't assume a miniobject that isn't a buffer is an
	  event (it could be that there is a refcounting
	  problem somewhere and the pointer is stale and
	  refers to an already destroyed miniobject).

2005-11-03  Julien MOUTTE  <julien@moutte.net>

	* gst/gstpad.c: (gst_pad_alloc_buffer): Fix some typos.

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

	* docs/manual/advanced-position.xml:
	  Update seek example and explanations to current 0.9 API.

	* gst/elements/gsttypefindelement.c:
	(gst_type_find_element_activate):
	  Remove FIXME comment now that the found caps
	  are unreffed.

2005-11-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstregistryxml.c: (load_feature):
	  Add another GST_STR_NULL instance

2005-11-02  Edward Hervey  <edward@fluendo.com>

	* gst/gstpad.c: (handle_pad_block):
	Follow-up to Wim's patch, solves deadlock for blocked and flushing pads
	
2005-11-02  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c:
	Fix typo in docs.

	* gst/gstelement.c: (gst_element_commit_state):
	Remove unused value.

	* gst/gstiterator.c:
	Mention that the returned element is reffed in the docs.

2005-11-02  Wim Taymans  <wim@fluendo.com>

	* gst/gstpad.c: (gst_pad_alloc_buffer), (handle_pad_block),
	(gst_pad_push), (gst_pad_push_event):
	Unlock blocked pads when they are flushed.

2005-11-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/README:
	* docs/gst/gstreamer-sections.txt:
	* gst/gstbin.c:
	  doc updates
	* gst/gstregistry.c: (gst_registry_scan_path_level):
	  fix for a nasty little missed situation where an installed plug-in
	  which was in the cache did not get overridden by an uninstalled one
	  which was earlier in the plugin path because the newly created plugin
	  for the uninstalled one (not in the registry) didn't get its
	  ->registered set to TRUE

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

	* gst/base/gstcollectpads.c: (gst_collectpads_set_function),
	(gst_collectpads_add_pad), (gst_collectpads_remove_pad),
	(gst_collectpads_is_active), (gst_collectpads_collect),
	(gst_collectpads_collect_range), (gst_collectpads_start),
	(gst_collectpads_stop), (gst_collectpads_peek),
	(gst_collectpads_pop), (gst_collectpads_available),
	(gst_collectpads_read), (gst_collectpads_flush):
	  Guard public API with assertions.
	
	* gst/gstpad.c:
	  Fix docs for gst_pad_set_link_function().

2005-11-02  Johan Dahlin  <johan@gnome.org>

	* gst/elements/gsttypefindelement.c (gst_type_find_element_activate): 
	Unref found_caps after we used it.

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

	* gst/base/gstcollectpads.c: (gst_collectpads_peek):
	  Don't try to ref NULL.

2005-11-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* win32/common/config.h.in:
	  provide a GST_FUNCTION that just gives a string for now

2005-11-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* win32/common/gstenumtypes.c: (register_gst_object_flags),
	(gst_object_flags_get_type), (register_gst_bin_flags),
	(gst_bin_flags_get_type), (register_gst_buffer_flag),
	(gst_buffer_flag_get_type), (register_gst_bus_flags),
	(gst_bus_flags_get_type), (register_gst_bus_sync_reply),
	(gst_bus_sync_reply_get_type), (register_gst_clock_return),
	(gst_clock_return_get_type), (register_gst_clock_entry_type),
	(gst_clock_entry_type_get_type), (register_gst_clock_flags),
	(gst_clock_flags_get_type), (register_gst_state),
	(gst_state_get_type), (register_gst_state_change_return),
	(gst_state_change_return_get_type), (register_gst_state_change),
	(gst_state_change_get_type), (register_gst_element_flags),
	(gst_element_flags_get_type), (register_gst_core_error),
	(gst_core_error_get_type), (register_gst_library_error),
	(gst_library_error_get_type), (register_gst_resource_error),
	(gst_resource_error_get_type), (register_gst_stream_error),
	(gst_stream_error_get_type), (register_gst_event_type),
	(gst_event_type_get_type), (register_gst_seek_type),
	(gst_seek_type_get_type), (register_gst_seek_flags),
	(gst_seek_flags_get_type), (register_gst_format),
	(gst_format_get_type), (register_gst_index_certainty),
	(gst_index_certainty_get_type), (register_gst_index_entry_type),
	(gst_index_entry_type_get_type),
	(register_gst_index_lookup_method),
	(gst_index_lookup_method_get_type), (register_gst_assoc_flags),
	(gst_assoc_flags_get_type), (register_gst_index_resolver_method),
	(gst_index_resolver_method_get_type), (register_gst_index_flags),
	(gst_index_flags_get_type), (register_gst_debug_level),
	(gst_debug_level_get_type), (register_gst_debug_color_flags),
	(gst_debug_color_flags_get_type), (register_gst_iterator_result),
	(gst_iterator_result_get_type), (register_gst_iterator_item),
	(gst_iterator_item_get_type), (register_gst_message_type),
	(gst_message_type_get_type), (register_gst_mini_object_flags),
	(gst_mini_object_flags_get_type), (register_gst_pad_link_return),
	(gst_pad_link_return_get_type), (register_gst_flow_return),
	(gst_flow_return_get_type), (register_gst_activate_mode),
	(gst_activate_mode_get_type), (register_gst_pad_direction),
	(gst_pad_direction_get_type), (register_gst_pad_flags),
	(gst_pad_flags_get_type), (register_gst_pad_presence),
	(gst_pad_presence_get_type), (register_gst_pad_template_flags),
	(gst_pad_template_flags_get_type), (register_gst_pipeline_flags),
	(gst_pipeline_flags_get_type), (register_gst_plugin_error),
	(gst_plugin_error_get_type), (register_gst_plugin_flags),
	(gst_plugin_flags_get_type), (register_gst_rank),
	(gst_rank_get_type), (register_gst_query_type),
	(gst_query_type_get_type), (register_gst_tag_merge_mode),
	(gst_tag_merge_mode_get_type), (register_gst_tag_flag),
	(gst_tag_flag_get_type), (register_gst_task_state),
	(gst_task_state_get_type), (register_gst_alloc_trace_flags),
	(gst_alloc_trace_flags_get_type),
	(register_gst_type_find_probability),
	(gst_type_find_probability_get_type), (register_gst_uri_type),
	(gst_uri_type_get_type), (register_gst_parse_error),
	(gst_parse_error_get_type):
	* win32/common/gstversion.h:
	  update win32 copies

2005-11-01  Luca Ognibene  <luogni@tin.it>

	* gst/gst.c:
	  fix docs. popt is dead, long live GOption.

2005-10-31  Wim Taymans  <wim@fluendo.com>

	* gst/gstbuffer.h:
	Small doc fix.

2005-10-31  Andy Wingo  <wingo@pobox.com>

	* Boo!

	* gst/gstqueue.c (gst_queue_chain): Fix downstream leaky mode.

	* gst/gstobject.c (gst_object_dispatch_properties_changed): No
	need to serialize property notifications on GLib 2.8. GLib 2.6 has
	the possibility of deadlocks here if code calling notify() or
	set() has a lock that can be taken in another notify handler (ABBA
	with class lock and e.g. python GIL state lock).

2005-10-28  Julien MOUTTE  <julien@moutte.net>

	* gst/gstbus.c: Doc updates.

2005-10-28  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-TODO.txt:
	* gst/gstiterator.c:
	* gst/gstsystemclock.c:
	* gst/gstsystemclock.h:
	Doc updates.

2005-10-28  Edward Hervey  <edward@fluendo.com>

	* docs/gst/gstreamer-docs.sgml:
	* docs/gst/gstreamer-sections.txt:
	the GstURIType documentation page is private, it only defines GstURIType
	which should be defined in the GstURIHandler page
	
2005-10-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstbin.c: (gst_bin_class_init):
	* gst/gstbin.h:
	* gst/gstutils.c:
	Documentation updates.

2005-10-28  Wim Taymans  <wim@fluendo.com>

	* docs/gst/gstreamer-sections.txt:
	* gst/gstclock.c:
	* gst/gstclock.h:
	Documented the clocks.

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

	* docs/gst/gstreamer-sections.txt:
	  move some macros to private sections
	* gst/gstminiobject.c:
	* gst/gstminiobject.h:
	  add descriptions provided by ds and some more
	* gst/gstpad.h:
	  mark macro as to be removed

2005-10-28  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-TODO.txt:
	Add an item to TODO.

	* gst/gstiterator.c: (gst_iterator_fold),
	(gst_iterator_find_custom):
	* gst/gstiterator.h:
	Add iterator docs.

2005-10-28  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasetransform.c: (gst_base_transform_class_init),
	(gst_base_transform_init):
	Don't leak class.

	* gst/gstqueue.c: (gst_queue_handle_sink_event), (gst_queue_loop):
	An EOS event marks the queue as completely filled.

2005-10-27  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
	(gst_base_sink_do_sync), (gst_base_sink_get_position):
	Some more debugging.

	* gst/base/gstbasetransform.c: (gst_base_transform_finalize),
	(gst_base_transform_init), (gst_base_transform_buffer_alloc),
	(gst_base_transform_event), (gst_base_transform_getrange),
	(gst_base_transform_chain):
	* gst/base/gstbasetransform.h:
	Fix debugging,
	Protect transform and concurrent buffer alloc with a new lock.
	Try not to break ABI/API.

2005-10-27  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesrc.c: (gst_base_src_class_init),
	(gst_base_src_init), (gst_base_src_query),
	(gst_base_src_default_newsegment),
	(gst_base_src_configure_segment), (gst_base_src_do_seek),
	(gst_base_src_send_event), (gst_base_src_event_handler),
	(gst_base_src_pad_get_range), (gst_base_src_loop),
	(gst_base_src_unlock), (gst_base_src_default_negotiate),
	(gst_base_src_start), (gst_base_src_deactivate),
	(gst_base_src_activate_push), (gst_base_src_change_state):
	Move some stuff around and cleanup things.

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

	* gst/base/gstbasesrc.c: (gst_base_src_query):
	  Add missing break statements.

2005-10-27  Wim Taymans  <wim@fluendo.com>

	* check/gst/gstbin.c: (GST_START_TEST):
	An extra refcount is taken in basesrc.

	* gst/base/gstbasesrc.c: (gst_base_src_init), (gst_base_src_query),
	(gst_base_src_get_range), (gst_base_src_pad_get_range),
	(gst_base_src_loop):
	Small cleanups, check for flushing after being unlocked from the 
	LIVE_LOCK. take refcounts correctly (not yet everywhere).
	Don't send out EOS when going to READY.

2005-10-27  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
	(gst_base_sink_get_position):
	Some more debug.

	* gst/gstbin.c: (message_check), (bin_replace_message),
	(bin_remove_messages), (is_eos), (gst_bin_add_func),
	(update_degree), (gst_bin_sort_iterator_next), (bin_bus_handler),
	(bin_query_duration_init), (bin_query_duration_fold),
	(bin_query_duration_done), (bin_query_generic_fold),
	(gst_bin_query):
	* tools/gst-launch.c: (main):
	Remove old option.

2005-10-26  Stefan Kost  <ensonic@users.sf.net>

	* examples/controller/audio-example.c: (main):
	* examples/queue/queue.c: (event_loop):
	* gst/base/gstbasetransform.h:
	* gst/gstelement.c: (gst_element_send_event):
	* gst/gstevent.h:
	* gst/gstpad.c: (gst_pad_send_event):
	  fixing examples
	  fixing docs typos
	  changing log priority in error situations

2005-10-25  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c: (message_check), (bin_replace_message),
	(bin_remove_messages), (is_eos), (gst_bin_add_func),
	(update_degree), (gst_bin_sort_iterator_next), (bin_bus_handler),
	(bin_query_duration_init), (bin_query_duration_fold),
	(bin_query_duration_done), (bin_query_generic_fold),
	(gst_bin_query):
	Some doc and debug updates.
	Cache previously requested query DURATION for speed. invalidate
	cached duration if element posts a DURATION message.

2005-10-25  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-TODO.txt:
	Update TODO.

	* gst/gstbin.c: (message_check), (bin_replace_message),
	(bin_remove_messages), (is_eos), (gst_bin_add_func),
	(update_degree), (gst_bin_sort_iterator_next), (bin_bus_handler),
	(bin_query_duration_init), (bin_query_duration_fold),
	(bin_query_duration_done), (bin_query_generic_fold),
	(gst_bin_query):
	Handle SEGMENT_START/DONE messages correctly.
	More evolved query algorithm that handles duration queries
	correctly.

	* gst/gstelement.c: (gst_element_send_event), (gst_element_query),
	(gst_element_get_state_func), (gst_element_abort_state),
	(gst_element_commit_state), (gst_element_lost_state):
	Some more debugging.

	* gst/gstmessage.h:
	Added doc.

2005-10-25  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_get_position):
	Don't use invalid stream_time.

	* gst/gstevent.c: (gst_event_new_newsegment):
	stream_time in newsegment cannot be undefined.

2005-10-24  Wim Taymans  <wim@fluendo.com>

	* gst/gstbus.c:
	Doc fix.

	* gst/gstqueue.c: (gst_queue_handle_sink_event), (gst_queue_chain),
	(gst_queue_loop):
	Fix potential deadlock when QUEUE_LOCK is taken before STREAM_LOCK.

2005-10-24  Stefan Kost  <ensonic@users.sf.net>

	* docs/libs/tmpl/gstdparam.sgml:
	* docs/libs/tmpl/gstdplinint.sgml:
	* docs/libs/tmpl/gstdpman.sgml:
	* docs/libs/tmpl/gstdpsmooth.sgml:
	* docs/libs/tmpl/gstunitconvert.sgml:
	  these are obsolete

2005-10-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  back to HEAD

=== release 0.9.4 ===

2005-10-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  releasing 0.9.4, "Tyrannosaurus Rex"

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

	* gst/elements/gstfilesink.c: (gst_file_sink_do_seek),
	(gst_file_sink_get_current_offset):
	  Use fseeko() and ftello() if available. When falling back on
	  lseek() to get the current offset, fflush() first to make sure
	  everything is up-to-date and we get the right offset.

2005-10-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
	* gst/base/gstbasesrc.c: (gst_base_src_loop):
	* gst/gsterror.c: (_gst_stream_errors_init):
	* gst/gsterror.h:
	* gst/gstqueue.c: (gst_queue_loop):
	* po/POTFILES.in:
	  remove prematurely added error category and clean up the instances

2005-10-21  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_commit_state),
	(gst_base_sink_get_position), (gst_base_sink_query),
	(gst_base_sink_change_state):
	Simply set the right flag when going to playing, that's all
	we need to do instead of calling a function inside the object
	lock (that could take the lock as well and deadlock)

2005-10-21  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesrc.c: (gst_base_src_do_seek),
	(gst_base_src_loop):
	Don't warn, the peer element knows what to do best when
	the seek failed, it might try something else.

2005-10-21  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesrc.c: (gst_base_src_init),
	(gst_base_src_do_seek), (gst_base_src_loop), (gst_base_src_start):
	Fix seeking.

2005-10-21  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-segments.txt:
	More docs.

	* gst/elements/gstcapsfilter.c: (gst_capsfilter_prepare_buf):
	Correctly set caps, even on the subbufer.

2005-10-21  Wim Taymans  <wim@fluendo.com>

	* docs/gst/gstreamer-docs.sgml:
	* docs/gst/gstreamer-sections.txt:
	* gst/gstelement.h:
	* gst/gstevent.c:
	* gst/gstevent.h:
	* gst/gstmessage.h:
	* gst/gstpad.h:
	* gst/gstparse.h:
	* gst/gsttask.c: (gst_task_finalize), (gst_task_func):
	* gst/gsttask.h:
	* gst/gstutils.c:
	* gst/gstutils.h:
	And 2% more doc coverage.

2005-10-21  Andy Wingo  <wingo@pobox.com>

	* gst/base/gstbasesrc.c (gst_base_src_query): Clean up percent
	position reporting.

2005-10-20  Wim Taymans  <wim@fluendo.com>

	* gst/gsterror.c: (gst_error_get_message):
	* gst/gstparse.h:
	* gst/gstquery.h:
	* gst/gststructure.c:
	* gst/gsttrace.c:
	* gst/gstutils.c:
	More docs.

2005-10-20  Wim Taymans  <wim@fluendo.com>

	* gst/gstbuffer.h:
	* gst/gstpad.c:
	* gst/gstparse.c:
	Another 1% more coverage.

2005-10-20  Wim Taymans  <wim@fluendo.com>

	* docs/gst/gstreamer-sections.txt:
	* gst/gstelement.c: (gst_element_get_state_func),
	(gst_element_abort_state), (gst_element_commit_state),
	(gst_element_lost_state):
	* gst/gstevent.h:
	* gst/gstquery.c: (gst_query_set_position),
	(gst_query_parse_position), (gst_query_set_duration),
	(gst_query_parse_duration), (gst_query_new_convert):
	* gst/gstutils.c:
	Yay! 1% more docs coverage.

2005-10-20  Wim Taymans  <wim@fluendo.com>

	* gst/gstpad.h:
	* gst/gstquery.c: (gst_query_set_position),
	(gst_query_parse_position), (gst_query_set_duration),
	(gst_query_parse_duration), (gst_query_new_convert):
	* gst/gstquery.h:
	* gst/gstutils.c: (gst_element_query_convert):
	* gst/gstutils.h:
	Docs and consistency fixes.

2005-10-20  Wim Taymans  <wim@fluendo.com>

	* gst/gsttask.c:
	* gst/gsttask.h:
	More docs.

2005-10-20  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c: (message_check), (bin_replace_message),
	(bin_remove_messages), (is_eos), (gst_bin_add_func),
	(update_degree), (gst_bin_sort_iterator_next),
	(gst_bin_change_state_func), (gst_bin_dispose), (bin_bus_handler):
	Reworked the message handling a bit, cache the messages instead of
	only the senders. alows us to do more in the future.

2005-10-20  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-TODO.txt:
	Update TODO

	* gst/base/gstbasesink.c: (gst_base_sink_get_position),
	(gst_base_sink_query):
	Don't use clock time to report position when in EOS.

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

	* tools/gst-inspect.c: (print_interfaces),
	(print_element_properties_info), (print_element_info):
	  Fix interface output with gst-inspect -a; don't print
	  newlines after double/float properties.

2005-10-20  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_get_position),
	(gst_base_sink_query):
	Speed up current position calculation.

	* gst/base/gstbasesrc.c: (gst_base_src_query),
	(gst_base_src_default_newsegment):
	Correctly set stream position in newsegment.

	* gst/gstbin.c: (gst_bin_add_func), (add_to_queue),
	(update_degree), (gst_bin_sort_iterator_next),
	(gst_bin_sort_iterator_resync), (gst_bin_sort_iterator_free):
	* gst/gstmessage.c: (gst_message_new_custom):
	Clean up debugging info

	* gst/gstqueue.c: (gst_queue_link_src), (gst_queue_chain),
	(gst_queue_loop), (gst_queue_handle_src_query):
	Pause task faster.

2005-10-19  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_commit_state),
	(gst_base_sink_handle_object), (gst_base_sink_query), (do_playing):
	Fix query handling again.

2005-10-19  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_commit_state),
	(gst_base_sink_handle_object), (gst_base_sink_query), (do_playing):
	* gst/base/gstbasesrc.c: (gst_base_src_query):
	* gst/elements/gstfilesink.c: (gst_file_sink_query):
	* gst/elements/gsttypefindelement.c:
	(gst_type_find_handle_src_query), (find_element_get_length),
	(gst_type_find_element_activate):
	API change fix.

	* gst/gstquery.c: (gst_query_new_position),
	(gst_query_set_position), (gst_query_parse_position),
	(gst_query_new_duration), (gst_query_set_duration),
	(gst_query_parse_duration), (gst_query_set_segment),
	(gst_query_parse_segment):
	* gst/gstquery.h:
	Bundling query position/duration is not a good idea since duration
	does not change much and we don't want to recalculate it for every
	position query, so they are separated again..
	Base value in segment query is not needed.

	* gst/gstqueue.c: (gst_queue_handle_src_query):
	* gst/gstutils.c: (gst_element_query_position),
	(gst_element_query_duration), (gst_pad_query_position),
	(gst_pad_query_duration):
	* gst/gstutils.h:
	Updates for query API change.
	Added some docs here and there.

2005-10-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/gst/gstbin.c: (GST_START_TEST):
	* check/gst/gstghostpad.c: (GST_START_TEST):
	* check/pipelines/cleanup.c: (GST_START_TEST):
	  wait on thread to die so we can check refcount correctly

2005-10-18  Wim Taymans  <wim@fluendo.com>

	* check/pipelines/stress.c: (GST_START_TEST):
	Make check a little more time consuming.

2005-10-18  Wim Taymans  <wim@fluendo.com>

	* check/Makefile.am:
	* check/pipelines/stress.c: (GST_START_TEST),
	(simple_launch_lines_suite), (main):
	Small state change torture test.

	* docs/design/part-states.txt:
	* gst/base/gstbasesink.c: (gst_base_sink_commit_state),
	(gst_base_sink_handle_object), (gst_base_sink_event), (do_playing),
	(gst_base_sink_change_state):
	Never take state lock from streaming thread, clean up ugly
	hacks. Unfortunatly core does not yet support nice ways to
	async commit state.
	
	* gst/gstbin.c: (gst_bin_remove_func), (gst_bin_recalc_state),
	(bin_bus_handler):
	Start state recalc if a STATE_DIRTY message is posted, but only
	on the toplevel bin.

	* gst/gstelement.c: (gst_element_sync_state_with_parent),
	(gst_element_get_state_func), (gst_element_abort_state),
	(gst_element_commit_state), (gst_element_lost_state),
	(gst_element_set_state_func), (gst_element_change_state):
	* gst/gstelement.h:
	State variables are now protected with the LOCK, the state
	lock is only used to serialize _set_state().

2005-10-18  Wim Taymans  <wim@fluendo.com>

	* check/gst/gstbin.c: (GST_START_TEST):
	* check/gst/gstmessage.c: (GST_START_TEST):
	* check/gst/gstpipeline.c: (GST_START_TEST), (message_received):
	* gst/gstbin.c: (gst_bin_class_init), (gst_bin_recalc_func),
	(bin_bus_handler):
	* gst/gstelement.c: (gst_element_abort_state),
	(gst_element_commit_state), (gst_element_lost_state):
	* gst/gstmessage.c: (gst_message_new_state_changed),
	(gst_message_new_state_dirty), (gst_message_new_segment_start),
	(gst_message_new_segment_done), (gst_message_new_duration),
	(gst_message_parse_state_changed),
	(gst_message_parse_segment_start),
	(gst_message_parse_segment_done), (gst_message_parse_duration):
	* gst/gstmessage.h:
	* tools/gst-launch.c: (event_loop):
	Seriously, this is better than a previous commit as we only need
	to notify the fact that an element changed state in a streaming
	thread, marking the state of the parents dirty, hence the 
	STATE_DIRTY message instead of abusing a boolean in a STATE_CHANGE
	message.

2005-10-18  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c: (gst_bin_class_init), (gst_bin_get_state_func),
	(gst_bin_recalc_func):
	* gst/gstelement.c: (gst_element_set_clock),
	(gst_element_abort_state), (gst_element_lost_state):
	Cleanups, prepare for state change fixes.

2005-10-18  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.h:
	* gst/gstelement.c: (gst_element_class_init),
	(gst_element_set_state), (gst_element_set_state_func):
	* gst/gstelement.h:
	Pending ABI changes.
	GThreadPool in GstBinClass to monitor async state changes.
	state_cookie in GstElement to detect concurrent gst/set state.
	set_state is now virtual too in case a very complicated element
	has to be constructed.

2005-10-18  Wim Taymans  <wim@fluendo.com>

	* check/gst/gstbin.c: (GST_START_TEST):
	* check/gst/gstmessage.c: (GST_START_TEST):
	* check/gst/gstpipeline.c: (GST_START_TEST), (message_received):
	* gst/gstbin.c: (bin_bus_handler):
	* gst/gstelement.c: (gst_element_commit_state),
	(gst_element_lost_state):
	* gst/gstmessage.c: (gst_message_new_state_changed),
	(gst_message_new_segment_start), (gst_message_new_segment_done),
	(gst_message_new_duration), (gst_message_parse_state_changed),
	(gst_message_parse_segment_start),
	(gst_message_parse_segment_done), (gst_message_parse_duration):
	* gst/gstmessage.h:
	* tools/gst-launch.c: (event_loop):
	Make messages future proof.
	state-change gets a flag if it was a message comming from the
	streaming thread.
	segment-start/stop can also be specified in other formats.
	A message to notify an app that a pipeline changed playback 
	duration.
	Also fix a GstMessage leak in -launch

2005-10-18  Andy Wingo  <wingo@pobox.com>

	* gst/gstelement.c (gst_element_dispose): More helpful message.

2005-10-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	reviewed by: <delete if not using a buddy>

	* common/gtk-doc.mak:

2005-10-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstregistry.c: (gst_registry_scan_path_level):
	  unref a plug-in we get that was already initialized

2005-10-18  Stefan Kost  <ensonic@users.sf.net>

	* docs/gst/gstreamer-sections.txt:
	* docs/libs/gstreamer-libs-sections.txt:
	* gst/gstelement.h:
	  add new api entries
	  hide internal macro

2005-10-17  Andy Wingo  <wingo@pobox.com>

	* gst/base/gstcollectpads.c (gst_collectpads_chain): Slight
	cleanup.

	* gst/Makefile.am (gstenumtypes.c): Threadsafe now.

	* gst/gstevent.c (gst_event_new, gst_event_finalize): LOG.

	* gst/gstelement.c (gst_element_get_state_func): s/INFO/DEBUG/.
	(gst_element_get_state_func): Better debug message.
	(gst_element_commit_state): s/INFO/DEBUG/.
	(gst_element_lost_state, gst_element_change_state): 

	* gst/gstmessage.c (gst_message_init): s/INFO/LOG/.
	(gst_message_new_custom): s/INFO/LOG/.

2005-10-17  Michael Smith <msmith@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_do_sync):
	  Check if end time is valid using end time, not start time.

2005-10-17  Stefan Kost  <ensonic@users.sf.net>

	* check/gst-libs/controller.c: (GST_START_TEST),
	(gst_controller_suite):
	* libs/gst/controller/gstcontroller.c:
	(gst_controlled_property_set_interpolation_mode):
	* libs/gst/controller/gstcontroller.h:
	* libs/gst/controller/gstinterpolation.c:
	* testsuite/controller/.cvsignore:
	* testsuite/controller/Makefile.am:
	* testsuite/controller/interpolator.c:
	  merge controller testsuites
	  fix broken tests
	  remove mem-chunk from docs

2005-10-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstmemchunk.c:
	* gst/gstmemchunk.h:
	* gst/gsttrashstack.c:
	* gst/gsttrashstack.h:
	  out.  get out.  you're fired.  to the Attic !

2005-10-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstcaps.c: (gst_caps_intersect):
	  fix signedness issues in a (hopefully) correct way
	* gst/gstelement.c: (gst_element_pads_activate):
	  some debugging
	* gst/gstobject.c: (gst_object_set_parent):
	  some debugging

2005-10-17  Julien MOUTTE  <julien@moutte.net>

	* gst/gstvalue.h: Fix prototypes.

2005-10-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/gst/gstreamer-sections.txt:
	* gst/gst.c: (gst_version_string):
	* gst/gst.h:
	* gst/gstversion.h.in:
	* win32/common/libgstreamer.def:
	  add gst_version_string ()

2005-10-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  clean up further
	* gst/gst.c: (init_post):
	* win32/common/config.h.in:
	  it's PLUGINDIR now
	* gst/gstcaps.c: (gst_caps_intersect):
	  use gint64, the range could be bigger than a guint

2005-10-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstclock.h:
	  document potential problem in 2038

2005-10-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstcaps.c: (gst_caps_intersect):
	  Fix guint j diving under 0

2005-10-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* win32/common/config.h:
	* win32/common/config.h.in:
	  check for process.h, declares getpid() on Windows
	* gst/gstinfo.c:
	  include process.h if we have it
	* gst/gstmemchunk.c: (populate), (gst_mem_chunk_new):
	* gst/gstmemchunk.h:
	  fix signedness issues
	* win32/common/libgstreamer.def:
	  fix get_type's

2005-10-16  Julien MOUTTE  <julien@moutte.net>

	* gst/gstcaps.c: (gst_caps_intersect): Fix a bad bug with a simple
	fix. Because of unsigned ints, caps intersection was going nuts and
	trying to access structures with G_MAXUINT index. That fixes
	videotestsrc ! ffmpegcolorspace ! fakesink
	* gst/gstpad.c: (gst_pad_link_check_compatible_unlocked): logs
	consistency.

2005-10-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  use the gettext macro
	* gst/elements/gstelements.c:
	* gst/gst.c:
	* gst/indexers/gstindexers.c:
	  update for GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN
	* win32/common/config.h:
	  updated config.h
	* win32/common/config.h.in:
	  add the template to generate config.h
	* win32/common/gstenumtypes.c:
	* win32/common/gstversion.h:
	  updated copies

2005-10-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gst.c: (gst_version):
	* gst/gstversion.h.in:
	  add the nano

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

	* gst/gstevent.h:
	  Oops, add missing closing bracket.

2005-10-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  use common m4's for argument checking

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

	* docs/gst/gstreamer-sections.txt:
	* gst/gstevent.h:
	  Add GST_EVENT_TYPE_NAME() macro.

2005-10-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstinfo.c:
	* gst/gstpluginfeature.c:
	* gst/gsttask.c:
	  privatize more symbols

2005-10-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  add srcdir, builddir includes to GST_ALL_CFLAGS, since
	  everything that uses GStreamer API should have the includes

2005-10-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/gst/gstreamer-sections.txt:
	* gst/gstvalue.c: (gst_date_get_type), (_gst_value_initialize):
	* gst/gstvalue.h:
	  give each value a _get_type, removes the DATA exports

2005-10-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gst.c:
	* gst/gst.h:
	  remove _gst_registry_auto_load, not used anymore
	* gst/gstbin.c: (gst_bin_get_type):
	* gst/gstbin.h:
	* gst/gstelement.c: (gst_element_get_type):
	* gst/gstelement.h:
	* gst/gstobject.c: (gst_object_get_type):
	* gst/gstobject.h:
	* gst/gstpad.c: (gst_pad_get_type):
	* gst/gstpad.h:
	  make _get_type functions similar, fixes data export from library

2005-10-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  correctly make conditionals
	* gst/elements/Makefile.am:
	* gst/elements/gstelements.c:
	  fix typo causing fdsrc not to build

2005-10-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* testsuite/Makefile.am:
	* testsuite/bytestream/.cvsignore:
	* testsuite/bytestream/Makefile.am:
	* testsuite/bytestream/filepadsink.c:
	* testsuite/bytestream/gstbstest.c:
	* testsuite/bytestream/test1.c:
	* testsuite/bytestream/testfile1:
	* testsuite/caps/normalisation.c:
	* testsuite/caps/random.c: (main):
	* testsuite/cleanup/.cvsignore:
	* testsuite/cleanup/Makefile.am:
	* testsuite/cleanup/cleanup1.c:
	* testsuite/cleanup/cleanup2.c:
	* testsuite/cleanup/cleanup3.c:
	* testsuite/cleanup/cleanup4.c:
	* testsuite/cleanup/cleanup5.c:
	* testsuite/controller/interpolator.c:
	* testsuite/debug/printf_extension.c: (main):
	* testsuite/elements/tee.c:
	* testsuite/negotiation/.cvsignore:
	* testsuite/negotiation/Makefile.am:
	* testsuite/negotiation/pad_link.c:
	* testsuite/pad/Makefile.am:
	* testsuite/pad/chainnopull.c:
	* testsuite/pad/getnopush.c:
	* testsuite/pad/link.c:
	* testsuite/refcounting/sched.c: (create_pipeline):
	* testsuite/registry/Makefile.am:
	* testsuite/registry/gst-print-formats.c:
	* testsuite/schedulers/.cvsignore:
	* testsuite/schedulers/142183-2.c:
	* testsuite/schedulers/142183.c:
	* testsuite/schedulers/143777-2.c:
	* testsuite/schedulers/143777.c:
	* testsuite/schedulers/147713.c:
	* testsuite/schedulers/147819.c:
	* testsuite/schedulers/147894-2.c:
	* testsuite/schedulers/147894.c:
	* testsuite/schedulers/Makefile.am:
	* testsuite/schedulers/group_link.c:
	* testsuite/schedulers/queue_link.c:
	* testsuite/schedulers/relink.c:
	* testsuite/schedulers/unlink.c:
	* testsuite/schedulers/unref.c:
	* testsuite/schedulers/useless_iteration.c:
	* testsuite/states/bin.c:
	  clean out/remove some stuff from the testsuite directories

2005-10-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  check for some headers
	* gst/elements/Makefile.am:
	* gst/elements/gstelements.c:
	  don't compile fdsrc without sys/socket.h
	* gst/indexers/Makefile.am:
	* gst/indexers/gstindexers.c: (plugin_init):
	  don't compile fileindex without mmap

2005-10-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  reorganize
	  clean up
	  document more
	  remove cruft
	* check/Makefile.am:
	* docs/gst/Makefile.am:
	* examples/helloworld/Makefile.am:
	* gst/Makefile.am:
	* gst/base/Makefile.am:
	* gst/check/Makefile.am:
	* gst/elements/Makefile.am:
	* gst/indexers/Makefile.am:
	* gst/parse/Makefile.am:
	* libs/gst/controller/Makefile.am:
	* libs/gst/dataprotocol/Makefile.am:
	* examples/helloworld/helloworld.c: (event_loop):
	  compile fixes, though it's not being compiled currently

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

	* check/gst/gsttag.c: (test_date_tags), (gst_tag_suite):
	  Add some simple tests for the new taglist date API.

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

	* gst/elements/gstfakesink.c: (gst_fake_sink_render):
	* gst/elements/gstfakesrc.c: (gst_fake_src_create):
	  Beautify 'last-message' output: print 'none' for buffer timestamps
	  and durations if none is set; improve alignment with next messages.

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

	* gst/gstpluginfeature.c: (gst_plugin_feature_check_version):
	* gst/gstpluginfeature.h:
	* gst/gstregistry.c: (gst_default_registry_check_feature_version):
	* gst/gstregistry.h:
	* docs/gst/gstreamer-sections.txt:
	  Add new API to check plugin feature version requirements.

	* check/gst/gstplugin.c: (test_version_checks), (gst_plugin_suite):
	  Some basic tests for the above.	  

2005-10-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gststructure.c: (gst_structure_to_string):
	  guard against NULL printf - happens when for example
	  a message structure with GstClock gets serialized

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

	* gst/base/gstcollectpads.c: (gst_collectpads_event):
	  Fix presumable copy'n'pasto.

2005-10-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/elements/gstfakesrc.h:
	* gst/elements/gstfilesrc.c: (gst_file_src_create_read):
	* gst/elements/gsttypefindelement.c:
	  fix some signedness
	* gst/elements/gstfilesink.c: (gst_file_sink_render):
	  I wonder if this could actually write +2GB files before

2005-10-13  Andy Wingo  <wingo@pobox.com>

	* libs/gst/dataprotocol/dataprotocol.c (gst_dp_packet_from_caps):
	Fix Timmeke Waymans bug.
	(gst_dp_caps_from_packet): Make sure we pass a NUL-terminated
	string of the proper length to gst_caps_from_string. There's a
	potential for, before this fix, that this could cause someone
	connecting over the network to cause a segfault if the payload is
	not NUL-terminated.

2005-10-13  Stefan Kost  <ensonic@users.sf.net>

	* docs/design/draft-push-pull.txt:
	* docs/design/part-overview.txt:
	* docs/random/TODO-pre-0.9:
	* docs/random/old/ChangeLog.gstreamer:
	* gst/base/gstpushsrc.c:
	* gst/gstclock.c:
	  fixed typos

2005-10-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/glib-compat.c: (gst_flags_get_first_value):
	* gst/glib-compat.h:
	* gst/gstvalue.c: (gst_value_deserialize_int_helper),
	(gst_value_compare_double), (gst_value_serialize_flags):
	  GLib 2.6 g_flags_get_first_value has a bug that triggers an
	  infinite loop

2005-10-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
	* gst/base/gstbasesrc.c: (gst_base_src_get_range):
	  fix up debugging
	* tools/gst-launch.c: (event_loop):
	  print out clock nicely

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

	* docs/gst/gstreamer-sections.txt:
	* gst/gsttaglist.h:
	* gst/gsttaglist.c: (_gst_tag_initialize), (gst_tag_list_get_date),
	(gst_tag_list_get_date_index):
	  Added gst_tag_list_get_date() and gst_tag_list_get_date_index().
	  GST_TAG_DATE now has a tag type of GST_TYPE_DATE (#170777).

2005-10-13  Julien MOUTTE  <julien@moutte.net>

	* gst/base/gstcollectpads.c: (gst_collectpads_event),
	(gst_collectpads_chain):
	* gst/base/gstcollectpads.h: Handle newsegment and store informations
	in CollectData.

2005-10-13  Stefan Kost  <ensonic@users.sf.net>

	* docs/gst/gstreamer-sections.txt:
	* gst/gst.c:
	* gst/gsterror.h:
	* tools/gst-inspect.c: (main):
	* tools/gst-launch.c: (main):
	* tools/gst-run.c: (main):
	* tools/gst-xmlinspect.c: (main):
	  fix GOption context leaks
	  doc fixes

2005-10-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstbus.c:
	  use HAVE_UNISTD_H
	* win32/common/config.h:
	  update config
	* win32/vs6/grammar.dsp:
	* win32/vs6/libgstelements.dsp:
	* win32/vs6/libgstreamer.dsp:
	  update vs6 files

2005-10-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
	* gst/base/gstbasesrc.c: (gst_base_src_query):
	  fix more guint64<->gdouble conversions

2005-10-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	  add win32-update target
	* win32/common/gstconfig.h:
	* win32/common/gstenumtypes.c:
	* win32/common/gstenumtypes.h:
	* win32/common/gstversion.h:
	  add files that visual studio can't generate

2005-10-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	  add a win32-update target
	* configure.ac:

2005-10-12  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c: (gst_bin_add_func), (gst_bin_remove_func),
	(reset_degree), (gst_bin_dispose), (bin_bus_handler):
	* gst/gstelement.c: (gst_element_commit_state),
	(gst_element_set_state):
	Protect flags with proper lock.
	unref provided cached clock in dispose.

2005-10-12  Stefan Kost  <ensonic@users.sf.net>

	* gst/gst.c:
	* gst/gstminiobject.h:
	* gst/gstpad.h:
	* win32/gstenumtypes.c: (gst_mini_object_flags_get_type):
	  removed unused flags from miniobject
	  doc fixes

2005-10-12  Wim Taymans  <wim@fluendo.com>

	* gst/elements/gstfilesink.c: (gst_file_sink_do_seek),
	(gst_file_sink_event), (gst_file_sink_render):
	Flush before seeking.

2005-10-12  Andy Wingo  <wingo@pobox.com>

	* gst/gst.c (gst_init_check): Ignore unknown options, as has
	always been the case.

2005-10-12  Stefan Kost  <ensonic@users.sf.net>

	* check/gst/gstbin.c: (GST_START_TEST):
	* docs/gst/gstreamer-sections.txt:
	* gst/base/gstbasesink.c: (gst_base_sink_init):
	* gst/base/gstbasesrc.c: (gst_base_src_init),
	(gst_base_src_get_range), (gst_base_src_check_get_range),
	(gst_base_src_start), (gst_base_src_stop):
	* gst/base/gstbasesrc.h:
	* gst/elements/gstfakesrc.c: (gst_fake_src_set_property):
	* gst/gstbin.c: (gst_bin_add_func), (gst_bin_remove_func),
	(bin_element_is_sink), (reset_degree), (gst_bin_element_set_state),
	(bin_bus_handler):
	* gst/gstbin.h:
	* gst/gstbuffer.h:
	* gst/gstbus.c: (gst_bus_post), (gst_bus_set_flushing):
	* gst/gstbus.h:
	* gst/gstelement.c: (gst_element_is_locked_state),
	(gst_element_set_locked_state), (gst_element_commit_state),
	(gst_element_set_state):
	* gst/gstelement.h:
	* gst/gstindex.c: (gst_index_init):
	* gst/gstindex.h:
	* gst/gstminiobject.h:
	* gst/gstobject.c: (gst_object_init), (gst_object_sink),
	(gst_object_set_parent):
	* gst/gstobject.h:
	* gst/gstpad.c: (gst_pad_set_blocked_async), (gst_pad_is_blocked),
	(gst_pad_get_caps_unlocked), (gst_pad_set_caps):
	* gst/gstpad.h:
	* gst/gstpadtemplate.h:
	* gst/gstpipeline.c: (gst_pipeline_provide_clock_func),
	(gst_pipeline_use_clock), (gst_pipeline_auto_clock):
	* gst/gstpipeline.h:
	* gst/indexers/gstfileindex.c: (gst_file_index_load),
	(gst_file_index_commit):
	* testsuite/bytestream/filepadsink.c: (gst_fp_sink_init):
	* testsuite/pad/link.c: (gst_test_src_init),
	(gst_test_filter_init), (gst_test_sink_init):
	* testsuite/states/locked.c: (main):
	  renamed GST_FLAGS macros to GST_OBJECT_FLAGS
	  moved bitshift from macro to enum definition

2005-10-12  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_handle_buffer):
	* gst/elements/gstfilesink.c: (gst_file_sink_event),
	(gst_file_sink_render):
	Some more debugging info.

2005-10-12  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-states.txt:
	* tools/gst-launch.c: (main):
	Some doc updates.
	Revert non-intentional change.

2005-10-12  Wim Taymans  <wim@fluendo.com>

	* check/gst/gstbin.c: (GST_START_TEST):
	* check/gst/gstelement.c: (GST_START_TEST):
	* check/gst/gstevent.c: (GST_START_TEST), (test_event):
	* check/gst/gstghostpad.c: (GST_START_TEST):
	* check/gst/gstpipeline.c: (GST_START_TEST):
	* check/pipelines/simple_launch_lines.c: (run_pipeline):
	* check/states/sinks.c: (GST_START_TEST):
	* gst/elements/gsttypefindelement.c: (stop_typefinding):
	* gst/gstbin.c: (gst_bin_provide_clock_func), (gst_bin_add_func),
	(gst_bin_remove_func), (gst_bin_get_state_func),
	(gst_bin_recalc_state), (gst_bin_change_state_func),
	(bin_bus_handler):
	* gst/gstelement.c: (gst_element_get_state_func),
	(gst_element_get_state), (gst_element_abort_state),
	(gst_element_commit_state), (gst_element_set_state),
	(gst_element_change_state), (gst_element_change_state_func):
	* gst/gstelement.h:
	* gst/gstpipeline.c: (gst_pipeline_class_init), (do_pipeline_seek),
	(gst_pipeline_provide_clock_func):
	* gst/gstutils.c: (gst_element_link_pads_filtered):
	* tools/gst-launch.c: (main):
	* tools/gst-typefind.c: (main):
	Use GstClockTime in _get_state() instead of GTimeVal.
	Remove old code in gstutils.c

2005-10-12  Andy Wingo  <wingo@pobox.com>

	* gst/gstregistry.h (gst_registry_scan_paths): Not implemented, so
	removed.

	* gst/gstpad.c (gst_pad_pause_task): Actually return FALSE if
	there is no task. Shouldn't affect any code, as nothing in our
	plugins checks this return value.
	(gst_pad_stop_task): Also take the stream lock if the pad has no
	task. Docs updated.

2005-10-12  Wim Taymans  <wim@fluendo.com>

	* gst/gstpad.c: (pre_activate), (post_activate),
	(gst_pad_activate_pull), (gst_pad_activate_push):
	Cleanup activation code. Reset old state if
	activation failed.

2005-10-12  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
	(gst_base_sink_change_state):
	No need to prerol after receiving EOS.

	* gst/elements/gstfakesink.c: (gst_fake_sink_event):
	* gst/elements/gstfakesrc.c: (gst_fake_src_event_handler):
	* gst/elements/gstidentity.c: (gst_identity_event):
	Print events more verbosely.

2005-10-12  Wim Taymans  <wim@fluendo.com>

	* check/Makefile.am:
	* check/states/sinks.c: (GST_START_TEST), (gst_object_suite):
	* check/states/sinks2.c:
	Moved sinks2 testcode in sinks check.

	* gst/gstbin.c: (gst_bin_provide_clock_func), (gst_bin_add_func),
	(gst_bin_remove_func), (gst_bin_recalc_state),
	(gst_bin_change_state_func), (bin_bus_handler):
	Fix potential race condition when _get_state() iterated over an
	ASYNC element right before it posted a state completion.

	* gst/gstclock.h:
	Do proper cast here.

	* gst/gstevent.c: (gst_event_new_newsegment),
	(gst_event_parse_newsegment):
	A playback rate of 0.0 is not allowed.

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

	* win32/common/config.h:
	* win32/common/dirent.c: (_topendir), (_treaddir), (_tclosedir),
	(_trewinddir), (_ttelldir), (_tseekdir):
	* win32/common/dirent.h:
	* win32/common/gtchar.h:
	* win32/common/libgstbase.def:
	* win32/common/libgstreamer.def:
	* win32/vs6/grammar.dsp:
	* win32/vs6/gst_inspect.dsp:
	* win32/vs6/gst_launch.dsp:
	* win32/vs6/gstreamer.dsw:
	* win32/vs6/libgstbase.dsp:
	* win32/vs6/libgstelements.dsp:
	* win32/vs6/libgstreamer.dsp:
	  Visual Studio 6 project files, and a new common directory.
	  Phear.

2005-10-11  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
	(gst_base_sink_do_sync), (gst_base_sink_query),
	(gst_base_sink_change_state):
	* gst/base/gstbasesink.h:
	Correctly parse newsegment info.

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

	* gst/gst.c: (init_post):
	  split plugin paths correctly

2005-10-11  Wim Taymans  <wim@fluendo.com>

	* check/gst/gstevent.c: (GST_START_TEST):
	* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
	(gst_base_sink_change_state):
	* gst/base/gstbasesrc.c: (gst_base_src_default_newsegment):
	* gst/base/gstbasetransform.c: (gst_base_transform_event):
	* gst/elements/gstfilesink.c: (gst_file_sink_event):
	* gst/gstevent.c: (gst_event_new_newsegment),
	(gst_event_parse_newsegment):
	* gst/gstevent.h:
	Added extra flag to newsegment for future API freeze.
	Updated check and base elements.

2005-10-11  Julien MOUTTE  <julien@moutte.net>

	* gst/base/gstcollectpads.c: (gst_collectpads_init),
	(gst_collectpads_add_pad), (gst_collectpads_pop),
	(gst_collectpads_event), (gst_collectpads_chain):
	* gst/base/gstcollectpads.h: Handle EOS correctly.

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

	* tools/gst-launch.c: (main):
	  more null protecting

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

	* gst/gst-i18n-lib.h:
	  check for ENABLE_NLS, not GETTEXT_PACKAGE
	* gst/gstregistry.c: (gst_registry_add_plugin),
	(gst_registry_scan_path_level),
	(_gst_registry_remove_cache_plugins):
	  protect possibly NULL strings
	* gst/parse/types.h:
	  config.h already included before
	* tools/gst-inspect.c: (main):
	  sys/wait.h also doesn�t exist on mingw, so change the ifdef check
	  check for ENABLE_NLS, not GETTEXT_PACKAGE
	* tools/gst-launch.c: (main):
	  check for ENABLE_NLS, not GETTEXT_PACKAGE

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

	* configure.ac:
	  if we don't have glib, fail before testing 2.8
	* gst/base/gstbasetransform.c: (gst_base_transform_change_state):
	  fix a leak, should fix plugins-base testsuite

2005-10-11  Andy Wingo  <wingo@pobox.com>

	* gst/gstpad.c (pre_activate): Renamed from pre_activate_switch,
	take the mode we're going to as an arg. Go head and set the mode
	and flushing flags now, so that if the activate function starts a
	thread all the flags will be in the right state.
	(post_activate): Renamed also. Just handle making sure streaming
	finishes for the deactivation case, and setting the deactivated
	mode.
	(gst_pad_set_active): Complain loudly if deactivation fails.
	(gst_pad_activate_pull): Adapt to pre/post_activate changes.
	(gst_pad_activate_push): Adapt to pre/post_activate changes,
	remove the terrible hack.

2005-10-11  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c: (gst_bin_init), (gst_bin_provide_clock_func),
	(is_eos), (gst_bin_add_func), (gst_bin_remove_func),
	(gst_bin_recalc_state), (gst_bin_change_state_func),
	(gst_bin_dispose), (bin_bus_handler):
	* gst/gstbin.h:
	Prepare to make current EOS message queue more generic.
	Fix some typos.

	* gst/gstevent.c: (gst_event_new_newsegment),
	(gst_event_parse_newsegment):
	* gst/gstevent.h:
	Rename base to stream_time.

	* gst/gstmessage.h:
	Fix typo in docs.

2005-10-11  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c: (gst_bin_init), (gst_bin_provide_clock_func),
	(gst_bin_add_func), (gst_bin_remove_func), (gst_bin_recalc_state),
	(gst_bin_change_state_func), (bin_bus_handler):
	* gst/gstbin.h:
	Work on proper clock selection.

2005-10-11  Edward Hervey  <edward@fluendo.com>

	* libs/gst/controller/gstcontroller.c: (gst_controller_remove_properties_list): 
	* libs/gst/controller/gstcontroller.h:
	Added GList* version of _remove_properties() in order to be able to wrap
	it in bindings.

2005-10-11  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-states.txt:
	Some more docs.

	* gst/gstbin.c: (gst_bin_set_clock_func), (gst_bin_recalc_state),
	(gst_bin_change_state_func), (bin_bus_handler):
	Doc updates. Don't distribute the same clock over and over again.

	* gst/gstclock.c:
	* gst/gstclock.h:
	Doc updates.

	* gst/gstpad.c: (gst_flow_get_name), (gst_flow_to_quark),
	(gst_pad_get_type), (gst_pad_push), (gst_pad_push_event),
	(gst_pad_send_event):
	* gst/gstpad.h:
	Make probe emission threadsafe again.
	Register quarks and move _get_name() from utils.
	Doc updates.

	* gst/gstpipeline.c: (gst_pipeline_class_init),
	(gst_pipeline_change_state), (gst_pipeline_provide_clock_func):
	Only redistribute the clock of it changed.

	* gst/gstsystemclock.h:
	Doc updates. 

	* gst/gstutils.c:
	* gst/gstutils.h:
	Moved the _flow_get_name() to GstPad.

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

	* check/gst-libs/gdp.c: (GST_START_TEST):
	* check/gst/gstcaps.c: (GST_START_TEST):
	* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_crc),
	(gst_dp_dump_byte_array), (gst_dp_header_from_buffer),
	(gst_dp_packet_from_caps):
	  fix more valgrind warnings before turning up the heat

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

	* gst/parse/grammar.y:
	  some cleanup before the hacking

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

	* gst/base/gstbasesrc.c: (gst_base_src_query):
	  use conversions
	* gst/gstutils.c: (gst_guint64_to_gdouble),
	(gst_gdouble_to_guint64), (gst_util_uint64_scale):
	* gst/gstutils.h:
	  externalize, basesrc uses it
	  obviously the implementation needs testing

2005-10-10  Wim Taymans  <wim@fluendo.com>

	* tests/sched/Makefile.am:
	* tests/sched/sort.c: (make_pipeline1), (make_pipeline2),
	(make_pipeline3), (make_pipeline4), (print_elem), (main):

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

	* gst/gstutils.c: (guint64_to_gdouble), (gst_util_uint64_scale):
	  apparently converting from guint64 to double is not implemented
	  on MSVC

2005-10-10  Wim Taymans  <wim@fluendo.com>

	* check/Makefile.am:
	* check/generic/states.c: (GST_START_TEST):
	* check/gst/gstbin.c: (GST_START_TEST):
	* check/gst/gstpipeline.c: (GST_START_TEST), (gst_pipeline_suite):
	* check/states/sinks.c: (GST_START_TEST):
	* check/states/sinks2.c: (GST_START_TEST), (gst_object_suite),
	(main):
	Check fixes, use API as stated in design docs, remove hacks.

	* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
	(gst_base_sink_change_state):
	Catch stopping our task while we're shutting down.

	* gst/gstbin.c: (gst_bin_init), (gst_bin_add_func),
	(gst_bin_remove_func), (gst_bin_get_state_func),
	(gst_bin_recalc_state), (gst_bin_change_state_func),
	(bin_bus_handler):
	* gst/gstbin.h:
	* gst/gstelement.c: (gst_element_init),
	(gst_element_get_state_func), (gst_element_abort_state),
	(gst_element_commit_state), (gst_element_lost_state),
	(gst_element_set_state), (gst_element_change_state),
	(gst_element_change_state_func):
	* gst/gstelement.h:
	New state change algorithm (see #318116)

	* gst/gstpipeline.c: (gst_pipeline_class_init),
	(gst_pipeline_init), (gst_pipeline_set_property),
	(gst_pipeline_get_property), (do_pipeline_seek),
	(gst_pipeline_change_state), (gst_pipeline_provide_clock_func):
	* gst/gstpipeline.h:
	Remove crude state change hacks.

	* gst/gstutils.h:
	Remove crude hacks.

	* tools/gst-launch.c: (main):
	Fixes for state change. Needs some more work to fully use the
	new stuff.

2005-10-10  Andy Wingo  <wingo@pobox.com>

	* tests/Makefile.am (noinst_PROGRAMS): No more init.c.

	* gst/gst.c (G_OPTION_FLAG_NO_ARG): Apparently GLib 2.8 requires
	this flag, but it's not even in GLib 2.6. Odd. Hack around the
	issue.

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

	* gst/gstiterator.c: (gst_iterator_new):
	  Fix my previous commit: GTypes passed to gst_iterator_new()
	  can be fundamental types.

2005-10-10  Wim Taymans  <wim@fluendo.com>

	* gst/gstelement.c: (gst_element_iterate_pad_list),
	(gst_element_iterate_pads), (gst_element_iterate_src_pads),
	(gst_element_iterate_sink_pads):
	Use src/sink pads lists for the respective iterators instead
	of filtering.

2005-10-10  Andy Wingo  <wingo@pobox.com>

	Merged in popt removal + GOption addition patch from Ronald, bug
	#169772.

	* docs/gst/gstreamer-sections.txt: Add STATE_(UN)LOCK_FULL, move
	GstElement macros around, remove popt-related symbols, add goption
	stuff.

	* configure.ac: Remove popt checks, require GLib 2.6 for GOption.
	
	* docs/gst/Makefile.am:
	* docs/libs/Makefile.am: No POPT_CFLAGS.
	
	* examples/manual/Makefile.am:
	* docs/manual/basics-init.xml: Doc updates with an example.
	
	* gst/gst.c: (gst_init_get_option_group), (gst_init_check),
	(gst_init), (parse_one_option), (parse_goption_arg):
	* gst/gst.h: Removed gst_init_with_popt_table and friends. Took a
	bit of hand merging and debugging to get the GOption stuff working
	tho.
	
	* tests/Makefile.am:
	* tools/Makefile.am:
	* tools/gst-inspect.c: (main):
	* tools/gst-launch.c: (main):
	* tools/gst-run.c: (main):
	* tools/gst-xmlinspect.c: (main): Thanks Ronald!

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

	* gst/gstiterator.c: (gst_iterator_new):
	  Add assertions to make sure passed GType is likely to really
	  be a GType (as the compiler won't catch it if the size and
	  GType arguments get mixed up, see #318447).

2005-10-10  Josef Zlomek  <josef dot zlomek at xeris dot cz>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstbin.c: (gst_bin_iterate_sorted):
	  Pass GType and size arguments to gst_iterator_new() in the right
	  order (maybe we should make _new() take the GType as first argument
	  just like _new_list()?) (#318447).
	  

2005-10-10  Wim Taymans  <wim@fluendo.com>

	* gst/gstelement.c: (gst_element_finalize):
	And free the GStaticRecMutex too

2005-10-10  Andy Wingo  <wingo@pobox.com>

	* gst/gstelement.c (gst_element_init, gst_element_finalize):
	Allocate and free the mutex properly.

	* gst/gstelement.h (GST_STATE_UNLOCK_FULL, GST_STATE_LOCK_FULL):
	New macros.
	(GstElement): The state_lock is now recursive. Rebuild your
	plugins, suckers. Old macros adapted.

	* docs/gst/gstreamer-sections.txt: Doc updates.

	* gst/gstutils.h:
	* gst/gstutils.c (g_static_rec_cond_timed_wait) 
	(g_static_rec_cond_wait): Ported from state changes patch, while
	we wait on bug #317802 to be solved in a well-distributed GLib.

	* gst/gstelement.c (gst_element_change_state_func): Renamed from
	gst_element_change_state, variable name changes.
	(gst_element_change_state): Split out of gst_element_set_state in
	preparation for the state change merge. Doesn't pay attention to
	the 'transition' argument.
	(gst_element_set_state): Updates, hopefully purely cosmetic.
	(gst_element_sync_state_with_parent): MT-safety. Ported from the
	state change patch.
	(gst_element_get_state_func): Renamed from get_state, cosmetic
	changes.

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

	* gst/elements/gstelements.c:
	* win32/GStreamer.vcproj:
	* win32/config.h:
	* win32/dirent.c: (_tseekdir):
	* win32/gst-inspect.vcproj:
	* win32/gst-launch.vcproj:
	* win32/gstconfig.h:
	* win32/gstelements.vcproj:
	* win32/gstenumtypes.c: (gst_object_flags_get_type):
	* win32/gstreamer.def:
	* win32/msvc71.sln:
	  updates for the win32 build (patch from Sebastien Moutte)

2005-10-10  Andy Wingo  <wingo@pobox.com>

	* gst/gstbin.c (gst_bin_get_state_func): Renamed from
	gst_bin_get_state, cleaned up (but no logic changes).
	(bin_element_is_sink): Comment updates.
	(sink_iterator_filter): Remove needless cast.
	(gst_bin_iterate_sinks): Doc update.
	(gst_bin_change_state_func): Renamed from gst_bin_change_state,
	cleaned up (but no logic changes).

	* check/states/sinks.c (test_src_sink): Cleanups from the state
	change patch.
	(test_livesrc_sink): Sync on the state.

	* check/pipelines/simple_launch_lines.c (run_pipeline): Merge from
	the state change patch.

	* check/gst/gstghostpad.c (test_ghost_pads): Merge from the state
	change patch.

	* check/gst/gstbin.c: Merge in some style fixes and additional
	checks from Wim's state change patch.

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

	* gst/base/gsttypefindhelper.c: (helper_find_peek),
	(gst_type_find_helper):
	  Check whether we have the requested data already in our list of
	  cached buffers before pulling a new buffer; also make the buffer
	  list a GSList. Speeds up typefinding by ca. 5-10% altogether.

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

	* gst/gstcaps.c:
	* gst/gstevent.c:
	  doc updates
	* gst/gstvalue.c: (gst_value_deserialize_int_helper):
	  don't use long long, it's not portable.  Replacing with
	  gint64 seems to work; let's hope no skeletons fall out of the closet.

2005-10-10  Andy Wingo  <wingo@pobox.com>

	* autogen.sh (CONFIGURE_DEF_OPT): No more --plugin-buiddir, yay

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

	* docs/gst/gstreamer-sections.txt:
	* gst/gstevent.c:
	* gst/gstevent.h:
	* gst/gstinfo.c:
	* gst/gstinfo.h:
	* gst/gstmessage.c: (gst_message_parse_state_changed):
	* gst/gstpad.c:
	* gst/gstpad.h:
	  more docs, fix compilation

2005-10-09  Philippe Khalaf <burger@speedy.org>
	* gst/gstmessage.c:
	  Fixed a few forgotten variables on previous commit

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

	* gst/base/gsttypefindhelper.c: (helper_find_peek):
	  Fix evil typefind crasher: getrange() might return a short
	  buffer at the end of a file, but gst_type_find_peek() must
	  either return the full data as requested or NULL, but
	  never a short buffer.

2005-10-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstmessage.c: (gst_message_new_state_changed),
	(gst_message_parse_state_changed):
	* gst/gstmessage.h:
	  don't use "new", it's a C++ keyword

2005-10-08  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c: (is_eos), (update_degree), (gst_bin_query):
	* gst/gstelement.c: (gst_element_post_message):
	* gst/gstpipeline.c: (gst_pipeline_change_state):
	Small docs and debug updates.

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

	* docs/gst/gstreamer-sections.txt:
	* gst/gstelementfactory.c:
	* gst/gstevent.c:
	* gst/gsttaglist.c:
	  more docs

2005-10-08  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c: (is_eos), (update_degree), (gst_bin_change_state),
	(gst_bin_dispose), (bin_bus_handler):
	Fix typos, add comments.
	Clear EOS list when going to PAUSED from any direction and do it
	in a threadsafe way.
	Get base time in a threadsafe way too.
	Fix confusing debug in the change_state function.
	Various other small cleanups.
	
	* gst/gstelement.c: (gst_element_post_message):
	Fix very verbose bus posting code.

	* gst/gstpipeline.c: (gst_pipeline_class_init),
	(gst_pipeline_set_property), (gst_pipeline_get_property),
	(gst_pipeline_change_state):
	Small ARG_ -> PROP_ cleanup

2005-10-08  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c: (is_eos), (bin_bus_handler):
	Do a less CPU demanding EOS check because we can.

2005-10-08  Wim Taymans  <wim@fluendo.com>

	* libs/gst/dataprotocol/dataprotocol.c:
	(gst_dp_header_from_buffer), (gst_dp_packet_from_caps),
	(gst_dp_packet_from_event):
	* libs/gst/dataprotocol/dataprotocol.h:
	* libs/gst/dataprotocol/dp-private.h:
	It's about time we bump the version number.
	Since event types don't fit in the guint8 anymore describing
	the payload type, make payload type 16 bits wide.

2005-10-08  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-TODO.txt:
	* docs/design/part-clocks.txt:
	* docs/design/part-events.txt:
	* docs/design/part-gstbin.txt:
	* docs/design/part-gstelement.txt:
	* docs/design/part-gstpipeline.txt:
	* docs/design/part-live-source.txt:
	* docs/design/part-messages.txt:
	* docs/design/part-overview.txt:
	* docs/design/part-states.txt:
	Many doc updates.

2005-10-08  Wim Taymans  <wim@fluendo.com>

	* gst/gstevent.c:
	* gst/gstevent.h:
	Fix event quark registration.
	Add some space between events so we can insert them in the
	right groups.

2005-10-08  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
	(gst_base_sink_handle_buffer):
	Better log message.

	* gst/gstbus.h:
	* gst/gstelement.h:
	More docs.

	* gst/gstqueue.c: (gst_queue_class_init), (gst_queue_init),
	(gst_queue_set_property), (gst_queue_get_property):
	* gst/gstqueue.h:
	Remove old unused properties.

2005-10-08  Stefan Kost  <ensonic@users.sf.net>
	* docs/gst/gstreamer-sections.txt:
	* gst/gstmessage.c:
	* gst/gstmessage.h:
	* gst/gstminiobject.c:
	* gst/gstminiobject.h:
	* gst/gstobject.h:
	* gst/gstpad.h:
	* gst/gstutils.h:
	  lots of new docs and doc fixes

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

	* gst/gstplugin.c: (gst_plugin_finalize), (gst_plugin_load_file):
	* gst/gstplugin.h:
	* gst/gstregistry.c: (gst_registry_lookup_locked),
	(gst_registry_scan_path_level):
	* gst/gstregistryxml.c: (load_plugin):
	  Only ever load one plugin for a given plugin basename.
	  This ensures correct overriding of GST_PLUGIN_PATH over
	  GST_PLUGIN_SYSTEM_PATH and of home dir plugins over
	  system installed plugins.

2005-10-08  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
	(gst_base_sink_do_sync), (gst_base_sink_handle_buffer):
	Prepare for doing QOS.

2005-10-08  Wim Taymans  <wim@fluendo.com>

	* check/gst/gstbin.c: (GST_START_TEST):
	* check/pipelines/cleanup.c: (GST_START_TEST):
	* check/pipelines/simple_launch_lines.c: (GST_START_TEST):
	Allow new clock message too.

2005-10-08  Wim Taymans  <wim@fluendo.com>

	* gst/gstmessage.c: (gst_message_new_error),
	(gst_message_new_warning), (gst_message_new_tag),
	(gst_message_new_state_changed), (gst_message_new_clock_provide),
	(gst_message_new_clock_lost), (gst_message_new_new_clock),
	(gst_message_new_segment_start), (gst_message_new_segment_done),
	(gst_message_parse_state_changed),
	(gst_message_parse_clock_provide), (gst_message_parse_clock_lost),
	(gst_message_parse_new_clock):
	* gst/gstmessage.h:
	Also carry the clock in question.

2005-10-08  Wim Taymans  <wim@fluendo.com>

	* gst/gstmessage.c: (gst_message_new_custom),
	(gst_message_new_eos), (gst_message_new_error),
	(gst_message_new_warning), (gst_message_new_tag),
	(gst_message_new_state_changed), (gst_message_new_clock_provide),
	(gst_message_new_new_clock), (gst_message_new_segment_start),
	(gst_message_new_segment_done), (gst_message_parse_state_changed),
	(gst_message_parse_clock_provide), (gst_message_parse_new_clock):
	* gst/gstmessage.h:
	Clean up.
	Added clock related messages.

	* gst/gstpipeline.c: (gst_pipeline_change_state):
	Post message when the clock changed.

	* tools/gst-launch.c: (event_loop):
	Print new clock.

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

	* tools/gst-inspect.c: (print_element_properties_info):
	  Can't pass NULL strings to g_print() on windows.

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

	* docs/Makefile.am:
	* docs/gst/Makefile.am:
	* docs/gst/gstreamer-docs.sgml:
	* docs/gst/running.xml:
	* docs/version.entities.in:
	  add a chapter on running GStreamer.
	  document GST_DEBUG and GST_PLUGIN* env vars

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

	* Makefile.am:
	  remove include dir
	* configure.ac:
	  remove PLUGINS_BUILDDIR stuff
	* gst/gst.c: (init_post):
	  reorder parsing of GST_PLUGIN_PATH and GST_PLUGIN_SYSTEM_PATH
	* idiottest.mak:
	  remove, it was condescending and not needed

2005-10-08  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_preroll_queue_flush),
	(gst_base_sink_handle_object), (gst_base_sink_event),
	(gst_base_sink_wait), (gst_base_sink_handle_event),
	(gst_base_sink_change_state):
	* gst/base/gstbasesink.h:
	Repost EOS message while going to PLAYING if still EOS.
	Make sure that when receiving a FLUSH_START we don't attempt
	to sync on the clock anymore.

2005-10-08  Wim Taymans  <wim@fluendo.com>

	* tools/gst-launch.c: (event_loop):
	Better message printout.

2005-10-08  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c: (gst_bin_child_proxy_get_child_by_index),
	(gst_bin_child_proxy_get_children_count):
	* gst/gstchildproxy.c: (gst_child_proxy_get_child_by_name),
	(gst_child_proxy_lookup), (gst_child_proxy_get_property),
	(gst_child_proxy_get_valist), (gst_child_proxy_set_property),
	(gst_child_proxy_set_valist):
	* gst/parse/grammar.y:
	Make ChildProxy threadsafe and fix mem leaks.

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

	* gst/gst.c: (init_post):
	  debug the GST_PLUGIN_ env vars

2005-10-08  Wim Taymans  <wim@fluendo.com>

	* check/gst/gstbin.c: (GST_START_TEST):
	* check/gst/gstmessage.c: (GST_START_TEST):
	* check/gst/gstpipeline.c: (GST_START_TEST), (message_received):
	* gst/gstelement.c: (gst_element_commit_state),
	(gst_element_lost_state):
	* gst/gstmessage.c: (gst_message_new_state_changed),
	(gst_message_parse_state_changed):
	* gst/gstmessage.h:
	* tools/gst-launch.c: (event_loop):
	Added extra field to STATE_CHANGE message with the pending
	state, which will be different from the new state soon.

2005-10-08  Wim Taymans  <wim@fluendo.com>

	* gst/gstbus.c: (gst_bus_pop):
	* gst/gstclock.c:
	* gst/gstsystemclock.c: (gst_system_clock_async_thread):
	Small cleanups and doc updates.

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

	* gst/gst.c: (init_pre):
	* gst/gstbin.c: (gst_bin_add_func):
	  log distributing clocks and base time
	* gst/gstregistry.c: (gst_registry_add_plugin),
	(gst_registry_scan_path_level), (gst_registry_scan_path):
	  clean up the debugging output a little
	* gst/gstutils.c: (gst_element_state_get_name):
	  warn about a memleak (I've actually seen this be used, though
	  it was probably a bug)

2005-10-07  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesrc.c: (gst_base_src_class_init),
	(gst_base_src_init), (gst_base_src_default_newsegment),
	(gst_base_src_newsegment), (gst_base_src_do_seek),
	(gst_base_src_loop), (gst_base_src_start):
	* gst/base/gstbasesrc.h:
	Make the newsegment event customizable by subclasses.

2005-10-07  Wim Taymans  <wim@fluendo.com>

	* gst/gstevent.c: (gst_event_new_buffersize),
	(gst_event_parse_buffersize):
	* gst/gstevent.h:
	New event for future idea.

2005-10-07  Andy Wingo  <wingo@pobox.com>

	* gst/gstelement.c (gst_element_post_message): Doc update.

	* docs/gst/gstreamer-sections.txt: Update.

	* gst/gstmessage.c (gst_message_new_application): Made into a
	function like honest API calls.
	(gst_message_new_element): New message type.

	* gst/gstmessage.h (enum): Add GST_MESSAGE_ELEMENT type.

	* check/elements/fakesrc.c (test_no_preroll): New check, checks
	that setting a live fakesrc to PAUSED returns NO_PREROLL both
	times.

	* gst/base/gstbasesrc.c (gst_base_src_change_state): Allow a
	NO_PREROLL from gst_element_change_state to fall through.

2005-10-07  Wim Taymans  <wim@fluendo.com>

	* gst/gstghostpad.c: (gst_ghost_pad_get_internal),
	(gst_ghost_pad_do_activate_push):
	Activating a ghostpad with no internal pad in push mode
	is ok.

2005-10-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstobject.h:
	  there's no point in wrapping FLAG_SET/_UNSET in STMT macros.
	  Fixes compilation on Windows.

2005-10-07  Michael Smith <msmith@fluendo.com>

	* tools/gst-inspect.c:
	  Print out feature and plugin count at the end when printing out
	  all features.

2005-10-04  Michael Smith <msmith@fluendo.com>

	* gst/gsterror.c: (_gst_stream_errors_init):
	  Add another error string used in a few existing plugins.

	* gst/gstplugin.c:
	* gst/gstpluginfeature.c: (gst_plugin_feature_load):
	* tools/gst-inspect.c: (print_element_info):
	  When a feature disappears from a plugin (and the feature exists in
	  the cached registry file), things went horribly wrong. This isn't a
	  complete fix, we should actually be removing the 'missing' features
	  from the features list when we load the actual plugin. That's not
	  yet implemented. 

2005-10-04  Johan Dahlin  <johan@gnome.org>

	* check/gst/gstiterator.c: (GST_START_TEST):
	* gst/gstbin.c: (gst_bin_iterate_elements),
	(gst_bin_iterate_recurse), (gst_bin_iterate_sorted):
	* gst/gstelement.c: (gst_element_iterate_pads):
	* gst/gstformat.c: (gst_format_iterate_definitions):
	* gst/gstiterator.c: (gst_iterator_init), (gst_iterator_new),
	(gst_iterator_new_list), (gst_iterator_filter):
	* gst/gstiterator.h:
	* gst/gstquery.c: (gst_query_type_iterate_definitions):
	Add a GType to GstIterator, update callsites and tests.

2005-10-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstpad.c: (gst_pad_event_default_dispatch):
	  give events a chance to be handled by event probes when the pad
	  is not linked

2005-10-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstevent.c: (gst_event_type_get_name),
	(gst_event_type_to_quark), (gst_event_finalize), (gst_event_new):
	* gst/gstevent.h:
	  add string representations for event types

2005-10-06  Wim Taymans  <wim@fluendo.com>

	* gst/elements/gstfilesink.c: (gst_file_sink_close_file):
	Don't use NULL pointers.

2005-10-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gst_private.h:
	* gst/gstbus.c:
	* gst/gstelement.c:
	* gst/gstinfo.c:
	* gst/gstpluginfeature.c:
	  widen the debug category in output to fit the biggest one we have
	  add a bus category and use it
	  play with the colors
	  fix up some categories

2005-10-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstghostpad.c: (gst_ghost_pad_internal_do_activate_push):
	  add push activation of sink ghost pads.
	  Andye, please verify

2005-10-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstutils.c: (gst_element_link_pads):
	  fix a bug in the case where neither element has a pad
	* check/gst/gstelement.c: (GST_START_TEST), (gst_element_suite):
	  add a test for that case

2005-10-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstpad.c: (gst_pad_push), (gst_pad_push_event):
	  emit have-data before checking for peers.  This allows
	  for probe handlers to connect elements.  This helps autopluggers.
	* check/gst/gstpad.c: (GST_START_TEST), (_probe_handler),
	(gst_pad_suite):
	  add six checks, linked/unlinked with no/true/false probe

2005-10-04  Wim Taymans  <wim@fluendo.com>

	* gst/elements/gstfakesink.c: (gst_fake_sink_get_property),
	(gst_fake_sink_event), (gst_fake_sink_preroll),
	(gst_fake_sink_render), (gst_fake_sink_change_state):
	* gst/elements/gstfakesrc.c: (gst_fake_src_event_handler),
	(gst_fake_src_get_property), (gst_fake_src_create),
	(gst_fake_src_stop):
	* gst/elements/gstidentity.c: (gst_identity_stop):
	Protect last_message with lock.

2005-10-04  Edward Hervey  <edward@fluendo.com>

	* gst/gstformat.h: 
	Added precision in the comments for GST_FORMAT_DEFAULT

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

	* tools/gst-launch.c: (main):
	  Don't try to run erroneous pipelines.

2005-10-04  Julien MOUTTE  <julien@moutte.net>

	* gst/gstbus.c: We don't need this header.

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>

	* README:
	* configure.ac:
	  Releasing 0.9.3, "Unregistered"

2005-10-03  Andy Wingo  <wingo@pobox.com>

	* gst/gstpad.c (gst_pad_activate_push): There is a race condition
	whereby calling a pad's activatepush() function can start a thread
	that starts to push or pull before the pad gets the FLUSHING flag
	unset. Hack around it by holding the stream lock until the flag is
	set. Need to replace this with a proper solution. Together with
	the ghost pad fixes, this fixes mp3 playing/tagreading.

	* docs/design/part-gstghostpad.txt: Add a note about activation of
	proxy pads outside of ghost pads.

	* gst/gstghostpad.c: Implement the ghost pad activation design.

2005-10-02  Andy Wingo  <wingo@pobox.com>

	* gst/gstobject.h (GST_OBJECT_REFCOUNT_VALUE): Just use the int.
	It is volatile, after all.

	* docs/design/part-gstghostpad.txt: Flesh out activation with
	ghost pads.

	* gst/base/gstbasesrc.c (gst_base_src_init): Use
	GST_DEBUG_FUNCPTR.

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

	* configure.ac:
	  Fix (unused) AM_CONDITIONAL tests.

2005-10-01  Alessandro Decina  <alessandro at nnva dot org>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstutils.c: (gst_pad_query_convert):
	  Add assertion that makes sure src_val is >=0, just like
	  gst_query_new_convert() has. (#315895)

2005-09-30  Edward Hervey  <edward@fluendo.com>

	* gst/elements/gsttee.c: (gst_tee_do_push), (gst_tee_handle_buffer):
	Let's not iterate pads we're not interested in, it avoids getting 
	sky-high refcounts on sinkpad.

2005-09-30  Wim Taymans  <wim@fluendo.com>

	* gst/gstelement.c: (gst_element_set_state),
	(gst_element_change_state):
	Small tweak, element in ASYNC remains ASYNC.

2005-09-30  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_change_state):
	Only error is an error.

	* gst/gstbin.c: (gst_bin_change_state):
	Better debugging.

	* gst/gstpad.c: (gst_pad_alloc_buffer), (gst_pad_chain):
	Also call pad_block in pad alloc.

	* gst/gstutils.c: (gst_flow_get_name):
	Better debugging.

2005-09-29  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/base/gstbasesrc.c: (gst_base_src_class_init),
	(gst_base_src_get_range):
	  Fix documentation typos. Add some more debug info.

2005-09-29  David Schleef  <ds@schleef.org>

	* gst/gstplugin.c: (gst_plugin_load_file): Make some error messages
	  more end-user friendly.
	* tools/gst-inspect.c: (main): Check if command-line argument is
	  a file and attempt to load that file as a plugin.

2005-09-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/gst/gstbin.c:
	* check/states/sinks.c:
	  fix tests for the new warning
	* check/gst/gstpipeline.c:
	  add a test for pipeline and bus interaction
	* gst/gstelement.c:
	  elements should be NULL if they get disposed; add a warning if not

2005-09-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstobject.c:
	  for 2.6 refcounting, make debug log more correct by printing
	  the actual refcounts at the time of swap (Wim)

2005-09-29  Andy Wingo  <wingo@pobox.com>

	* gst/gstbus.c (gst_bus_remove_signal_watch): New function,
	removes signal watches previously added via
	gst_bus_add_signal_watch.
	(gst_bus_add_signal_watch): Don't return the source id, just store
	it on the bus if there wasn't an id already.

	* gst/gstbus.h (GstBus): Add a couple new fields. API changes for
	add_signal_watch and remove_signal_watch.

2005-09-29  Edward Hervey  <edward@fluendo.com>

	* libs/gst/controller/gstcontroller.c: (gst_controller_new_list): 
	Better if we actually iterate the list :)

2005-09-29  Wim Taymans  <wim@fluendo.com>

	* check/gst/gstbin.c: (GST_START_TEST):
	Change for new bus API.

	* check/gst/gstbus.c: (message_func_eos), (message_func_app),
	(send_messages), (GST_START_TEST), (gstbus_suite):
	Change for new bus signal API.

	* gst/gstbus.c: (gst_bus_class_init), (gst_bus_have_pending),
	(gst_bus_source_prepare), (gst_bus_source_check),
	(gst_bus_create_watch), (gst_bus_add_watch_full),
	(gst_bus_add_watch), (gst_bus_poll), (gst_bus_async_signal_func),
	(gst_bus_sync_signal_handler), (gst_bus_add_signal_watch):
	* gst/gstbus.h:
	Remove support for multiple GSources operating on different
	message types as it is too complex and unneeded when using
	signals.
	Added support for receiving signals from the bus.

2005-09-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/libs/tmpl/gstdataprotocol.sgml:
	* docs/manual/advanced-dataaccess.xml:
	* gst/elements/gstcapsfilter.c:
	* gst/gstutils.c:
	  rename filter-caps to caps property

2005-09-29  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstvalue.c: (gst_value_deserialize_fraction):
	  More robust fraction string parsing.

	* docs/pwg/appendix-porting.xml:
	  Mention gst_pad_use_explicit_caps() => gst_pad_use_fixed_caps()

2005-09-29  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstcaps.c: (gst_caps_do_simplify):
	  Thou shalt not free a structure and then continue using it
	  in the next loop iteration.

	* check/gst/gstcaps.c: (check_fourcc_list), (test_simplify),
	(gst_caps_suite):
	  Add test case for caps simplification.

2005-09-29  Wim Taymans  <wim@fluendo.com>

	* check/gst/gstbin.c: (GST_START_TEST):
	Oops.

2005-09-29  Wim Taymans  <wim@fluendo.com>

	* check/gst/gstbin.c: (GST_START_TEST):
	Add bus to bin.

	* gst/gstbin.c: (gst_bin_class_init), (gst_bin_init),
	(add_to_queue), (clear_queue), (reset_degree), (update_degree),
	(find_element), (gst_bin_sort_iterator_next),
	(gst_bin_sort_iterator_resync), (gst_bin_sort_iterator_free),
	(gst_bin_iterate_sorted), (gst_bin_element_set_state),
	(gst_bin_change_state), (gst_bin_dispose):
	A bin does not have a bus, it gets the bus from the parent.

	* gst/gstelement.c: (gst_element_requires_clock),
	(gst_element_provides_clock), (gst_element_is_indexable),
	(gst_element_is_locked_state), (gst_element_change_state),
	(gst_element_set_bus_func):
	Small cleanups.

	* gst/gstpipeline.c: (gst_pipeline_class_init),
	(gst_pipeline_init), (gst_pipeline_provide_clock_func):
	The pipeline provides a bus.

2005-09-28  Johan Dahlin  <johan@gnome.org>

	* gst/gstmessage.c (gst_message_parse_state_changed): Use
	gst_structure_get_enum instead of gst_structure_get_int

	* gst/gststructure.c (gst_structure_get_enum): Impl.

	* gst/gststructure.h (gst_structure_get_enum): Add

	* docs/gst/gstreamer-sections.txt: Ditto

	* gst/gstmessage.c (gst_message_new_state_changed): Use
	GST_TYPE_STATE instead of G_TYPE_INT, mainly for language bindings
	which does introspection.
	Reviewed by Christian Schaller

2005-09-28  Stefan Kost  <ensonic@users.sf.net>

	* gst/gstinfo.c: (gst_debug_log_default):
	  don't do dummy g_strdup()s
	* libs/gst/controller/gstcontroller.c:
	(on_object_controlled_property_changed),
	(gst_controlled_property_new), (gst_controller_new_valist),
	(gst_controller_new_list),
	(gst_controller_remove_properties_valist), (gst_controller_set),
	(gst_controller_get), (gst_controller_sync_values),
	(gst_controller_get_value_array), (_gst_controller_class_init),
	(gst_controller_get_type):
	* libs/gst/controller/gstcontroller.h:
	* libs/gst/controller/gstinterpolation.c:
	(gst_controlled_property_find_timed_value_node):
	  convert // to /**/ comments

2005-09-28  Wim Taymans  <wim@fluendo.com>

	* gst/gstbus.c: (marshal_VOID__MINIOBJECT), (gst_bus_class_init),
	(gst_bus_post), (poll_func), (gst_bus_async_signal_func),
	(gst_bus_sync_signal_handler):
	* gst/gstbus.h:
	Added async-message and sync-message signals to the bus.
	Added helper BusFunc to emit signals for all posted messages.

	* gst/gstmessage.c: (gst_message_type_get_name),
	(gst_message_type_to_quark), (gst_message_get_type):
	* gst/gstmessage.h:
	Register quarks for message names.

2005-09-28  Stefan Kost  <ensonic@users.sf.net>

	* docs/libs/gstreamer-libs-sections.txt:
	* libs/gst/controller/gstcontroller.c: (gst_controller_new_valist),
	(gst_controller_new_list):
	* libs/gst/controller/gstcontroller.h:
	  added another constructor for language bindings

2005-09-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/gst/gstpipeline.c: (GST_START_TEST), (gst_pipeline_suite):
	  add another check
	* gst/gstbus.c:
	  add some doc
	* gst/gstinfo.c: (_gst_debug_init):
	  slightly more readable color for refcount debugging

2005-09-28  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c: (gst_bin_class_init), (gst_bin_provide_clock_func),
	(add_to_queue), (clear_queue), (reset_degree), (update_degree),
	(find_element), (gst_bin_sort_iterator_next),
	(gst_bin_sort_iterator_resync), (gst_bin_sort_iterator_free),
	(gst_bin_iterate_sorted), (gst_bin_element_set_state),
	(gst_bin_change_state), (gst_bin_dispose):
	Small doc fixes. get_clock -> provide_clock.

	* gst/gstelement.c: (gst_element_class_init),
	(gst_element_provides_clock), (gst_element_provide_clock),
	(gst_element_get_clock), (gst_element_commit_state),
	(gst_element_lost_state):
	* gst/gstelement.h:
	Make get/set_clock() symetric. Add provide_clock vmethod since
	that is actually what this function does.

	* gst/gstpipeline.c: (gst_pipeline_class_init),
	(gst_pipeline_change_state), (gst_pipeline_provide_clock_func),
	(gst_pipeline_get_clock):
	get_clock -> provide_clock.

2005-09-28  Andy Wingo  <wingo@pobox.com>

	* gst/base/gstbasesrc.c (gst_base_src_unlock): Comment a bit in
	lieu of real docs...

	* gst/elements/gstfdsrc.c: Cleaned up a bit.

2005-09-28  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/elements/gstcapsfilter.c:
	* gst/elements/gstfakesink.c:
	* gst/elements/gstfakesrc.c:
	* gst/elements/gstfdsink.c:
	* gst/elements/gstfdsrc.c:
	* gst/elements/gstfilesink.c:
	* gst/elements/gstfilesrc.c:
	* gst/elements/gstidentity.c:
	* gst/elements/gsttee.c:
	* gst/elements/gsttypefindelement.c:
	  Make element details static.

2005-09-28  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c: (add_to_queue), (clear_queue), (reset_outdegree),
	(update_outdegree), (find_element), (gst_bin_sort_iterator_next),
	(gst_bin_sort_iterator_resync), (gst_bin_sort_iterator_free),
	(gst_bin_iterate_sorted), (gst_bin_element_set_state),
	(gst_bin_change_state), (gst_bin_dispose):
	Some documentation updates.
	Clean up dispose handlers.

	* gst/gstobject.c: (gst_object_ref), (gst_object_unref):
	* gst/gstpad.c: (gst_pad_dispose):
	Clean up dispose handler.

	* gst/gstpipeline.c: (gst_pipeline_change_state):
	Removed spurious UNLOCK.

2005-09-27  Stefan Kost  <ensonic@users.sf.net>

	* docs/gst/gstreamer-sections.txt:
	* gst/base/gstbasesrc.h:
	* gst/gstelement.h:
	* gst/gstevent.h:
	* gst/gstobject.h:
	* gst/gstpad.h:
	* gst/gstpipeline.c:
	* gst/gstpipeline.h:
	* gst/gstutils.h:
	* gst/gstxml.h:
	  added two new functions to the docs
		documents all undocumented GstXXXFlags
		completed some incomplete docs 

2005-09-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstbin.c: (gst_bin_dispose):
	* gst/gstelement.c: (gst_element_dispose):
	  remove now useless and leaky resurrection code in dispose
	* gst/base/gstbasesrc.c: (gst_base_src_init):
	* gst/gstelementfactory.c: (gst_element_factory_create):
	* gst/gstobject.c: (gst_object_set_parent):
	  add some debugging

2005-09-27  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-TODO.txt:
	Update TODO.

	* gst/gstbin.c: (add_to_queue), (clear_queue), (reset_outdegree),
	(update_outdegree), (find_element), (gst_bin_sort_iterator_next),
	(gst_bin_sort_iterator_resync), (gst_bin_sort_iterator_free),
	(gst_bin_iterate_sorted), (gst_bin_element_set_state),
	(gst_bin_change_state):
	* gst/gstelement.h:
	Remove element variable, we keep element info in the iterator now.

2005-09-27  Andy Wingo  <wingo@pobox.com>

	* libs/gst/dataprotocol/dataprotocol.c: Fix error-checking return
	values.

2005-09-27  Wim Taymans  <wim@fluendo.com>

	* check/gst/gstbin.c: (GST_START_TEST):
	Enable check that works now.

	* gst/gstbin.c: (add_to_queue), (clear_queue), (reset_outdegree),
	(update_outdegree), (find_element), (gst_bin_sort_iterator_next),
	(gst_bin_sort_iterator_resync), (gst_bin_sort_iterator_free),
	(gst_bin_iterate_sorted), (gst_bin_element_set_state),
	(gst_bin_change_state):
	* gst/gstbin.h:
	Redid the state change algorithm using a topological sort algo.
	Handles all cases correctly.
	Exposed iterator for state change order.

	* gst/gstelement.h:
	Temp storage for state changes. Need to get rid of this soon.

2005-09-27  Wim Taymans  <wim@fluendo.com>

	* gst/elements/gsttee.c: (gst_tee_init), (gst_tee_do_push):
	* gst/gstutils.c: (intersect_caps_func), (gst_pad_proxy_getcaps),
	(link_fold_func), (gst_pad_proxy_setcaps):
	Leak fixes, the fold functions need to unref the passed object and
	_get_parent_*() returns ref to parent.

2005-09-27  Tim-Philipp Müller  <tim at centricular dot net>

	* check/gst/gstbuffer.c: (test_make_writable):
	  Plug leak in test case and fix 'make check-valgrind'

2005-09-27  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstbuffer.c: (gst_subbuffer_init):
	  Set READONLY flag on subbuffers, so that gst_buffer_make_writable()
	  works correctly in all circumstances (we could have just copied
	  the parent buffer's readonly flag, but conceptually it seems
	  cleaner to mark all subbuffers as read-only). (based on patch
	  by Alessandro Decina, #314710).
	
	* check/gst/gstbuffer.c: (create_read_only_buffer),
	(test_make_writable), (test_subbuffer_make_writable),
	(gst_test_suite):
	  Add some tests for gst_buffer_make_writable().

2005-09-27  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c: (bin_element_is_semi_sink), (gst_bin_change_state):
	use gst_object_has_ancestor().

	* gst/gstobject.c: (gst_object_has_ancestor):
	* gst/gstobject.h:
	gst_object_has_ancestor() copied from gstbin.c as it is a
	usefull function.

	* tests/instantiate/create.c: (create_all_elements):
	* tests/lat.c: (handoff_src), (handoff_sink):
	* tests/sched/runxml.c: (main):
	* tests/seeking/seeking1.c: (main):
	* tests/threadstate/threadstate2.c: (bus_handler), (timeout_func),
	(main):
	Fix compilation of some tests.

2005-09-27  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gsterror.h:
	  Remove comment. GST_TYPE_G_ERROR is here to stay,
	  G_TYPE_ERROR has been WONTFIX'ed by the GLib folks
	  (#316961, #300610).

2005-09-26  Wim Taymans  <wim@fluendo.com>

	* check/gst/gstbin.c: (GST_START_TEST), (gst_bin_suite):
	Added check that shows error in state change order.

2005-09-26  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c: (gst_bin_change_state):
	Make state change function use 3 queues again, we were
	adding elements in the wrong order.

	* gst/gstghostpad.c: (gst_ghost_pad_do_unlink):
	Some debug info,

	* gst/gstpad.c: (gst_pad_dispose):
	Added some debug info first.

2005-09-26  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/design/draft-push-pull.txt:
	* docs/design/part-events.txt:
	* docs/design/part-overview.txt:
	* docs/design/part-scheduling.txt:
	  Replace all _pull_region() with _pull_range()
	  
2005-09-26  Andy Wingo  <wingo@pobox.com>

	* gst/gstvalue.c (_gst_value_initialize): Better fakeout.

	* check/gst-libs/controller.c: Update for controller api change.

	* configure.ac: 
	* tests/Makefile.am:
	* tests/memchunk: Remove memchunk benchmark stuff, this is taken
	over by GLib bug 118439.
	
	* gst/base/gstbasesink.c (gst_base_sink_wait): Factor out the wait
	routines to a function.

	* docs/libs/gstreamer-libs-sections.txt: I am a good person today.

	* libs/gst/controller/gsthelper.c:
	* libs/gst/controller/gstcontroller.h (gst_controller_sync_values)
	(gst_object_sync_values): Renamed from sink_values. Ugh.

	* libs/gst/controller/gsthelper.c: Update for __gst_controller_key.

	* libs/gst/controller/gstcontroller.c (__gst_controller_key):
	Renamed from controller_key, as it is exported.

	* gst/gstvalue.c (_gst_value_initialize): Fake out the compiler.

2005-09-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/Makefile.am:
	* gst/gst.h:
	* gst/gstpad.h:
	* gst/gstpadtemplate.h:
	* gst/gstquery.c:
	* gst/gstquery.h:
	* gst/gstqueryutils.c:
	* gst/gstqueryutils.h:
	  remove queryutils headers after moving the two used functions
	  to gstquery.  also fixes build problem for gstsiddec

2005-09-26  Michael Smith <msmith@fluendo.com>

	* tools/gst-launch.1.in:
	Correct documentation in manpage of debug syntax

2005-09-26  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesrc.c: (gst_base_src_get_range),
	(gst_base_src_is_seekable), (gst_base_src_change_state):
	Some more debugging info.

2005-09-25  Stefan Kost  <ensonic@users.sf.net>

	* docs/gst/gstreamer-sections.txt:
	* gst/base/gstbasetransform.h:
	* gst/gstindex.h:
	  added more docs

2005-09-25  Stefan Kost  <ensonic@users.sf.net>

	* docs/gst/.cvsignore:
	* docs/gst/tmpl/.cvsignore:
	* docs/gst/tmpl/gstpipeline.sgml:
	* docs/gst/tmpl/gstplugin.sgml:
	* gst/gstpipeline.c:
	* gst/gstplugin.c:
	* gst/gstplugin.h:
	  inlined the last two docs files
	  removed the tmpl directory from cvs (no more conflicts here!)

2005-09-25  Stefan Kost  <ensonic@users.sf.net>

	* docs/gst/gstreamer-sections.txt:
	* docs/gst/tmpl/.cvsignore:
	* docs/gst/tmpl/gstpad.sgml:
	* docs/gst/tmpl/gstpadtemplate.sgml:
	* gst/Makefile.am:
	* gst/gstpad.c: (gst_pad_class_init), (gst_pad_dispose),
	(gst_pad_finalize), (gst_pad_set_pad_template):
	* gst/gstpad.h:
	* gst/gstpadtemplate.c: (gst_pad_template_get_type),
	(gst_pad_template_class_init), (gst_pad_template_init),
	(gst_pad_template_dispose), (name_is_valid),
	(gst_static_pad_template_get), (gst_pad_template_new),
	(gst_static_pad_template_get_caps), (gst_pad_template_get_caps),
	(gst_pad_template_pad_created):
	* gst/gstpadtemplate.h:
	  inlined two more docs
	  factored gstpadtemplate out of gstpad

2005-09-24  Tim-Philipp Müller  <tim at centricular dot net>

	* check/gst/gstbin.c: (test_children_state_change_order_flagged_sink),
	(test_children_state_change_order_semi_sink):
	  Fix test case: we can't rely on a fixed state change order when
	  going from READY => PAUSED because the sink might commit its 
	  new state first when the first buffer created by the source 
	  reaches the sink before the source has finished its change state.
	  (Test case still fails at times, see #316856, comment 5 onwards)

2005-09-24  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-events.txt:
	* docs/design/part-gstbus.txt:
	* docs/design/part-gstpipeline.txt:
	* docs/design/part-messages.txt:
	* docs/design/part-overview.txt:
	* docs/design/part-segments.txt:
	* gst/gstbin.c:
	* gst/gstbuffer.c:
	* gst/gstclock.c:
	* gst/gstelement.c:
	* gst/gstevent.c:
	* gst/gstfilter.c:
	* gst/gstiterator.c:
	Various documentation updates.

2005-09-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstclock.h:
	  Well, that's embarassing.  Luckily we weren't using
	  GST_CLOCK_DIFF anywhere.

2005-09-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/gtk-doc.mak:
	  don't fail on building XML, FC4 slave shows a bunch of doc
	  missing bits that I don't get
	* gst/gstpad.c:
	* gst/gstpipeline.c:
	* gst/gststructure.c:
	  some doc updates

2005-09-23  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/design/part-gstbin.txt:
	* docs/design/part-gstbus.txt:
	* gst/gstbus.c:
	  Add blurb about how the bus goes into flushing mode and
	  drops all messages when its bin goes from READY into NULL 
	  state.

2005-09-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/gst/gstreamer-sections.txt:
	* gst/gststructure.c: (gst_structure_get_clock_time):
	* gst/gststructure.h:
	  add a method to get a GstClockTime out of a structure

2005-09-23  Tim-Philipp Müller  <tim at centricular dot net>

	* check/gst/gstbin.c: (test_children_state_change_order_flagged_sink),
	(test_children_state_change_order_semi_sink), (gst_bin_suite):
	  Added test to check state change order in bins (can still be made
	  to fail here under heavy disk load; bails out with 'Push on pad
	  fakesink:sink0, but it was not activated in push mode').

	* gst/gstbin.c: (gst_bin_class_init), (gst_bin_change_state):
	  Fix state change order when there is only a semi sink (#316856)

	* gst/gstbus.c: (gst_bus_class_init):
	  Use _class_peek_parent(), not _class_ref(); fix docs to say
	  'default main context' instead of 'mainloop' where that is
	  what's meant.

	* gst/gstelement.c: (gst_element_commit_state),
	(gst_element_set_state):
	  Fix typos in debug messages

2005-09-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/README:
	* gst/gstpad.c: (gst_pad_class_init), (gst_pad_chain):
	* gst/gstpluginfeature.c:
	* gst/gstutils.c:
	  various doc updates
	* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
	  change an assert into an error until it gets fixed properly

2005-09-23  Stefan Kost  <ensonic@users.sf.net>

	* docs/gst/gstreamer-sections.txt:
	* docs/gst/tmpl/.cvsignore:
	* docs/gst/tmpl/gstelement.sgml:
	* docs/gst/tmpl/gstinfo.sgml:
	* docs/gst/tmpl/gstobject.sgml:
	* gst/gstelement.c:
	* gst/gstelement.h:
	* gst/gstinfo.c:
	* gst/gstinfo.h:
	* gst/gstobject.c: (gst_object_class_init):
	* gst/gstobject.h:
	  inlined 3 more biiiig doc files and added some missing docs on the fly

2005-09-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/gst/.cvsignore:
	* check/gst/gstplugin.c: (GST_START_TEST), (gst_plugin_suite):
	* gst/gstregistryxml.c: (load_plugin),
	(gst_registry_xml_save_plugin):
	  put back source in registry.  add checks for find_plugin.
	* testsuite/states/bin.c: (assert_state), (empty_bin),
	(test_adding_one_element), (main):
	* testsuite/states/locked.c: (main):
	  some compile/run fixes

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

	* check/gst/gstvalue.c: (GST_START_TEST):
	  fix leaks in the test itself

2005-09-22  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_class_init),
	(gst_base_sink_send_event), (gst_base_sink_peer_query),
	(gst_base_sink_query):
	Prepare for more accurate position reporting and query
	handling.

	* gst/gstelement.c: (gst_element_send_event),
	(gst_element_set_state):
	Add some comment.

2005-09-22  Wim Taymans  <wim@fluendo.com>

	* gst/gstquery.c: (gst_query_new_segment), (gst_query_set_segment),
	(gst_query_parse_segment):
	* gst/gstquery.h:
	More documentation.
	Add segment query for future use.

2005-09-22  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c: (gst_bin_add_func):
	Some more debug info.

	* gst/gstelement.c: (gst_element_send_event):
	Simplify send_event

	* gst/gstelement.h:
	Don't know how flags got broken.

	* gst/gstquery.h:
	Added new query.

2005-09-22  Tim-Philipp Müller  <tim at centricular dot net>

	* check/gst/gstvalue.c: (test_date), (gst_value_suite):
	  Add simplistic test suite for GST_TYPE_DATE serialisation and
	  deserialisation.

2005-09-22  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/gst/gstreamer-sections.txt:
	* gst/gststructure.c: (gst_structure_set_valist),
	(gst_structure_get_date):
	* gst/gststructure.h:
	* gst/gstvalue.c: (gst_value_set_date), (gst_value_get_date),
	(gst_date_copy), (gst_value_compare_date),
	(gst_value_serialize_date), (gst_value_deserialize_date),
	(gst_value_transform_date_string),
	(gst_value_transform_string_date), (_gst_value_initialize):
	* gst/gstvalue.h:
	  Add GST_TYPE_DATE, a boxed type that wraps GDate, and the usual
	  bunch of utility functions along with a hack that checks that
	  developers don't accidentally use G_TYPE_DATE where GST_TYPE_DATE
	  is required. Part of the grand scheme in #170777.

2005-09-22  Andy Wingo  <wingo@pobox.com>

	* gst/gstconfig.h.in: Psych out gtk-doc.

	* docs/gst/gstreamer-sections.txt: Add GST_HAVE_GLIB_2_8.

	* check/Makefile.am (check_PROGRAMS): Add gstplugin to the tests.

	* tools/gst-inspect.c (print_element_list): Plug some
	inconsequential leaks.

	* gst/gstregistry.c (gst_registry_get_default): Doc.

	* check/gst/gstplugin.c: 
	* gst/gsttypefindfactory.c (gst_type_find_factory_call_function):
	* gst/gstelementfactory.c (gst_element_factory_create): 
	* gst/gstindexfactory.c (gst_index_factory_create): Update for
	refcount changes.

	* gst/gstpluginfeature.c (gst_plugin_feature_list_free): Doc.
	(gst_plugin_feature_load): Doc, don't eat refs.

	* gst/gstplugin.c (gst_plugin_load): Doc, don't eat refs.
	(gst_plugin_list_free): Doc.
	(gst_plugin_load_file): Doc updates.

	* gst/gstbuffer.c (gst_buffer_get_caps): Like all our _get
	accessors returning refcounted objects, return a ref.

	* check/gst/gstbuffer.c (GST_START_TEST): Use refcount-idempotent
	accessor for caps. IDEMPOTENCE. Oh yes.

2005-09-21  Francis Labonte  <francis_labonte at hotmail dot com>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstinfo.c: (_gst_debug_nameof_funcptr),
	(_gst_debug_register_funcptr):
	  Add mutex to serialise access to the hash table with
	  the function pointer => function name string mapping;
	  make that hash table static scope (#316809).

	* gst/registries/.cvsignore:
	  Remove left-over file.

2005-09-21  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/pwg/appendix-porting.xml:
	  And something about newsegment events and caps-on-buffers to
	  the porting guide (feel free to improve).

2005-09-21  Andy Wingo  <wingo@pobox.com>

	* check/gst/gstutils.c (test_buffer_probe_n_times): Add tests for
	data and event probes on the same pad.
	(test_buffer_probe_once): Test that removing probes from within
	the probe functions works.

2005-09-21  Andy Wingo  <wingo@pobox.com>

	* check/gst/gstutils.c: New file.
	(test_buffer_probe_n_times): A simple buffer probe test. More to
	come, foolios.

	* gst/gstutils.c (gst_pad_add_buffer_probe): Connect to
	have-data::buffer, not have-data.
	(gst_pad_add_event_probe): Likewise for have-data::event.
	(gst_pad_add_data_probe): More docs. The part about 'resolving the
	peer' isn't quite right yet though.
	(gst_pad_remove_buffer_probe, gst_pad_remove_event_probe) 
	(gst_pad_remove_data_probe): Change to take the guint handler_id
	as their arg, not the function+data, which is more glib-like.

	* gst/gstpad.c (gst_pad_emit_have_data_signal): Add a detail to
	the signal emission to indicate if the data is a buffer or an
	event.
	(gst_pad_get_type): Initialize buffer and event quarks.
	(gst_pad_class_init): have-data is now a detailed signal, yes it
	is.

2005-09-21  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/base/gstbasetransform.c: (gst_base_transform_transform_size):
	* gst/gstutils.c: (gst_util_set_value_from_string),
	(gst_util_set_object_arg):
	  Don't put functional code in g_return_if_fail() or
	  g_return_val_if_fail() statements, otherwise things will 
	  break when G_DISABLE_CHECKS is defined during compilation.

2005-09-21  Stefan Kost  <ensonic@users.sf.net>

	* docs/gst/tmpl/.cvsignore:
	* docs/gst/tmpl/gstvalue.sgml:
	* gst/gstvalue.c:
	* gst/gstvalue.h:
	  inlied another one and added  some obvious docs

2005-09-21  Wim Taymans  <wim@fluendo.com>

	* gst/elements/gstfdsrc.c: (gst_fdsrc_class_init),
	(gst_fdsrc_init), (gst_fdsrc_start), (gst_fdsrc_stop),
	(gst_fdsrc_unlock), (gst_fdsrc_set_property),
	(gst_fdsrc_get_property), (gst_fdsrc_create):
	* gst/elements/gstfdsrc.h:
	Properly implement fdsrc. Removed signal and timeout,
	better implemented somewhere else.

2005-09-21  Stefan Kost  <ensonic@users.sf.net>

	* docs/gst/tmpl/.cvsignore:
	* docs/gst/tmpl/gstimplementsinterface.sgml:
	* gst/gstinterface.c:
	  inlined more docs

2005-09-21  Stefan Kost  <ensonic@users.sf.net>

	* docs/gst/gstreamer-sections.txt:
	* docs/gst/tmpl/.cvsignore:
	* docs/gst/tmpl/gstenumtypes.sgml:
	  remove obsolete doc file

2005-09-21  David Schleef  <ds@schleef.org>

	* gst/gstelementfactory.c: (gst_element_factory_make): Drink a
	little beer, fix a little leak.

2005-09-21  Stefan Kost  <ensonic@users.sf.net>

	* docs/gst/gstreamer-docs.sgml:
	* docs/gst/gstreamer-sections.txt:
	* docs/gst/tmpl/.cvsignore:
	* gst/Makefile.am:
	* gst/gst.h:
	* gst/gstbin.c:
	* gst/gstelement.h:
	* gst/gstindex.c: (gst_index_class_init):
	* gst/gstindex.h:
	* gst/gstindexfactory.c: (gst_index_factory_get_type),
	(gst_index_factory_class_init), (gst_index_factory_init),
	(gst_index_factory_finalize), (gst_index_factory_new),
	(gst_index_factory_destroy), (gst_index_factory_find),
	(gst_index_factory_create), (gst_index_factory_make):
	* gst/gstindexfactory.h:
	* gst/gstpluginfeature.c:
	* gst/gstpluginfeature.h:
	* libs/gst/controller/gstcontroller.c: (gst_controller_new_valist):
	  more docs inlined, splitted gstindex.{c,h}

2005-09-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* libs/gst/controller/gstcontroller.c: (gst_controller_new_valist):
	  fix a leak

2005-09-20  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/elements/gstfilesink.c: (gst_file_sink_init):
	  Set sync to FALSE by default.

2005-09-20  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_class_init),
	(gst_base_sink_init):
	Make sync property settable from subclass.

	* gst/elements/gstfakesink.c: (gst_fake_sink_init),
	(gst_fake_sink_change_state):
	Set sync to FALSE by default.

2005-09-20  Wim Taymans  <wim@fluendo.com>

	* gst/gstbus.c: (poll_func), (poll_timeout), (gst_bus_poll):
	* tools/gst-launch.c: (main):
	The timeout handler should have lower priority than the source
	so we don't timeout before popping a message with 0 timeout.
	Dump error messages after failed state change.

2005-09-20  Tim-Philipp Müller  <tim at centricular dot net>

	* tools/gst-inspect.c: (print_element_properties_info):
	  Fix two typos.

2005-09-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/gst/gstevent.c:
	* gst/elements/gstfakesink.c:
	* gst/elements/gstfakesink.h:
	  remove the sync property from fakesink.
	  has the side effect of setting sync TRUE
	  for fakesink, which is a change.  Anyone who knows how
	  to fix this nicely in a GObject-y way, feel free.

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

	* docs/gst/gstreamer-docs.sgml:
	  remove probe refsection

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

	* check/Makefile.am:
	  disable valgrinding the controller test again
	* docs/gst/gstreamer-sections.txt:
	  update for api-changes

2005-09-20  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_class_init),
	(gst_base_sink_set_property), (gst_base_sink_get_property),
	(gst_base_sink_do_sync):
	* gst/base/gstbasesink.h:
	Added sync property to basesink to disable clock sync.

2005-09-20  Andy Wingo  <wingo@pobox.com>

	* gst/gstelementfactory.c (gst_element_factory_create): Avoid
	eating the caller's refcount.

	* gst/gstobject.h (GST_OBJECT_REFCOUNT) 
	(GST_OBJECT_REFCOUNT_VALUE): Conditionally fondle the right
	refcount.

	* gst/gstconfig.h.in (GST_HAVE_GLIB_2_8):
	* configure.ac (GST_HAVE_GLIB_2_8_DEFINE): Make the availability
	of GLib 2.8 public, so we can know which refcount to check in
	tests.

	* gst/gstobject.c: Use the GST_HAVE_GLIB_2_8 define.
	(gst_object_init): Only set the gst refcount if we're going ahead
	with the refcount hack.

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

	* check/gst-libs/controller.c: (plugin_init), (GST_START_TEST):
	* libs/gst/controller/gstcontroller.c: (gst_controller_new_valist):
	  more leaks plumbed, added more debug-logging
	* gst/gstmacros.h:
	  whitespace fix

2005-09-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstmessage.c:
	  remove include of gstmemchunk.h

2005-09-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstclock.c: (_gst_clock_id_free):
	  Commit from the Political Party For More Atomic CVS Commits,
	  so that people don't waste too much of their day fishing
	  out obvious leaks out of massive commits.
	  Oh, and fix a pretty damn obvious leak in the memchunk
	  removal code.

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

	* check/Makefile.am:
	* check/gst-libs/controller.c: (plugin_init), (GST_START_TEST):
	  plug mem-leak, re-add to valgrindable tests

2005-09-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstplugin.h:
	  unbreak the build for those who have chronic arthritis
	  and typing "make check" is just too taxing on the hands

2005-09-20  Andy Wingo  <wingo@pobox.com>

	* gst/gst.h: Re-add marshal to gst.h's include list -- if we
	really want it out, you should fix plugins at the same time.

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

	* configure.ac:
	* docs/gst/gstreamer-sections.txt:
	* gst/gstobject.c:
	  added missing symbols to api docs
	  disable ref-count hack if we have glib >= 2.8

2005-09-19  David Schleef  <ds@schleef.org>

	* docs/gst/Makefile.am: Ignore a few more internal headers
	* docs/gst/gstreamer-docs.sgml: Remove old sections
	* docs/gst/gstreamer-sections.txt: Remove old sections
	* docs/gst/tmpl/gstobject.sgml: update
	* docs/gst/tmpl/gstplugin.sgml: update
	* docs/gst/tmpl/gstpluginfeature.sgml: update
	* docs/random/ds/0.9-suggested-changes: update.
	* gst/Makefile.am: remove memchunk and trashstack, since they're
	  not used.
	* gst/gst.c: (gst_deinit): rename gst_registry_deinit to _cleanup
	* gst/gst.h: don't include some headers
	* gst/gstchildproxy.c: add gstmarshal.h
	* gst/gstclock.c: Don't use memchunks
	* gst/gstminiobject.c: Add some docs
	* gst/gstobject.c: remove DESTROYED flag, since it's redundant
	* gst/gstobject.h: same
	* gst/gstplugin.c: include gstmacros.h
	* gst/gstplugin.h: don't include gstmacros.h, since it's private
	* gst/gstquery.c: don't use memchunks
	* gst/gstregistry.c: rename gst_registry_deinit()
	* gst/gstregistry.h: same

2005-09-19  David Schleef  <ds@schleef.org>

	* docs/libs/gstreamer-libs-docs.sgml: Remove docs for getbits
	* docs/libs/gstreamer-libs-sections.txt:
	* docs/libs/tmpl/gstgetbits.sgml:
	* docs/libs/tmpl/gstputbits.sgml:

2005-09-19  Tim-Philipp Müller  <tim at centricular dot net>

	* win32/gstenumtypes.c:
	* win32/gstenumtypes.h:
	  Update.

2005-09-19  Wim Taymans  <wim@fluendo.com>

	* gst/gstpipeline.c: (do_pipeline_seek), (gst_pipeline_send_event):
	Automatically PAUSE and RESUME a pipeline when a flushing seek
	is performed.

2005-09-19  Andy Wingo  <wingo@pobox.com>

	* gst/gstregistry.h: Spacing fixen.

2005-09-19  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesrc.c: (gst_base_src_change_state):
	Handle state change failure more correctly.

2005-09-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/Makefile.am:
	* check/pipelines/cleanup.c: (run_pipeline):
	* check/pipelines/simple_launch_lines.c: (run_pipeline),
	(GST_START_TEST):
	  enable cleanup again after fixing the leak
	* docs/README:
	  some more info on docs

2005-09-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/Makefile.am:
	  re-enable tests now that leaks are plugged
	* check/gst/gst.c:
	* check/gst/gstbin.c:
	* check/gst/gstpipeline.c:
	  add some more tests while fixing leaks
	* common/check.mak:
	  make sure binaries are uptodate when valgrinding/gdbing
	* gst/gst.c:
	* gst/gstelementfactory.c:
	  remove a ref too many, and add a FIXME for when we get
	  round to disposing of classes
	* gst/gstplugin.c:
	  fix the refcounting when loading a plugin from a file and
	  the code pretends that the pointer is the same even though
	  of course it can change
	* gst/gstpluginfeature.c:
	  unref plugins marked cached (a bit confusing as a name)
	  as the docs state should be done
	  various doc additions to explain refcounting
	* gst/gstregistry.c:
	* gst/gstregistryxml.c:
	  debugging

2005-09-19  Wim Taymans  <wim@fluendo.com>

	* check/gst/gstbin.c: (pop_messages), (GST_START_TEST):
	* check/gst/gstbus.c: (message_func_eos), (message_func_app),
	(send_messages), (GST_START_TEST), (gstbus_suite):
	* check/gst/gstpipeline.c: (GST_START_TEST):
	* check/pipelines/cleanup.c: (run_pipeline):
	* check/pipelines/simple_launch_lines.c: (run_pipeline),
	(GST_START_TEST):
	* gst/gstbus.c: (gst_bus_have_pending), (gst_bus_source_prepare),
	(gst_bus_source_check), (gst_bus_source_dispatch),
	(gst_bus_create_watch), (gst_bus_add_watch_full),
	(gst_bus_add_watch), (poll_func), (poll_timeout), (gst_bus_poll):
	* gst/gstbus.h:
	* tools/gst-launch.c: (event_loop):
	* tools/gst-md5sum.c: (event_loop):
	GstBusHandler -> GstBusFunc, return value has the same meaning as
	any other GSource (FALSE == remove source).
	_add_watch() and _add_watch_full() now take a MessageType mask to
	only handle specific types of messages.
	_poll() returns the GstMessage instead of the message type to avoid
	race conditions.
	_have_pending() takes a MessageType mask now too.
	Added testsuite for multiple bus watches.
	Fix testsuites and applications for new bus API.

2005-09-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/Makefile.am:
	  mark a bunch of the tests as to fix until we fix them

2005-09-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/check.mak:
	  use GST_PLUGIN settings for valgrind tests as well, so we're
	  valgrinding the correct thing
	* gst/gst.c: (init_post):
	  plug another leak

2005-09-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gst.c: (init_post), (gst_deinit):
	* gst/gstelementfactory.c: (gst_element_factory_class_init),
	(gst_element_factory_finalize), (gst_element_factory_cleanup):
	* gst/gstindex.c: (gst_index_factory_class_init),
	(gst_index_factory_finalize):
	* gst/gstobject.c: (gst_object_dispose):
	* gst/gstplugin.c: (gst_plugin_finalize), (gst_plugin_class_init),
	(gst_plugin_load_file), (gst_plugin_desc_free):
	* gst/gstpluginfeature.c: (gst_plugin_feature_class_init),
	(gst_plugin_feature_finalize):
	* gst/gstregistry.c: (gst_registry_class_init),
	(gst_registry_init), (gst_registry_finalize),
	(gst_registry_get_default), (gst_registry_deinit):
	* gst/gstregistry.h:
	* gst/gstregistryxml.c: (load_feature), (load_plugin):
	  various cleanups and memleak plugging.  make valgrind is happy now.

2005-09-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/check.mak:
	  add a check-valgrind target

2005-09-18  David Schleef  <ds@schleef.org>

	* tools/gst-inspect.c: Revert the GOption code.

2005-09-17  David Schleef  <ds@schleef.org>

	* check/Makefile.am: Fix environment variables.
	* check/gst/gstplugin.c: Fix for API changes.
	* tools/gst-inspect.c: Fix for API changes.
	* tools/gst-xmlinspect.c: Fix for API changes.
	* gst/gstelementfactory.c:
	* gst/gstplugin.c:
	* gst/gstplugin.h:
	* gst/gstpluginfeature.c:
	* gst/gstpluginfeature.h:
	* gst/gstregistry.c:
	* gst/gstregistry.h:
	* gst/gstregistryxml.c:
	* gst/gsttypefind.c:
	* gst/gsttypefindfactory.c:
	* gst/indexers/gstfileindex.c:
	* gst/indexers/gstmemindex.c:
	* gst/schedulers/Makefile.am:
	  Change registry to keep track of both plugins and features,
	  removing the feature tracking from plugins themselves.

2005-09-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/Makefile.am:
	* tools/gst-register.1.in:
	  remove gst-register

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

	* check/gst/gstplugin.c:
	* gst/gstelementfactory.c:
	* gst/gstplugin.c:
	* gst/gstpluginfeature.c:
	* gst/gstregistry.c:
	  Getting tired of debugging.  Disabled all the unreffing of
	  plugins and features, which fixes the segfaults, but of
	  course leaks like crazy.  At least playbin works.

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

	* check/gst/gstplugin.c: (register_check_elements),
	(GST_START_TEST), (peek), (suggest), (gst_plugin_suite):
	More testing
	* gst/elements/gsttypefindelement.c: Fix refcounting.
	* gst/gsttypefind.c:
	* gst/gsttypefindfactory.c:
	* gst/gsttypefindfactory.h:

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

	* gst/gstindex.c: get refcounting correct.
	* gst/gstregistry.c: Handle the case where a feature/plugin is
	  not found.

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

	* check/Makefile.am:
	* check/gst/gstplugin.c: Add test
	* gst/gstplugin.c: Fix problems noticed by testsuite
	* gst/gstplugin.h:
	* gst/gstregistry.c: 
	* gst/gstregistry.h:

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

	* gst/gstplugin.c: Implement semi-decent recounting and locking
	  in plugins and plugin features.
	* gst/gstplugin.h:
	* gst/gstpluginfeature.c:
	* gst/gstpluginfeature.h:
	* gst/gstregistry.c:

2005-09-15  Michael Smith <msmith@fluendo.com>

	* gst/gstregistry.c: (gst_registry_get_feature_list):
	  Implement this. Makes oggdemux work; decodebin still broken.

2005-09-14  David Schleef  <ds@schleef.org>

	* configure.ac: Add -no-undefined to GST_PLUGIN_LDFLAGS (bug
	  #316076)
	* gst/base/Makefile.am: Add -no-undefined to LDFLAGS for libs
	* gst/check/Makefile.am:
	* libs/gst/controller/Makefile.am:
	* libs/gst/dataprotocol/Makefile.am:

2005-09-14  David Schleef  <ds@schleef.org>

	* configure.ac: Remove getbits library.  Nothing uses it, and
	  it should be in something like liboil if someone did want
	  to use it.
	* libs/gst/Makefile.am:
	* libs/gst/getbits/Makefile.am:
	* libs/gst/getbits/gbtest.c:
	* libs/gst/getbits/getbits.c:
	* libs/gst/getbits/getbits.h:
	* libs/gst/getbits/gstgetbits_generic.c:
	* libs/gst/getbits/gstgetbits_i386.s:
	* libs/gst/getbits/gstgetbits_inl.h:

2005-09-14  David Schleef  <ds@schleef.org>

	* gst/Makefile.am: Dist glib-compat.h

2005-09-14  David Schleef  <ds@schleef.org>

	* configure.ac: Remove gst/registries, since it's no longer used.
	* gst/registries/Makefile.am:
	* gst/registries/gstlibxmlregistry.c:
	* gst/registries/gstlibxmlregistry.h:
	* gst/registries/gstxmlregistry.c:
	* gst/registries/gstxmlregistry.h:
	* gst/registries/registrytest.c:

2005-09-14  David Schleef  <ds@schleef.org>

	* gst/glib-compat.h:
	* gst/gstregistryxml.c:
	  Convergence is near.  Seriously.

2005-09-14  David Schleef  <ds@schleef.org>

	* gst/glib-compat.c: (g_mkdir_with_parents), (g_mkdir), (g_stat):
	* gst/glib-compat.h:
	  Attempt #4 to appease the buildbots.

2005-09-14  David Schleef  <ds@schleef.org>

	* gst/glib-compat.c: (g_mkdir_with_parents), (g_mkdir), (g_stat):
	  Attempt #3.

2005-09-14  David Schleef  <ds@schleef.org>

	* gst/glib-compat.c: (g_mkdir_with_parents), (g_mkdir), (g_stat):
	Attempt #2.

2005-09-14  David Schleef  <ds@schleef.org>

	* gst/Makefile.am: Oh yeah, libgstreamer.so needs to contain
	  the new functions.

2005-09-14  David Schleef  <ds@schleef.org>

	* gst/glib-compat.c: (g_mkdir_with_parents), (g_mkdir), (g_stat):
	* gst/glib-compat.h: Add some functions that are in newer versions
	  of glib than we care to require.
	* gst/gstregistryxml.c: Use them.

2005-09-14  David Schleef  <ds@schleef.org>

	* po/POTFILES.in: remove gst-register.c

2005-09-14  David Schleef  <ds@schleef.org>

	* docs/gst/gstreamer-docs.sgml:
	* docs/gst/gstreamer-sections.txt:
	* docs/gst/gstreamer.types:
	* docs/gst/tmpl/gstelement.sgml:
	* docs/gst/tmpl/gstplugin.sgml:
	* docs/gst/tmpl/gstpluginfeature.sgml:
	  Documentation updates for registry changes.

2005-09-14  David Schleef  <ds@schleef.org>

	* gst/gstregistryxml.c: Copy g_mkdir_with_parent() from glib,
	  because we don't require glib-2.8.

2005-09-14  David Schleef  <ds@schleef.org>

	* gst/gstregistryxml.c: Added.  Essentially moved out of the
	  registries directory.

2005-09-14  David Schleef  <ds@schleef.org>

	* check/Makefile.am:
	* check/generic/states.c:
	* gst/Makefile.am:
	* gst/gst.c:
	* gst/gst.h:
	* gst/gst_private.h:
	* gst/gstelementfactory.c:
	* gst/gstindex.c:
	* gst/gstinfo.c:
	* gst/gstplugin.c:
	* gst/gstplugin.h:
	* gst/gstpluginfeature.c:
	* gst/gstpluginfeature.h:
	* gst/gstregistry.c:
	* gst/gstregistry.h:
	* gst/gstregistrypool.c: remove
	* gst/gstregistrypool.h: remove
	* gst/gsttypefind.c:
	* gst/gsttypefindfactory.c:
	* gst/gsturi.c:
	* tools/Makefile.am:
	* tools/gst-compprep.c:
	* tools/gst-inspect.c:
	* tools/gst-register.c: remove
	* tools/gst-xmlinspect.c:
	  Registry rewrite.  Changes registry from being a file created
	  by a tool into a simple cache file created automatically by 
	  libgstreamer.  Removed gst-register (because it's no longer
	  needed).  Remove registry pools, because we only have one
	  registry implementation (XML).  Fix up other subsystems as
	  necessary.

2005-09-13  Michael Smith <msmith@fluendo.com>

	* gst/gstconfig.h.in:
	  Don't Use windows linking attributes for MinGW. Fixes #316157

2005-09-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstutils.c: (set_state_async_thread_func),
	(gst_element_set_state_async):
	  Apparently people think it's better if this function doesn't
	  try to set the state to whatever state was asked for on the first
	  call to this function for any object.  Seriously.

2005-09-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/gst/gstpipeline.c: (GST_START_TEST):
	* docs/gst/gstreamer-sections.txt:
	* gst/gstutils.c: (set_state_async_thread_func),
	(gst_element_set_state_async):
	* gst/gstutils.h:
	  add a "gst_element_set_state_async" method that
	  sets the state and starts a thread to make sure the state
	  change completes as best as it can

2005-09-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/gst/gstpipeline.c: (GST_START_TEST), (gst_pipeline_suite):
	  codify design+behaviour in testsuite after discussion

2005-09-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/gst/tmpl/gstelement.sgml:
	* docs/manual/appendix-quotes.xml:
	  add a quote
	* gst/gstelement.c: (gst_element_set_state):
	  add some debug

2005-09-12  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/base/gstbasetransform.c: (gst_base_transform_class_init),
	(gst_base_transform_prepare_output_buf),
	(gst_base_transform_handle_buffer):
	* gst/elements/gstcapsfilter.c: (gst_capsfilter_transform_ip),
	(gst_capsfilter_prepare_buf):
	  Remove the requirement for sub-classes to call the parent
	  implementation of prepare_output_buffer with a wrapper function.
	  
	* gst/gsttaglist.h:
	* gst/gsttagsetter.h:
	  Fix #define wrapper

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

	* docs/gst/gstreamer-sections.txt:
	  more doc cleanups

2005-09-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/gst/gstreamer-sections.txt:
	* docs/gst/tmpl/gstelement.sgml:
	* docs/gst/tmpl/gstplugin.sgml:
	* gst/gstminiobject.c:
	* gst/gstvalue.h:
	  docs now stop throwing warnings

2005-09-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/gst/gstreamer-sections.txt:
	* docs/gst/gstreamer.types:
	* docs/gst/tmpl/gstpad.sgml:
	* docs/gst/tmpl/gsttypes.sgml:
	* gst/base/gstadapter.h:
	* gst/base/gstbasesink.h:
	* gst/base/gstbasesrc.h:
	* gst/gstbin.h:
	* gst/gstbuffer.h:
	* gst/gstbus.h:
	* gst/gstcaps.h:
	* gst/gstclock.h:
	* gst/gstelement.h:
	* gst/gstevent.h:
	* gst/gstmessage.h:
	* gst/gstpad.h:
	* gst/gststructure.c:
	* gst/registries/gstlibxmlregistry.h:
	  various documentation fixes

2005-09-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/gst/gstreamer-sections.txt:
	* docs/gst/tmpl/gstvalue.sgml:
	  rearrange gstvalue section
	* gst/gstutils.c: (gst_element_state_get_name):
	  NONE -> VOID
	* gst/gstvalue.c: (_gst_value_initialize):
	* gst/gstvalue.h:
	  doc updates

2005-09-10  Jan Schmidt  <thaytan@mad.scientist.com>

	* check/gst-libs/controller.c:
	  Header include fix.
	* gst/base/gstbasetransform.c:
	(gst_base_transform_default_prepare_buf),
	(gst_base_transform_handle_buffer):
	* gst/base/gstbasetransform.h:
	  Some more basetransform changes and fixes to enable sub-classes
	  that modify buffer metadata only.
	* gst/elements/gstcapsfilter.c: (gst_capsfilter_class_init),
	(gst_capsfilter_init), (gst_capsfilter_transform_ip),
	(gst_capsfilter_prepare_buf):
	  If the output pad has fixed allowed caps and input buffers 
	  don't have any, set the fixed caps on outgoing buffers.

2005-09-09  Jan Schmidt  <thaytan@mad.scientist.com>
	* check/elements/identity.c: (GST_START_TEST):
	  Make the error a little clearer when the test fails because
	  identity made a copy of the buffer.
	* docs/gst/gstreamer-sections.txt:
	  New symbols in gstbasetransform.h
	* gst/base/gstbasetransform.c: (gst_base_transform_class_init),
	(gst_base_transform_init), (gst_base_transform_transform_size),
	(gst_base_transform_configure_caps), (gst_base_transform_setcaps),
	(gst_base_transform_default_prepare_buf),
	(gst_base_transform_get_unit_size),
	(gst_base_transform_buffer_alloc),
	(gst_base_transform_handle_buffer), (gst_base_transform_chain),
	(gst_base_transform_change_state),
	(gst_base_transform_set_passthrough),
	(gst_base_transform_set_in_place),
	(gst_base_transform_is_in_place):
	* gst/base/gstbasetransform.h:
	  Change BaseTransform to separate in_place operate from same_caps
	  output. in_place implies that the element can perform the transform
	  on incoming buffers in-place, even if the caps on the output are
	  different.
	  Sub-class elements can now implement special buffer allocation
	  methods for outgoing buffers if they wish to.
	  Big documentation addition.
	* gst/elements/gstcapsfilter.c: (gst_capsfilter_transform_ip):
	* gst/elements/gstelements.c:
	  Changes for basetransform modifications.
	* gst/elements/Makefile.am:
	* gst/elements/gstfdsrc.c: (gst_fdsrc_init), (gst_fdsrc_create):
	  Compile fix. Extra debug output.

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

	* check/gst/gstpad.c: (GST_START_TEST), (name_is_valid),
	(gst_pad_suite):
	  add tests for valid pad naming
	* gst/check/gstcheck.c: (gst_check_log_message_func),
	(gst_check_log_critical_func):
	  add ASSERT_WARNING
	  remove printing of code, it is fragile when the code contains
	  % and the line number is enough info
	* gst/check/gstcheck.h:
	* gst/gstpad.c: (gst_pad_template_new):
	  fix memleaks

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

	* configure.ac:
	  say what CHECK flags we use
	* docs/libs/gstreamer-libs.types:
	* libs/gst/controller/Makefile.am:
	* libs/gst/controller/gst-controller.c:
	* libs/gst/controller/gst-controller.h:
	* libs/gst/controller/gst-helper.c:
	* libs/gst/controller/gst-interpolation.c:
	* libs/gst/controller/gstcontroller.c:
	* libs/gst/controller/gsthelper.c:
	* libs/gst/controller/gstinterpolation.c:
	* tools/gst-inspect.c: (print_plugin_info):
	  we don't use dashes in header names

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

	* check/Makefile.am:
	* check/gst/.cvsignore:
	* check/gst/gstpipeline.c: (pop_messages), (GST_START_TEST),
	(gst_pipeline_suite), (main):
	  adding a test for pipelines and state changes
	* gst/gstutils.c: (get_state_func):
	  add some debugging
	* gstreamer.spec.in:
	  fix up spec file

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

	* gst/elements/gstfilesrc.c: (gst_file_src_map_region),
	(gst_file_src_map_small_region), (gst_file_src_create_mmap),
	(gst_file_src_is_seekable), (gst_file_src_get_size),
	(gst_file_src_start):
	* gst/elements/gstfilesrc.h:
	  Various fixes for unseekable, unmmapable, and non-normal files, so
	  that fallback to read() rather than mmap() works.
	* gst/gstevent.c: (gst_event_new_newsegment):
	  Allow newsegment events with segment_start == segment_end, as will
	  correctly happen if you use filesrc on a zero-size file, for
	  example.

2005-09-07  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/gstplugin.c: (gst_plugin_load_file):
	  Call g_module_close when we don't load the module

	* gst/registries/gstlibxmlregistry.c:
	(gst_xml_registry_get_property):
	  Port leak fix from 0.8

2005-09-07  Stefan Kost  <ensonic@users.sf.net>

	* docs/gst/gstreamer-docs.sgml:
	* docs/gst/tmpl/.cvsignore:
	* docs/gst/tmpl/gsttrace.sgml:
	* docs/gst/tmpl/gsttrashstack.sgml:
	* gst/Makefile.am:
	* gst/gst.h:
	* gst/gstelement.h:
	* gst/gstevent.h:
	* gst/gstmessage.c:
	* gst/gstmessage.h:
	* gst/gsttag.c:
	* gst/gsttag.h:
	* gst/gsttaginterface.c:
	* gst/gsttaginterface.h:
	* gst/gsttaglist.c:
	* gst/gsttaglist.h:
	* gst/gsttagsetter.c:
	* gst/gsttagsetter.h:
	* gst/gsttrace.c:
	* gst/gsttrace.h:
	* gst/gsttrashstack.c:
	  renamed gsttag -> gsttaglist, gsttaginterface -> gsttagsetter
	  inlined docs for gsttrace, gsttrashstack

2005-09-07  Stefan Kost  <ensonic@users.sf.net>

	* gst/Makefile.am:
	* gst/elements/gstbufferstore.h:
	* gst/elements/gsttypefindelement.c:
	* gst/elements/gsttypefindelement.h:
	* gst/gst.h:
	* gst/gsttypefind.c:
	* gst/gsttypefind.h:
	* gst/gsttypefindfactory.c: (gst_type_find_factory_get_type),
	(gst_type_find_factory_class_init), (gst_type_find_factory_init),
	(gst_type_find_factory_dispose),
	(gst_type_find_factory_unload_thyself),
	(gst_type_find_load_plugin), (gst_type_find_factory_get_list),
	(gst_type_find_factory_get_caps),
	(gst_type_find_factory_get_extensions),
	(gst_type_find_factory_call_function):
	* gst/gsttypefindfactory.h:
	* gst/registries/gstlibxmlregistry.c:
	* gst/registries/gstxmlregistry.c:
	  splitted gsttypefind into gsttypefind, gsttypefindfactory

2005-09-07  Andy Wingo  <wingo@pobox.com>

	* gst/base/gstbasesink.c (gst_base_sink_activate_pull): Fix a race
	condition whereby the pad's task function is entered before the
	pad_mode variable was set.

2005-09-07  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/gstpad.c: (gst_pad_alloc_buffer):
	  Catch misbehaving pad_alloc functions that don't
	  set up caps and do it for them.

2005-09-07  Stefan Kost  <ensonic@users.sf.net>

	* check/pipelines/simple_launch_lines.c: (run_pipeline):
	  test for pipe!=NULL
	* docs/gst/tmpl/.cvsignore:
	* docs/gst/tmpl/gstmemchunk.sgml:
	* docs/gst/tmpl/gstparse.sgml:
	* docs/gst/tmpl/gsttaglist.sgml:
	* docs/gst/tmpl/gsttagsetter.sgml:
	* docs/gst/tmpl/gsttypefind.sgml:
	* docs/gst/tmpl/gsttypefindfactory.sgml:
	* gst/gstmemchunk.c:
	* gst/gstparse.c:
	* gst/gsttag.c:
	* gst/gsttaginterface.c:
	* gst/gsttypefind.c:
	* gst/gsttypefind.h:
	  inlined more docs

=== release 0.9.2 ===

2005-09-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* NEWS:
	* RELEASE:
	* configure.ac:
	  releasing 0.9.2, "South"

2005-09-05  Andy Wingo  <wingo@pobox.com>

	* gst/registries/gstxmlregistry.h:
	* gst/registries/gstxmlregistry.c: Um... resurrect...
	
	* gst/registries/gstxmlregistry.h:
	* gst/registries/gstxmlregistry.c: and update to newer API.
	Incidentally they should be a bit faster now that they don't have
	to parse the caps.
	
2005-09-05  Andy Wingo  <wingo@pobox.com>

	* gst/registries/gstxmlregistry.h:
	* gst/registries/gstxmlregistry.c: Remove from CVS, they were
	replaced by the libxml registry a while back

2005-09-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/gst/tmpl/gstplugin.sgml:
	* gst/elements/gstelements.c:
	* gst/gst.c:
	* gst/gstplugin.c: (gst_plugin_register_func),
	(gst_plugin_desc_copy), (gst_plugin_desc_free),
	(gst_plugin_get_source):
	* gst/gstplugin.h:
	* gst/registries/gstlibxmlregistry.c: (load_plugin),
	(gst_xml_registry_save_plugin):
	* gst/registries/gstxmlregistry.c: (gst_xml_registry_parse_plugin),
	(gst_xml_registry_save_plugin):
	* tools/gst-inspect.c: (print_plugin_info):
	  add a "source" plugin description field, to represent the source
	  module this plugin is a part of.  By default GST_PLUGIN_DEFINE
	  will set it to PACKAGE, which is automake's idea of the name of
	  the source project.

2005-09-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* autogen.sh:
	* configure.ac:
	* docs/Makefile.am:
	* docs/faq/Makefile.am:
	* docs/gst/tmpl/gstelement.sgml:
	* docs/gst/tmpl/gsttypes.sgml:
	* docs/htmlinstall.mak:
	* docs/manual/Makefile.am:
	* docs/pwg/Makefile.am:
	  reorganize doc build a little
	  split out docbook and gtk-doc stuff
	  have two separate --enable's and enable them through autogen
	  but disable by default in configure (to be similar to other
	  projects)
	* gstreamer.spec.in:
	  clean up docs install
	* po/af.po:
	* po/az.po:
	* po/ca.po:
	* po/cs.po:
	* po/de.po:
	* po/en_GB.po:
	* po/fr.po:
	* po/it.po:
	* po/nb.po:
	* po/nl.po:
	* po/ru.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	  translation updates

2005-09-03  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/base/gstbasesink.c: (gst_base_sink_pad_buffer_alloc):
	  Add comment.
	  
	* gst/elements/gstfakesink.c: (gst_fake_sink_init),
	(gst_fake_sink_change_state):
	  Make state change function thread-safe.
	  
	* gst/gstpad.c: (gst_pad_alloc_buffer):
	  Set offset on generic buffer allocated by fallback.

2005-09-03  Stefan Kost  <ensonic@users.sf.net>

	* docs/gst/gstreamer-sections.txt:
	* docs/gst/tmpl/gstelement.sgml:
	* gst/gstpad.c:
	* libs/gst/controller/gst-controller.c:
	(gst_controlled_property_set_interpolation_mode),
	(gst_controlled_property_new),
	(gst_controller_find_controlled_property):
	 run the wingo-magic script against the docs

2005-09-02  Stefan Kost  <ensonic@users.sf.net>

	* docs/gst/gstreamer-docs.sgml:
	* docs/gst/gstreamer-sections.txt:
	* docs/gst/tmpl/.cvsignore:
	* docs/gst/tmpl/gstelementdetails.sgml:
	* docs/gst/tmpl/gstelementfactory.sgml:
	* gst/gst.c:
	* gst/gstbus.c:
	* gst/gstelementfactory.c:
	* gst/gstelementfactory.h:
	  merged elementdetails docs into elementfactory docs
	  inlined both

2005-09-02  Andy Wingo  <wingo@pobox.com>

	* gst/gstelement.h: Add magical pixie dust to make glib-mkenums
	consider this enum an enum and not a flags.

2005-09-02  Stefan Kost  <ensonic@users.sf.net>

	* docs/gst/gstreamer-docs.sgml:
	* docs/gst/tmpl/.cvsignore:
	* docs/gst/tmpl/gstghostpad.sgml:
	* docs/gst/tmpl/gstiterator.sgml:
	* docs/gst/tmpl/gstmacros.sgml:
	* docs/gst/tmpl/gstrealpad.sgml:
	* docs/gst/tmpl/gstregistry.sgml:
	* docs/gst/tmpl/gstregistrypool.sgml:
	* docs/gst/tmpl/gststructure.sgml:
	* docs/gst/tmpl/gstsystemclock.sgml:
	* docs/gst/tmpl/gsttrace.sgml:
	* gst/gstghostpad.c:
	* gst/gstmacros.h:
	* gst/gstmemchunk.c:
	* gst/gstmemchunk.h:
	* gst/gstqueue.c:
	* gst/gstregistry.c:
	* gst/gstregistrypool.c:
	* gst/gststructure.c:
	* gst/gstsystemclock.c:
	  more docs inlined

2005-09-02  Andy Wingo  <wingo@pobox.com>

	* gst/gstelement.h (GstState): Renamed from GstElementState,
	changed to be a normal enum instead of flags.
	(GstStateChangeReturn): Renamed from GstElementStateReturn, names
	munged to be GST_STATE_CHANGE_*.
	(GST_STATE_CHANGE): Renamed from GST_STATE_TRANSITION, updated to
	work with the new state representation.
	(GstStateChange): New enumeration of possible state transitions.
	Replaces GST_STATE_FOO_TO_BAR with GST_STATE_CHANGE_FOO_TO_BAR.
	(GstElementClass::change_state): Pass the GstStateChange along as
	an argument. Helps language bindings, so they don't have to use
	tricky lock-needing macros like GST_STATE_CHANGE ().

	* scripts/update-states (file): New script. Run it on a file to
	update it for state naming and API changes. Updates files in
	place.

	* All files updated for the new API.

2005-09-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gsttrace.c: (gst_trace_flush), (gst_trace_text_flush):
	* gst/gstutils.c: (gst_util_set_value_from_string),
	(gst_util_set_object_arg):
	  fix a bunch of unchecked return values
	* tools/gst-complete.c: (main):
	* gstreamer.spec.in:
	  clean up a little

2005-09-01  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
	(gst_base_sink_event), (gst_base_sink_do_sync),
	(gst_base_sink_handle_event):
	* gst/base/gstbasesink.h:
	Handle newsegments more correctly.

	* gst/gstbus.c:
	Fix docs.

	* gst/gstevent.c: (gst_event_new_newsegment):
	A newsegment cannot have a start_time of -1

2005-09-01  Tim-Philipp Müller  <tim at centricular dot net>

	* win32/gstenumtypes.c:
	* win32/gstenumtypes.h:
	  Update

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

	* libs/gst/controller/gst-controller.c:
	(gst_controlled_property_set_interpolation_mode),
	(gst_controlled_property_new):
	 fixed boolean again

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

	* docs/faq/gst-uninstalled:
	  add -good
	* gst/gstevent.c:
	* gst/gstevent.h:
	  remove wrong docs
	* gst/gstutils.c: (gst_element_link_filtered):
	* gst/gstutils.h:
	  add gst_element_link_filtered

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

	* docs/gst/gstreamer-docs.sgml:
	* docs/gst/gstreamer-sections.txt:
	* docs/gst/tmpl/.cvsignore:
	* docs/gst/tmpl/gsterror.sgml:
	* docs/gst/tmpl/gstfilter.sgml:
	* docs/gst/tmpl/gsturihandler.sgml:
	* docs/gst/tmpl/gsturitype.sgml:
	* docs/gst/tmpl/gstutils.sgml:
	* docs/gst/tmpl/gstxml.sgml:
	* gst/gsterror.c:
	* gst/gsterror.h:
	* gst/gstfilter.c:
	* gst/gsturi.c:
	* gst/gsturitype.c:
	* gst/gstutils.c:
	* gst/gstxml.c:
	  inlined more docs, fixed double id-ref

2005-08-31  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasetransform.c: (gst_base_transform_setcaps),
	(gst_base_transform_handle_buffer):
	Passthrough elements don't need the caps as they don't care.

2005-08-31  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasetransform.c: (gst_base_transform_setcaps),
	(gst_base_transform_handle_buffer), (gst_base_transform_chain):
	Don't leak refcounts on buffers.

2005-08-31  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasetransform.c: (gst_base_transform_configure_caps),
	(gst_base_transform_setcaps), (gst_base_transform_handle_buffer),
	(gst_base_transform_chain), (gst_base_transform_change_state):
	* gst/base/gstbasetransform.h:
	Handle the case where we are not negotiated more gracefully.

2005-08-31  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/elements/gstfilesrc.c: (gst_mmap_buffer_init),
	(gst_file_src_map_region):
	  Set READONLY flag on mmap'ed buffers, otherwise
	  gst_buffer_make_writable() won't work properly (#314708).

2005-08-31  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasetransform.c: (gst_base_transform_handle_buffer):
	passthrough elements can even do inplace on non writable
	buffers (as they don't touch them).

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

	* check/gst-libs/controller.c: (gst_test_mono_source_get_property),
	(gst_test_mono_source_set_property),
	(gst_test_mono_source_class_init), (GST_START_TEST),
	(gst_controller_suite):
	  more tests (hehe I have the most)
	* gst/gstbus.c:
	  describe popping messages whenusing mulltiple sources
	* libs/gst/controller/gst-controller.c:
	(gst_controlled_property_set_interpolation_mode),
	(gst_controlled_property_new):
	* libs/gst/controller/gst-controller.h:
	* libs/gst/controller/gst-interpolation.c:
	  implement boolean properties

2005-08-31  Wim Taymans  <wim@fluendo.com>

	* gst/gstminiobject.c: (gst_mini_object_ref):
	Cannot assert that the refcount has to be positive
	since a disposed object can be resurrected.

2005-08-31  Wim Taymans  <wim@fluendo.com>

	* gst/gstpad.c: (gst_pad_init):
	Revert change, need to first fix badly behaving 
	apps.

2005-08-30  Wim Taymans  <wim@fluendo.com>

	* check/elements/fakesrc.c: (setup_fakesrc):
	* check/elements/identity.c: (setup_identity):
	Activate pads before using them.

2005-08-30  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstadapter.c: (gst_adapter_flush):
	Flushing out 0 bytes is ok for this function.

	* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
	no newsegment gives a warning and sets the start/stop to 
	invalid.

	* gst/base/gstbasetransform.c: (gst_base_transform_change_state),
	(gst_base_transform_set_passthrough):
	Some debug info.

	* gst/gstminiobject.c: (gst_mini_object_ref):
	Check refcount here too.

	* gst/gstpad.c: (gst_pad_init):
	Pads are initially flushing and refusing data.

	* gst/gstutils.c: (gst_element_link_pads_filtered):
	When adding a capsfilter element make sure it has the
	same state as the parent bin.

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

	* docs/gst/tmpl/.cvsignore:
	* docs/gst/tmpl/gstformat.sgml:
	* docs/gst/tmpl/gstversion.sgml:
	* gst/gstbus.h:
	* gst/gstformat.c:
	* gst/gstformat.h:
	* gst/gstversion.h.in:
	  more docs and two more inlined

2005-08-30  Wim Taymans  <wim@fluendo.com>

	* gst/elements/gstfilesink.c: (gst_file_sink_class_init):
	Don't sync to clock.

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

	* docs/gst/gstreamer-sections.txt:
	  ultral33t func10ns deserve to appear in the docs actually
	* docs/gst/tmpl/.cvsignore:
	* docs/gst/tmpl/gstcompat.sgml:
	* docs/gst/tmpl/gstconfig.sgml:
	* gst/check/gstcheck.c:
	* gst/gstcompat.h:
	* gst/gstconfig.h.in:
	  inlined more docs

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

	* docs/gst/tmpl/.cvsignore:
	* docs/gst/tmpl/gstquery.sgml:
	* docs/gst/tmpl/gstutils.sgml:
	* gst/gstquery.c:
	* gst/gstquery.h:
	  inlined and extended docs

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

	* check/gst-libs/controller.c: (GST_START_TEST),
	(gst_controller_suite):
	  more tests
	* docs/gst/tmpl/gstutils.sgml:
	* docs/libs/gstreamer-libs-sections.txt:
	* docs/libs/tmpl/gstdataprotocol.sgml:
	  include path fixes
	* examples/controller/audio-example.c: (main):
	  controller example works now
	* gst/gstclock.h:
	  doc fixes
	* tools/gst-inspect.c: (print_element_properties_info):
	  show param spec flags

2005-08-29  Andy Wingo  <wingo@pobox.com>

	* gst/gstutils.c (gst_util_uint64_scale): New 3733t funct10n.

2005-08-28  Andy Wingo  <wingo@pobox.com>

	* gst/gstutils.h (GST_BOILERPLATE_FULL): Prototype instance_init
	as having two arguments instead of just one. Allows superclasses
	to access information on subclasses -- see the terrible for() loop
	in gtype.c:g_type_create_instance for the reason why. All callers
	changed.

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

	* docs/design/part-messages.txt:
	  update info
	* docs/gst/tmpl/.cvsignore:
	* docs/gst/tmpl/gstcaps.sgml:
	* docs/gst/tmpl/gstclock.sgml:
	* gst/gstbus.c:
	* gst/gstcaps.c:
	* gst/gstcaps.h:
	* gst/gstclock.c:
	* gst/gstclock.h:
	* gst/gstmessage.c:
	  added descriptions for bus and message
	  inline caps and clock docs

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

	* gst/gstmessage.c:
	* gst/gstmessage.h:
	  doc fixes

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

	* gst/base/gstbasetransform.c: (gst_base_transform_transform_size):
	  fix div-by-zero

2005-08-26  Andy Wingo  <wingo@pobox.com>

	* check/pipelines/simple_launch_lines.c (run_pipeline): Check
	element_set_state's return val.
	(test_2_elements): Add test that's been disabled for months.

	* gst/elements/gstfakesink.c: Cleanups. Add can-activate-push and
	can-activate-pull properties.

	* gst/elements/gstfakesrc.c: Cleanups. Add can-activate-push and
	can-activate-pull properties. Implement is_seekable so fakesrc can
	operate in pull mode.

	* gst/base/gstbasesink.c (GstBaseSink): Remove has-loop, has-chain
	properties.
	(gst_base_sink_activate, gst_base_sink_activate_pull)
	(gst_base_sink_activate_push): Make activation mode choosing work.
	Cleanups.
	(gst_base_sink_chain, gst_base_sink_loop): Assert activation mode
	is right. Make pull mode work. Post an eos before pausing in pull
	mode.
	(gst_base_sink_change_state): Pay attention to the core's
	change_state() return val.
	
	* gst/base/gstbasesrc.c (GstBaseSrc): Remove has-loop,
	has-getrange properties. Cleanups.
	
	* gst/base/gstbasesrc.h (GstBaseSrc): Remove has_loop,
	has_getrange and replace with can_activate_pull and
	can_activate_push.

	* gst/base/gstbasesink.h (GstBaseSink): Rearrange fields, add
	locking comments. Remove has_loop, has_chain and replace with
	can_activate_pull and can_activate_push.

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

	* configure.ac:
	* examples/Makefile.am:
	* examples/metadata/Makefile.am:
	* examples/metadata/read-metadata.c: (message_loop),
	(have_pad_handler), (make_pipeline), (print_tag), (main):
	  Add metadata reading example that loops over a list of filenames,
	  dumping any tags found.

	* gst/gstbus.c: (gst_bus_dispose):
	* gst/gstelement.c: (gst_element_dispose):
	  Release a few potentially-held references in dispose.

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

	* docs/gst/tmpl/gstminiobject.sgml:
	  do *not* add tmpl/*.sgml files to CVS!

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

	* libs/gst/bytestream/.cvsignore:
	* libs/gst/bytestream/Makefile.am:
	* libs/gst/bytestream/adapter.c:
	* libs/gst/bytestream/adapter.h:
	* libs/gst/bytestream/bytestream.c:
	* libs/gst/bytestream/bytestream.h:
	* libs/gst/bytestream/filepad.c:
	* libs/gst/bytestream/filepad.h:
	  removing obsolete files

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

	* docs/gst/gstreamer-docs.sgml:
	* docs/libs/gstreamer-libs-docs.sgml:
	  disabed additional index entries again, as this makes docs-gen just
	  slow and they aren't useful yet
	* docs/libs/gstreamer-libs-sections.txt:
	  little -section.txt cleanup for libs

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

	* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
	* gst/base/gstbasetransform.c: (gst_base_transform_transform_size),
	  fix up some debugging
	(gst_base_transform_get_unit_size),
	(gst_base_transform_buffer_alloc), (gst_base_transform_event),
	(gst_base_transform_handle_buffer):
	* gst/base/gstbasetransform.h:
	  handle and store timed NEWSEGMENT events so that subclasses that
	  calculate time by counting samples have a segment_start time they
	  need to add to their timestamps - see audioresample

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

	* gst/gstbin.h:
	  removed ';' from the end of macro defs
	* docs/gst/gstreamer-docs.sgml:
	* docs/gst/gstreamer-sections.txt:
	* docs/gst/tmpl/.cvsignore:
	* gst/gstbus.h:
	* gst/gstelement.c: (gst_element_class_init),
	(gst_element_set_state), (activate_pads),
	(gst_element_save_thyself):
	* gst/gstevent.c: (gst_event_new_newsegment):
	* gst/gstevent.h:
	* gst/gstiterator.c:
	* gst/gstiterator.h:
	* gst/gstpad.c:
	* gst/gstprobe.h:
	* gst/gstutils.c: (gst_pad_query_convert):
	* gst/gstutils.h:
	  fixed parameter name mismatches between source, header and docs
	  added some more docs, resolved the last batch of unused elements in
	  docs (now someone needs to doc them)

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

	* gst/registries/gstlibxmlregistry.c: (gst_xml_registry_rebuild):
	* gst/registries/gstxmlregistry.c: (gst_xml_registry_rebuild):
	  don't walk through the plugins backwards.  Where is all this
	  reversed logic coming from ?

2005-08-25  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasetransform.c: (gst_base_transform_init),
	(gst_base_transform_transform_size),
	(gst_base_transform_configure_caps),
	(gst_base_transform_get_unit_size),
	(gst_base_transform_buffer_alloc),
	(gst_base_transform_change_state):
	* gst/base/gstbasetransform.h:
	Cache caps unit_size.
	Make sure we cannot negotiate up and downstream at the
	same time.

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

	* gst/gst.c: (init_pre), (init_post):
	  register the installed plugin path after the env var
	* gst/registries/gstlibxmlregistry.c: (gst_xml_registry_save):
	* gst/registries/gstxmlregistry.c: (gst_xml_registry_save):
	  don't reverse order of paths; conserve the order of GST_PLUGIN_PATH
	  directories, so the tests can prefer uninstalled over installed

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

	* gst/base/gstbasetransform.h:
	  comment
	* gst/gstpad.c:
	  add to docs

2005-08-25  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c: (bin_bus_handler):
	Be a bit more conservative about the posted message.
	
	* gst/gstbus.c: (gst_bus_post):
	Some cleanups, warn wrong return values.

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

	* check/gst/gstbin.c: (GST_START_TEST):
	* gst/gstbin.c: (bin_bus_handler):
	* gst/gstmessage.c: (gst_message_finalize), (_gst_message_copy),
	(gst_message_new), (gst_message_new_eos), (gst_message_new_error),
	(gst_message_new_warning), (gst_message_new_tag),
	(gst_message_new_state_changed), (gst_message_new_segment_start),
	(gst_message_new_segment_done), (gst_message_new_custom):
	* gst/gstmessage.h:
	* tools/gst-launch.c: (event_loop):
	* tools/gst-md5sum.c: (event_loop):
	  Revert unpopular change for GST_MESSAGE_SRC to GObject.

2005-08-25  Wim Taymans  <wim@fluendo.com>

	* check/generic/states.c: (GST_START_TEST):
	Cleanup can be done at the end.

	* gst/gsttask.c: (gst_task_get_type), (gst_task_finalize),
	(gst_task_func), (gst_task_cleanup_all), (gst_task_set_lock),
	(gst_task_get_state), (gst_task_start), (gst_task_pause):
	Oh boy.. Thanks for finding this, Thomas. 

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

	* docs/gst/gstreamer.types:
	  added missing types

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

	* docs/gst/gstreamer-docs.sgml:
	* docs/gst/gstreamer-sections.txt:
	* docs/gst/tmpl/.cvsignore:
	* gst/gstbin.c:
	* gst/gstiterator.c:
	* gst/gstutils.c:
	* gst/registries/gstxmlregistry.h:
	  added missing classes and symbols (123 more to go)
	  removed removed symbols from section file
	  fixed many doc-comments

2005-08-24  Wim Taymans  <wim@fluendo.com>

	* check/generic/states.c: (GST_START_TEST):
	Make sure all tasks are stopped.

	* check/gst/gstbin.c: (GST_START_TEST):
	Unref after usage for proper valgrinding.

	* gst/gstpad.c: (gst_pad_finalize), (gst_pad_stop_task):
	Really wait for the task to stop before destroying the
	mutex.

	* gst/gstqueue.c: (gst_queue_sink_activate_push),
	(gst_queue_src_activate_push):
	Small cleanups. Don't stop the task when we did not start
	it.

	* gst/gsttask.c: (gst_task_get_type), (gst_task_init),
	(gst_task_func), (gst_task_cleanup_all), (gst_task_set_lock),
	(gst_task_get_state), (gst_task_start), (gst_task_pause),
	(gst_task_join):
	* gst/gsttask.h:
	Protect the stream lock with the object lock.
	Disallow setting the stream lock when running.
	Add cleanup_all to wait for the threadpool to finish.
	Remove code to autoallocate a mutex if none was provided.
	Add _join() to wait for a task to stop.
	Protect the thread pool with a global lock.

2005-08-24  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
	(gst_base_sink_get_times), (gst_base_sink_do_sync),
	(gst_base_sink_handle_buffer), (gst_base_sink_change_state):
	* gst/base/gstbasesink.h:
	Handle newsegment events correctly.
	Drop buffers out of the segment range.

2005-08-22  Andy Wingo  <wingo@pobox.com>

	* gst/gstutils.h (GST_BOILERPLATE_WITH_INTERFACE): New ghetto
	macro, implements an interface and gstimplementsinterface for a
	new type.

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

	* check/Makefile.am:
	* check/generic/states.c: (GST_START_TEST), (states_suite), (main):
	  add a test that does a bunch of state changes on elements
	  needs some fixing for valgrind
	* check/states/sinks.c: (gst_object_suite):
	  whitespace
	* gst/gstcaps.h:
	  add prototype for gst_caps_is_equal_fixed
	* gst/gstplugin.c:
	* gst/gstregistrypool.c:
	  doc fixes

2005-08-24  Andy Wingo  <wingo@pobox.com>

	* gst/gstquery.c (gst_query_new_convert): Spew if we try to
	convert a negative value. Doesn't make much sense. Mostly this is
	here to force callers to ensure -1 maps to -1.

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

	* docs/pwg/advanced-types.xml:
	  Well done to Michael for catching my deliberate introduction
	  of this spelling mistake. 
	* gst/gstbin.c: (gst_bin_remove_func), (bin_bus_handler):
	* gst/gstelement.h:
	  Add GST_ELEMENT_UNPARENTING to prevent races so that we can
	  unlink pads before removing the element from the bin.

2005-08-24  Andy Wingo  <wingo@pobox.com>

	* gst/gst.c (parse_debug_list): Accept e.g. GST_DEBUG=4 to mean
	the same thing as GST_DEBUG=*:4.
	(parse_debug_level, parse_debug_category): New helper parsers.

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

	* gst/base/gstbasetransform.c: (gst_base_transform_transform_caps),
	(gst_base_transform_transform_size), (gst_base_transform_getcaps),
	(gst_base_transform_setcaps), (gst_base_transform_get_unit_size),
	(gst_base_transform_buffer_alloc),
	(gst_base_transform_handle_buffer):
	  use gboolean return values and pointers to size so we can use the
	  full GST_BUFFER_SIZE range (guint) for buffer sizes
	  use GstPadDirection for transform_caps
	* gst/base/gstbasetransform.h:
	  rename get_size to get_unit_size since that's what it is
	* gst/elements/gstcapsfilter.c: (gst_capsfilter_transform_caps):
	  use GstPadDirection for transform_caps
	* gst/gstbuffer.c: (gst_buffer_new_and_alloc):
	* gst/gstutils.h:
	  cleanup and debugging

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

	* gst/gstelement.c: (gst_element_class_init),
	(gst_element_set_state), (activate_pads),
	(gst_element_save_thyself):
	* tools/gst-compprep.c: (main):
	* tools/gst-inspect.c: (print_element_properties_info):
	* tools/gst-xmlinspect.c: (print_element_properties):
	  Fixed long standing mem-leak

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

	* check/gst/gstbin.c: (GST_START_TEST):
	* gst/gstbin.c: (bin_bus_handler):
	* gst/gstmessage.c: (gst_message_finalize), (_gst_message_copy),
	(gst_message_new), (gst_message_new_eos), (gst_message_new_error),
	(gst_message_new_warning), (gst_message_new_tag),
	(gst_message_new_state_changed), (gst_message_new_segment_start),
	(gst_message_new_segment_done), (gst_message_new_custom):
	* gst/gstmessage.h:
	* tools/gst-launch.c: (event_loop):
	* tools/gst-md5sum.c: (event_loop):
	  Change GST_MESSAGE_SRC to be a GObject rather than a GstObject, so
	  that applications can sensibly post custom messages with references
	  to their own objects.

2005-08-24  Andy Wingo  <wingo@pobox.com>

	* gst/gstpad.c (gst_pad_fixate_caps): Check if the caps is fixed
	already.

2005-08-24  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasetransform.c: (gst_base_transform_init),
	(gst_base_transform_transform_caps),
	(gst_base_transform_transform_size),
	(gst_base_transform_configure_caps), (gst_base_transform_setcaps),
	(gst_base_transform_get_size), (gst_base_transform_buffer_alloc),
	(gst_base_transform_handle_buffer):
	* gst/base/gstbasetransform.h:
	Many fixes and new features added by Thomas. Can now also do
	transforms with variable sizes and a custom fixate_caps function.

2005-08-24  Wim Taymans  <wim@fluendo.com>

	* gst/gstbuffer.c: (gst_buffer_new_and_alloc):
	Some debugging.

	* gst/gstclock.h:
	Cast to ClockTime before formatting to time.

	* gst/gstutils.h:
	Cleanups.

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

	* check/gst-libs/controller.c: (GST_START_TEST),
	(gst_controller_suite):
	* docs/gst/tmpl/gstcaps.sgml:
	* docs/gst/tmpl/gstghostpad.sgml:
	* docs/gst/tmpl/gstquery.sgml:
	* docs/gst/tmpl/gstutils.sgml:
	* libs/gst/controller/gst-helper.c: (gst_object_set_controller),
	(gst_object_sink_values), (gst_object_get_value_arrays),
	(gst_object_get_value_array):
	  gracefully handle helper method calls to objects that are not beeing
	  controlled, added test case for that          

2005-08-23  Wim Taymans  <wim@fluendo.com>

	* gst/gstevent.c: (_gst_event_copy), (gst_event_new_custom),
	(gst_event_new_newsegment), (gst_event_parse_newsegment),
	(gst_event_new_tag), (gst_event_parse_tag), (gst_event_new_qos),
	(gst_event_parse_qos), (gst_event_new_seek),
	(gst_event_parse_seek):
	* gst/gstevent.h:
	Some more debugging output and doc cleanups.

	* gst/gstqueue.c: (gst_queue_handle_sink_event):
	Fix possible deadlock.

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

	* docs/gst/gstreamer-docs.sgml:
	* docs/gst/gstreamer-sections.txt:
	* docs/gst/gstreamer.types:
	* docs/gst/tmpl/.cvsignore:
	* gst/gstbin.h:
	* gst/gstbus.c:
	* gst/gstelement.c:
	* gst/gstevent.h:
	  added 100 symbols from gstreamer-unused.txt to the right sections
	  fixed more broken comments
	  added GstBus to docs

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

	* docs/gst/gstreamer-sections.txt:
	* docs/gst/tmpl/.cvsignore:
	* docs/gst/tmpl/gstbin.sgml:
	* docs/gst/tmpl/gstbuffer.sgml:
	* gst/base/gstbasesrc.c:
	* gst/gstbin.c: (gst_bin_get_type), (gst_bin_class_init):
	* gst/gstbuffer.c:
	* gst/gstbuffer.h:
	* tools/gst-launch.1.in:
	  inlined more doc comments, added missing comments and fixed comments
	  fixed typos

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

	* gst/gstbuffer.c: (gst_buffer_new_and_alloc):
	  some debugging
	* gst/gstcaps.h:
	  whitespace fixes
	* gst/gstpad.c: (gst_pad_activate_push), (gst_pad_alloc_buffer):
	  more debugging
	* gst/gststructure.c: (gst_caps_structure_fixate_field_boolean):
	* gst/gststructure.h:
	  add a fixate function for booleans; add a FIXME that these func
	  names should probably be gst_structure_fixate_*

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

	* docs/gst/gstreamer-docs.sgml:
	* docs/gst/gstreamer-sections.txt:
	* gst/Makefile.am:
	* gst/gstbin.c: (gst_bin_get_type),
	(gst_bin_child_proxy_get_child_by_index),
	(gst_bin_child_proxy_get_children_count),
	(gst_bin_child_proxy_init):
	* gst/gstchildproxy.c: (gst_child_proxy_get_child_by_name),
	(gst_child_proxy_get_child_by_index),
	(gst_child_proxy_get_children_count), (gst_child_proxy_lookup),
	(gst_child_proxy_get_property), (gst_child_proxy_get_valist),
	(gst_child_proxy_get), (gst_child_proxy_set_property),
	(gst_child_proxy_set_valist), (gst_child_proxy_set),
	(gst_child_proxy_child_added), (gst_child_proxy_child_removed),
	(gst_child_proxy_base_init), (gst_child_proxy_get_type):
	* gst/gstchildproxy.h:
	* gst/parse/grammar.y:
	* tools/gst-inspect.c: (print_interfaces),
	(print_element_properties_info), (print_element_info):
	  ported gstchildproxy over from 0.8
	  ported gst-inspect fixes and enhancements over from 0.8

2005-08-22  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasetransform.c: (gst_base_transform_transform_caps),
	(gst_base_transform_handle_buffer):
	Also call the transform function if we have ANY caps.

	* gst/gstpipeline.c: (gst_pipeline_set_new_stream_time):
	Fix debug info.

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

	* gst/base/gstbasesrc.c: (gst_base_src_event_handler)
	  Don't pretend to handle seek events if the source is not seekable

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

	* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
	  Remove extra parameter to debug output

	* gst/base/gstbasesrc.c: (gst_base_src_send_discont),
	(gst_base_src_do_seek), (gst_base_src_activate_push):
	  Fix seek event handling.

	* gst/gstpipeline.c: (gst_pipeline_change_state):
	* gst/gstqueue.c: (gst_queue_handle_sink_event),
	(gst_queue_src_activate_push):
	  Don't start the src pad task on FLUSH_STOP if the pad
	  isn't linked.
	  Debug changes.

2005-08-22  Wim Taymans  <wim@fluendo.com>

	* check/gst/gstcaps.c: (GST_START_TEST), (gst_caps_suite):
	Added check for gst_static_caps_get() refcounting.

2005-08-22  Wim Taymans  <wim@fluendo.com>

	* gst/gstcaps.c: (gst_static_caps_get), (gst_caps_to_string):
	Make _static_caps_get() refcounting sane.
	
	* gst/gstelement.c: (gst_element_set_state):
	Add g_return_val_if_fail() to protect against segfaults.

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

	* docs/gst/tmpl/gstevent.sgml:
	* gst/gstevent.c:
	* gst/gstevent.h:
	  inlined remaining docs, added missing doc comments

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

	* check/gst/gstbin.c: (GST_START_TEST):
	  since we don't know when preroll is done, use refcount range
	  check for the sink
	* gst/check/gstcheck.h:
	  add macro for checking refcount range

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

	* check/Makefile.am:
	  clean up environment for when registry gets built versus
	  when actual tests are run; valgrind seems to not report
	  leaks if GST_PLUGIN_PATH is set to some specific values
	* check/gst/gstbin.c: (GST_START_TEST):
	  add more refcounting checks; maybe this exposes a
	  preroll lock bug ?
	* common/check.mak:
	* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
	* gst/check/gstcheck.h:
	* gst/gstbin.c: (bin_element_is_semi_sink), (gst_bin_get_state),
	(gst_bin_change_state):
	* gst/gstpad.c: (gst_pad_activate_push), (gst_pad_chain):
	  add/fix debugging/whitespace

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

	* check/gst/gstevent.c: (event_probe), (test_event),
	(GST_START_TEST):
	 Er, don't call gst_bin_watch_for_state_change you idiot.

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

	* check/Makefile.am:
	  Use CHECK_CFLAGS and CHECK_LIBS
	* check/gst/gstevent.c: (event_probe), (test_event),
	(GST_START_TEST):
	  Don't leak events.
	* gst/base/gstbasesrc.c: (gst_base_src_send_discont),
	(gst_base_src_start), (gst_base_src_stop),
	(gst_base_src_activate_push), (gst_base_src_activate_pull),
	(gst_base_src_change_state):
	  Sprinkle gst_base_src_stop liberally around error paths to fix
	  problems reusing a source after failed state changes.
	* gst/base/gsttypefindhelper.c: (helper_find_peek),
	(helper_find_suggest), (gst_type_find_helper):
	  Extra debug output. Don't segfault on GST_PAD_GETRANGEFUNC = NULL
	* gst/gstevent.h:
	* docs/gst/tmpl/gstevent.sgml:
	  Migrate part of the docs from the SGML file. Wait for ensonic to
	  tell me how I did it wrong ;)
	* tools/gst-typefind.c: (main):
	  Extra robustness to state changes between files.

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

	* check/Makefile.am:
	  don't valgrind the controller test - it's leaking - Stefan, HELP
	* gst/check/gstcheck.c: (gst_check_message_error),
	(gst_check_chain_func), (gst_check_setup_element),
	(gst_check_teardown_element), (gst_check_setup_src_pad),
	(gst_check_teardown_src_pad), (gst_check_setup_sink_pad),
	(gst_check_teardown_sink_pad):
	* gst/check/gstcheck.h:
	  add a bunch of methods to set up elements, and src and sink pads
	* check/elements/fakesrc.c: (setup_fakesrc), (cleanup_fakesrc):
	* check/elements/identity.c: (setup_identity), (cleanup_identity),
	(GST_START_TEST):
	  use them
	* gst/gstmessage.c:
	* gst/gsttag.h:
	  whitespace/doc fixes

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

	* gst/gstelement.h:
	  make GST_ELEMENT_ERROR not do GST_ERROR_OBJECT - these errors should
	  be handled by the application and not always printed as well

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

	* check/Makefile.am:
	  set GST_TOOLS_DIR
	* gst/check/gstcheck.c: (gst_check_message_error):
	* gst/check/gstcheck.h:
	  add a fail_unless_equals_int
	  add fail_unless for error messages

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

	* check/Makefile.am:
	* check/gst.supp:
	* common/Makefile.am:
	* common/check.mak:
	* common/gst.supp:
	  factor out some of the common stuff so we can use it

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

	* check/Makefile.am:
	* check/gst/gstiterator.c: (GST_START_TEST):
	* check/gst/gstsystemclock.c: (GST_START_TEST),
	(gst_systemclock_suite):
	* check/gst/gsttag.c: (GST_START_TEST), (gst_tag_suite):
	* gst/gstclock.c:
	  valgrind more tests

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

	* check/elements/.cvsignore:
	* check/elements/gstfakesrc.c:
	  rename to name of element
	* check/elements/identity.c: (chain_func), (event_func),
	(setup_identity), (cleanup_identity), (GST_START_TEST),
	(identity_suite), (main):
	  add a test for identity
	* check/Makefile.am:
	* pkgconfig/Makefile.am:
	* pkgconfig/gstreamer-check.pc.in:
	* pkgconfig/gstreamer-check-uninstalled.pc.in:
	* gst/check:
	* gst/Makefile.am:
	* configure.ac:
	  move the check stuff to a library that gets installed
	* check/gst-libs/controller.c: (GST_START_TEST):
	* check/gst-libs/gdp.c:
	* check/gst/gst.c: (GST_START_TEST):
	* check/gst/gstbin.c:
	* check/gst/gstbuffer.c: (GST_START_TEST), (gst_test_suite):
	* check/gst/gstbus.c:
	* check/gst/gstcaps.c: (GST_START_TEST):
	* check/gst/gstelement.c:
	* check/gst/gstghostpad.c:
	* check/gst/gstiterator.c:
	* check/gst/gstmessage.c:
	* check/gst/gstminiobject.c: (thread_ref), (GST_START_TEST):
	* check/gst/gstobject.c:
	* check/gst/gstpad.c: (GST_START_TEST):
	* check/gst/gststructure.c: (GST_START_TEST):
	* check/gst/gstsystemclock.c: (GST_START_TEST),
	(gst_systemclock_suite):
	* check/gst/gsttag.c: (gst_tag_suite):
	* check/gst/gstvalue.c:
	* check/pipelines/cleanup.c:
	* check/pipelines/simple_launch_lines.c:
	* check/states/sinks.c:
	  change include statement

	* docs/gst/gstreamer-sections.txt:
	* docs/gst/tmpl/gstpad.sgml:
	  document more pad stuff
	* gst/gstminiobject.c: (gst_mini_object_ref),
	(gst_mini_object_unref):
	  debug refcounting

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

	* docs/gst/tmpl/gst.sgml:
	* gst/gst.c:
	  eliminate another tmpl file, fix spelling in the long-description

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

	* check/gst/gstevents.c: (GST_START_TEST), (event_probe),
	(test_event), (timediff), (gstevents_suite):
	  Should fix build on 64-bit arch's

2005-08-18  Andy Wingo  <wingo@pobox.com>

	Make sure that when a pipeline goes to PLAYING, that data has
	actually hit the sink.

	* check/states/sinks.c (test_sink): A sink that doesn't get any
	data shouldn't return SUCCESS for going to either PLAYING or
	PAUSED. Test also the return values on the way back down.

	* gst/gstelement.c (gst_element_set_state): When changing the
	state of an element currently changing state asynchronously, go to
	lost-state after commiting the pending state. Makes future calls
	to get_state continue to return ASYNC.

	* gst/base/gstbasesink.c (gst_base_sink_change_state): Return
	ASYNC when going to PLAYING if we still don't have preroll, as can
	happen with live sources.

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

	* docs/pwg/advanced-types.xml:
	  Hack long paragraph into 2 chunks as a workaround for buggy
	  jadetex version in sid and breezy that loops infinitely and
	  eats all RAM.

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

	* check/gst/gstevents.c: (GST_START_TEST), (event_probe),
	(test_event), (timediff), (gstevents_suite):
	  Provide more error margin in clock measurements to allow for 
	  g_get_current_time inaccuracies.

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

	* check/gst/gstevents.c: (GST_START_TEST), (event_probe),
	(test_event), (timediff), (gstevents_suite):
	   Fix error message output so I might be able to tell why the
	   test works here but fails on the build farm.

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

	* check/Makefile.am:
	* check/gst/gstevents.c: (GST_START_TEST), (event_probe),
	(test_event), (timediff), (gstevents_suite), (main):
	  I wrote a test!

	* docs/design/part-seeking.txt:
	  Spelling correction

	* docs/gst/tmpl/gstevent.sgml:
	* docs/gst/tmpl/gstfakesrc.sgml:
	  Docs updates.

	* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
	  Treat a buffer-without-newsegment the same as a receiving 
	  a newsegment not in time format, and disable syncing to the clock
	  with a warning.

	* gst/gstbus.c: (gst_bus_set_sync_handler):
	  Assert if anyone tries to replace the existing sync_handler for bus, 
	  as only the owner should be setting it.

	* gst/gstevent.h:
	  Have a fixed set of custom event enums with events identified by
	  their structure name (as in 0.8), rather than a free-for-all
	  allowing collisions between enum values from different plugins.

	* gst/gstpad.c: (gst_pad_class_init):
	  Docs change.
	  
	* gst/gstqueue.c: (gst_queue_handle_sink_event):
	  Handle out-of-band downstream events from the sending thread.

2005-08-17  Andy Wingo  <wingo@pobox.com>

	* gst/gstpipeline.c (gst_pipeline_change_state): Interpret
	play-timeout==0 to mean no timeout at all. In that case, don't
	bother with a get_state or a warning, just return directly, even
	if it's ASYNC.

	* gst/base/gstbasetransform.c: Debug changes.

	* gst/gstutils.h:
	* gst/gstutils.c (gst_bin_watch_for_state_change): Add function to
	ensure bins post state change messages. A bit of a hack but I can't
	think of a way to avoid it.

	* check/gst/gstbin.c (test_watch_for_state_change): Added test.

2005-08-16  Andy Wingo  <wingo@pobox.com>

	* gst/base/gstadapter.h:
	* gst/base/gstadapter.c (gst_adapter_take): New function, like
	peek() but you own the data. Not terribly efficient atm.

2005-08-16  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/gstutils.c: (gst_element_found_tags_for_pad), (push_and_ref),
	(gst_element_found_tags):
	* gst/gstutils.h:
	  Add two utility functions for tag handling.

2005-08-16  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* docs/manual/advanced-dataaccess.xml:
	* docs/manual/basics-helloworld.xml:
	  Fix docs to use _bin_add() before _link(), which fixes the examples
	  with recent core versions (reported by Madhan Raj M
	  <raj_madan@rediffmail.com>, #313199).

2005-08-16  Wim Taymans  <wim@fluendo.com>

	* check/gst/gstvalue.c: (GST_START_TEST), (gst_value_suite):
	Added subtract checks.

	* docs/design/part-events.txt:
	Some more docs about newsegment

	* gst/gstbin.c: (gst_bin_change_state), (bin_bus_handler):
	Fix FIXME

	* gst/gstcaps.c: (gst_caps_to_string):
	Add comments, cleanups.
	
	* gst/gstelement.c: (gst_element_save_thyself):
	cleanups
	
	* gst/gstvalue.c: (gst_value_collect_int_range),
	(gst_string_unwrap), (gst_value_union_int_int_range),
	(gst_value_union_int_range_int_range),
	(gst_value_intersect_int_int_range),
	(gst_value_intersect_int_range_int_range),
	(gst_value_intersect_double_double_range),
	(gst_value_intersect_double_range_double_range),
	(gst_value_intersect_list), (gst_value_subtract_int_int_range),
	(gst_value_subtract_int_range_int),
	(gst_value_subtract_double_range_double),
	(gst_value_subtract_double_range_double_range),
	(gst_value_subtract_from_list), (gst_value_subtract_list),
	(gst_value_can_compare), (gst_value_compare_fraction):
	Cleanups, add comments, remove unneeded asserts.

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

	* tools/gst-launch.c: (event_loop):
	  don't convert NULL structures to strings

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

	* docs/gst/gstreamer-sections.txt:
	  made some defines private
	* docs/gst/tmpl/gstconfig.sgml:
	* docs/gst/tmpl/gstqueue.sgml:
	* docs/gst/tmpl/gsttaglist.sgml:
	* docs/gst/tmpl/gsttypes.sgml:
	* docs/gst/tmpl/gstutils.sgml:
	* docs/pwg/appendix-porting.xml:
	* gst/base/gstbasesink.h:
	* gst/base/gstbasesrc.c:
	* gst/base/gstbasesrc.h:
	* gst/elements/gstfakesink.c: (gst_fake_sink_class_init):
	* gst/elements/gstfakesrc.c: (gst_fake_src_class_init):
	* gst/gstelement.c: (gst_element_class_init):
	* gst/gstpad.c: (gst_pad_class_init):
	* gst/gstqueue.c: (gst_queue_class_init):
	* gst/gstxml.c: (gst_xml_class_init):
	  documented all undocumented signal inline
	* libs/gst/controller/gst-controller.h:
	  added padding

2005-08-15  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* docs/pwg/appendix-porting.xml:
	  Document _set_link_function -> _set_setcaps_function.

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

	* check/Makefile.am:
	  add a .check target for running the check
	* check/gst-libs/controller.c: (GST_START_TEST):
	  cosmetic fixups
	* check/gst/gstbuffer.c: (GST_START_TEST), (gst_test_suite):
	  complete checks for gstbuffer; would be nice if I could get the
	  gcov stuff to work so I can see if I actually completed gstbuffer.c
	* check/gstcheck.h:
	  add ASSERT_BUFFER_REFCOUNT

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

	* docs/gst/gstreamer-sections.txt:
	* gst/gsttag.c: (_gst_tag_initialize), (gst_tag_register):
	* gst/gsttag.h:
	  Add GST_TAG_LANGUAGE_CODE as we have in 0.8, and don't
	  spew out a warning if a tag that is already registered
	  is re-registered, unless it is re-registered with a 
	  different type (#308438).

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

	* docs/pwg/appendix-porting.xml:
	* docs/pwg/building-state.xml:
	  Add some paragraphs about state changes in 0.9 to the PWG
	  and the porting guide, in particular about the new meaning
	  of GST_STATE_PAUSED and how to write state change functions
	  with concurrent access by multiple threads in mind.

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

	* docs/gst/gstreamer-docs.sgml:
	* docs/libs/gstreamer-libs-docs.sgml:
	  added deprecation and since indexes
	* libs/gst/controller/gst-controller.c:
	* libs/gst/controller/gst-helper.c:
	  added since tags


2005-08-11  Wim Taymans  <wim@fluendo.com>

	* gst/gstghostpad.c: (gst_proxy_pad_set_target_unlocked),
	(gst_proxy_pad_set_target), (gst_proxy_pad_get_target),
	(gst_proxy_pad_dispose), (gst_ghost_pad_do_activate_push),
	(gst_ghost_pad_do_link), (gst_ghost_pad_set_internal),
	(gst_ghost_pad_new_notarget), (gst_ghost_pad_get_target),
	(gst_ghost_pad_set_target):
	Actually implement (re)setting the target on a ghostpad
	as described in the docs.

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

	* gst/gst.c: (gst_init_check_with_popt_table), (init_pre):
	  Check whether GST_DEBUG_NO_COLOR environment variable is
	  set and disable coloured debug output if that is the case.

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

	* gst/base/gsttypefindhelper.c: (helper_find_peek),
	(gst_type_find_helper):
	  The memory returned by gst_type_find_peek() needs to
	  stay valid until the end of a typefind function, and
	  typefind functions may keep results from different 
	  offsets around, so we can't just unref the buffer from
	  the previous _peek(), but have to save all buffers 
	  returned by _peek() until typefinding is done and only
	  free them then.

2005-08-09  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/gst/gstreamer-sections.txt:
	* gst/gstutils.h:
	  New macros: GST_ROUND_UP_2() through GST_ROUND_UP_64().

2005-08-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/base/gstbasetransform.c: (gst_base_transform_buffer_alloc):
	  Fix a pretty good memleak.

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

	* gst/gstiterator.h:
	  Fix wrong include and 'make distcheck'.

2005-08-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/gstbin.c: (bin_bus_handler):
	  Use gst_element_post_message() instead.

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

	* gst/base/gstadapter.h:
	* gst/base/gstbasesink.h:
	* gst/base/gstbasesrc.h:
	* gst/base/gstbasetransform.h:
	* gst/base/gstcollectpads.h:
	* gst/base/gstpushsrc.h:
	* gst/gstiterator.h:
	  Add padding to our base elements' class and instance structs and
	  to GstIterator (you will need to rebuild all plugins and apps!)

2005-08-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/gstbin.c: (bin_bus_handler):
	  Make default message forwarding from child->bus to bin->bus
	  threadsafe and make it not emit warnings if the parent has no bus.

2005-08-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/gstelement.c: (activate_pads):
	  On paused->ready, set pad->caps to NULL, as is the documented
	  behaviour in this state change. Fixes playback of series of
	  media files when visualization is enabled in Totem.

2005-08-07  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/elements/gstcapsfilter.c: (gst_capsfilter_set_property):
	  Allow NULL as filter-caps (which means "any").

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

	* docs/libs/gstreamer-libs-sections.txt:
	* libs/gst/controller/gst-controller.c:
	* libs/gst/controller/gst-controller.h:
	* libs/gst/controller/gst-helper.c:
	  adding more entries to the docs and fix small doc-bugs

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

	* docs/gst/gstreamer-docs.sgml:
	* docs/gst/gstreamer-sections.txt:
	* docs/gst/gstreamer.types:
	* docs/gst/tmpl/gstbasesink.sgml:
	* docs/gst/tmpl/gstbasesrc.sgml:
	* docs/gst/tmpl/gstbasetransform.sgml:
	* docs/gst/tmpl/gstfakesrc.sgml:
	* gst/base/gstcollectpads.c:
	* gst/base/gstcollectpads.h:
	* libs/gst/controller/gst-controller.c:
	* libs/gst/controller/gst-controller.h:
	* libs/gst/controller/gst-helper.c:
	* libs/gst/controller/gst-interpolation.c:
	* libs/gst/controller/lib.c:
	  added long/short desc for controller docs
	  added collectpads base class docs
	  added correct includes to base-class docs

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

	* check/gst-libs/controller.c: (gst_test_mono_source_get_property),
	(gst_test_mono_source_set_property),
	(gst_test_mono_source_class_init), (GST_START_TEST),
	(gst_controller_suite):
	* docs/gst/gstreamer-docs.sgml:
	* docs/gst/gstreamer-sections.txt:
	* docs/gst/gstreamer.types:
	* docs/libs/gstreamer-libs-docs.sgml:
	* docs/libs/gstreamer-libs-sections.txt:
	* gst/base/gstadapter.c:
	* libs/gst/controller/gst-controller.c:
	(gst_controlled_property_new), (gst_controlled_property_free),
	(gst_controller_new_valist),
	(gst_controller_remove_properties_valist),
	(gst_controller_sink_values), (_gst_controller_finalize):
	* libs/gst/controller/gst-controller.h:
	* libs/gst/controller/gst-helper.c:
	(gst_object_control_properties), (gst_object_uncontrol_properties),
	(gst_object_get_controller), (gst_object_set_controller),
	(gst_object_sink_values), (gst_object_get_value_arrays),
	(gst_object_get_value_array):
	  more tests (and fixes) for the controller
	  more docs for the controller
	  integrated companies docs for the adapter 

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

	* check/elements/gstfakesrc.c: (setup_fakesrc), (cleanup_fakesrc),
	(GST_START_TEST), (fakesrc_suite):
	  add tests for sizetype

2005-08-04  Andy Wingo  <wingo@pobox.com>

	* gst/elements/gstcapsfilter.c: Reimplement using basetransform,
	fixes buffer_alloc proxying among other things.

	* gst/base/gstbasetransform.c:
	* gst/base/gstbasetransform.h:
	Revert patch to gstbasetransform from 7-28 removing
	delay_configure.

	* gst/base/gstbasetransform.h (GstBaseTransformClass.get_size):
	* gst/base/gstbasetransform.c (gst_base_transform_get_size):
	Semantics changed, should return not the size of the output buffer
	but the byte size of a buffer with a given caps.

	* gst/base/gstbasetransform.c (gst_base_transform_getcaps): Better
	debug object.
	(gst_base_transform_configure_caps): Don't set out_size here: (in,
	out) are not the pad caps until setcaps finishes.
	(gst_base_transform_buffer_alloc): Proxy the buffer_alloc for the
	not-in-place case as well. Deal with changing from in-place to
	not-in-place within calling pad_alloc_buffer. Still a bit
	concerned about the overhead here...

2005-08-03  Andy Wingo  <wingo@pobox.com>

	* gst/base/gstbasetransform.c (gst_base_transform_setcaps): Not
	fixating is an error.

2005-08-04  Edward Hervey  <edward@fluendo.com>

	* gst/base/gstadapter.h: 
	Added gst_adapter_get_type() to the header

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

	* check/Makefile.am:
	* check/gst-libs/controller.c:
	* libs/gst/controller/gst-controller.c:
	(gst_controller_new_valist):
	  added check test suite for the controller
	* gst/base/gstpushsrc.c:
	  fixed a doc typo

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

	* docs/gst/Makefile.am:
	* docs/gst/gstreamer-docs.sgml:
	* docs/gst/gstreamer-sections.txt:
	* docs/gst/gstreamer.types:
	* docs/gst/tmpl/gstfakesrc.sgml:
	* gst/base/README:
	* gst/base/gstbasesink.c:
	* gst/base/gstbasesink.h:
	* gst/base/gstbasesrc.c:
	* gst/base/gstbasesrc.h:
	* gst/base/gstbasetransform.c:
	* gst/base/gstpushsrc.c:
	* gst/base/gstpushsrc.h:
	  add short/long description docs to base classes
	  add pushsrc to the docs
	  remove consolidated doc fragments

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

	* configure.ac:
	* docs/libs/Makefile.am:
	* docs/libs/gstreamer-libs-docs.sgml:
	* docs/libs/gstreamer-libs-sections.txt:
	* docs/libs/gstreamer-libs.types:
	* examples/Makefile.am:
	* examples/controller/.cvsignore:
	* examples/controller/Makefile.am:
	* examples/controller/audio-example.c: (main):
	* libs/gst/Makefile.am:
	* libs/gst/controller/.cvsignore:
	* libs/gst/controller/Makefile.am:
	* libs/gst/controller/gst-controller.c:
	(on_object_controlled_property_changed), (gst_timed_value_compare),
	(gst_timed_value_find),
	(gst_controlled_property_set_interpolation_mode),
	(gst_controlled_property_new), (gst_controlled_property_free),
	(gst_controller_find_controlled_property),
	(gst_controller_new_valist), (gst_controller_new),
	(gst_controller_remove_properties_valist),
	(gst_controller_remove_properties), (gst_controller_set),
	(gst_controller_set_from_list), (gst_controller_unset),
	(gst_controller_get), (gst_controller_get_all),
	(gst_controller_sink_values), (gst_controller_get_value_arrays),
	(gst_controller_get_value_array),
	(gst_controller_set_interpolation_mode),
	(_gst_controller_finalize), (_gst_controller_init),
	(_gst_controller_class_init), (gst_controller_get_type):
	* libs/gst/controller/gst-controller.h:
	* libs/gst/controller/gst-helper.c: (g_object_control_properties),
	(g_object_uncontrol_properties), (g_object_get_controller),
	(g_object_set_controller), (g_object_sink_values),
	(g_object_get_value_arrays), (g_object_get_value_array):
	* libs/gst/controller/gst-interpolation.c:
	(gst_controlled_property_find_timed_value_node),
	(interpolate_none_get), (interpolate_trigger_get),
	(interpolate_trigger_get_value_array):
	* libs/gst/controller/lib.c: (gst_controller_init):
	* pkgconfig/Makefile.am:
	* pkgconfig/gstreamer-control-uninstalled.pc.in:
	* pkgconfig/gstreamer-control.pc.in:
	* testsuite/Makefile.am:
	* testsuite/controller/.cvsignore:
	* testsuite/controller/Makefile.am:
	* testsuite/controller/interpolator.c: (main):
	  added controller code
	  removed dparam pc files

2005-08-01  Jan Schmidt  <thaytan@mad.scientist.com>
	* gst/base/gstcollectpads.c: (gst_collectpads_finalize),
	(gst_collectpads_stop):
	  Broadcast the condition when shutting down, to make sure we wake all
	  threads up. Shut down pads on finalize, for safety.

2005-08-01  Jan Schmidt  <thaytan@mad.scientist.com>
	* gst/base/gstbasetransform.c: (gst_base_transform_init),
	(gst_base_transform_handle_buffer),
	(gst_base_transform_change_state):
	  Handle PAUSED->READY->PAUSED transition after negotiation
	  occurred already.
	* gst/gstmessage.c: (gst_message_init):
	  Extra piece of debug for new messages.

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

	* configure.ac:
	* docs/gst/tmpl/gstbasesrc.sgml:
	* docs/gst/tmpl/gstelement.sgml:
	* docs/gst/tmpl/gstevent.sgml:
	* docs/gst/tmpl/gstfakesrc.sgml:
	* docs/gst/tmpl/gstformat.sgml:
	* docs/gst/tmpl/gstghostpad.sgml:
	* docs/gst/tmpl/gstpad.sgml:
	* docs/gst/tmpl/gstquery.sgml:
	* docs/gst/tmpl/gststructure.sgml:
	* docs/gst/tmpl/gsttaglist.sgml:
	* docs/gst/tmpl/gstvalue.sgml:
	* docs/libs/gstreamer-libs-docs.sgml:
	* docs/libs/gstreamer-libs-sections.txt:
	* docs/libs/gstreamer-libs.types:
	* libs/gst/Makefile.am:
	* libs/gst/control/.cvsignore:
	* libs/gst/control/Makefile.am:
	* libs/gst/control/control.c:
	* libs/gst/control/control.h:
	* libs/gst/control/dparam.c:
	* libs/gst/control/dparam.h:
	* libs/gst/control/dparam_smooth.c:
	* libs/gst/control/dparam_smooth.h:
	* libs/gst/control/dparamcommon.h:
	* libs/gst/control/dparammanager.c:
	* libs/gst/control/dparammanager.h:
	* libs/gst/control/dplinearinterp.c:
	* libs/gst/control/dplinearinterp.h:
	* libs/gst/control/unitconvert.c:
	* libs/gst/control/unitconvert.h:
	* testsuite/Makefile.am:
	* testsuite/dynparams/.cvsignore:
	* testsuite/dynparams/Makefile.am:
	* testsuite/dynparams/dparamstest.c:
	* tools/Makefile.am:
	* tools/gst-inspect.c: (print_element_info), (main):
	* tools/gst-xmlinspect.c: (print_element_info), (main):
	  deactivate and remove dparams (libgstcontrol)

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

	* gst/elements/gsttypefindelement.c:
	(gst_type_find_element_have_type), (gst_type_find_element_init),
	(stop_typefinding), (gst_type_find_element_handle_event),
	(gst_type_find_element_chain), (gst_type_find_element_getrange):
	* gst/elements/gsttypefindelement.h:
	  Set caps on all outgoing buffers, not just the first one.

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

	* gst/elements/gsttypefindelement.c:
	(gst_type_find_element_have_type),
	(gst_type_find_element_check_set_buffer_caps),
	(gst_type_find_element_init), (stop_typefinding),
	(gst_type_find_element_handle_event),
	(gst_type_find_element_chain), (gst_type_find_element_getrange):
	* gst/elements/gsttypefindelement.h:
	  Set caps on first outgoing buffer when we've found the type.

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

	* docs/gst/gstreamer-docs.sgml:
	* docs/gst/gstreamer-sections.txt:
	* docs/gst/tmpl/gstscheduler.sgml:
	* docs/gst/tmpl/gstschedulerfactory.sgml:
	  Remove some old cruft from docs.

2005-07-31  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gstpad.h:
	  Fix inline docs for GstPadLinkReturn.
	  
	* gst/gststructure.c: (gst_structure_has_name):
	* gst/gststructure.h:
	* docs/gst/gstreamer-sections.txt:
	  New API: gst_structure_has_name().

2005-07-30  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  Use AC_SYS_LARGEFILE, which will set _FILE_OFFSET_BITS=64
	  and _LARGEFILE_SOURCE in config.h as required. Do not 
	  export those flags in our .pc files any longer (#142209).

	  Remove unused GST_DISABLE_OMEGA_COTHREADS stuff.

	* gst/elements/gstfilesink.c: (gst_file_sink_class_init),
	(gst_file_sink_do_seek), (gst_file_sink_event),
	(gst_file_sink_get_current_offset), (gst_file_sink_render):
	  Redo seek/tell calls with large file support in mind; add some
	  debugging messages; add log message that tells us when large
	  file support is unavailable or not enabled for some reason.

	* gst/elements/gstfilesrc.c: (gst_file_src_class_init):
	  Add log message that tells us when large file support 
	  is unavailable or not enabled for some reason.

2005-07-29  Wim Taymans  <wim@fluendo.com>

	* check/gst/gstghostpad.c: (GST_START_TEST), (gst_ghost_pad_suite):
	Added test for removing an element with ghostpad from a bin.
	Fixed test as current implementation does the right thing.

	* gst/gstghostpad.c: (gst_proxy_pad_class_init),
	(gst_proxy_pad_do_query_type), (gst_proxy_pad_do_event),
	(gst_proxy_pad_do_query), (gst_proxy_pad_do_internal_link),
	(gst_proxy_pad_do_bufferalloc), (gst_proxy_pad_do_activate),
	(gst_proxy_pad_do_activatepull), (gst_proxy_pad_do_activatepush),
	(gst_proxy_pad_do_chain), (gst_proxy_pad_do_getrange),
	(gst_proxy_pad_do_checkgetrange), (gst_proxy_pad_do_getcaps),
	(gst_proxy_pad_do_acceptcaps), (gst_proxy_pad_do_fixatecaps),
	(gst_proxy_pad_do_setcaps), (gst_proxy_pad_set_target),
	(gst_proxy_pad_get_target), (gst_proxy_pad_init),
	(gst_proxy_pad_dispose), (gst_proxy_pad_finalize),
	(gst_ghost_pad_class_init), (gst_ghost_pad_do_activate_push),
	(gst_ghost_pad_do_link), (gst_ghost_pad_do_unlink),
	(gst_ghost_pad_set_internal), (gst_ghost_pad_dispose),
	(gst_ghost_pad_new_notarget), (gst_ghost_pad_new),
	(gst_ghost_pad_get_target), (gst_ghost_pad_set_target):
	* gst/gstghostpad.h:
	Clean up ghostpads, remove properties for internal stuff.
	Make threadsafe.
	Fix refcounting.
	Prepare for switching targets, not all use cases work yet.

2005-07-29  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-gstghostpad.txt:
	Small update.

	* gst/gstbin.c: (unlink_pads), (gst_bin_add_func),
	(gst_bin_remove_func):
	Unlinking pads while holding the bin LOCK is not a good
	idea.

	* gst/gstpad.c: (gst_pad_class_init),
	(gst_pad_link_check_hierarchy), (gst_pad_get_caps_unlocked),
	(gst_pad_accept_caps), (gst_pad_set_caps), (gst_pad_send_event):
	No prob setting template after creating the pad.

2005-07-29  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/gstbus.c: (gst_bus_set_flushing), (gst_bus_pop),
	(gst_bus_peek), (gst_bus_source_dispatch),
	(gst_bus_add_watch_full), (poll_handler), (poll_timeout),
	(poll_destroy), (poll_destroy_timeout), (gst_bus_poll):
	  gst_bus_poll may be called from other threads. Handle
	  this nicely by not making poll_data disappear off the
	  stack once gst_bus_poll returns.
	  gst_bus_peek now increments the refcount on the returned
	  message.

2005-07-29  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-gstghostpad.txt:
	Overview of current GhostPad datastructures and use
	cases for changing the target.

2005-07-28  Wim Taymans  <wim@fluendo.com>

	* check/gst/gstbin.c: (GST_START_TEST), (gst_bin_suite):
	Added checks for hierarchy consistency whan adding linked
	elements to bins.

	* check/gst/gstelement.c: (GST_START_TEST), (gst_element_suite):
	Added check to test element scheduling without bin/pipeline.

	* check/pipelines/simple_launch_lines.c: (GST_START_TEST):
	First add elements to bin, then link.
	
	* gst/gstbin.c: (unlink_pads), (gst_bin_add_func),
	(gst_bin_remove_func):
	Unlink pads from elements added/removed from bin to maintain
	hierarchy consistency.

2005-07-28  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/base/gstbasetransform.c: (gst_base_transform_setcaps),
	(gst_base_transform_handle_buffer):
	* gst/base/gstbasetransform.h:
	  Remove broken delay_configure (fixes renegotiation of software
	  scaling pipelines); remove some leftover printf()s.

2005-07-28  Wim Taymans  <wim@fluendo.com>

	* check/gst/gstghostpad.c: (GST_START_TEST), (gst_ghost_pad_suite):
	Added some more tests for wrong hierarchy

	* docs/design/part-overview.txt:
	Some updates.

	* gst/gstbin.c: (gst_bin_remove_func), (gst_bin_dispose):
	Cleanups.

	* gst/gstelement.c: (gst_element_remove_pad), (gst_element_seek),
	(gst_element_dispose):
	Some more cleanups.

	* gst/gstpad.c: (gst_pad_link_check_compatible_unlocked),
	(gst_pad_link_check_hierarchy), (gst_pad_link_prepare),
	(gst_pad_get_caps_unlocked), (gst_pad_accept_caps),
	(gst_pad_set_caps), (gst_pad_send_event):
	Check for correct hierarchy when linking pads. Moving to
	strict requirement for ghostpads when linking elements in
	different bins.

	* gst/gstpad.h:
	Clean ups. Added WRONG_HIERARCHY return value.

2005-07-28  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/base/gstbasetransform.c: (gst_base_transform_setcaps):
	  Better debug if no transform is possible.

2005-07-27  Wim Taymans  <wim@fluendo.com>

	* docs/random/wtay/network-transp:
	Some old doc I had.

2005-07-27  Wim Taymans  <wim@fluendo.com>

	* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_packet_from_event),
	(gst_dp_event_from_packet):
	Fix serialization of seek events.

2005-07-27  Wim Taymans  <wim@fluendo.com>

	* check/gst-libs/gdp.c: (GST_START_TEST):
	* gst/elements/gstfakesink.c: (gst_fake_sink_event):
	Fix compilation and fix event serialization.

2005-07-27  Wim Taymans  <wim@fluendo.com>

	* CHANGES-0.9:
	* docs/design/part-TODO.txt:
	* docs/design/part-events.txt:
	Some docs updates

	* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
	(gst_base_sink_event), (gst_base_sink_do_sync),
	(gst_base_sink_activate_push), (gst_base_sink_activate_pull):
	* gst/base/gstbasesrc.c: (gst_base_src_send_discont),
	(gst_base_src_do_seek), (gst_base_src_event_handler),
	(gst_base_src_loop):
	* gst/base/gstbasetransform.c: (gst_base_transform_transform_caps),
	(gst_base_transform_configure_caps), (gst_base_transform_setcaps),
	(gst_base_transform_get_size), (gst_base_transform_buffer_alloc),
	(gst_base_transform_event), (gst_base_transform_handle_buffer),
	(gst_base_transform_set_passthrough),
	(gst_base_transform_is_passthrough):
	* gst/elements/gstfakesink.c: (gst_fake_sink_event):
	* gst/elements/gstfilesink.c: (gst_file_sink_event):
	Event updates.

	* gst/gstbuffer.h:
	Use faster casts.

	* gst/gstelement.c: (gst_element_seek):
	* gst/gstelement.h:
	Update gst_element_seek.

	* gst/gstevent.c: (gst_event_finalize), (_gst_event_copy),
	(gst_event_new), (gst_event_new_custom), (gst_event_get_structure),
	(gst_event_new_flush_start), (gst_event_new_flush_stop),
	(gst_event_new_eos), (gst_event_new_newsegment),
	(gst_event_parse_newsegment), (gst_event_new_tag),
	(gst_event_parse_tag), (gst_event_new_filler), (gst_event_new_qos),
	(gst_event_parse_qos), (gst_event_new_seek),
	(gst_event_parse_seek), (gst_event_new_navigation):
	* gst/gstevent.h:
	Make GstEvent use GstStructure. Add parsing code, make sure the
	API is sufficiently generic.
	Mark possible directions of events and serialization.

	* gst/gstmessage.c: (gst_message_init), (gst_message_finalize),
	(_gst_message_copy), (gst_message_new_segment_start),
	(gst_message_new_segment_done), (gst_message_new_custom),
	(gst_message_parse_segment_start),
	(gst_message_parse_segment_done):
	Small cleanups.

	* gst/gstpad.c: (gst_pad_get_caps_unlocked), (gst_pad_accept_caps),
	(gst_pad_set_caps), (gst_pad_send_event):
	Update for new events. 
	Catch events sent in wrong directions.

	* gst/gstqueue.c: (gst_queue_link_src),
	(gst_queue_handle_sink_event), (gst_queue_chain), (gst_queue_loop),
	(gst_queue_handle_src_query):
	Event updates.

	* gst/gsttag.c:
	* gst/gsttag.h:
	Remove event code from this file.

	* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_packet_from_event),
	(gst_dp_event_from_packet):
	Event updates.

2005-07-27  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/base/gstbasetransform.c: (gst_base_transform_getcaps),
	(gst_base_transform_configure_caps), (gst_base_transform_setcaps),
	(gst_base_transform_get_size), (gst_base_transform_handle_buffer):
	  Make debugging actually useful.

2005-07-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/gstpad.c: (fixate_value), (gst_pad_default_fixate),
	(gst_pad_fixate_caps):
	  Implement default fixation once again, so that gst_pad_fixate()
	  actually does anything at all. This probably needs to be some
	  sort of a last resort, and use profile-based fixation first, but
	  since that doesn't exist yet, this is the best we have. Fixes
	  visualization in Totem.

2005-07-22  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-events.txt:
	Small update.

	* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
	(gst_base_sink_do_sync), (gst_base_sink_activate_push),
	(gst_base_sink_activate_pull):
	Some more comments.

	* gst/elements/gstfakesrc.c: (gst_fake_src_class_init),
	(gst_fake_src_create):
	Fix handoff marshall.

	* gst/elements/gstidentity.c: (gst_identity_class_init),
	(gst_identity_transform_ip):
	We're a real inplace element.

	* gst/gstbus.c: (gst_bus_post):
	Added some comments.

	* tests/lat.c: (fakesrc), (fakesink), (simple), (queue), (main):
	* tests/muxing/case1.c: (main):
	* tests/sched/dynamic-pipeline.c: (main):
	* tests/sched/interrupt1.c: (main):
	* tests/sched/interrupt2.c: (main):
	* tests/sched/interrupt3.c: (main):
	* tests/sched/runxml.c: (main):
	* tests/sched/sched-stress.c: (main):
	* tests/seeking/seeking1.c: (event_received), (main):
	* tests/threadstate/threadstate2.c: (bus_handler), (timeout_func),
	(main):
	* tests/threadstate/threadstate3.c: (main):
	* tests/threadstate/threadstate4.c: (main):
	* tests/threadstate/threadstate5.c: (main):
	Fix the tests.

2005-07-21  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-seeking.txt:
	Some small additions.

	* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
	(gst_base_sink_get_times), (gst_base_sink_do_sync),
	(gst_base_sink_activate_push), (gst_base_sink_activate_pull):
	* gst/base/gstbasesink.h:
	discont values are gint64, handle the math correctly.

	* gst/base/gstbasesrc.c: (gst_base_src_loop):
	Make the basesrc report error if the source pad is not linked.

	* gst/gstqueue.c: (gst_queue_link_src), (gst_queue_chain),
	(gst_queue_loop), (gst_queue_handle_src_query),
	(gst_queue_src_activate_push):
	Make queue collect data even if the srcpad is not linked.
	Start pushing out data as soon as it is linked.

	* gst/gstutils.c: (gst_element_unlink), (gst_flow_get_name):
	* gst/gstutils.h:
	Added gst_flow_get_name() to ease error reporting.

2005-07-20  Wim Taymans  <wim@fluendo.com>

	* gst/gstmessage.c: (gst_message_new_segment_start),
	(gst_message_new_segment_done), (gst_message_parse_segment_start),
	(gst_message_parse_segment_done):
	* gst/gstmessage.h:
	Added a bunch of messages for advanced seeking.

	* gst/parse/grammar.y:
	* libs/gst/control/dparammanager.c: (gst_dpman_set_parent),
	(gst_dpman_state_changed):
	Fix some new-pad -> pad-added signals

2005-07-20  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* docs/manual/appendix-porting.xml:
	* docs/pwg/appendix-porting.xml:
	  Document new-pad/state-change signal renames and the FixedList
	  type rename.

2005-07-20  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* docs/manual/advanced-autoplugging.xml:
	* docs/manual/basics-helloworld.xml:
	* docs/manual/basics-pads.xml:
	* docs/random/ds/0.9-suggested-changes:
	* gst/gstelement.c: (gst_element_class_init), (gst_element_seek):
	* gst/gstelement.h:
	* gst/gstevent.h:
	* gst/gstformat.h:
	* gst/gstquery.h:
	* gst/gststructure.c: (gst_structure_value_get_generic_type),
	(gst_structure_parse_array), (gst_structure_parse_value):
	* gst/gstvalue.c: (gst_type_is_fixed),
	(gst_value_list_prepend_value), (gst_value_list_append_value),
	(gst_value_list_get_size), (gst_value_list_get_value),
	(gst_value_transform_array_string), (gst_value_serialize_array),
	(gst_value_deserialize_array), (gst_value_intersect_array),
	(gst_value_is_fixed), (_gst_value_initialize):
	* gst/gstvalue.h:
	  GstElement::new-pad -> pad-added, GstElement::state-change ->
	  state-changed, GstValueFixedList -> GstValueArray, add format and
	  flags as their own arguments in gst_element_seek() (should improve
	  "bindeability"), remove function generators since they don't work
	  under a whole bunch of compilers (they were deprecated already
	  anyway).

2005-07-20  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/gstinfo.c: (_gst_debug_nameof_funcptr),
	(_gst_debug_register_funcptr):
	* gst/gstinfo.h:
	  Fix illegal cast on some platforms (#309253).

2005-07-20  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/gstmessage.c: (gst_message_new_custom):
	* gst/gstmessage.h:
	  Add _new_custom, make _new_application a macro to _new_custom.

2005-07-20  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesrc.c: (gst_base_src_init),
	(gst_base_src_do_seek), (gst_base_src_loop), (gst_base_src_start):
	* gst/base/gstbasesrc.h:
	Add a gboolean to decide when to push out a discont.

	* gst/gstqueue.c: (gst_queue_handle_sink_event), (gst_queue_chain),
	(gst_queue_loop), (gst_queue_handle_src_query),
	(gst_queue_sink_activate_push), (gst_queue_src_activate_push),
	(gst_queue_set_property), (gst_queue_get_property):
	Some cleanups.

	* tests/threadstate/threadstate1.c: (main):
	Make a thread test compile and run... very silly..


2005-07-20  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* docs/manual/appendix-porting.xml:
	  Mention removal of libgstgconf-0.9.la and existence of gconf
	  elements.

2005-07-20  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* docs/pwg/advanced-clock.xml:
	* docs/pwg/appendix-porting.xml:
	* docs/pwg/intro-preface.xml:
	* docs/pwg/other-base.xml:
	* docs/pwg/other-manager.xml:
	* docs/pwg/other-nton.xml:
	* docs/pwg/other-ntoone.xml:
	* docs/pwg/other-oneton.xml:
	* docs/pwg/pwg.xml:
	  Document base classes, update sections of n-to-1 and 1-to-n (muxer,
	  demuxer), remove n-to-n (was never written), fix some code examples
	  and links and update the porting section to include all this.

2005-07-19  Wim Taymans  <wim@fluendo.com>

	* gst/gstqueue.c: (gst_queue_init), (gst_queue_handle_sink_event),
	(gst_queue_chain), (gst_queue_loop), (gst_queue_handle_src_event),
	(gst_queue_handle_src_query), (gst_queue_sink_activate_push),
	(gst_queue_src_activate_push), (gst_queue_change_state),
	(gst_queue_get_property):
	* gst/gstqueue.h:
	Propagate GstFlowReturn more intelligently upstream and output
	an ERROR/EOS when streaming stopped due to fatal error.

2005-07-19  Wim Taymans  <wim@fluendo.com>

	* tools/gst-launch.c: (check_intr), (event_loop), (main):
	Don't block forever for the state change to complete, the
	pipeline already did with a sensible timeout.

2005-07-19  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesrc.c: (gst_base_src_get_range):
	Make sure we never call the create function is we
	got deactivated.

2005-07-19  Andy Wingo  <wingo@pobox.com>

	* gst/parse/parse.l: Attempt to solve bug #172815.

2005-07-19  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-clocks.txt:
	* docs/design/part-events.txt:
	* gst/base/gstbasesrc.c: (gst_base_src_do_seek):
	Small docs updates.
	Only update the seeking values when we are not
	busy streaming.

2005-07-19  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/base/gstbasesrc.c: (gst_base_src_loop):
	  Oops, ignore the result of gst_pad_push_event here.

2005-07-19  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/base/gstbasesrc.c: (gst_base_src_loop),
	(gst_base_src_activate_push):
	  Send discont event from the loop function, as pads
	  aren't activated yet in the activate_push handler.

	* gst/gstbin.c: (bin_bus_handler):
	  Don't leak element name.

2005-07-18  Andy Wingo  <wingo@pobox.com>

	* configure.ac: Use AS_LIBTOOL_TAGS.

2005-07-18  Wim Taymans  <wim@fluendo.com>

	* docs/gst/gstreamer.types:
	Remove deleted types.

2005-07-18  Wim Taymans  <wim@fluendo.com>

	* check/elements/gstfakesrc.c: (GST_START_TEST):
	* configure.ac:
	* gst/Makefile.am:
	* gst/gst.c: (gst_init_get_popt_table), (init_pre), (init_post),
	(init_popt_callback):
	* gst/gst.h:
	* gst/gst_private.h:
	* gst/gstbin.c: (gst_bin_class_init), (gst_bin_add_func),
	(gst_bin_remove_func), (gst_bin_get_state), (gst_bin_change_state):
	* gst/gstbin.h:
	* gst/gstbus.h:
	* gst/gstconfig.h.in:
	* gst/gstelement.c: (gst_element_class_init),
	(gst_element_set_base_time), (gst_element_get_base_time),
	(iterator_fold_with_resync), (gst_element_change_state),
	(gst_element_dispose), (gst_element_get_bus):
	* gst/gstelement.h:
	* gst/gstelementfactory.h:
	* gst/gsterror.c: (_gst_core_errors_init):
	* gst/gsterror.h:
	* gst/gstevent.h:
	* gst/gstghostpad.c: (gst_ghost_pad_do_activate_push):
	* gst/gstindex.c:
	* gst/gstinfo.c: (_gst_debug_init):
	* gst/gstmessage.c: (_gst_message_copy):
	* gst/gstmessage.h:
	* gst/gstminiobject.h:
	* gst/gstobject.c:
	* gst/gstobject.h:
	* gst/gstpad.c: (gst_pad_get_caps_unlocked), (gst_pad_accept_caps),
	(gst_pad_set_caps), (gst_pad_start_task), (gst_pad_stop_task):
	* gst/gstpad.h:
	* gst/gstparse.h:
	* gst/gstpipeline.c: (gst_pipeline_init), (gst_pipeline_dispose),
	(gst_pipeline_change_state), (gst_pipeline_set_new_stream_time),
	(gst_pipeline_get_last_stream_time):
	* gst/gstpipeline.h:
	* gst/gstpluginfeature.h:
	* gst/gstquery.h:
	* gst/gstscheduler.c:
	* gst/gstscheduler.h:
	* gst/gststructure.h:
	* gst/gsttask.c: (gst_task_get_type), (gst_task_class_init),
	(gst_task_finalize), (gst_task_func), (gst_task_create),
	(gst_task_set_lock), (gst_task_get_state), (gst_task_start),
	(gst_task_stop), (gst_task_pause):
	* gst/gsttask.h:
	* gst/gsttypefind.h:
	* gst/gsttypes.h:
	* gst/registries/gstlibxmlregistry.c: (load_feature),
	(gst_xml_registry_load), (gst_xml_registry_save_feature):
	* gst/registries/gstxmlregistry.c:
	(gst_xml_registry_start_element), (gst_xml_registry_save_feature):
	* gst/schedulers/threadscheduler.c:
	* libs/gst/control/dparammanager.h:
	* tools/gst-inspect.c: (print_element_list),
	(print_plugin_features), (print_element_features):
	* tools/gst-xmlinspect.c: (print_element_list),
	(print_plugin_info), (main):
	Removed plugable schedulers.
	Removed Scheduler/Manager from elements.
	Removed gsttypes.h, rearranged includes.
	Removed dependency pad<->element, element<>pipeline, and
	various others,  fix includes.
	implement gst_pad_get_parent() with gst_object_get_parent()
	Make GstTask sefcontained.
	Fix _get_state() on GstBin, it did not return ASYNC with a 0
	timeout.
	Fix endless loop in iterator_fold_with_resync.


2005-07-18  Wim Taymans  <wim@fluendo.com>

	* gst/Makefile.am:
	* gst/gstarch.h:
	Remove old file.

2005-07-18  Wim Taymans  <wim@fluendo.com>

	* gst/Makefile.am:
	No more cothreads.h

2005-07-18  Wim Taymans  <wim@fluendo.com>

	* gst/cothreads.c:
	* gst/cothreads.h:
	Let's remove these.

2005-07-18  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-dynamic.txt:
	* docs/design/part-events.txt:
	* docs/design/part-seeking.txt:
	Some more docs in the works.

	* gst/base/gstbasetransform.c: (gst_base_transform_transform_caps),
	(gst_base_transform_getcaps), (gst_base_transform_configure_caps),
	(gst_base_transform_setcaps), (gst_base_transform_get_size),
	(gst_base_transform_buffer_alloc), (gst_base_transform_event),
	(gst_base_transform_handle_buffer),
	(gst_base_transform_sink_activate_push),
	(gst_base_transform_src_activate_pull),
	(gst_base_transform_set_passthrough),
	(gst_base_transform_is_passthrough):
	Refcounting fixes.

	* gst/gstbus.c: (gst_bus_source_dispatch), (gst_bus_poll):
	Cleanups.

	* gst/gstevent.c: (gst_event_finalize):
	Set SRC to NULL.

	* gst/gstutils.c: (gst_element_unlink),
	(gst_pad_get_parent_element), (gst_pad_proxy_getcaps),
	(gst_pad_proxy_setcaps):
	* gst/gstutils.h:
	Add _get_parent_element() to get a pads parent as an element.

2005-07-18  Wim Taymans  <wim@fluendo.com>

	* check/gst/gstbin.c: (GST_START_TEST):
	Remove bogus test.

2005-07-18  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_pad_getcaps),
	(gst_base_sink_pad_setcaps), (gst_base_sink_pad_buffer_alloc),
	(gst_base_sink_preroll_queue_flush), (gst_base_sink_handle_object),
	(gst_base_sink_event), (gst_base_sink_do_sync),
	(gst_base_sink_chain), (gst_base_sink_loop),
	(gst_base_sink_deactivate), (gst_base_sink_activate_push),
	(gst_base_sink_activate_pull), (gst_base_sink_change_state):
	Refcounting fixes.
	Fix logic for returning ASYNC when not prerolled.

2005-07-18  Wim Taymans  <wim@fluendo.com>

	* gst/gstqueue.c: (gst_queue_handle_sink_event):
	Fix nasty refcount bug.

2005-07-16 Philippe Khalaf <burger@speedy.org>

	* gst/elements/gstfdsrc.c:
	* gst/elements/gstfdsrc.h:
	* gst/elements/gstelements.c:
	* gst/elements/Makefile.am:
	Ported fdsrc to 0.9.

2005-07-16  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
	(gst_base_sink_do_sync):
	Fix compile error.

2005-07-16  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
	(gst_base_sink_event), (gst_base_sink_get_times),
	(gst_base_sink_do_sync), (gst_base_sink_change_state):
	* gst/base/gstbasesink.h:
	Store and use discont values when syncing buffers as described
	in design docs.
	
	* gst/base/gstbasesrc.c: (gst_base_src_send_discont),
	(gst_base_src_do_seek), (gst_base_src_loop), (gst_base_src_start),
	(gst_base_src_activate_push):
	Push discont event when starting.

	* gst/elements/gstidentity.c: (gst_identity_transform):
	Small cleanups.

	* gst/gstbin.c: (gst_bin_change_state):
	Small cleanups in base_time  distribution.

	* gst/gstelement.c: (gst_element_set_base_time),
	(gst_element_get_base_time), (gst_element_change_state):
	* gst/gstelement.h:
	Added methods for the base_time of the element.
	Some MT fixes.

	* gst/gstpipeline.c: (gst_pipeline_send_event),
	(gst_pipeline_change_state), (gst_pipeline_set_new_stream_time),
	(gst_pipeline_get_last_stream_time):
	* gst/gstpipeline.h:
	MT fixes.
	Handle seeking as described in design doc, remove stream_time
	hack.
	Cleanups clock and stream_time selection code. Added accessors
	for the stream_time.
	

2005-07-16  Andy Wingo  <wingo@pobox.com>

	* gst/gsterror.c (_gst_core_errors_init): Use the magic word
	(#305291).

2005-07-16  Wim Taymans  <wim@fluendo.com>

	* check/gst/gstbin.c: (GST_START_TEST):
	Make elements silent as the deep_notify refs the
	parent, which might make the test fail.

	* gst/gstghostpad.c: (gst_ghost_pad_do_activate_push):
	Don't hold the lock for too long.

2005-07-16  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/base/gstbasesrc.c: (gst_base_src_default_negotiate):
	  Don't unref the caps we passed to gst_caps_make_writable() after
	  passing them. gst_caps_make_writable() will do that for us.

2005-07-15  Andy Wingo  <wingo@pobox.com>

	* gst/gstcaps.h (gst_caps_is_simple): Removed deprecated macro
	(#157311).

	* gst/elements/gstidentity.c (marshal_VOID__MINIOBJECT): Write our
	own marshalling function for the handoff signal. Properly type the
	buffer as a buffer. Fixes some warnings. Should do a more general
	solution.
	(gst_identity_class_init): Plug into the right marshaller.

2005-07-15  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-TODO.txt:
	* docs/design/part-clocks.txt:
	* docs/design/part-element-sink.txt:
	* docs/design/part-events.txt:
	* docs/design/part-gstpipeline.txt:
	Updated docs, mostly DISCONT related.

2005-07-15  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/pwg/building-pads.xml:
	  s/GST_PAD_LINK_REFUSED/FALSE/ in gst_my_filter_setcaps()

2005-07-15  Andy Wingo  <wingo@pobox.com>

	* tools/gst-typefind.c: Update, add copyright block.

	* gst/base/gstbasesrc.c (gst_base_src_default_negotiate):
	Normalize and truncate caps before fixation.

	* gst/gstcaps.h:
	* gst/gstcaps.c (gst_caps_truncate): New function, destructively
	discards all but the first structure from its argument.

2005-07-15  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasetransform.c: (gst_base_transform_init),
	(gst_base_transform_transform_caps), (gst_base_transform_getcaps),
	(gst_base_transform_configure_caps), (gst_base_transform_setcaps),
	(gst_base_transform_get_size), (gst_base_transform_buffer_alloc),
	(gst_base_transform_handle_buffer), (gst_base_transform_getrange),
	(gst_base_transform_chain), (gst_base_transform_change_state),
	(gst_base_transform_set_passthrough),
	(gst_base_transform_is_passthrough):
	* gst/base/gstbasetransform.h:
	Make passthrough work using the bufferpools.
	Changed API a bit, subclasses have to write into a buffer
	provided by the base class.
	More debug info in nego functions.
	
	* gst/elements/gstidentity.c: (gst_identity_init),
	(gst_identity_transform):
	Port to new base class.

2005-07-15  Wim Taymans  <wim@fluendo.com>

	* gst/gstmessage.c: (gst_message_new_state_changed):
	* tools/gst-launch.c: (event_loop), (main):
	Totally dump messages in -launch with the -m option.
	Fix message name for State messages,

2005-07-14  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesrc.c: (gst_base_src_loop):
	Post error messages on errors.

2005-07-14  Wim Taymans  <wim@fluendo.com>

	* gst/gstcaps.c: (gst_caps_do_simplify):
	Remove debug info.

	* gst/gsterror.h:
	Define error for stream stopped.

	* gst/gstghostpad.c: (gst_proxy_pad_do_bufferalloc),
	(gst_proxy_pad_do_chain), (gst_proxy_pad_do_getrange):
	Do proper return values.

	* gst/gstpad.c: (gst_pad_get_caps_unlocked), (gst_pad_accept_caps),
	(gst_pad_set_caps), (gst_pad_chain), (gst_pad_push),
	(gst_pad_get_range):
	Better return values.

	* gst/gstpad.h:
	Reorganise return values, add macro to check for fatal errors.

	* gst/gstqueue.c: (gst_queue_chain):
	Return proper GstFlowReturn values,

2005-07-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/gst/gstreamer-sections.txt:
	* docs/gst/gstreamer.types:
	* docs/gst/tmpl/gst.sgml:
	* docs/gst/tmpl/gstbasesink.sgml:
	* docs/gst/tmpl/gstbasesrc.sgml:
	* docs/gst/tmpl/gstbasetransform.sgml:
	* docs/gst/tmpl/gstbin.sgml:
	* docs/gst/tmpl/gstbuffer.sgml:
	* docs/gst/tmpl/gstcaps.sgml:
	* docs/gst/tmpl/gstclock.sgml:
	* docs/gst/tmpl/gstcompat.sgml:
	* docs/gst/tmpl/gstconfig.sgml:
	* docs/gst/tmpl/gstelement.sgml:
	* docs/gst/tmpl/gstelementdetails.sgml:
	* docs/gst/tmpl/gstelementfactory.sgml:
	* docs/gst/tmpl/gstenumtypes.sgml:
	* docs/gst/tmpl/gsterror.sgml:
	* docs/gst/tmpl/gstevent.sgml:
	* docs/gst/tmpl/gstfakesink.sgml:
	* docs/gst/tmpl/gstfakesrc.sgml:
	* docs/gst/tmpl/gstfilesink.sgml:
	* docs/gst/tmpl/gstfilesrc.sgml:
	* docs/gst/tmpl/gstfilter.sgml:
	* docs/gst/tmpl/gstformat.sgml:
	* docs/gst/tmpl/gstghostpad.sgml:
	* docs/gst/tmpl/gstimplementsinterface.sgml:
	* docs/gst/tmpl/gstindex.sgml:
	* docs/gst/tmpl/gstindexfactory.sgml:
	* docs/gst/tmpl/gstinfo.sgml:
	* docs/gst/tmpl/gstiterator.sgml:
	* docs/gst/tmpl/gstmacros.sgml:
	* docs/gst/tmpl/gstmemchunk.sgml:
	* docs/gst/tmpl/gstminiobject.sgml:
	* docs/gst/tmpl/gstobject.sgml:
	* docs/gst/tmpl/gstpad.sgml:
	* docs/gst/tmpl/gstpadtemplate.sgml:
	* docs/gst/tmpl/gstparse.sgml:
	* docs/gst/tmpl/gstpipeline.sgml:
	* docs/gst/tmpl/gstplugin.sgml:
	* docs/gst/tmpl/gstpluginfeature.sgml:
	* docs/gst/tmpl/gstquery.sgml:
	* docs/gst/tmpl/gstqueue.sgml:
	* docs/gst/tmpl/gstregistry.sgml:
	* docs/gst/tmpl/gstregistrypool.sgml:
	* docs/gst/tmpl/gstscheduler.sgml:
	* docs/gst/tmpl/gstschedulerfactory.sgml:
	* docs/gst/tmpl/gststructure.sgml:
	* docs/gst/tmpl/gstsystemclock.sgml:
	* docs/gst/tmpl/gsttaglist.sgml:
	* docs/gst/tmpl/gsttagsetter.sgml:
	* docs/gst/tmpl/gsttrace.sgml:
	* docs/gst/tmpl/gsttrashstack.sgml:
	* docs/gst/tmpl/gsttypefind.sgml:
	* docs/gst/tmpl/gsttypefindfactory.sgml:
	* docs/gst/tmpl/gsttypes.sgml:
	* docs/gst/tmpl/gsturihandler.sgml:
	* docs/gst/tmpl/gsturitype.sgml:
	* docs/gst/tmpl/gstutils.sgml:
	* docs/gst/tmpl/gstvalue.sgml:
	* docs/gst/tmpl/gstversion.sgml:
	* docs/gst/tmpl/gstxml.sgml:
	* docs/libs/tmpl/gstcontrol.sgml:
	* docs/libs/tmpl/gstdataprotocol.sgml:
	* docs/libs/tmpl/gstdparam.sgml:
	* docs/libs/tmpl/gstdplinint.sgml:
	* docs/libs/tmpl/gstdpman.sgml:
	* docs/libs/tmpl/gstdpsmooth.sgml:
	* docs/libs/tmpl/gstgetbits.sgml:
	* docs/libs/tmpl/gstunitconvert.sgml:
	* gst/base/gstpushsrc.c: (gst_push_src_get_type),
	(gst_push_src_base_init), (gst_push_src_class_init),
	(gst_push_src_init), (gst_push_src_create):
	* gst/base/gstpushsrc.h:
	* gst/elements/gstelements.c:
	* gst/elements/gstfakesink.c: (gst_fake_sink_state_error_get_type),
	(gst_fake_sink_base_init), (gst_fake_sink_class_init),
	(gst_fake_sink_init), (gst_fake_sink_set_property),
	(gst_fake_sink_get_property), (gst_fake_sink_get_times),
	(gst_fake_sink_event), (gst_fake_sink_preroll),
	(gst_fake_sink_render), (gst_fake_sink_change_state):
	* gst/elements/gstfakesink.h:
	* gst/elements/gstfakesrc.c: (gst_fake_src_data_get_type),
	(gst_fake_src_sizetype_get_type), (gst_fake_src_filltype_get_type),
	(gst_fake_src_base_init), (gst_fake_src_class_init),
	(gst_fake_src_init), (gst_fake_src_event_handler),
	(gst_fake_src_alloc_parent), (gst_fake_src_set_property),
	(gst_fake_src_get_property), (gst_fake_src_prepare_buffer),
	(gst_fake_src_alloc_buffer), (gst_fake_src_get_size),
	(gst_fake_src_create_buffer), (gst_fake_src_create),
	(gst_fake_src_start), (gst_fake_src_stop):
	* gst/elements/gstfakesrc.h:
	* gst/elements/gstfilesink.c: (_do_init),
	(gst_file_sink_base_init), (gst_file_sink_class_init),
	(gst_file_sink_init), (gst_file_sink_dispose),
	(gst_file_sink_set_location), (gst_file_sink_set_property),
	(gst_file_sink_get_property), (gst_file_sink_open_file),
	(gst_file_sink_close_file), (gst_file_sink_query),
	(gst_file_sink_event), (gst_file_sink_render),
	(gst_file_sink_change_state), (gst_file_sink_uri_get_type),
	(gst_file_sink_uri_get_protocols), (gst_file_sink_uri_get_uri),
	(gst_file_sink_uri_set_uri), (gst_file_sink_uri_handler_init):
	* gst/elements/gstfilesink.h:
	* gst/elements/gstfilesrc.c: (_do_init), (gst_file_src_base_init),
	(gst_file_src_class_init), (gst_file_src_init),
	(gst_file_src_finalize), (gst_file_src_set_location),
	(gst_file_src_set_property), (gst_file_src_get_property),
	(gst_file_src_map_region), (gst_file_src_map_small_region),
	(gst_file_src_create_mmap), (gst_file_src_create_read),
	(gst_file_src_create), (gst_file_src_is_seekable),
	(gst_file_src_get_size), (gst_file_src_start), (gst_file_src_stop),
	(gst_file_src_uri_get_type), (gst_file_src_uri_get_protocols),
	(gst_file_src_uri_get_uri), (gst_file_src_uri_set_uri),
	(gst_file_src_uri_handler_init):
	* gst/elements/gstfilesrc.h:
	  more autistic cleanliness in functions/names/defines

2005-07-13  Andy Wingo  <wingo@pobox.com>

	* gst/base/gstbasesrc.c (gst_base_src_start): Post an error if the
	source couldn't negotiate.

	* gst/parse/grammar.y: Revert 1.54->1.55, so we now do filtered
	connections again.

	* gst/gstutils.h:
	* gst/gstutils.c (gst_element_link_pads_filtered): New old
	function. I am channeling Hades. Put your boots on suckers!!!

2005-07-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* testsuite/caps/Makefile.am:
	* testsuite/caps/value_compare.c:
	* testsuite/caps/value_intersect.c:
	* check/gst/gstvalue.c: (GST_START_TEST), (gst_value_suite):
	  move two testsuite apps over to the check dir

2005-07-12  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasetransform.c: (gst_base_transform_setcaps):
	Added more debug info in the negotiate process.

	* gst/gstmessage.h:
	Prepare for segment playback.

	* gst/gstpad.c: (gst_pad_accept_caps), (gst_pad_set_caps):
	Better debugging.

	* gst/gstutils.c:
	Some more docs.

	* tools/gst-launch.c: (main):
	NULL pipeline on errors.

2005-07-12  Andy Wingo  <wingo@pobox.com>

	* gst/gstbuffer.c (_gst_buffer_copy): Copy the buffer whether or
	not it comes from a malloc region. Make sure our copy gets freed.

2005-07-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/gst/gstelement.c: (GST_START_TEST), (gst_element_suite):
	* check/gst/gstmessage.c: (GST_START_TEST):
	* check/gst/gststructure.c: (GST_START_TEST),
	(gst_structure_suite), (main):
	  more testing
	* gst/gstelement.c: (gst_element_message_full):
	  clean up GError and debug string now that they get copied
	* gst/gstmessage.c: (gst_message_new_error),
	(gst_message_new_warning), (gst_message_parse_error),
	(gst_message_parse_warning):
	  use GST_TYPE_G_ERROR for structure_new, and take copies of
	  arguments, so that we don't mess up refcounting

2005-07-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/Makefile.am:
	  add per-test valgrind targets
	* check/gst-libs/gdp.c: (GST_START_TEST),
	(gst_data_protocol_suite), (main):
	  clean up

2005-07-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/Makefile.am:
	  instate more valgrindable tests
	* check/elements/gstfakesrc.c: (chain_func), (event_func),
	(GST_START_TEST), (fakesrc_suite):
	* check/gst/gstpad.c: (GST_START_TEST):
	* check/gst/gststructure.c: (GST_START_TEST):
	  fix test leaks
	* docs/gst/tmpl/gstminiobject.sgml:
	* gst/gstpad.c: (gst_pad_finalize):
	  fix the static mutex leak

2005-07-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/Makefile.am:
	  add two more tests for valgrinding
	* check/gst/gstvalue.c: (GST_START_TEST):
	  test refcount of deserialized buffer, found a leak
	* docs/gst/gstreamer-docs.sgml:
	* docs/gst/gstreamer-sections.txt:
	* docs/gst/gstreamer.types:
	* docs/gst/tmpl/gstminiobject.sgml:
	  add miniobject to docs
	* gst/gstminiobject.c:
	  add some docs
	* gst/gstvalue.c: (gst_value_deserialize_buffer),
	(gst_string_unwrap):
	  fix a hard-to-find invalid write for one of the tests
	  fix a leak for deserialized buffers

2005-07-11  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* docs/pwg/advanced-events.xml:
	* docs/pwg/advanced-request.xml:
	* docs/pwg/advanced-scheduling.xml:
	* docs/pwg/appendix-porting.xml:
	* docs/pwg/building-boiler.xml:
	* docs/pwg/intro-preface.xml:
	* docs/pwg/other-ntoone.xml:
	  Rewrite scheduling-chapter for scheduling model in 0.9. Add lots
	  of example code and explanation for pad activation, loop() and
	  getrange() functions and a bit more. Remove old comments pointing
	  to loop-functions.
	* examples/pwg/Makefile.am:
	  Add loop/getrange examples.

2005-07-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  check for valgrind binary + some fixes
	* check/gst.supp:
	  valgrind suppressions for the tests
	* check/Makefile.am:
	  add a valgrind: target that valgrinds the unit tests
	* check/gst/gst.c: (GST_START_TEST), (gst_suite):
	* check/gst/gstbin.c: (pop_messages), (GST_START_TEST):
	* check/gst/gstbuffer.c: (GST_START_TEST), (gst_test_suite):
	* check/gst/gstghostpad.c:
	  added some cleanup
	* check/gst/gstdata.c:
	  removed
	* check/gst/gstminiobject.c: (GST_START_TEST), (thread_ref),
	(thread_unref), (gst_mini_object_suite), (main):
	  added
	* gst/gst.c: (gst_deinit):
	* gst/gst.h:
	  add a method to clean up.
	* gst/gstsystemclock.c: (gst_system_clock_dispose),
	(gst_system_clock_obtain):
	  allow for disposing the system clock.
	* tools/gst-launch.c: (main):
	  deinit

2005-07-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/gst/tmpl/gstbasesrc.sgml:
	* docs/gst/tmpl/gstfakesrc.sgml:
	* gst/base/gstbasesrc.c: (gst_base_src_class_init),
	(gst_base_src_init), (gst_base_src_set_property),
	(gst_base_src_get_property), (gst_base_src_get_range),
	(gst_base_src_start):
	* gst/base/gstbasesrc.h:
	  add num-buffers property
	* gst/elements/gstfakesrc.c: (gst_fakesrc_class_init),
	(gst_fakesrc_init), (gst_fakesrc_set_property),
	(gst_fakesrc_get_property), (gst_fakesrc_create),
	(gst_fakesrc_start):
	  remove num-buffers property

2005-07-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/gst/gstreamer-sections.txt:
	* docs/gst/tmpl/gstbasesink.sgml:
	* docs/gst/tmpl/gstbasesrc.sgml:
	* gst/base/gstbasesink.c: (gst_base_sink_pad_getcaps),
	(gst_base_sink_pad_setcaps), (gst_base_sink_pad_buffer_alloc),
	(gst_base_sink_finalize), (gst_base_sink_set_clock),
	(gst_base_sink_set_property), (gst_base_sink_get_property),
	(gst_base_sink_handle_object), (gst_base_sink_event),
	(gst_base_sink_do_sync), (gst_base_sink_handle_event),
	(gst_base_sink_handle_buffer), (gst_base_sink_chain),
	(gst_base_sink_loop), (gst_base_sink_deactivate),
	(gst_base_sink_activate_push), (gst_base_sink_activate_pull),
	(gst_base_sink_change_state):
	* gst/base/gstbasesink.h:
	* gst/base/gstbasesrc.h:
	* gst/elements/gstfakesink.c: (gst_fakesink_get_times):
	* gst/elements/gstfilesink.c: (gst_filesink_class_init),
	(gst_filesink_init):
	  more macro splitting

2005-07-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstelement.c: (gst_element_get_bus):
	  add debug
	* tools/gst-launch.c: (check_intr), (event_loop):
	  fix bus leaks

2005-07-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstpad.c: (gst_pad_link_check_compatible_unlocked):
	  fix a caps leak

2005-07-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/base/gstbasesrc.c: (gst_base_src_class_init),
	(gst_base_src_finalize):
	  add finalize method and clean up properly
	* gst/gstpipeline.c: (gst_pipeline_dispose):
	  add debug

2005-07-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/gst/gstbin.c: (pop_messages), (GST_START_TEST),
	(gst_bin_suite):
	  add more things to check
	* gst/gstbin.c: (gst_bin_change_state), (bin_bus_handler):
	* gst/gstelement.c:
	  more debug

2005-07-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/elements/gstfakesrc.c: (chain_func), (event_func),
	(GST_START_TEST), (fakesrc_suite):
	* check/gst-libs/gdp.c: (GST_START_TEST):
	* check/gst/gst.c: (GST_START_TEST):
	* check/gst/gstbin.c: (GST_START_TEST), (gst_bin_suite):
	* check/gst/gstbuffer.c: (GST_START_TEST), (gst_test_suite):
	* check/gst/gstbus.c: (GST_START_TEST):
	* check/gst/gstcaps.c: (GST_START_TEST):
	* check/gst/gstdata.c: (GST_START_TEST):
	* check/gst/gstelement.c: (GST_START_TEST):
	* check/gst/gstghostpad.c: (GST_START_TEST):
	* check/gst/gstiterator.c: (GST_START_TEST):
	* check/gst/gstmessage.c: (GST_START_TEST):
	* check/gst/gstobject.c: (GST_START_TEST):
	* check/gst/gstpad.c: (GST_START_TEST):
	* check/gst/gststructure.c: (GST_START_TEST):
	* check/gst/gstsystemclock.c: (GST_START_TEST),
	(gst_systemclock_suite):
	* check/gst/gsttag.c: (GST_START_TEST), (gst_tag_suite):
	* check/gst/gstvalue.c: (GST_START_TEST):
	* check/pipelines/cleanup.c: (GST_START_TEST):
	* check/pipelines/simple_launch_lines.c: (GST_START_TEST):
	* check/states/sinks.c: (GST_START_TEST):
	* check/gstcheck.c: (gst_check_init):
	* check/gstcheck.h:
	  add debugging category
	  use GST_START_TEST now, so we add a debug line

2005-07-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/gst/gstbin.c: (START_TEST), (gst_bin_suite):
	  add test for state change message on a bin
	* check/gst/gstelement.c: (START_TEST), (gst_element_suite):
	  add another test
	* gst/gstbin.c: (gst_bin_init):
	* gst/gstbus.c: (gst_bus_init), (gst_bus_post):
	* gst/gstelement.c: (gst_element_post_message),
	(gst_element_set_state):
	* gst/gstelementfactory.c: (gst_element_factory_create):
	* gst/gstmessage.c: (gst_message_new):
	* gst/gstscheduler.c:
	  various debugging additions and cleanups

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

	* check/Makefile.am:
	* check/gst/gstelement.c: (START_TEST), (gst_element_suite),
	(main):
	  adding tests for elements
	* gst/gstelement.c: (gst_element_dispose):

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

	* gst/registries/gstlibxmlregistry.c: (load_feature):
	  plug more leaks.  A simple gst_init() now is leakfree, yay.

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

	* gst/registries/gstlibxmlregistry.c: (read_string), (load_paths),
	(gst_xml_registry_load):
	  plug another memleak

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

	* configure.ac:
	  use GST_SET_ERROR_CFLAGS
	* docs/faq/cvs.xml:
	  change to ERROR_CFLAGS

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

	* configure.ac:
	  make GST_ERROR_CFLAGS overridable and re-enable Werror
	* docs/faq/cvs.xml:
	  add a note about error CFLAGS
	* docs/gst/tmpl/gstfakesrc.sgml:
	* gst/elements/gstfakesrc.c:
	  comment out some unused code
	* gst/gst.c: (split_and_iterate):
	* gst/registries/gstlibxmlregistry.c: (load_pad_template),
	(load_feature):
	  plug some memleaks

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

	* common/Makefile.am:
	* common/gtk-doc.mak:
	* docs/gst/Makefile.am:
	  factor out gtk-doc.mak

2005-07-07  Wim Taymans  <wim@fluendo.com>

	* gst/schedulers/threadscheduler.c: (gst_thread_scheduler_func),
	(gst_thread_scheduler_dispose):
	Unlock the STREAM_LOCK completely.

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

	* check/Makefile.am:
	* check/elements/.cvsignore:
	* check/elements/gstfakesrc.c: (chain_func), (event_func),
	(START_TEST), (fakesrc_suite), (main):
	* gst/elements/gstfakesrc.c: (gst_fakesrc_class_init),
	(gst_fakesrc_set_property), (gst_fakesrc_get_property),
	(gst_fakesrc_create), (gst_fakesrc_start):
	* gst/elements/gstfakesrc.h:
	  adding a first element test

2005-07-07  Andy Wingo  <wingo@pobox.com>

	* gst/gstbus.c (gst_bus_have_pending): Remove intensely irritating
	debug message.

2005-07-07  Wim Taymans  <wim@fluendo.com>

	* gst/gstquery.c:
	* gst/gstquery.h:
	Remove old types

2005-07-07  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesrc.c: (gst_base_src_get_range),
	(gst_base_src_default_negotiate), (gst_base_src_negotiate):
	Allow subclasses to implement their own negotiation.

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

	* docs/design/part-gstbin.txt:
	* docs/design/part-gstpipeline.txt:
	  Update design notes to reflect the movement of
	  responsibility for bus handling from GstPipeline to
	  GstBin

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

	* configure.ac:
	  Remove unnecessary queue2/3/4 examples.

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

	* examples/Makefile.am:
	* examples/helloworld/helloworld.c: (event_loop), (main):
	* examples/queue/queue.c: (event_loop), (main):
	* examples/queue2/queue2.c: (main):
	  Update a couple of the examples to work again.

	* gst/base/gstbasesink.c: (gst_base_sink_preroll_queue_empty),
	(gst_base_sink_preroll_queue_flush), (gst_base_sink_handle_event):
	 Spelling corrections and extra debug.
	
	* gst/gstbin.c: (gst_bin_class_init), (gst_bin_init), (is_eos),
	(gst_bin_add_func), (bin_element_is_sink), (gst_bin_get_state),
	(gst_bin_change_state), (gst_bin_dispose), (bin_bus_handler):
	* gst/gstbin.h:
	* gst/gstpipeline.c: (gst_pipeline_init), (gst_pipeline_dispose),
	(gst_pipeline_change_state):
	* gst/gstpipeline.h:
	  Move the bus handler for children to the GstBin, and create a
	  separate bus for receiving messages from children to the one the
	  bus sends 'upwards' on.

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

	* gst/base/README:
	* gst/base/gstbasesink.c: (gst_base_sink_preroll_queue_empty),
	(gst_base_sink_handle_object), (gst_base_sink_loop),
	(gst_base_sink_change_state):
	* gst/base/gstbasesink.h:
	* gst/base/gstbasesrc.c: (gst_base_src_class_init),
	(gst_base_src_init), (gst_base_src_setcaps),
	(gst_base_src_getcaps), (gst_base_src_loop),
	(gst_base_src_default_negotiate), (gst_base_src_negotiate),
	(gst_base_src_start), (gst_base_src_change_state):
	* gst/base/gstbasesrc.h:
	Make basesrc negotiate.
	Handle the case where preroll fails in basesink.
	Update README.

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

	* gst/gstpad.c: (gst_pad_fixate_caps), (gst_pad_accept_caps):
	Implement the fixate function.
	Clean up acceptcaps.

2005-07-06  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* docs/pwg/building-filterfactory.xml:
	* docs/pwg/pwg.xml:
	  Remove never-written filter-factory chapter; I'll add the various
	  base classes to part 4 ("other element types") later on.

2005-07-06  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* docs/pwg/advanced-negotiation.xml:
	* docs/pwg/building-boiler.xml:
	* docs/pwg/building-pads.xml:
	* docs/pwg/pwg.xml:
	* examples/pwg/Makefile.am:
	  Add a chapter on caps negotiation, simplify the original code
	  samples a bit w.r.t. caps negotiation, add link to the advanced
	  section. Add a bunch of examples showing different use cases of
	  different types of caps negotiation. Upstream renegotiation isn't
	  fully documented yet since nobody knows how that works.

2005-07-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/gst/gstpad.c:
	* check/gstcheck.c:
	* gst/gstpad.c: (gst_pad_get_internal_links_default):
	  if pad has no parent, return NULL as list of internal links

2005-07-05  Andy Wingo  <wingo@pobox.com>

	* gst/elements/gstfilesrc.c:
	* gst/elements/gstfakesrc.c: 
	* gst/base/gstpushsrc.c:
	* gst/base/gstbasesrc.h: 
	* gst/base/gstbasesrc.c: s/BASESRC/BASE_SRC/g.
	
2005-07-05  Stefan Kost  <ensonic@users.sf.net>

	* Makefile.am:
	  better report generation target (lcov needs a patch)

2005-07-05  Andy Wingo  <wingo@pobox.com>

	* gst/elements, testsuite: Null if we got it...

2005-07-05  Wim Taymans  <wim@fluendo.com>

	* configure.ac:
	* libs/gst/dataprotocol/Makefile.am:
	* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_validate_packet):
	* libs/gst/dataprotocol/dataprotocol.h:
	* pkgconfig/Makefile.am:
	* pkgconfig/gstreamer-dataprotocol-uninstalled.pc.in:
	* pkgconfig/gstreamer-dataprotocol.pc.in:
	Ported dataprotol to 0.9. 
	Added pkgconfig files.

2005-07-05  Andy Wingo  <wingo@pobox.com>

	* gst/base/gstbasetransform.c (gst_base_transform_setcaps):
	Default to returning TRUE for the case when tranform_caps returns
	a fixed caps, like for identity or volume.

	* check/gst/gstbus.c (pound_bus_with_messages): 
	* check/gst/gstmessage.c (START_TEST): 
	* check/pipelines/simple_launch_lines.c (got_handoff): Application
	message API change.

	* gst/base/gstbasetransform.c (gst_base_transform_setcaps): More
	logic weaks here: always run transform_caps, trying passthrough
	operation only if the original caps intersects with the transform.

	* gst/gstpad.c (gst_pad_link_check_compatible_unlocked): Debug
	source and sink caps.

	* gst/base/gstbasetransform.c (gst_base_transform_getcaps):
	Intersect the peer caps with the pad template before going into
	transform_caps.
	(gst_base_transform_transform_caps): More debugging.

	* gst/gstmessage.h (gst_message_new_application): Take a GstObject
	src argument.

2005-07-04  Edward Hervey  <edward@fluendo.com>

	* gst/gstutils.c:
	* gst/gstutils.h:
	(gst_pad_add_*_probe): now returns the signal id for better wrapping
	in bindings.

2005-07-04  Andy Wingo  <wingo@pobox.com>

	* check/gst/gstpad.c: Only set explicit caps on pads.

2005-07-01  Andy Wingo  <wingo@pobox.com>

	* tests/network-clock.scm: Commentary update.

	* gst/elements/gstidentity.c (PROP_DUPLICATE): Gone daddy gone.
	Didn't really make sense, not implementable with basetransform,
	etc.
	(gst_identity_transform): Unref inbuf via make_writable. Feeble
	attempt at implementing the sync property, needs an unlock method.

	* gst/base/gstbasetransform.c (gst_base_transform_transform_caps):
	New func, by default returns the same caps (the identity
	transformation).
	(gst_base_transform_getcaps): Uses transform_caps to return
	something sensible.
	(gst_base_transform_setcaps): Complicated logic to get caps on
	both pads, even if they are different, and to call set_caps once
	for every time both pads get their caps set.
	(gst_base_transform_handle_buffer): Give the ref to the transform
	function. Allows in-place modification of the buffer.

	* gst/base/gstbasetransform.h (transform_caps): New class method.
	Given caps on one side, what can I do on the other.
	(set_caps): Take two caps, one for each side of the element.

	* gst/gstpad.h:
	* gst/gstpad.c (gst_pad_fixate_caps): Change prototype to modify
	caps in place. This is safe because we can check the mutability of
	the caps, and a good idea because fixate functions are just called
	as a matter of last resort. (Not actually implemented.)
	(gst_pad_set_caps): If the caps we're setting is actually the same
	as the existing pad caps, just update the pointer without calling
	setcaps. Assert that caps is either NULL or fixed, as per the
	docs.

	* gst/gstghostpad.c: Update for fixate changes.

2005-07-02  Andy Wingo  <wingo@pobox.com>

	* gst/gstcaps.c:
	* gst/gstcaps.h (gst_static_caps_get): Not const return, having
	two refcounts makes it immutable, which is enough. Doc more.

2005-07-02  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/gstpad.c: (gst_pad_emit_have_data_signal):
	  Put the mini_object into GValue as a mini_object,
	  not a gpointer, since that's how we declared
	  the signal.

2005-07-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* examples/pwg/Makefile.am:
	  Fix buildbot again.

2005-07-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* docs/pwg/building-testapp.xml:
	  Add extra check.
	* examples/pwg/Makefile.am:
	  Fix buildbot.

2005-07-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	* examples/Makefile.am:
	* examples/pwg/Makefile.am:
	* examples/pwg/extract.pl:
	  Enable building the PWG examples.
	* docs/pwg/advanced-interfaces.xml:
	  Add URI interface stub.
	* docs/pwg/advanced-types.xml:
	* docs/pwg/other-autoplugger.xml:
	* docs/pwg/appendix-porting.xml:
	* docs/pwg/pwg.xml:
	  Add porting guide (mostly stubs), remove autoplugging (see ADM).
	* docs/pwg/building-boiler.xml:
	* docs/pwg/building-chainfn.xml:
	* docs/pwg/building-pads.xml:
	* docs/pwg/building-props.xml:
	* docs/pwg/building-state.xml:
	* docs/pwg/building-testapp.xml:
	  Update the building-*.xml parts for 0.9 changes. All examples
	  code blocks compile in examples/pwg/*.

2005-06-30  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* docs/manual/advanced-autoplugging.xml:
	* docs/manual/appendix-checklist.xml:
	* docs/manual/appendix-integration.xml:
	* docs/manual/highlevel-components.xml:
	  Fix playbin/decodebin examples, update docs a bit, mention bus
	  instead of signals in various places, mention kmplayer and
	  kaffeine since they have a working GStreamer backend in the KDE
	  section.

2005-06-30  Wim Taymans  <wim@fluendo.com>

	* CHANGES-0.9:
	* docs/design/draft-ghostpads.txt:
	* docs/design/draft-push-pull.txt:
	* docs/design/draft-query.txt:
	* docs/design/part-TODO.txt:
	* docs/design/part-query.txt:
	Added CHANGES-0.9 doc, updated status of other docs.
	
	* gst/gstquery.h:
	Remove "hmm" macro

2005-06-30  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_preroll_queue_empty),
	(gst_base_sink_preroll_queue_flush), (gst_base_sink_handle_object),
	(gst_base_sink_change_state):
	* gst/base/gstbasesink.h:
	Some tweaks, only EOS and a buffer complete a preroll.

2005-06-30  Andy Wingo  <wingo@pobox.com>

	* gst/gstghostpad.c (gst_ghost_pad_do_activate_push): Proxy
	activate_push down to the internal pad as well.

2005-06-30  Torsten Schoenfeld  <kaffeetisch@gmx.de>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/gsttaginterface.c:
	  Some documentation fixes (#307394 and #307397).

2005-06-30  Antoine Tremblay  <hexa00@gmail.com>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/gstvalue.c: (gst_value_intersect_list):
	  Fix memleak (#309125).

2005-06-30  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* docs/manual/advanced-dataaccess.xml:
	  Fix fakesrc example to compile; doesn't work, bug somewhere...?
	* docs/manual/basics-pads.xml:
	  Add reference for filtered caps to above chapter.

2005-06-30  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c: (clear_queue), (remove_all_from_queue),
	(gst_bin_change_state):
	Probes are gone.
	Lame attempt at making the state change function a bit
	more readable.

2005-06-30  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-clocks.txt:
	* docs/design/part-element-sink.txt:
	* docs/design/part-events.txt:
	* docs/design/part-preroll.txt:
	* docs/design/part-states.txt:
	Some more tweeks and additions to the docs.

2005-06-30  Wim Taymans  <wim@fluendo.com>

	* gst/gstpad.c: (_gst_do_pass_data_accumulator),
	(default_have_data), (gst_pad_class_init), (gst_pad_init),
	(gst_pad_emit_have_data_signal), (gst_pad_chain), (gst_pad_push),
	(gst_pad_check_pull_range), (gst_pad_get_range),
	(gst_pad_pull_range), (gst_pad_push_event), (gst_pad_send_event):
	* gst/gstpad.h:
	* gst/gstutils.c: (gst_atomic_int_set), (gst_pad_add_data_probe),
	(gst_pad_add_event_probe), (gst_pad_add_buffer_probe),
	(gst_pad_remove_data_probe), (gst_pad_remove_event_probe),
	(gst_pad_remove_buffer_probe):
	Removed atomic operations, use existing LOCK.
	Move exception handling out of main code path.

2005-06-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/gstpad.c: (_gst_do_pass_data_accumulator),
	(silly_return_true_function), (gst_pad_class_init),
	(gst_pad_emit_have_data_signal), (gst_pad_chain), (gst_pad_push),
	(gst_pad_get_range), (gst_pad_pull_range), (gst_pad_push_event),
	(gst_pad_send_event):
	  Fix accumulator, add default value by using _emitv() instead
	  of _emit() for signal emission.

2005-06-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* docs/manual/advanced-dataaccess.xml:
	* examples/manual/Makefile.am:
	  Add probe example.
	* gst/gstpad.c: (_gst_do_pass_data_accumulator):
	  Make work (??).

2005-06-29  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/elements/gstfilesink.c: (gst_filesink_render):
	  Simplify code so that we don't have to handle short
	  writes and return GST_FLOW_ERROR if an error occured.

2005-06-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* docs/gst/gstreamer-docs.sgml:
	  Remove probes more.

2005-06-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* docs/gst/gstreamer-sections.txt:
	* docs/gst/tmpl/gstpad.sgml:
	* docs/gst/tmpl/gstprobe.sgml:
	* gst/Makefile.am:
	* gst/gstpad.c: (_gst_do_pass_data_accumulator),
	(gst_pad_class_init), (gst_pad_init), (gst_pad_chain),
	(gst_pad_push), (gst_pad_get_range), (gst_pad_pull_range),
	(gst_pad_push_event), (gst_pad_send_event):
	* gst/gstpad.h:
	* gst/gstutils.c: (gst_pad_add_data_probe),
	(gst_pad_add_event_probe), (gst_pad_add_buffer_probe),
	(gst_pad_remove_data_probe), (gst_pad_remove_event_probe),
	(gst_pad_remove_buffer_probe):
	* gst/gstutils.h:
	  Remove old probes, add new g-signal-based probes and some utility
	  functions.

2005-06-29  Edward Hervey  <edward@fluendo.com>

	* gst/gstelementfactory.c:
	* gst/gstutils.h:
	* gst/gstutils.c:
	Moved gst_element_factory_can_[sink|src]_caps() to gstutils and added
	the definition to the header file.

2005-06-29  Andy Wingo  <wingo@pobox.com>

	* docs/gst/Makefile.am (scan-build.stamp): Totally only check
	plugins from the source directory.

2005-06-29  Wim Taymans  <wim@fluendo.com>

	* docs/gst/tmpl/gstbuffer.sgml:
	* docs/gst/tmpl/gstclock.sgml:
	Some fixings for blantently wrong text.

2005-06-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/Makefile.am:
	* gst/gst.c: (add_path_func), (init_pre):
	* gst/gstregistry.c: (gst_registry_add_path):
	  add A GST_PLUGIN_PATH_ONLY env var; if it is set, it will
	  only scan the GST_PLUGIN_PATH locations, and not add
	  system locations

2005-06-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/gst/gstreamer-sections.txt:
	* docs/gst/tmpl/gstbasesrc.sgml:
	* gst/gstelement.c:
	* gst/gstelement.h:
	* gst/gstevent.c:
	* gst/gstutils.c:
	  doc fixes

2005-06-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* docs/manual/advanced-autoplugging.xml:
	  Fix autoplugging example.

2005-06-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* docs/manual/advanced-autoplugging.xml:
	* docs/manual/mime-world.fig:
	  Try to get autoplugging working, fix type detection. Fix text
	  in hello-world image.

2005-06-29  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
	(gst_base_sink_change_state):
	Small debug line.

	* gst/gstclock.h:
	map SIGNAL and BROADCAST to the right function.

	* gst/gstobject.h:
	Remove redundant braces.

	* gst/gstpad.c: (gst_pad_set_caps):
	Don't call setcaps function when reseting caps to NULL.

	* gst/gstsystemclock.c: (gst_system_clock_dispose),
	(gst_system_clock_async_thread), (gst_system_clock_id_wait_async),
	(gst_system_clock_id_unschedule):
	Use BROADCAST as this is what we do.

2005-06-29  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
	We are actually prerolling before commiting the state
	change. 

2005-06-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* docs/manual/advanced-clocks.xml:
	* docs/manual/advanced-interfaces.xml:
	* docs/manual/advanced-metadata.xml:
	* docs/manual/advanced-position.xml:
	* docs/manual/advanced-schedulers.xml:
	* docs/manual/advanced-threads.xml:
	* docs/manual/appendix-porting.xml:
	* docs/manual/basics-bins.xml:
	* docs/manual/basics-bus.xml:
	* docs/manual/basics-elements.xml:
	* docs/manual/basics-helloworld.xml:
	* docs/manual/basics-pads.xml:
	* docs/manual/highlevel-components.xml:
	* docs/manual/manual.xml:
	* docs/manual/thread.fig:
	  Update (until threads/scheduling) Application Development Manual;
	  remove GstThread, add GstBus, add simple porting checklist, add
	  documentation for tag writing, clocks, make all examples until this
	  part compile and run.
	* examples/manual/Makefile.am:
	  Update from changes to Application Development Manual; add bus
	  example, remove thread example.

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

	* gst/gstbus.c: (gst_bus_post), (gst_bus_have_pending),
	(gst_bus_set_flushing), (gst_bus_pop), (gst_bus_peek),
	(gst_bus_source_dispatch):
	Add debugging messages.
	Make internal methods static.
	Handle the case where the bus is flushed in the handler.
	
	* gst/gstelement.c: (gst_element_get_bus):
	Fix refcount in _get_bus();

	* gst/gstpipeline.c: (gst_pipeline_change_state),
	(gst_pipeline_get_clock_func):
	Clock refcounting fixes.
	Handle the case where preroll timed out more gracefully.
	
	* gst/gstsystemclock.c: (gst_system_clock_dispose):
	Clean up the internal thread in dispose. This is needed
	for subclasses that actually get disposed.
	
	* gst/schedulers/threadscheduler.c:
	(gst_thread_scheduler_class_init), (gst_thread_scheduler_func),
	(gst_thread_scheduler_dispose):
	Free thread pool in dispose.

2005-06-28  Andy Wingo  <wingo@pobox.com>

	* tests/network-clock-utils.scm (debug, print-event): New utils.

	* tests/network-clock.scm (*debug*, *with-graph*): New parameters.
	(*packet-loss*): Unified loss probability.
	(network-time): Report out-of-band events.

	* tests/plot-data: Add support for out-of-band events. Hack it
	into this script instead of passing it down the pipe; should fix
	this later.

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

	* docs/gst/gstreamer.types:
	* docs/gst/tmpl/gstbasesrc.sgml:
	* docs/gst/tmpl/gstpad.sgml:
	Docs fixes.

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

	* gst/gstghostpad.c: (gst_proxy_pad_do_bufferalloc),
	(gst_proxy_pad_do_checkgetrange), (gst_proxy_pad_do_acceptcaps),
	(gst_proxy_pad_do_fixatecaps):
	Correctly proxy the check_pull_range function.

2005-06-28  Andy Wingo  <wingo@pobox.com>

	* tests/network-clock.scm: Removed need for slib.
	
2005-06-28  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_basesink_set_pad_functions),
	(gst_basesink_preroll_queue_flush):
	* gst/base/gstbasesrc.c: (gst_basesrc_set_dataflow_funcs):
	* gst/elements/gsttee.c: (gst_tee_update_pad_functions):
	* gst/gstghostpad.c: (gst_proxy_pad_do_bufferalloc),
	(gst_proxy_pad_do_acceptcaps), (gst_proxy_pad_do_fixatecaps),
	(gst_proxy_pad_set_property):
	* gst/gstpad.c:
	* gst/gstpad.h:
	* gst/gstqueue.c: (gst_queue_init):
	The deprecated pad loop function is removed now.

2005-06-28  Andy Wingo  <wingo@pobox.com>

	* tests/network-clock.scm (*timeout*, *send-loss*, *recv-loss*):
	New parameters, simulate network packet loss.

	* tests/network-clock-utils.scm: Initialize the RNG.

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

	* gst/base/gstbasesink.c: (gst_basesink_preroll_queue_flush),
	(gst_basesink_event), (gst_basesink_deactivate):
	Flushing the preroll queue always needs to unlock the waiters.

2005-06-28  Edward Hervey  <edward@fluendo.com>

	* gst/gstpipeline.c: (gst_pipeline_send_event): 
	Wheen a seek was successful on a pipeline, set the stream_time to the
	seek offset in order to have a synchronized stream_time.

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

	* gst/gstghostpad.c: (gst_proxy_pad_do_bufferalloc),
	(gst_proxy_pad_do_getrange), (gst_proxy_pad_do_checkgetrange),
	(gst_proxy_pad_do_getcaps), (gst_proxy_pad_do_acceptcaps),
	(gst_proxy_pad_do_fixatecaps):
	Call wrapper function instead of just calling the function
	pointers. This takes care of any locking and whatmore.

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

	* gst/gstpad.c: (gst_pad_alloc_buffer), (gst_pad_push),
	(gst_pad_pull_range):
	* gst/gstpad.h:
	CONNECTED -> LINKED.

2005-06-28  Andy Wingo  <wingo@pobox.com>

	* *.c: Don't cast to GST_OBJECT when reffing or unreffing. Large
	source-munging commit!!!

	* gst/gstobject.c (gst_object_unref, gst_object_ref) 
	(gst_object_sink): Take gpointer arguments, not GstObject --
	avoids casts. Like GLib.

	* gst/gstghostpad.c (gst_proxy_pad_do_activate): Don't proxy
	activate.

2005-06-27  Andy Wingo  <wingo@pobox.com>

	* gst/base/gsttypefindhelper.c (gst_type_find_helper): Unref any
	remaining buffer.

	* gst/gsttrace.c (gst_alloc_trace_list_sorted): New helper,
	returns a sorted copy of the trace list.
	(gst_alloc_trace_print_live): New API, only prints traces with
	live objects. Sort the list.
	(gst_alloc_trace_print_all): Sort the list.
	(gst_alloc_trace_print): Align columns.

	* gst/elements/gstttypefindelement.c:
	* gst/elements/gsttee.c:
	* gst/base/gstbasesrc.c:
	* gst/base/gstbasesink.c:
	* gst/base/gstbasetransform.c:
	* gst/gstqueue.c: Adapt for pad activation changes.

	* gst/gstpipeline.c (gst_pipeline_init): Unref after parenting
	sched.
	(gst_pipeline_dispose): Drop ref on sched.

	* gst/gstpad.c (gst_pad_init): Set the default activate func.
	(gst_pad_activate_default): Push mode by default.
	(pre_activate_switch, post_activate_switch): New stubs, things to
	do before and after switching activation modes on pads.
	(gst_pad_set_active): Take a boolean and not a mode, dispatch to
	the pad's activate function to choose which mode to activate.
	Shortcut on deactivation and call the right function directly.
	(gst_pad_activate_pull): New API, (de)activates a pad in pull
	mode.
	(gst_pad_activate_push): New API, same for push mode.
	(gst_pad_set_activate_function) 
	(gst_pad_set_activatepull_function) 
	(gst_pad_set_activatepush_function): Setters for new API.

	* gst/gstminiobject.c (gst_mini_object_new, gst_mini_object_free):
	Trace all miniobjects.
	(gst_mini_object_make_writable): Unref the arg if we copy, like
	gst_caps_make_writable.

	* gst/gstmessage.c (_gst_message_initialize): No trace init.

	* gst/gstghostpad.c (gst_proxy_pad_do_activate) 
	(gst_proxy_pad_do_activatepull, gst_proxy_pad_do_activatepush):
	Adapt for new pad API.

	* gst/gstevent.c (_gst_event_initialize): Don't initialize trace.

	* gst/gstelement.h:
	* gst/gstelement.c (gst_element_iterate_src_pads) 
	(gst_element_iterate_sink_pads): New API functions.
	
	* gst/gstelement.c (iterator_fold_with_resync): New utility,
	should fold into gstiterator.c in some form.
	(gst_element_pads_activate): Simplified via use of fold and
	delegation of decisions to gstpad->activate.

	* gst/gstbus.c (gst_bus_source_finalize): Set the bus to NULL,
	help in debugging.

	* gst/gstbuffer.c (_gst_buffer_initialize): Ref the buffer type
	class once in init, like gstmessage. Didn't run into this issue
	but it seems correct. Don't initialize a trace, gstminiobject does
	that.

	* check/pipelines/simple_launch_lines.c (test_stop_from_app): New
	test, runs fakesrc ! fakesink, stopping on ::handoff via a message
	to the bus.
	(assert_live_count): New util function, uses alloc traces to check
	cleanup.

	* check/gst/gstghostpad.c (test_ghost_pads): More refcount checks.
	To be modified when unlink drops the internal pad.

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

	* gst/gstbin.c: (gst_bin_get_state), (gst_bin_iterate_state_order),
	(gst_bin_change_state):
	Cleanup the get_state() function a little, make sure it
	iterates the same set of elements.
	Added stub iterate_state_order().

2005-06-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/gst/gstreamer-docs.sgml:
	* docs/gst/gstreamer-sections.txt:
	* docs/gst/gstreamer.types:
	* docs/gst/tmpl/gstbasesink.sgml:
	* docs/gst/tmpl/gstbasesrc.sgml:
	* docs/gst/tmpl/gstbasetransform.sgml:
	* docs/gst/tmpl/gstelement.sgml:
	* docs/gst/tmpl/gstiterator.sgml:
	* gst/base/gstbasesrc.c:
	* gst/base/gstbasesrc.h:
	* gst/base/gstbasetransform.h:
	* gst/gstelement.c:
	* gst/gstiterator.h:
	  adding basetransform and iterator docs

2005-06-27  Andy Wingo  <wingo@pobox.com>

	* docs/design/part-activation.txt: Notes on how activation should
	work -- not quite implemented yet.

2005-06-25  Wim Taymans  <wim@fluendo.com>

	* gst/gstghostpad.c: (gst_proxy_pad_do_chain):
	At least get the chain function correct, needs more
	fixing.

2005-06-25  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_basesink_preroll_queue_empty),
	(gst_basesink_handle_object), (gst_basesink_event),
	(gst_basesink_do_sync), (gst_basesink_handle_event),
	(gst_basesink_change_state):
	* gst/gsttask.h:
	Right, two problems here: ghostpads don't take locks and
	glib _rec_mutex_lock_full() with depth==0 still locks.
	Catch illegal locking and g_warn them.

2005-06-25  Wim Taymans  <wim@fluendo.com>

	* check/states/sinks.c: (START_TEST), (gst_object_suite):
	Have to check for completion now...

2005-06-25  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_basesink_preroll_queue_empty),
	(gst_basesink_handle_object), (gst_basesink_event),
	(gst_basesink_do_sync), (gst_basesink_handle_event),
	(gst_basesink_change_state):
	* gst/gstpad.h:
	Unlock STREAM_LOCK whatever the recursion was.

2005-06-25  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_basesink_set_property),
	(gst_basesink_preroll_queue_empty),
	(gst_basesink_preroll_queue_flush), (gst_basesink_handle_object),
	(gst_basesink_event), (gst_basesink_do_sync),
	(gst_basesink_handle_event), (gst_basesink_handle_buffer),
	(gst_basesink_chain), (gst_basesink_loop), (gst_basesink_activate),
	(gst_basesink_change_state):
	Reworked the base sink, handle event and buffer serialisation
	correctly and removed possible deadlock.
	Handle EOS correctly.

2005-06-25  Wim Taymans  <wim@fluendo.com>

	* gst/gstpipeline.c: (is_eos), (pipeline_bus_handler),
	(gst_pipeline_change_state):
	* tools/gst-launch.c: (check_intr), (event_loop), (main):
	Allow elements to post EOS in the state change function.
	Fix up -launch, make it exit the poll loop when the
	pipeline actually changed state.
	Fix up warning parsing in -launch.

2005-06-25  Wim Taymans  <wim@fluendo.com>

	* gst/elements/gsttee.c: (gst_tee_chain), (gst_tee_loop),
	(gst_tee_sink_activate):
	Core takes STREAM_LOCK for us now.

2005-06-25  Wim Taymans  <wim@fluendo.com>

	* gst/gstelement.c: (gst_element_get_state_func),
	(gst_element_set_state):
	* gst/gstelement.h:
	* gst/gstmessage.c: (gst_message_parse_error),
	(gst_message_parse_warning):
	Keep track of current target state while performing a state
	change so that subclasses can do something interesting.
	Fix parsing of warning/error messages when GError is NULL.

2005-06-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/gst/Makefile.am:
	* docs/gst/gstreamer-docs.sgml:
	* docs/gst/gstreamer-sections.txt:
	* docs/gst/gstreamer.types:
	* docs/gst/tmpl/gstbasesink.sgml:
	* docs/gst/tmpl/gstbasesrc.sgml:
	* docs/gst/tmpl/gstbin.sgml:
	* docs/gst/tmpl/gstcompat.sgml:
	* docs/gst/tmpl/gstfakesink.sgml:
	* docs/gst/tmpl/gstfakesrc.sgml:
	* docs/gst/tmpl/gstfilesink.sgml:
	* docs/gst/tmpl/gstfilesrc.sgml:
	* docs/gst/tmpl/gstindex.sgml:
	* docs/manual/appendix-quotes.xml:
	* gst/base/gstbasesrc.h:
	* gst/elements/gstfakesrc.h:
	* gst/gstmessage.h:
	  start pulling in base classes and elements in our docs

2005-06-24  Stefan Kost  <ensonic@users.sf.net>

	* docs/gst/Makefile.am:
	* docs/libs/Makefile.am:
	  fixed make distcheck with gtk-doc 1.3

2005-06-23  Wim Taymans  <wim@fluendo.com>

	* gst/gstelement.c: (gst_element_get_state_func),
	(gst_element_set_state), (gst_element_change_state):
	When the state did not change, also report NO_PREROLL
	when it matters.

2005-06-23  Wim Taymans  <wim@fluendo.com>

	* gst/gstpad.c: (gst_pad_event_default):
	* gst/gstqueue.c: (gst_queue_loop):
	No unsafe task pausing please.

2005-06-23  Wim Taymans  <wim@fluendo.com>

	* gst/schedulers/threadscheduler.c:
	(gst_thread_scheduler_task_start),
	(gst_thread_scheduler_task_pause), (gst_thread_scheduler_func):
	Ref the task before pushing it on the threadpool. This
	makes sure that we have a ref when the threadfunction is
	actually called.

2005-06-23  Andy Wingo  <wingo@pobox.com>

	* gst/base/gstbasesrc.c (gst_basesrc_get_range): Check if the
	offset is greater than the file's size.

	* gst/gstobject.h (GST_CLASS_LOCK, GST_CLASS_TRYLOCK) 
	(GST_CLASS_UNLOCK, GST_CLASS_GET_LOCK, GstObjectClass)
	* gst/gstobject.c (gst_object_class_init): Make the class lock
	recursive. Wim won't let me drop deep_notify. Decodebin works
	again, whoopdy doo.

	* gst/gstghostpad.c (on_int_notify): Catches notify::caps on the
	internal pad, and hacks accordingly. Doesn't do it on the target
	pad because we change its caps. Probably catches all cases of
	interest tho.
	(gst_ghost_pad_set_property): Connect to notify::caps as
	appropritate.

	* tests/network-clock.scm (plot-simulation): Pipe data to the
	elite python skript.

	* tests/network-clock-utils.scm (define-parameter): New macro,
	defines a parameter that can be set via the command line.
	(set-parameter!, parse-parameter-arguments): Command line args
	parser.

	* tests/plot-data: Simple matplotlib-based plotter, takes input on
	stdin.

2005-06-23  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/elements/gsttypefindelement.c:
	(gst_type_find_element_handle_event):
	  Don't restart typefinding on a discont.
	* gst/gstelement.c: (gst_element_set_state):
	  Debug spelling fix.
	* gst/gstpad.c: (gst_pad_set_active), (gst_pad_send_event):
	  Allow changing mode of an active pad.
	  Debug output fixes.
	* gst/registries/gstlibxmlregistry.c: (load_feature):
	  Don't cast a static pad template to a normal pad template.

2005-06-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/gst/gstvalue.c: (START_TEST), (gst_value_suite):
	* gst/gstvalue.c: (gst_value_deserialize_int_helper):
	  remove gst_strtoll completely, since it didn't actually do
	  anything more than what g_ascii_strtoull already does.
	  check for range errors when deserializing
	  do a cast for the unsigned cases; but further fixing needs
	  a decision on what the interpretation of "(int)" and
	  deserialization should be for values that fall outside the
	  type's boundaries (ie, refuse, or interpret as casting)

2005-06-23  Wim Taymans  <wim@fluendo.com>

	* check/Makefile.am:
	* check/states/sinks.c: (START_TEST), (gst_object_suite), (main):
	* docs/design/part-live-source.txt:
	* docs/design/part-states.txt:
	* gst/base/gstbasesrc.c: (gst_basesrc_init),
	(gst_basesrc_set_live), (gst_basesrc_is_live),
	(gst_basesrc_get_range), (gst_basesrc_activate),
	(gst_basesrc_change_state):
	* gst/base/gstbasesrc.h:
	* gst/elements/gstfakesrc.c: (gst_fakesrc_class_init),
	(gst_fakesrc_set_property), (gst_fakesrc_get_property):
	* gst/gstbin.c: (gst_bin_get_state), (gst_bin_change_state):
	* gst/gstelement.c: (gst_element_get_state_func),
	(gst_element_set_state):
	* gst/gstelement.h:
	* gst/gsttypes.h:
	* tools/gst-launch.c: (event_loop), (main):
	Added support for live sources and other elements that
	cannot do preroll.
	Updated design docs, added live-source design doc.
	Implemented live source functionality in basesrc
	Fix error condition in _bin_get_state()
	Implement live source handling in -launch.
	Added check for live sources.
	Fixed case in GstBin where elements were changed state
	multiple times.


2005-06-23  Andy Wingo  <wingo@pobox.com>

	* check/gst/gstpad.c (test_get_allowed_caps, test_refcount): Fix
	borken refcounting.

	* gst/gstpad.c (gst_pad_set_caps): Remove needless refs,
	gst_caps_replace takes care of this for us.

	* gst/gstghostpad.c (gst_proxy_pad_do_setcaps): Call the full
	gst_pad_set_caps on the target, not just its setcaps() function.

	* tests/network-clock.scm: 
	* tests/network-clock-utils.scm: A network clock simulator.
	Something of an algorithmic testbed before doing something in C.

2005-06-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/Makefile.am:
	* check/gst/capslist.h:
	  copy over from 0.8, and add two with bitmasks specified with
	  (int) 0xFF...
	* check/gst/gstcaps.c: (START_TEST), (gst_caps_suite):
	  add test to parse everything from capslist.h
	* check/gst/gststructure.c: (START_TEST), (gst_value_suite),
	(main):
	  add test for structure deserialization
	* check/gst/gstvalue.c: (START_TEST), (gst_value_suite):
	  add tests for deserialization of strings to int types
	* gst/gststructure.c: (gst_structure_nth_field_name):
	* gst/gststructure.h:
	  add a way to get the name of a field referenced by index
	* gst/gstvalue.c: (gst_value_deserialize_int_helper):
	  instead of checking if the resulting long long lies between
	  min and max, we check if the long long would fit into
	  a number of bytes for the final type.
	  This fixes cases where a string represents 2^32 - 1, which
	  when cast to int would be the (valid) -1, but is bigger than
	  G_MAXINT

2005-06-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/parse/grammar.y:
	  add a log line for type deserialization

2005-06-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/gst/gstvalue.c: (START_TEST):
	* gst/gstvalue.c: (gst_value_deserialize):
	  return long long, not int, so gint64 deserialization actually
	  works.  Is there any flag that makes the compiler check this ?
	  Fixes #308559

2005-06-22  Wim Taymans  <wim@fluendo.com>

	* gst/gstbuffer.h:
	Added convenience macros for setting buffers in GValue.

2005-06-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/gst/.cvsignore:
	* check/gst/gstvalue.c: (START_TEST), (gst_value_suite):
	  add a test deserializing int64, and comment part out because
	  it fails, yay !

2005-06-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/Makefile.am:
	* check/gst/gstvalue.c: (START_TEST), (gst_value_suite), (main):
	* testsuite/Makefile.am:
	* testsuite/caps/Makefile.am:
	* testsuite/caps/value_serialize.c:
	* testsuite/test_gst_init.c:
	  move a value_serialize test over

2005-06-20  Wim Taymans  <wim@fluendo.com>

	* gst/gstpad.c:
	Small doc updates.
	
	* gst/gstvalue.c: (gst_value_compare_buffer),
	(gst_value_serialize_buffer), (gst_value_deserialize_buffer),
	(gst_value_compare_flags), (gst_value_serialize_flags),
	(gst_value_deserialize_flags), (_gst_value_initialize):
	Fix serialisation of buffers, they are not boxed types anymore

2005-06-20  Wim Taymans  <wim@fluendo.com>

	* check/gst/gstcaps.c: (START_TEST), (gst_caps_suite):
	Testcase to show error in buffer-on-caps serialisation.

2005-06-20  Andy Wingo  <wingo@pobox.com>

	* docs/random/wingo/porting-plugins-to-0.9: A pitiful document I
	will be adding to later.

	* gst/gstsystemclock.c (gst_system_clock_init): Unlock the clock
	if its socks fill with rocks.
	(gst_system_clock_obtain): Set the name on object construction.
	Avoid double-checked locking.

2005-06-20  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/gsturi.c: (gst_element_make_from_uri):
	  Fix potential endless loop.

2005-06-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/Makefile.am:
	  add gsttag
	* check/gst/gsttag.c: (check_tags), (START_TEST), (gst_tag_suite),
	(main):
	  move over from testsuite dir and clean up
	* configure.ac:
	* gst/gsttag.c:
	* testsuite/Makefile.am:
	* testsuite/tags/.cvsignore:
	* testsuite/tags/Makefile.am:
	* testsuite/tags/merge.c:
	  remove testsuite/tags

2005-06-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/gst/gstreamer-sections.txt:
	* docs/gst/tmpl/gstenumtypes.sgml:
	* win32/gstenumtypes.c:
	  clean up documentation build a little

2005-06-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/gstcheck.h:
	  add macros for checking refcounts on objects and caps
	* check/gst/gstpad.c: (START_TEST), (gst_pad_suite):
	  add some more unit tests
	* gst/gstpad.c: (gst_pad_link_check_compatible_unlocked),
	(gst_pad_link_prepare), (gst_pad_link), (gst_pad_get_allowed_caps):
	  fix leaked refcounts (I hope :)) so unittest works
	* gst/gstpad.h:
	  whitespace removal

2005-06-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: back to HEAD

=== release 0.9.1 ===

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

	* NEWS:
	* RELEASE:
	  updated

2005-06-17  Andy Wingo  <wingo@pobox.com>

	* gst/base/gstbasesink.c (gst_basesink_chain): Remove bogus
	assert; it's always possible that the pad gets deactivated in
	between the checks in gstpad.c and the implementation. Rely on
	finish_preroll() to return a FLUSHING or similar instead of on the
	assert.
	
	* gst/base/gstbasesink.c (gst_basesink_event): Only wait for the
	clock and post an EOS message if we come out of finish_preroll in
	the playing state.

2005-06-16  David Schleef  <ds@schleef.org>

	* gst/elements/gstcapsfilter.c: (gst_capsfilter_class_init),
	(gst_capsfilter_set_property): Allow NULL as possible value
	for filter_caps property, indicating GST_CAPS_ANY.

2005-06-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/elements/gstfakesrc.c: (gst_fakesrc_create):
	  fix debug output
	* gst/schedulers/Makefile.am:
	  use libgst prefix
	* gstreamer.spec.in:
	  fix spec for it

2005-06-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gstreamer.spec.in:
	  clean up

2005-06-08  Andy Wingo  <wingo@pobox.com>

	* gst/gstutils.c: RPAD fixes all around.
	(gst_element_link_pads): Refcounting fixes.

	* tools/gst-inspect.c:
	* tools/gst-xmlinspect.c:
	* parse/grammar.y:
	* gst/base/gsttypefindhelper.c:
	* gst/base/gstbasesink.c:
	* gst/gstqueue.c: RPAD fixes.

	* gst/gstghostpad.h:
	* gst/gstghostpad.c: New ghost pad implementation as full proxy
	pads. The tricky thing is they provide both source and sink
	interfaces, since they proxy the internal pad for the external
	pad, and vice versa. Implement with lower-level ProxyPad objects,
	with the interior proxy pad as a child of the exterior ghost pad.
	Should write a doc on this.
	
	* gst/gstpad.h: s/RPAD/PAD/, s/RealPad/Pad/.
	(gst_pad_set_name, gst_pad_set_parent): Macros removed, use
	gst_object API.
	
	* gst/gstpad.c: Big changes. No more stub base GstPad, now all
	pads are real pads. No ghost pads in this file. Not documenting
	the myriad s/RPAD/PAD/ and REALIZE fixes.
	(gst_pad_class_init): Add properties for "direction" and
	"template". Both are construct-only, so they can't change during
	the life of the pad. Fixes properly deriving from GstPad.
	(gst_pad_custom_new, gst_pad_custom_new_from_template): Gone. For
	derived objects, just set properties when creating the objects via
	g_object_new.
	(gst_pad_get_parent): Implement as a function, return NULL if the
	parent is not an element.
	(gst_pad_get_real_parent, gst_pad_add_ghost_pad)
	(gst_pad_remove_ghost_pad, gst_pad_realize): Removed.
	
	* gst/gstobject.c (gst_object_class_init): Make name a construct
	property. Don't set it in the object init.

	* gst/gstelement.c (gst_element_add_pad): Don't allow adding pads
	with UNKNOWN direction.
	(gst_element_add_ghost_pad): Remove non-orthogonal API. Replace
	with gst_element_add_pad (e, gst_ghost_pad_new (name, pad)).
	(gst_element_remove_pad): Remove ghost-pad special cases.
	(gst_element_pads_activate): Remove rpad cruft.

	* gst/gstbin.c (gst_bin_change_state): Use gst_pad_get_parent to
	catch the pad's-parent-not-an-element case.

	* gst/gst.h: Include gstghostpad.h.

	* gst/gst.c (init_post): No more real, ghost pads.

	* gst/Makefile.am: Add gstghostpad.[ch].

	* check/Makefile.am:
	* check/gst/gstbin.c:
	* check/gst/gstghostpad.c (test_ghost_pads): Check that linking
	into a bin creates ghost pads, and that the refcounts are right.
	Partly moved from gstbin.c.

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

	* check/gst-libs/.cvsignore:
	* check/gst/.cvsignore:
	* check/pipelines/.cvsignore:
	  ignore more
	* check/pipelines/cleanup.c: (setup_pipeline), (run_pipeline),
	(START_TEST), (cleanup_suite), (main):
	  add some tests related to cleanup after running pipelines

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

	* check/gst/gstbuffer.c: (START_TEST), (gst_test_suite), (main):
	  add a testsuite for GstBuffer

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

	* gst/gstminiobject.h:
	  add defines for accessing the refcount

2005-06-03  Stefan Kost  <ensonic@users.sf.net>

	* Makefile.am: added support for html unit test coverage reports

2005-06-03  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/elements/gstcapsfilter.c: (gst_capsfilter_set_property):
	  Free existing caps if the capsfilter changes. Add a FIXME about
	  setting those caps on the pads.

	* gst/gstutils.c: (gst_element_get_compatible_pad), (ghost_up):
	  Before adding a ghost pad to a parent bin, check that there isn't
	  already one for the element on the bin. Prevents infinite recursion
	  when using decodebin in parse pipelines. Andy says he'll rewrite the
	  way this works anyway, so ignore the hack.

2005-06-02  Andy Wingo  <wingo@pobox.com>

	* gst/elements/gsttypefindelement.c (do_pull_typefind): Query the
	file size, pass it on to the type find helper.

	* gst/base/gstbasesrc.c (gst_basesrc_do_seek): Set the
	segment_start and segment_end properly according to the seek
	method. Segment_end is still a bit flaky because offset can be
	negative for CUR and END cases, but it takes -1 as an "unset"
	value.

2005-06-02  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_basesink_pad_buffer_alloc),
	(gst_base_sink_buffer_alloc), (gst_basesink_preroll_queue_push),
	(gst_basesink_activate):
	* gst/base/gstbasesink.h:
	* gst/gstpad.c: (gst_pad_set_active), (gst_pad_link_prepare),
	(gst_pad_link), (gst_pad_accept_caps), (gst_pad_alloc_buffer),
	(gst_pad_query), (gst_pad_start_task):
	* gst/gstpad.h:
	* gst/gstqueue.c: (gst_queue_bufferalloc),
	(gst_queue_handle_sink_event), (gst_queue_chain):
	Bufferalloc: return GstFlowReturn to more accuratly report
	why allocation failed.

2005-06-02  Wim Taymans  <wim@fluendo.com>

	* gst/gstpipeline.c: (gst_pipeline_send_event):
	Take snapshot of state without blocking.

2005-06-02  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-TODO.txt:
	* docs/design/part-caps.txt:
	* docs/design/part-clocks.txt:
	* docs/design/part-negotiation.txt:
	* docs/design/part-preroll.txt:
	Small doc updates 

2005-05-30  Wim Taymans  <wim@fluendo.com>

	* gst/elements/gstidentity.c: (gst_identity_event),
	(gst_identity_transform), (gst_identity_get_property):
	Protect last_message property as it is accessed from
	multiple threads.

2005-05-30  Wim Taymans  <wim@fluendo.com>

	* gst/gstelement.c: (gst_element_init),
	(gst_element_pads_activate), (gst_element_change_state):
	Slicker pad activation code.

2005-05-30  Wim Taymans  <wim@fluendo.com>

	* gst/Makefile.am:
	* gst/gstelement.h:
	* gst/gstelementfactory.h:
	* gst/gsttypes.h:
	Move elementfactory methods to separate .h file.

2005-05-30  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-overview.txt:
	* gst/gstsystemclock.h:
	Small typo fixes, doc updates.

2005-05-30  Wim Taymans  <wim@fluendo.com>

	* gst/gst.c: (gst_init_get_popt_table), (init_post),
	(init_popt_callback):
	Remove cpu-opt flag.

2005-05-30  Wim Taymans  <wim@fluendo.com>

	* gst/gstbuffer.c: (gst_subbuffer_finalize),
	(gst_buffer_create_sub), (gst_buffer_is_span_fast):
	* gst/gstbuffer.h:
	Avoid typechecking in places where not needed.
	Added accessor for malloc_data.

2005-05-30  Wim Taymans  <wim@fluendo.com>

	* gst/gstpad.c: (gst_real_pad_init), (gst_pad_set_active),
	(gst_pad_link_prepare), (gst_pad_link), (gst_pad_accept_caps),
	(gst_pad_configure_sink), (gst_pad_configure_src),
	(gst_pad_alloc_buffer), (gst_pad_query), (gst_pad_send_event),
	(gst_pad_start_task):
	Propagate errors from _set_caps() in configure_src/sink
	functions instead of returning TRUE.
	FLUSH events can travel up and downstream


2005-05-30  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_basesink_preroll_queue_push),
	(gst_basesink_activate):
	Handle EOS in preroll.

2005-05-30  Wim Taymans  <wim@fluendo.com>

	* gst/gstqueue.c: (gst_queue_handle_sink_event), (gst_queue_chain),
	(gst_queue_loop), (gst_queue_handle_src_event):
	Remove old pieces of code
	Flushing the queue in an upstream event is a very bad idea.

2005-05-26  Andy Wingo  <wingo@pobox.com>

	* gst/gstminiobject.c (gst_value_mini_object_collect): Use
	gst_value_set_mini_object so as to add a ref on the object (which
	will be removed when the value is unset).

	* gst/elements/gstfakesink.c (gst_fakesink_class_init): Fix signal
	arg type in ::handoff.

	* gst/gstelement.c (gst_element_change_state): Also deactivate
	pads in READY->NULL, just in case the element didn't make it to
	PAUSED. Wingo tested, Wim approved.

2005-05-26  Wim Taymans  <wim@fluendo.com>

	* gst/gstpad.c: (gst_pad_set_active), (gst_pad_link_prepare),
	(gst_pad_link), (gst_pad_accept_caps), (gst_pad_alloc_buffer),
	(gst_pad_query), (gst_pad_send_event), (gst_pad_start_task):
	A flushing pad cannot be used to alloc_buffer from.

2005-05-26  Wim Taymans  <wim@fluendo.com>

	* gst/gstbus.c: (gst_bus_init), (gst_bus_dispose), (gst_bus_post),
	(gst_bus_pop), (gst_bus_source_prepare), (gst_bus_source_check),
	(gst_bus_source_dispatch), (gst_bus_source_finalize),
	(gst_bus_create_watch), (gst_bus_add_watch_full):
	* gst/gstbus.h:
	Implement a real GSource and use g_main_context_wakeup() to
	signal new messages instead of the socketpair.

2005-05-25  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c: (bin_element_is_sink), (has_ancestor),
	(bin_element_is_semi_sink), (append_child), (gst_bin_change_state):
	* gst/gstpad.c: (gst_pad_set_active), (gst_pad_link_prepare),
	(gst_pad_link), (gst_pad_accept_caps), (gst_pad_query),
	(gst_pad_send_event), (gst_pad_start_task):
	* gst/gstqueue.c: (gst_queue_init), (gst_queue_locked_flush),
	(gst_queue_handle_sink_event), (gst_queue_chain), (gst_queue_loop),
	(gst_queue_sink_activate), (gst_queue_src_activate),
	(gst_queue_change_state):
	* gst/gstqueue.h:
	Fix state changes for non sinks. We now change sinks, then elements
	with unconnected srcpads, then the rest.
	More efficient queue unlocking in flush and state changes.
	Set the pad activate mode even if it does not have an activate
	function.

2005-05-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/base/gstbasesrc.c: (gst_basesrc_activate):
	  Don't go in pull mode for non-seekable sources.
	* gst/elements/gsttypefindelement.h:
	* gst/elements/gsttypefindelement.c: (gst_type_find_element_init),
	(gst_type_find_element_dispose), (gst_type_find_handle_src_query),
	(free_entry), (stop_typefinding),
	(gst_type_find_element_handle_event), (find_peek),
	(gst_type_find_element_chain), (do_pull_typefind),
	(gst_type_find_element_change_state):
	  Allow typefinding (w/o seeking) in push-mode, simplified version
	  of what was in 0.8.
	* gst/gstutils.c: (gst_buffer_join):
	* gst/gstutils.h:
	  gst_buffer_join() from 0.8.

2005-05-25  Wim Taymans  <wim@fluendo.com>

	* gst/gstpad.c: (gst_pad_set_active), (gst_pad_link_prepare),
	(gst_pad_link), (gst_pad_accept_caps), (gst_pad_query),
	(gst_pad_send_event), (gst_pad_start_task):
	Disable attempt at mode switching until it is figured out.

2005-05-25  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstadapter.c: (gst_adapter_peek), (gst_adapter_flush):
	* gst/base/gstbasesink.c: (gst_basesink_preroll_queue_push),
	(gst_basesink_finish_preroll), (gst_basesink_chain),
	(gst_basesink_loop), (gst_basesink_activate),
	(gst_basesink_change_state):
	* gst/base/gstbasesrc.c: (gst_basesrc_do_seek),
	(gst_basesrc_get_range), (gst_basesrc_loop),
	(gst_basesrc_activate):
	* gst/elements/gsttee.c: (gst_tee_sink_activate):
	* gst/gstpad.c: (gst_pad_dispose), (gst_real_pad_class_init),
	(gst_real_pad_init), (gst_real_pad_set_property),
	(gst_real_pad_get_property), (gst_pad_set_active),
	(gst_pad_is_active), (gst_pad_get_query_types), (gst_pad_unlink),
	(gst_pad_link_prepare), (gst_pad_link), (gst_pad_get_real_parent),
	(gst_real_pad_get_caps_unlocked), (gst_pad_peer_get_caps),
	(gst_pad_accept_caps), (gst_pad_get_peer), (gst_pad_realize),
	(gst_pad_event_default_dispatch), (gst_pad_event_default),
	(gst_pad_dispatcher), (gst_pad_query), (gst_real_pad_dispose),
	(gst_pad_save_thyself), (handle_pad_block), (gst_pad_chain),
	(gst_pad_push), (gst_pad_get_range), (gst_pad_pull_range),
	(gst_pad_send_event), (gst_pad_start_task), (gst_pad_pause_task),
	(gst_pad_stop_task):
	* gst/gstpad.h:
	* gst/gstqueue.c: (gst_queue_handle_sink_event), (gst_queue_chain),
	(gst_queue_loop), (gst_queue_src_activate):
	* gst/gsttask.c: (gst_task_init), (gst_task_set_lock),
	(gst_task_get_state):
	* gst/gsttask.h:
	* gst/schedulers/threadscheduler.c:
	(gst_thread_scheduler_task_start), (gst_thread_scheduler_func):
	Implement gst_pad_pause/start/stop_task(), take STREAM lock
	in task function.
	Remove ACTIVE pad flag, use FLUSHING everywhere
	Added _pad_chain(), _pad_get_range() to call chain/getrange 
	functions.
	Add locks around IS_FLUSHING when reading.
	Take STREAM lock in chain(), get_range() functions so plugins
	don't need to take it anymore.
	


2005-05-25  Wim Taymans  <wim@fluendo.com>

	* tools/gst-launch.c: (event_loop):
	Unref message after using its contents instead of
	before.

2005-05-24  Wim Taymans  <wim@fluendo.com>

	* docs/design/draft-ghostpads.txt:
	* docs/design/draft-push-pull.txt:
	* docs/design/draft-query.txt:
	* docs/design/part-overview.txt:
	Docs updates, added general overview doc.

2005-05-21  David Schleef  <ds@schleef.org>

	* docs/gst/tmpl/old/GstBin.sgml:
	* docs/gst/tmpl/old/GstBuffer.sgml:
	* docs/gst/tmpl/old/GstCaps.sgml:
	* docs/gst/tmpl/old/GstClock.sgml:
	* docs/gst/tmpl/old/GstCompat.sgml:
	* docs/gst/tmpl/old/GstData.sgml:
	* docs/gst/tmpl/old/GstElement.sgml:
	* docs/gst/tmpl/old/GstEvent.sgml:
	* docs/gst/tmpl/old/GstIndex.sgml:
	* docs/gst/tmpl/old/GstStructure.sgml:
	* docs/gst/tmpl/old/GstTag.sgml:
	* docs/gst/tmpl/old/cothreads.sgml:
	* docs/gst/tmpl/old/cothreads_compat.sgml:
	* docs/gst/tmpl/old/gettext.sgml:
	* docs/gst/tmpl/old/gobject2gtk.sgml:
	* docs/gst/tmpl/old/grammar.tab.sgml:
	* docs/gst/tmpl/old/gst-i18n-app.sgml:
	* docs/gst/tmpl/old/gst-i18n-lib.sgml:
	* docs/gst/tmpl/old/gst_private.sgml:
	* docs/gst/tmpl/old/gstaggregator.sgml:
	* docs/gst/tmpl/old/gstarch.sgml:
	* docs/gst/tmpl/old/gstatomic_impl.sgml:
	* docs/gst/tmpl/old/gstbufferstore.sgml:
	* docs/gst/tmpl/old/gstdata_private.sgml:
	* docs/gst/tmpl/old/gstdisksink.sgml:
	* docs/gst/tmpl/old/gstdisksrc.sgml:
	* docs/gst/tmpl/old/gstelementfactory.sgml:
	* docs/gst/tmpl/old/gstextratypes.sgml:
	* docs/gst/tmpl/old/gstfakesink.sgml:
	* docs/gst/tmpl/old/gstfakesrc.sgml:
	* docs/gst/tmpl/old/gstfdsink.sgml:
	* docs/gst/tmpl/old/gstfdsrc.sgml:
	* docs/gst/tmpl/old/gstfilesink.sgml:
	* docs/gst/tmpl/old/gstfilesrc.sgml:
	* docs/gst/tmpl/old/gsthttpsrc.sgml:
	* docs/gst/tmpl/old/gstidentity.sgml:
	* docs/gst/tmpl/old/gstindexfactory.sgml:
	* docs/gst/tmpl/old/gstmarshal.sgml:
	* docs/gst/tmpl/old/gstmd5sink.sgml:
	* docs/gst/tmpl/old/gstmultidisksrc.sgml:
	* docs/gst/tmpl/old/gstmultifilesrc.sgml:
	* docs/gst/tmpl/old/gstpadtemplate.sgml:
	* docs/gst/tmpl/old/gstpipefilter.sgml:
	* docs/gst/tmpl/old/gstschedulerfactory.sgml:
	* docs/gst/tmpl/old/gstsearchfuncs.sgml:
	* docs/gst/tmpl/old/gstshaper.sgml:
	* docs/gst/tmpl/old/gstspider.sgml:
	* docs/gst/tmpl/old/gstspideridentity.sgml:
	* docs/gst/tmpl/old/gststatistics.sgml:
	* docs/gst/tmpl/old/gsttee.sgml:
	* docs/gst/tmpl/old/gsttimecache.sgml:
	* docs/gst/tmpl/old/gsttypefindfactory.sgml:
	* docs/gst/tmpl/old/gstxmlregistry.sgml:
	* docs/gst/tmpl/old/gthread-cothreads.sgml:
	* docs/gst/tmpl/old/types.sgml:
	  I didn't intend to add these or check them in.

2005-05-19  David Schleef  <ds@schleef.org>

	* configure.ac: Use -no-common everywhere.  In a sane world, it
	  would be the default in libtool, because without it, you can't
	  build DLLs on Windows.
	* docs/gst/gstreamer-docs.sgml: Remove GstCpu, GstData, GstThread
	* docs/gst/gstreamer-sections.txt:
	* docs/gst/tmpl/gstcpu.sgml:
	* docs/gst/tmpl/gstdata.sgml:
	* docs/gst/tmpl/gstthread.sgml:

2005-05-19  David Schleef  <ds@schleef.org>

	* gst/gstminiobject.c: (gst_value_set_mini_object),
	(gst_value_take_mini_object), (gst_value_get_mini_object):
	* gst/gstminiobject.h: Add GValue set/get functions.

2005-05-19  Wim Taymans  <wim@fluendo.com>

	* gst/gstbuffer.c: (gst_buffer_init), (gst_subbuffer_get_type),
	(gst_subbuffer_class_init), (gst_subbuffer_finalize),
	(gst_subbuffer_init), (gst_buffer_is_span_fast):
	* gst/gstbuffer.h:
	* gst/gstbus.c: (gst_bus_post):
	* gst/gstelement.c: (gst_element_get_random_pad):
	* gst/gstmessage.c: (gst_message_init), (gst_message_finalize):
	Make subbufer unref the parent in finalize.
	some more debugging info.


2005-05-19  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_basesink_class_init),
	(gst_basesink_init), (gst_basesink_finalize),
	(gst_basesink_activate), (gst_basesink_change_state):
	Don't free preroll queue too early.

2005-05-19  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/Makefile.am:
	* gst/ROADMAP:
	  Hi, I'm outdated. Please shoot me.

2005-05-19  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/gstpipeline.c: (gst_pipeline_send_event):
	  Do not access variables after they have been deleted.

2005-05-19  Wim Taymans  <wim@fluendo.com>

	* tools/gst-inspect.c: (print_plugin_features):
	A plugin feature does unfortunatly not use the
	object name yet...

2005-05-18  Wim Taymans  <wim@fluendo.com>

	* gst/gstbuffer.c: (gst_buffer_is_span_fast), (gst_buffer_span):
	Port _span() functions to new subbuffers.

2005-05-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/gstbin.c: (gst_bin_add_func):
	  Fix clock settery in bins when adding kids after the clock has
	  been selected.

2005-05-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/elements/gstidentity.c: (gst_identity_class_init):
	  Workaround until signals support GstMiniObject.

2005-05-18  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/gstbuffer.c:
	Oops, fix a typo GST_TYPE_BUFFER -> GST_TYPE_SUBBUFFER.

2005-05-18  Wim Taymans  <wim@fluendo.com>

	* gst/base/Makefile.am:
	* gst/base/gstadapter.c: (gst_adapter_base_init),
	(gst_adapter_class_init), (gst_adapter_init),
	(gst_adapter_dispose), (gst_adapter_finalize), (gst_adapter_new),
	(gst_adapter_clear), (gst_adapter_push), (gst_adapter_peek),
	(gst_adapter_flush), (gst_adapter_available),
	(gst_adapter_available_fast):
	* gst/base/gstadapter.h:
	Ported and added adapter to the base classes.

2005-05-17  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* gst/gst.c:
	* gst/gstmessage.c:
	  Make sure the class is reffed/unreffed once before threads can be
	  used.  Fixes #304551.

2005-05-17  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_basesink_finish_preroll),
	(gst_basesink_chain_unlocked), (gst_basesink_activate):
	* gst/gstminiobject.c: (gst_mini_object_get_type),
	(gst_mini_object_free):
	* gst/gstpad.c: (gst_pad_accept_caps), (gst_pad_query),
	(gst_pad_push), (gst_pad_push_event):
	* gst/gstqueue.c: (gst_queue_change_state):
	Don't queue buffers in basesink when we are flushing.
	Unref buffer when flushing in basesink.
	Flush queue when going to READY
	Unref buffer when _push() returns an error.
	Don't free MiniObject instance when refcount is incremented
	in _finalize() so that we can recover objects.

2005-05-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/manual/advanced-schedulers.xml:
	* docs/manual/appendix-checklist.xml:
	* docs/pwg/advanced-clock.xml:
	* docs/pwg/advanced-interfaces.xml:
	* docs/pwg/advanced-request.xml:
	* docs/pwg/advanced-types.xml:
	* docs/pwg/intro-preface.xml:
	* examples/plugins/example.c: (gst_example_get_type),
	(gst_example_class_init), (gst_example_chain),
	(gst_example_set_property), (gst_example_get_property),
	(gst_example_change_state), (plugin_init):
	* examples/plugins/example.h:
	  small doc fixes

2005-05-17  Wim Taymans  <wim@fluendo.com>

	* gst/gstpad.c: (gst_pad_accept_caps), (gst_pad_set_caps),
	(gst_pad_alloc_buffer), (gst_pad_query), (gst_pad_push):
	* gst/gstqueue.c: (gst_queue_change_state):
	Clear queue when going to READY.
	Remove IN_SETCAPS flag too.

2005-05-17  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/base/gstbasesrc.c: (gst_basesrc_change_state):
	  Remove implicit cast from gboolean to GstElementStateReturn;
	  make sure we still return failure in paused => ready case if
	  the parent class fails to change state and our own stop 
	  vfunc succeeds.

2005-05-17  Wim Taymans  <wim@fluendo.com>

	* tools/gst-launch.c: (event_loop):
	Message was unreffed too soon.

2005-05-16  Andy Wingo  <wingo@pobox.com>

	* gst/gstbin.c (sink_iterator_filter): Err... um...

	* check/gst/gstbin.c (test_ghost_pads): New test for the
	ghosting-if-elements-not-in-same-bin behavior.

2005-05-16  David Schleef  <ds@schleef.org>

	* gst/gstminiobject.c: Use g_atomic_int_get() instead of
	accessing refcount directly.

2005-05-15  David Schleef  <ds@schleef.org>

	* check/Makefile.am: remove GstData checks
	* check/gst-libs/gdp.c: (START_TEST): fix for API changes
	* gst/Makefile.am: add miniobject, remove data
	* gst/gst.h: add miniobject, remove data
	* gst/gstdata.c: remove
	* gst/gstdata.h: remove
	* gst/gstdata_private.h: remove
	* gst/gsttypes.h: remove GstEvent and GstMessage
	* gst/gstelement.c: (gst_element_post_message): fix for API changes
	* gst/gstmarshal.list: change BOXED -> OBJECT

	Implement GstMiniObject.
	* gst/gstminiobject.c:
	* gst/gstminiobject.h:

	Modify to be subclasses of GstMiniObject.
	* gst/gstbuffer.c: (_gst_buffer_initialize), (gst_buffer_get_type),
	(gst_buffer_class_init), (gst_buffer_finalize), (_gst_buffer_copy),
	(gst_buffer_init), (gst_buffer_new), (gst_buffer_new_and_alloc),
	(gst_subbuffer_get_type), (gst_subbuffer_init),
	(gst_buffer_create_sub), (gst_buffer_is_span_fast),
	(gst_buffer_span):
	* gst/gstbuffer.h:
	* gst/gstevent.c: (_gst_event_initialize), (gst_event_get_type),
	(gst_event_class_init), (gst_event_init), (gst_event_finalize),
	(_gst_event_copy), (gst_event_new):
	* gst/gstevent.h:
	* gst/gstmessage.c: (_gst_message_initialize),
	(gst_message_get_type), (gst_message_class_init),
	(gst_message_init), (gst_message_finalize), (_gst_message_copy),
	(gst_message_new), (gst_message_new_error),
	(gst_message_new_warning), (gst_message_new_tag),
	(gst_message_new_state_changed), (gst_message_new_application):
	* gst/gstmessage.h:
	* gst/gstprobe.c: (gst_probe_perform),
	(gst_probe_dispatcher_dispatch):
	* gst/gstprobe.h:
	* gst/gstquery.c: (_gst_query_initialize), (gst_query_get_type),
	(gst_query_class_init), (gst_query_finalize), (gst_query_init),
	(_gst_query_copy), (gst_query_new):

	Update elements for GstData -> GstMiniObject changes
	* gst/gstquery.h:
	* gst/gstqueue.c: (gst_queue_finalize), (gst_queue_locked_flush),
	(gst_queue_chain), (gst_queue_loop):
	* gst/elements/gstbufferstore.c:
	(gst_buffer_store_add_buffer_func),
	(gst_buffer_store_cleared_func), (gst_buffer_store_get_buffer):
	* gst/elements/gstfakesink.c: (gst_fakesink_class_init),
	(gst_fakesink_render):
	* gst/elements/gstfakesrc.c: (gst_fakesrc_class_init):
	* gst/elements/gstfilesrc.c: (gst_mmap_buffer_get_type),
	(gst_mmap_buffer_class_init), (gst_mmap_buffer_init),
	(gst_mmap_buffer_finalize), (gst_filesrc_map_region),
	(gst_filesrc_create_read):
	* gst/elements/gstidentity.c: (gst_identity_class_init):
	* gst/elements/gsttypefindelement.c:
	(gst_type_find_element_src_event), (free_entry_buffers),
	(gst_type_find_element_handle_event):
	* libs/gst/dataprotocol/dataprotocol.c:
	(gst_dp_header_from_buffer):
	* libs/gst/dataprotocol/dataprotocol.h:
	* libs/gst/dataprotocol/dp-private.h:

2005-05-15  David Schleef  <ds@schleef.org>

	* gst/elements/gstelements.c: Don't include headers that were
	just removed.

2005-05-15  David Schleef  <ds@schleef.org>

	* gst/elements/Makefile.am: Remove some elements that don't
	need to be in the core (or even exist at all).
	* gst/elements/gstaggregator.c:
	* gst/elements/gstaggregator.h:
	* gst/elements/gstmd5sink.c:
	* gst/elements/gstmd5sink.h:
	* gst/elements/gstmultifilesrc.c:
	* gst/elements/gstmultifilesrc.h:
	* gst/elements/gstpipefilter.c:
	* gst/elements/gstpipefilter.h:
	* gst/elements/gstshaper.c:
	* gst/elements/gstshaper.h:
	* gst/elements/gststatistics.c:
	* gst/elements/gststatistics.h:
	* po/POTFILES.in: Remove above files.

2005-05-14  Andy Wingo  <wingo@pobox.com>

	* gst/gstbin.c (gst_bin_iterate_sinks): Use sink_iterator_filter
	so as to get the refs right.
	(sink_iterator_filter): New function, wraps bin_element_is_sink,
	unreffing objects that don't pass the filter.

	* gst/gstpipeline.c (gst_pipeline_init): Drop ref on bus after
	gst_element_set_bus.
	(gst_pipeline_dispose): Set the bus on the pipeline to NULL. In
	normal cases, this will destroy the bus.

	* gst/gstutils.c (prepare_link_maybe_ghosting): Drop ref on root
	object.

	* gst/gstbin.c (gst_bin_change_state): Fix state changes if a bin
	has no sinks.

2005-05-13  Andy Wingo  <wingo@pobox.com>

	* gst/gstutils.c (gst_element_link_pads): Instead of calling
	gst_pad_link, call pad_link_maybe_ghosting,
	(pad_link_maybe_ghosting): Links pads, making sure that the
	elements being linked are in the same bin.
	(find_common_root, object_has_ancestor, ghost_up, remove_pad):
	Helpers for pad_link_maybe_ghosting.

2005-05-13  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  Require GLib >= 2.4.0 (for the g_atomic_* funcs)

2005-05-13  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/design/part-element-source.txt:
	  Mention GstPushSrc

2005-05-12  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_basesink_init),
	(gst_basesink_activate):
	* gst/base/gstbasesrc.c: (gst_basesrc_unlock),
	(gst_basesrc_is_seekable):
	* gst/gstbin.c: (gst_bin_add_func), (gst_bin_remove_func),
	(bin_element_is_sink), (gst_bin_change_state):
	* gst/gstelement.c: (gst_element_add_pad), (gst_element_query):
	* gst/gstelement.h:
	Identify sinks by their flag to avoid overly complicated
	checks (fow now).
	Do state changes even for elements not reachable from the
	sinks.
	BaseSink is a sink now :)
	Some more debugging info in the basesrc.


2005-05-12  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/gstbin.c: (gst_bin_class_init), (gst_bin_query):
	  Implement _query on a bin, similar to _send_event.

2005-05-12  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/base/gstbasesrc.c: (gst_basesrc_do_seek):
	  Discont event offset format should be GST_FORMAT_BYTES,
	  not GST_FORMAT_TIME.

2005-05-12  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c: (gst_bin_remove_func), (gst_bin_get_state):
	Same fix as Ronald's but without the signal. 

2005-05-12  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/gstutils.c: (gst_element_query_position):
	  No, an element is not a pad.

2005-05-12  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/gstbin.c: (gst_bin_add_func), (cb_parent_unset),
	(gst_bin_get_state):
	  If a child is removed from a bin while we remove the child from
	  the bin and while we're retrieving its state, signal this to the
	  get_state function so we abort the wait (instead of waiting for
	  a timeout) and can immediately re-iterate over all other elements.

2005-05-12  Wim Taymans  <wim@fluendo.com>

	* gst/base/Makefile.am:
	* gst/base/gstbasesrc.c: (gst_basesrc_is_seekable),
	(gst_basesrc_start):
	* gst/base/gstbasesrc.h:
	* gst/base/gstpushsrc.c: (gst_pushsrc_get_type),
	(gst_pushsrc_base_init), (gst_pushsrc_class_init),
	(gst_pushsrc_init), (gst_pushsrc_create):
	* gst/base/gstpushsrc.h:
	Added is_seekable to BaseSrc
	Added simple PushSrc.

2005-05-11  Wim Taymans  <wim@fluendo.com>

	* gst/gstelement.c: (gst_element_add_pad), (gst_element_query):
	* gst/gstutils.c: (gst_element_get_compatible_pad_template),
	(gst_element_link_pads), (gst_element_query_position),
	(gst_element_query_convert), (intersect_caps_func),
	(gst_pad_query_position), (gst_pad_query_convert):
	Fix refcounting in utils function.
	No point in trying to activate a pad when it's added, it could
	be added from the state change function and then we deadlock, the
	element has to decide what to do.

2005-05-10  Andy Wingo  <wingo@pobox.com>

	* gst/elements/gstfakesink.c (gst_fakesink_render): Er, emit with
	*all* the arguments.

	* gst/base/gstbasetransform.c (gst_base_transform_event): Grab the
	stream lock if it's a FLUSH_DONE; normal flushes don't get the
	lock (according to the docs -- if this is wrong change the docs).

	* gst/gstpipeline.c (gst_pipeline_change_state): Set the bus to
	flush messages in the NULL state.

	* gst/gstbus.c (gst_bus_post): If a bus is flushing, unref the
	message immediately and return.
	(gst_bus_set_flushing): New function. If a bus is flushing, it
	flushes out any queued messages and immediately unrefs new
	messages. This is so when an element goes to NULL, all of the
	unhandled messages coming from it can be freed, and their
	references to the element dropped. In other words: message source
	ref considered harmful :P

	* gst/gstbin.c (gst_bin_change_state): Unref peer element when
	we're finished with it.

	* gst/gstmessage.c (gst_message_new_state_changed): 

2005-05-10  Wim Taymans  <wim@fluendo.com>

	* gst/gstvalue.c: (gst_value_compare_flags),
	(gst_value_serialize_flags), (gst_value_deserialize_flags),
	(_gst_value_initialize):
	Added flags serialize/deserialize/compare code.

2005-05-09  Andy Wingo  <wingo@pobox.com>

	* gst/base/gstbasetransform.c (gst_base_transform_proxy_getcaps):
	Intersect the peer's caps with our caps.

2005-05-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/base/gsttypefindhelper.c: (helper_find_peek):
	* gst/elements/gsttypefindelement.c: (find_peek):
	  Handle negative offsets better. Fixes decodebin.

2005-05-09  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasetransform.c: (gst_base_transform_proxy_getcaps),
	(gst_base_transform_event):
	* gst/gstpad.c: (gst_pad_accept_caps), (gst_pad_query):
	Implement accept_caps.
	Fix silly lock/unlock mismatch in base class.

2005-05-09  Wim Taymans  <wim@fluendo.com>

	* docs/design/draft-push-pull.txt:
	* gst/base/gstbasesrc.c: (gst_basesrc_init), (gst_basesrc_query):
	* gst/elements/gstfilesink.c: (gst_filesink_init),
	(gst_filesink_query):
	* gst/elements/gsttypefindelement.c: (gst_type_find_element_init),
	(gst_type_find_handle_src_query), (find_element_get_length):
	* gst/gstelement.c: (gst_element_seek), (gst_element_query):
	* gst/gstelement.h:
	* gst/gstmessage.c:
	* gst/gstmessage.h:
	* gst/gstpad.c: (gst_real_pad_init), (gst_pad_get_query_types),
	(gst_real_pad_get_caps_unlocked),
	(gst_pad_get_internal_links_default), (gst_pad_get_internal_links),
	(gst_pad_event_default_dispatch), (gst_pad_event_default),
	(gst_pad_dispatcher), (gst_pad_query), (gst_pad_query_default),
	(gst_real_pad_dispose), (gst_real_pad_finalize),
	(gst_pad_load_and_link), (gst_pad_save_thyself),
	(gst_ghost_pad_save_thyself), (handle_pad_block), (gst_pad_push),
	(gst_pad_check_pull_range), (gst_pad_pull_range),
	(gst_pad_template_get_type), (gst_pad_template_class_init),
	(gst_pad_template_init), (gst_pad_template_dispose),
	(name_is_valid), (gst_static_pad_template_get),
	(gst_pad_template_new), (gst_static_pad_template_get_caps),
	(gst_pad_template_get_caps), (gst_pad_set_element_private),
	(gst_pad_get_element_private), (gst_pad_start_task),
	(gst_pad_pause_task), (gst_pad_stop_task),
	(gst_ghost_pad_get_type), (gst_ghost_pad_class_init),
	(gst_ghost_pad_init), (gst_ghost_pad_dispose),
	(gst_ghost_pad_set_property), (gst_ghost_pad_get_property),
	(gst_ghost_pad_new):
	* gst/gstpad.h:
	* gst/gstquery.c: (_gst_query_initialize), (gst_query_new),
	(gst_query_new_position), (gst_query_set_position),
	(gst_query_parse_position), (gst_query_new_convert),
	(gst_query_set_convert), (gst_query_parse_convert):
	* gst/gstquery.h:
	* gst/gstqueryutils.c:
	* gst/gstqueryutils.h:
	* gst/gstqueue.c: (gst_queue_init), (gst_queue_getcaps),
	(gst_queue_bufferalloc), (gst_queue_handle_sink_event),
	(gst_queue_handle_src_query):
	* gst/gstutils.c: (gst_element_get_compatible_pad_template),
	(gst_element_query_position), (gst_element_query_convert),
	(intersect_caps_func), (gst_pad_query_position),
	(gst_pad_query_convert):
	* gst/gstutils.h:
	* tools/gst-inspect.c: (print_pad_info):
	* tools/gst-xmlinspect.c: (print_element_info):
	Remove old query functions. Ported old code.
	Added position/convert helper functions to gstutils.
	Reordered gstpad.c code, grouping relevant things.
	Remove gst_message_new(), always need to speficy a specific
	message.


2005-05-09  Andy Wingo  <wingo@pobox.com>

	* gst/gstiterator.h: Add some includes.

	* gst/gstqueryutils.h: Include more headers.

	* gst/gstpad.h:
	* gst/gstpad.c (gst_pad_query_position): New routine, replaces
	some uses of gst_pad_query.

	* gst/gstqueryutils.c: Build fixes. Make parse functions ignore
	NULL out parameters.
	(gst_query_new_position): New proc, allocates a new position
	query.

	* gst/Makefile.am (libgstreamer_@GST_MAJORMINOR@_la_SOURCES): Add
	gstqueryutils.c to the build.

	* gst/gststructure.c (gst_structure_set_valist): Implement with
	the generic G_VALUE_COLLECT.
	
2005-05-08  Edward Hervey  <bilboed@bilboed.com>

	* gst/Makefile.am: (gst_headers):
	Added gstqueryutils.h to the list of headers to install, that was
	a 'nachty' move wingo :)

2005-05-06  Andy Wingo  <wingo@pobox.com>

	* gst/gstquery.h
	* gst/gstquery.c (_gst_query_initialize): Extend GstQuery from
	GstData, init a memchunk.
	(standard_definitions): Add a few query types, deprecate a few.
	(gst_query_get_type): New proc.
	(_gst_query_copy, _gst_query_free, gst_query_new): GstData
	implementation.
	(gst_query_new_application, gst_query_get_structure): New public
	procs.

	* docs/design/draft-query.txt: Removed LINKS from the query types,
	because all the rest can be dispatched to other pads -- seemed
	ugly to have a query that couldn't be dispatched. internal_links
	is fine as a pad method.

	* gst/gstpad.h: Add query2 as a pad method, add the new functions
	in gstpad.c, but maintain binary compatibility for the moment.
	Will fix before 0.9 is out.

	* gst/gstqueryutils.c: 
	* gst/gstqueryutils.h: New files, implement 3 methods for each
	query type: parse_query, parse_response, and set. Probably need an
	allocator as well.

	* gst/gst.h: Add gstquery.h and gstqueryutils.h to the list.

	* gst/elements/gstfilesink.c (gst_filesink_query2):
	* gst/base/gstbasesrc.c (gst_basesrc_query2): Replace old query,
	query_types, and formats methods.

	* gst/gstpad.c (gst_pad_query2, gst_pad_query2_default)
	(gst_pad_set_query2_function): New functions.
	(gst_real_pad_init): Set query2_default as the default query2
	function. Basically just dispatches to internally linked pads.

	Needs review!
	
	* gst/gstdata_private.h (_GST_DATA_INIT): Set data->refcount to 1
	without using the atomic operations. Only one thread can possibly
	be accessing the data at this point. Changed so as to avoid
	gst_atomic operations.

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

	* gst/gstpad.c: (gst_pad_alloc_buffer), (gst_pad_push):
	Also set caps if we use the fallback buffer alloc.

2005-05-06  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/gst/Makefile.am:
	* docs/gst/gstreamer-docs.sgml:
	* docs/gst/gstreamer-sections.txt:
	* docs/gst/tmpl/gstatomic.sgml:
	* docs/gst/tmpl/gstmemchunk.sgml:
	* testsuite/elements/struct_i386.h:
	* win32/GStreamer.vcproj:
	* win32/Makefile:
	  Purge GstAtomic stuff from docs and win32 makefiles as well

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

	* gst/base/gstbasetransform.c: (gst_base_transform_proxy_getcaps):
	* gst/elements/gstcapsfilter.c: (gst_capsfilter_getcaps):
	* gst/gstpad.c: (gst_pad_peer_get_caps):
	* gst/gstqueue.c: (gst_queue_init), (gst_queue_getcaps),
	(gst_queue_bufferalloc), (gst_queue_handle_sink_event),
	(gst_queue_src_activate), (gst_queue_change_state):
	* gst/gstqueue.h:
	* gst/gstutils.c: (gst_element_get_compatible_pad_template),
	(intersect_caps_func):
	Fix gst_pad_peer_get_caps(), make it return NULL if no peer.
	Always take QUEUE_LOCK after STREAM_LOCK or we might deadlock.
	Some fixes for the peer_get_caps() change.

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

	* gst/base/gstbasesink.c: (gst_basesink_preroll_queue_empty),
	(gst_basesink_handle_buffer), (gst_basesink_chain_unlocked),
	(gst_basesink_activate):
	Actually do something with error codes returned from the push
	functions.

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

	* docs/design/part-element-sink.txt:
	* docs/design/part-element-source.txt:
	* gst/base/gstbasesink.c: (gst_basesink_class_init),
	(gst_basesink_event), (gst_basesink_activate):
	* gst/base/gstbasesink.h:
	* gst/base/gstbasesrc.c: (gst_basesrc_init), (gst_basesrc_unlock),
	(gst_basesrc_activate):
	* gst/base/gstbasesrc.h:
	* gst/gstelement.c: (gst_element_pads_activate):
	Some more documentation.
	Fixed scheduling decision in _pads_activate().

2005-05-05  Andy Wingo  <wingo@pobox.com>

	* check/pipelines/simple_launch_lines.c (test_2_elements): "Fix"
	the test suite.

2005-05-05  Wim Taymans  <wim@fluendo.com>

	* gst/base/Makefile.am:
	* gst/base/gstbasesink.h:
	* gst/base/gstbasesrc.c: (gst_basesrc_init),
	(gst_basesrc_set_dataflow_funcs), (gst_basesrc_query):
	* gst/base/gstcollectpads.c: (gst_collectpads_get_type),
	(gst_collectpads_class_init), (gst_collectpads_init),
	(gst_collectpads_finalize), (gst_collectpads_new),
	(gst_collectpads_set_function), (gst_collectpads_add_pad),
	(find_pad), (gst_collectpads_remove_pad),
	(gst_collectpads_is_active), (gst_collectpads_collect),
	(gst_collectpads_collect_range), (gst_collectpads_start),
	(gst_collectpads_stop), (gst_collectpads_peek),
	(gst_collectpads_pop), (gst_collectpads_available),
	(gst_collectpads_read), (gst_collectpads_flush),
	(gst_collectpads_chain):
	* gst/base/gstcollectpads.h:
	* gst/elements/Makefile.am:
	* gst/elements/gstelements.c:
	* gst/elements/gstfakesink.c: (gst_fakesink_class_init),
	(gst_fakesink_get_times), (gst_fakesink_event),
	(gst_fakesink_preroll), (gst_fakesink_render):
	* gst/elements/gstfilesink.c: (gst_filesink_class_init),
	(gst_filesink_init), (gst_filesink_set_location),
	(gst_filesink_open_file), (gst_filesink_close_file),
	(gst_filesink_pad_query), (gst_filesink_event),
	(gst_filesink_render), (gst_filesink_change_state):
	* gst/elements/gstfilesink.h:
	Added object to help in making collect pad based elements.
	Ported filesink.
	Make event function in sink baseclass return gboolean.

2005-05-05  Wim Taymans  <wim@fluendo.com>

	* gst/gstbin.c: (gst_bin_send_event), (compare_name),
	(gst_bin_get_by_name):
	* gst/gstbuffer.h:
	* gst/gstclock.c: (gst_clock_entry_new), (gst_clock_class_init),
	(gst_clock_finalize):
	* gst/gstdata.c: (gst_data_replace):
	* gst/gstdata.h:
	* gst/gstelement.c: (gst_element_request_pad),
	(gst_element_pads_activate):
	* gst/gstobject.c: (gst_object_init), (gst_object_ref),
	(gst_object_unref):
	* gst/gstpad.c: (gst_pad_set_active), (gst_pad_peer_set_active),
	(gst_pad_set_checkgetrange_function),
	(gst_pad_link_check_compatible_unlocked), (gst_pad_set_caps),
	(gst_pad_check_pull_range), (gst_pad_pull_range),
	(gst_static_pad_template_get_caps), (gst_pad_start_task),
	(gst_pad_pause_task), (gst_pad_stop_task):
	* gst/gstutils.c: (gst_element_get_compatible_pad_template),
	(gst_element_request_pad), (gst_pad_proxy_getcaps):
	Fix name lookup in GstBin.
	Added _data_replace() function and _buffer_replace()
	Use finalize method to clean up clock.
	Fix refcounting on request pads.
	Fix pad schedule mode error.
	Some more object refcounting debug info,


2005-05-04  Andy Wingo <wingo@pobox.com>

	* check/Makefile.am:
	* docs/gst/tmpl/gstatomic.sgml:
	* docs/gst/tmpl/gstplugin.sgml:
	* gst/base/gstbasesink.c: (gst_basesink_activate):
	* gst/base/gstbasesrc.c: (gst_basesrc_class_init),
	(gst_basesrc_init), (gst_basesrc_set_dataflow_funcs),
	(gst_basesrc_query), (gst_basesrc_set_property),
	(gst_basesrc_get_property), (gst_basesrc_check_get_range),
	(gst_basesrc_activate):
	* gst/base/gstbasesrc.h:
	* gst/base/gstbasetransform.c: (gst_base_transform_sink_activate),
	(gst_base_transform_src_activate):
	* gst/elements/gstelements.c:
	* gst/elements/gstfakesrc.c: (gst_fakesrc_class_init),
	(gst_fakesrc_set_property), (gst_fakesrc_get_property):
	* gst/elements/gsttee.c: (gst_tee_sink_activate):
	* gst/elements/gsttypefindelement.c: (find_element_get_length),
	(gst_type_find_element_checkgetrange),
	(gst_type_find_element_activate):
	* gst/gstbin.c: (gst_bin_save_thyself), (gst_bin_restore_thyself):
	* gst/gstcaps.c: (gst_caps_do_simplify), (gst_caps_save_thyself),
	(gst_caps_load_thyself):
	* gst/gstelement.c: (gst_element_pads_activate),
	(gst_element_save_thyself), (gst_element_restore_thyself):
	* gst/gstpad.c: (gst_pad_load_and_link), (gst_pad_save_thyself),
	(gst_ghost_pad_save_thyself), (gst_pad_check_pull_range):
	* gst/gstpad.h:
	* gst/gstxml.c: (gst_xml_write), (gst_xml_parse_doc),
	(gst_xml_parse_file), (gst_xml_parse_memory),
	(gst_xml_get_element), (gst_xml_make_element):
	* gst/indexers/gstfileindex.c: (gst_file_index_load),
	(_file_index_id_save_xml), (gst_file_index_commit):
	* gst/registries/gstlibxmlregistry.c: (read_string), (read_uint),
	(read_enum), (load_pad_template), (load_feature), (load_plugin),
	(load_paths):
	* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_packet_from_caps),
	(gst_dp_packet_from_event), (gst_dp_caps_from_packet):
	* tools/gst-complete.c: (main):
	* tools/gst-compprep.c: (main):
	* tools/gst-inspect.c: (print_element_properties_info):
	* tools/gst-launch.c: (xmllaunch_parse_cmdline):
	* tools/gst-xmlinspect.c: (print_element_properties):
	GCC 4 fixen.
	
2005-05-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gstplugin.c: (gst_plugin_check_module),
	(gst_plugin_check_file), (gst_plugin_load_file):
	    apply patch from #172526 to make register work on MacOSX

2005-05-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/gst/tmpl/gstconfig.sgml:
	* gst/gstconfig.h.in:
	  move documentation for some symbols.  Add doc for GST_PTR_FORMAT
	* testsuite/debug/printf_extension.c: (main):
	  Do not use GST_PTR_FORMAT on pointers to types with
	  sizeof < sizeof(gpointer).  Fixes test on 64-bit
	* testsuite/elements/property.h:
	  use correct printf format

2005-05-02  Wim Taymans  <wim@fluendo.com>

	* docs/design/draft-push-pull.txt:
	* docs/design/draft-query.txt:
	* gst/base/gstbasesrc.c: (gst_basesrc_get_range_unlocked),
	(gst_basesrc_start):
	Added draft for new query API.
	Added draft for better selecting scheduling methods.
	Make basesrc ignore length if the subclass does not support
	it.

2005-05-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/Makefile.am:
	  possible fixes for automake-1.5 - _LIBADD is reserved

2005-05-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/faq/Makefile.am:
	* docs/manual/Makefile.am:
	* docs/manuals.mak:
	* docs/pwg/Makefile.am:
	* gst/Makefile.am:
	  possible fixes for automake-1.5

2005-04-28  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_basesink_base_init),
	(gst_basesink_pad_getcaps), (gst_basesink_init),
	(gst_basesink_do_sync):
	* gst/gstclock.c: (gst_clock_entry_new):
	* gst/gstevent.c: (gst_event_discont_get_value):
	* gst/gstpipeline.c: (pipeline_bus_handler),
	(gst_pipeline_change_state):
	* gst/gstsystemclock.c: (gst_system_clock_id_wait_unlocked):
	Better debugging of clocking info.
	Allow NULL values when getting discont values.

2005-04-27  Wim Taymans  <wim@fluendo.com>

	* check/gst/gstobject.c: (START_TEST), (gst_object_suite):
	* check/gst/gstpad.c: (gst_pad_suite):
	Increase timeout for checks.

2005-04-27  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* check/Makefile.am:
	  fix the broken rule for cleanup.  Apparently this rule is
	  only needed on FC2, so maybe this warrants further autotool
	  inspection.

2005-04-26  Wim Taymans  <wim@fluendo.com>

	* gst/gsttrashstack.h:
	Ooohh. a nasty one! After having a failed pop() from the stack,
	it's possible that the stack is empty. In that case, don't
	follow the NULL pointer.

2005-04-25  Wim Taymans  <wim@fluendo.com>

	* gst/gstpad.c: (gst_pad_set_active), (gst_pad_peer_set_active),
	(gst_pad_set_checkgetrange_function),
	(gst_pad_link_check_compatible_unlocked), (gst_pad_link_prepare),
	(gst_pad_check_pull_range), (gst_pad_pull_range),
	(gst_static_pad_template_get_caps), (gst_pad_start_task),
	(gst_pad_pause_task), (gst_pad_stop_task):
	* gst/gstplugin.c: (gst_plugin_load):
	* gst/gstplugin.h:
	Remove gst_library_load as it does more harm than good with
	the new g_module flags.
	Revert bogus caps template check in pad linking, pad caps
	are important when linking not the template, which is more
	general than the current caps.

2005-04-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/autoplug/.cvsignore:
	* gst/autoplug/Makefile.am:
	* gst/autoplug/gstsearchfuncs.c:
	* gst/autoplug/gstsearchfuncs.h:
	* gst/autoplug/gstspider.c:
	* gst/autoplug/gstspider.h:
	* gst/autoplug/gstspideridentity.c:
	* gst/autoplug/gstspideridentity.h:
	* gst/autoplug/spidertest.c:
	  Die, spider, die.

2005-04-25  Wim Taymans  <wim@fluendo.com>

	* gst/gstpad.c: (gst_pad_set_active), (gst_pad_peer_set_active),
	(gst_pad_set_checkgetrange_function), (gst_pad_check_pull_range),
	(gst_pad_pull_range), (gst_static_pad_template_get_caps),
	(gst_pad_start_task), (gst_pad_pause_task), (gst_pad_stop_task):
	* gst/gstpad.h:
	Added stubs for unimplemented functions. 

2005-04-24  David Schleef  <ds@schleef.org>

	* gst/gstpad.h: Disable some unimplemented functions.  Wim,
	please fix.

2005-04-24  David Schleef  <ds@schleef.org>

	Convert everything from GstAtomicInt to g_atomic_int_*, and
	remove gstatomic.
	* gst/Makefile.am:
	* gst/gstatomic.c:
	* gst/gstatomic.h:
	* gst/gstatomic_impl.h:
	* gst/gstbuffer.c:
	* gst/gstcaps.c:
	* gst/gstcaps.h:
	* gst/gstclock.c:
	* gst/gstclock.h:
	* gst/gstdata.c:
	* gst/gstdata.h:
	* gst/gstdata_private.h:
	* gst/gstevent.c:
	* gst/gstinfo.c:
	* gst/gstinfo.h:
	* gst/gstmessage.c:
	* gst/gstobject.c:
	* gst/gstobject.h:
	* gst/gststructure.c:
	* gst/gststructure.h:
	* gst/gstutils.c: Add gst_atomic_int_set() compaitibility function.
	* gst/gstutils.h:

2005-04-24  David Schleef  <ds@schleef.org>

	* check/gst/gstpad.c: (START_TEST): Oh yeah, it's always nice to
	make the regressions tests work.  Remove some code that is no
	longer true.
	* gst/gstpad.c: (gst_pad_link_check_templates_compatible_unlocked):
	Disable warning for pads without templates.

2005-04-24  David Schleef  <ds@schleef.org>

	* gst/gstpad.c: Remove handling of filtered caps.  Fix/merge
	functions that handle filtered links.
	* gst/gstpad.h: Remove 'appfilter' field and prototypes of
	removed functions.
	* gst/gstutils.c: Fix/remove utility functions that handle
	filtered caps.
	* gst/gstutils.h:
	* gst/gstvalue.c: Add serialization/deserialization of caps
	* gst/parse/grammar.y: Ignore filtered caps when linking.  This
	requires fixing so that the filter caps notation creates
	a capsfilter element and sets the filter_caps property.  I
	think everyone probably wants to keep the shorthand notation.
	* docs/gst/tmpl/gstelement.sgml: updates for API changes.
	* docs/gst/tmpl/gstpad.sgml:

	* gst/elements/gstelements.c: Register capsfilter element.
	* gst/Makefile.am: fix spacing
	* docs/random/ds/0.9-suggested-changes: random

2005-04-23  David Schleef  <ds@schleef.org>

	* gst/elements/Makefile.am:
	* gst/elements/gstcapsfilter.c: New element that acts like an
	identity, but filters caps.  Will eventually replace filtered
	caps in pad linking.
	* gst/gstutils.c: (gst_element_create_all_pads): New function
	to create all the ALWAYS pads that are registered with an
	element class.  This functionality should eventually be
	merged in with GstElement initialization.
	* gst/gstutils.h:
	* testsuite/trigger/README: part of trigger test code that should
	have been checked in a long time ago.

2005-04-23  David Schleef  <ds@schleef.org>

	* gst/Makefile.am: Remove as-libtool stuff.  It's likely not
	needed with new versions of libtool (nobody will confirm this),
	and hard to carry around.
	* gst/autoplug/Makefile.am:
	* gst/base/Makefile.am:
	* gst/elements/Makefile.am:
	* gst/indexers/Makefile.am:
	* gst/schedulers/Makefile.am:
	* libs/gst/bytestream/Makefile.am:
	* libs/gst/control/Makefile.am:
	* libs/gst/dataprotocol/Makefile.am:
	* libs/gst/getbits/Makefile.am:

2005-04-21  Wim Taymans  <wim@fluendo.com>

	* docs/design/draft-push-pull.txt:
	* docs/design/part-MT-refcounting.txt:
	* docs/design/part-TODO.txt:
	* docs/design/part-caps.txt:
	* docs/design/part-events.txt:
	* docs/design/part-gstbus.txt:
	* docs/design/part-gstpipeline.txt:
	* docs/design/part-messages.txt:
	* docs/design/part-push-pull.txt:
	* docs/design/part-query.txt:
	Some more docs.

2005-04-21  Wim Taymans  <wim@fluendo.com>

	* gst/gstmessage.c: (_gst_message_copy), (_gst_message_free),
	(gst_message_new), (gst_message_new_error),
	(gst_message_new_warning), (gst_message_new_tag),
	(gst_message_new_state_changed), (gst_message_new_application),
	(gst_message_get_structure):
	* gst/gstmessage.h:
	* gst/gststructure.c: (gst_structure_set_parent_refcount),
	(gst_structure_copy_conditional):
	Use parent refcount in GstMessage to ensure GstStructure
	consistency.
	Cleaned up headers a bit.
	

2005-04-20  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasesink.c: (gst_basesink_base_init),
	(gst_basesink_pad_getcaps), (gst_basesink_init),
	(gst_basesink_chain_unlocked):
	* gst/base/gsttypefindhelper.c: (helper_find_suggest),
	(gst_type_find_helper):
	* gst/elements/gsttypefindelement.c:
	(gst_type_find_element_have_type), (gst_type_find_element_init),
	(stop_typefinding), (gst_type_find_element_handle_event),
	(find_suggest), (gst_type_find_element_chain),
	(gst_type_find_element_checkgetrange),
	(gst_type_find_element_getrange), (do_typefind),
	(gst_type_find_element_activate):
	* gst/gstbuffer.c: (_gst_buffer_sub_free),
	(gst_buffer_default_free), (gst_buffer_default_copy),
	(gst_buffer_set_caps):
	* gst/gstcaps.c: (gst_caps_ref), (gst_caps_unref),
	(gst_caps_replace):
	* gst/gstmessage.c: (gst_message_new),
	(gst_message_new_state_changed):
	* gst/gstpad.c: (gst_pad_set_active), (gst_pad_peer_set_active),
	(gst_pad_set_checkgetrange_function),
	(gst_pad_link_prepare_filtered), (gst_pad_relink_filtered),
	(gst_pad_set_caps), (gst_pad_check_pull_range),
	(gst_pad_pull_range), (gst_static_pad_template_get_caps):
	* gst/gstpad.h:
	* gst/gsttypefind.c: (gst_type_find_register):
	Make gst_caps_replace() work like other _replace() functions.
	Use _caps_replace() where possible.
	Make sure _message_new() initialises its field.
	Add gst_static_pad_template_get_caps()


2005-04-18  Andy Wingo  <wingo@pobox.com>

	* gst/gstelement.c (gst_element_pads_activate): Check pull_range
	on the peer, not the pad. I think that was a typo. Pass an extra
	arg to see if random access is possible. Activate the pads as
	PULL_RANGE if possible.

	* gst/elements/gstfakesrc.c: s/ARG_/PROP_/.

	* gst/base/gstbasesrc.c (gst_basesrc_set_property) 
	(gst_basesrc_get_property): BLOCKSIZE is a ULONG. Rename ARG_...
	to PROP_....

2005-04-14  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* docs/faq/using.xml:
	  Add note on gstreamer-properties (#154996).

2005-04-13  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* docs/random/bbb/optional-properties:
	  Some analysis on optional properties.

2005-04-12  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* docs/gst/tmpl/gstelementfactory.sgml:
	* gst/gstelement.h:
	* gst/gstelementfactory.c: (gst_element_factory_init),
	(gst_element_factory_cleanup), (gst_element_register),
	(__gst_element_factory_add_static_pad_template),
	(gst_element_factory_get_static_pad_templates),
	(gst_element_factory_can_src_caps),
	(gst_element_factory_can_sink_caps):
	* gst/registries/Makefile.am:
	* gst/registries/gstlibxmlregistry.c: (gst_xml_registry_get_type),
	(gst_xml_registry_class_init), (gst_xml_registry_init),
	(gst_xml_registry_new), (gst_xml_registry_set_property),
	(gst_xml_registry_get_property), (get_time), (make_dir),
	(gst_xml_registry_get_perms_func),
	(plugin_times_older_than_recurse), (plugin_times_older_than),
	(gst_xml_registry_open_func), (gst_xml_registry_load_func),
	(gst_xml_registry_save_func), (gst_xml_registry_close_func),
	(add_to_char_array), (read_string), (read_uint), (read_enum),
	(load_pad_template), (load_feature), (load_plugin), (load_paths),
	(gst_xml_registry_load), (gst_xml_registry_load_plugin),
	(gst_xml_registry_save_caps), (gst_xml_registry_save_pad_template),
	(gst_xml_registry_save_feature), (gst_xml_registry_save_plugin),
	(gst_xml_registry_save), (gst_xml_registry_rebuild_recurse),
	(gst_xml_registry_rebuild):
	* gst/registries/gstlibxmlregistry.h:
	* tools/gst-compprep.c: (main):
	* tools/gst-inspect.c: (print_pad_templates_info):
	* tools/gst-xmlinspect.c: (print_element_info):
	  Use libxml2 for registry parsing, use staticpadtemplates in
	  elementfactories. Makes gst_init() +/- 10x faster.

2005-04-12  Wim Taymans  <wim@fluendo.com>

	* gst/base/Makefile.am:
	* gst/base/gstbasesink.c: (gst_basesink_base_init),
	(gst_basesink_pad_getcaps), (gst_basesink_init),
	(gst_basesink_event), (gst_basesink_change_state):
	* gst/base/gstbasesrc.c: (gst_basesrc_get_type),
	(gst_basesrc_init), (gst_basesrc_query),
	(gst_basesrc_get_event_mask), (gst_basesrc_do_seek),
	(gst_basesrc_event_handler), (gst_basesrc_get_range_unlocked),
	(gst_basesrc_check_get_range), (gst_basesrc_loop),
	(gst_basesrc_unlock), (gst_basesrc_get_size), (gst_basesrc_start),
	(gst_basesrc_stop), (gst_basesrc_activate),
	(gst_basesrc_change_state):
	* gst/base/gsttypefindhelper.c: (helper_find_peek),
	(helper_find_suggest), (gst_type_find_helper):
	* gst/base/gsttypefindhelper.h:
	* gst/elements/Makefile.am:
	* gst/elements/gstelements.c:
	* gst/elements/gstfakesink.c: (gst_fakesink_class_init),
	(gst_fakesink_get_times), (gst_fakesink_event),
	(gst_fakesink_preroll), (gst_fakesink_render):
	* gst/elements/gstfakesrc.c: (gst_fakesrc_class_init),
	(gst_fakesrc_init), (gst_fakesrc_event_handler),
	(gst_fakesrc_get_property), (gst_fakesrc_create),
	(gst_fakesrc_start), (gst_fakesrc_stop):
	* gst/elements/gstfakesrc.h:
	* gst/elements/gstfilesrc.c: (gst_filesrc_class_init),
	(gst_filesrc_free_parent_mmap), (gst_filesrc_map_region),
	(gst_filesrc_map_small_region), (gst_filesrc_create_mmap),
	(gst_filesrc_create_read), (gst_filesrc_create),
	(gst_filesrc_is_seekable), (gst_filesrc_get_size),
	(gst_filesrc_start):
	* gst/elements/gsttypefindelement.c:
	(gst_type_find_element_have_type), (gst_type_find_element_init),
	(start_typefinding), (stop_typefinding), (push_buffer_store),
	(gst_type_find_element_handle_event),
	(gst_type_find_element_chain),
	(gst_type_find_element_checkgetrange),
	(gst_type_find_element_getrange), (do_typefind),
	(gst_type_find_element_activate),
	(gst_type_find_element_change_state):
	* gst/elements/gsttypefindelement.h:
	* gst/gstpipeline.c: (pipeline_bus_handler):
	Added typefind helper.
	Small preroll fix in the base sink.
	Disable typefind code in basesrc.
	Crude port of typefindelement.
	Fakesrc cleanups.


2005-04-11  Wim Taymans  <wim@fluendo.com>

	* check/gst/gstbus.c: (gstbus_suite):
	* check/gst/gstdata.c: (thread_ref), (gst_data_suite):
	* check/gstcheck.h:
	  Fix up the timeout so that the test does not fail.

2005-04-06  Wim Taymans  <wim@fluendo.com>

	* gst/base/README:
	* gst/base/gstbasesrc.c: (gst_basesrc_get_type),
	(gst_basesrc_init), (gst_basesrc_get_formats), (gst_basesrc_query),
	(gst_basesrc_get_event_mask), (gst_basesrc_do_seek),
	(gst_basesrc_event_handler), (gst_basesrc_get_range_unlocked),
	(gst_basesrc_check_get_range), (gst_basesrc_loop),
	(gst_basesrc_unlock), (gst_basesrc_get_size), (gst_basesrc_start),
	(gst_basesrc_stop), (gst_basesrc_activate),
	(gst_basesrc_change_state), (basesrc_find_peek),
	(basesrc_find_suggest), (gst_basesrc_type_find):
	* gst/base/gstbasesrc.h:
	* gst/elements/gstfilesrc.c: (gst_filesrc_base_init),
	(gst_filesrc_class_init), (gst_filesrc_init),
	(gst_filesrc_finalize), (gst_filesrc_set_location),
	(gst_filesrc_set_property), (gst_filesrc_get_property),
	(gst_filesrc_free_parent_mmap), (gst_filesrc_map_region),
	(gst_filesrc_map_small_region), (gst_filesrc_create_mmap),
	(gst_filesrc_create_read), (gst_filesrc_create),
	(gst_filesrc_get_size), (gst_filesrc_start), (gst_filesrc_stop):
	* gst/elements/gstfilesrc.h:
	* gst/gstelement.c: (gst_element_get_state_func),
	(gst_element_lost_state), (gst_element_pads_activate):
	* gst/gstpad.c: (gst_pad_set_active), (gst_pad_peer_set_active),
	(gst_pad_set_checkgetrange_function), (gst_pad_check_pull_range),
	(gst_pad_pull_range):
	* gst/gstpad.h:
	More work on the generic source base class, implement seeking,
	query.
	Make filesrc extend the base source class.
	Added gst_pad_set_checkgetrange_function to GstPad.

2005-04-06  Andy Wingo  <wingo@pobox.com>

	* pkgconfig/gstreamer-base.pc.in:
	* pkgconfig/gstreamer-base-uninstalled.pc.in: New files.

	* pkgconfig/Makefile.am:
	* configure.ac (AC_OUTPUT): Add gstreamer-base pkgconfig files.

2005-04-04  Wim Taymans  <wim@fluendo.com>

	* gst/base/Makefile.am:
	* gst/base/README:
	* gst/base/gstbasesink.c: (gst_basesink_base_init),
	(gst_basesink_pad_getcaps), (gst_basesink_pad_setcaps),
	(gst_basesink_pad_buffer_alloc), (gst_basesink_init),
	(gst_basesink_do_sync), (gst_basesink_chain_unlocked):
	* gst/base/gstbasesrc.c: (gst_basesrc_get_type),
	(gst_basesrc_base_init), (gst_basesrc_class_init),
	(gst_basesrc_init), (gst_basesrc_get_formats),
	(gst_basesrc_get_query_types), (gst_basesrc_query),
	(gst_basesrc_get_event_mask), (gst_basesrc_event_handler),
	(gst_basesrc_set_property), (gst_basesrc_get_property),
	(gst_basesrc_get_range_unlocked), (gst_basesrc_get_range),
	(gst_basesrc_loop), (gst_basesrc_activate),
	(gst_basesrc_change_state):
	* gst/base/gstbasesrc.h:
	* gst/elements/gstfakesrc.c: (gst_fakesrc_base_init),
	(gst_fakesrc_class_init), (gst_fakesrc_init),
	(gst_fakesrc_event_handler), (gst_fakesrc_set_property),
	(gst_fakesrc_get_property), (gst_fakesrc_create):
	* gst/elements/gstfakesrc.h:
	* gst/elements/gstfilesrc.c: (gst_filesrc_getrange),
	(gst_filesrc_open_file), (gst_filesrc_loop),
	(gst_filesrc_activate), (filesrc_find_peek),
	(gst_filesrc_type_find):
	Made base source class, make fakesrc extend it.
	Add comments to basesink class.
	Some filesrc cleanup.

2005-03-31  David Schleef  <ds@schleef.org>

	* gst/gstplugin.c: (gst_plugin_check_file), (gst_plugin_load_file):
	Switch to using G_MODULE_BIND_LOCAL, which means plugins are now
	expected to link against libgstreamer.
	* gst/base/Makefile.am: link against libgstreamer
	* gst/elements/Makefile.am: same

2005-03-31  Andy Wingo  <wingo@pobox.com>

	* tests/instantiate/Makefile.am:
	* tests/instantiate/caps.c: Add test to test speed of caps copy
	and free.

	* tests/memchunk/gmemchunktest.c (main): Use alloc only on the
	GMemChunk to be fair.

	* gst/gsttrashstack.h: Remove warning about using the fallback
	trash stack implementation, it's still faster than malloc.

2005-03-30  Andy Wingo  <wingo@pobox.com>

	* tests/complexity.c: Add a copyright.

2005-03-31  Wim Taymans  <wim@fluendo.com>

	* gst/base/gstbasetransform.c: (gst_base_transform_base_init),
	(gst_base_transform_class_init), (gst_base_transform_init),
	(gst_base_transform_setcaps), (gst_base_transform_handle_buffer),
	(gst_base_transform_get_property),
	(gst_base_transform_sink_activate),
	(gst_base_transform_src_activate),
	(gst_base_transform_change_state):
	* gst/base/gstbasetransform.h:
	* gst/elements/gstidentity.c: (gst_identity_class_init),
	(gst_identity_event), (gst_identity_check_perfect),
	(gst_identity_transform), (gst_identity_start),
	(gst_identity_stop):
	Added start/stop methods to transform base class so subclasses 
	don't need to deal with state changes even.

2005-03-31  Wim Taymans  <wim@fluendo.com>

	* gst/gstevent.c: (gst_event_new_discontinuous_valist),
	(gst_event_new_discontinuous), (gst_event_discont_get_value):
	* gst/gstevent.h:
	* gst/gstpad.c: (gst_pad_set_active), (gst_pad_peer_set_active),
	(gst_pad_pull_range):
	Added rate to the discont event to prepare for variable speed
	and reverse playback.

2005-03-29  David Schleef  <ds@schleef.org>

	* configure.ac:
	* testsuite/trigger/Makefile.am:
	* testsuite/trigger/trigger.c: A little example program to show
	how trigger-based elements can work.

2005-03-29  Wim Taymans  <wim@fluendo.com>

	* gst/base/Makefile.am:
	* gst/base/README:
	* gst/base/gstbasesink.c: (gst_basesink_get_type),
	(gst_basesink_base_init), (gst_basesink_class_init),
	(gst_basesink_pad_getcaps), (gst_basesink_init),
	(gst_basesink_activate), (gst_basesink_change_state):
	* gst/base/gstbasesink.h:
	* gst/base/gstbasetransform.c: (gst_base_transform_get_type),
	(gst_base_transform_base_init), (gst_base_transform_finalize),
	(gst_base_transform_class_init), (gst_base_transform_init),
	(gst_base_transform_proxy_getcaps), (gst_base_transform_setcaps),
	(gst_base_transform_event), (gst_base_transform_getrange),
	(gst_base_transform_chain), (gst_base_transform_handle_buffer),
	(gst_base_transform_set_property),
	(gst_base_transform_get_property),
	(gst_base_transform_sink_activate),
	(gst_base_transform_src_activate),
	(gst_base_transform_change_state):
	* gst/base/gstbasetransform.h:
	* gst/elements/gstidentity.c: (gst_identity_finalize),
	(gst_identity_class_init), (gst_identity_init),
	(gst_identity_event), (gst_identity_check_perfect),
	(gst_identity_transform), (gst_identity_set_property),
	(gst_identity_get_property), (gst_identity_change_state):
	* gst/elements/gstidentity.h:
	* gst/gstelement.c: (gst_element_get_state_func),
	(gst_element_lost_state), (gst_element_pads_activate):
	* gst/gstpad.c: (gst_pad_set_active), (gst_pad_peer_set_active),
	(gst_pad_check_pull_range), (gst_pad_pull_range):
	* gst/gstpad.h:
	Simplify pad activation.
	Added function to check if pull_range can be performed.
	Error out when pulling inactive or flushing pads.
	Removed const from refcounted types as it does not make sense.
	Simplify pad templates in basesink
	Added base class for simple 1-to-1 transforms.
	Make identity subclass the base transform.

2005-03-29  Andy Wingo  <wingo@pobox.com>

	* docs/libs/gstreamer-libs-overrides.txt: 
	* docs/gst/gstreamer-overrides.txt: Add these files to CVS. Now I
	really don't understand what's going on, but like whatever. I want
	green buildbot!

	* docs/gst/Makefile.am:
	* docs/libs/Makefile.am: Dist the overrides files.

	* check/Makefile.am (clean-local): Remove .libs directories.

	* gst/elements/Makefile.am (EXTRA_DIST): Add all the attic
	elements to EXTRA_DIST, so po/ files are happy.

	* po/POTFILES.in: Er, remove it here.

	* po/POTFILES: Remove gstspider.c.

	* configure.ac (AC_OUTPUT): Add missing testsuite makefiles.

	* docs/libs/gstreamer-libs-docs.sgml: 
	* docs/libs/gstreamer-libs-sections.txt: Remove the section on
	bytestream.

	* tests/complexity.c (main): Set the length of the preroll queue
	on the sinks to prevent a lockup.

	* libs/gst/dataprotocol/Makefile.am: 
	* libs/gst/dataprotocol/dataprotocol-test.c: Remove test, it's
	the same as the one in check/gst-libs/gdp.c.

	* po/, docs/gst/: Commit automatic changes to docs and po files.

	* gst/elements/Makefile.am (libgstelements_la_LDFLAGS): Link to
	the versioned libgstbase.

	* check/Makefile.am: Depend on an unversioned gst-register, seems
	to make autoconf happier.

	* gst/base/Makefile.am: Make libgstbase a versioned lib.

2005-03-28  Wim Taymans  <wim@fluendo.com>

	* configure.ac:
	* docs/design/part-gstelement.txt:
	* docs/design/part-negotiation.txt:
	* docs/design/part-preroll.txt:
	* docs/design/part-scheduling.txt:
	* docs/design/part-states.txt:
	* gst/Makefile.am:
	* gst/base/Makefile.am:
	* gst/base/README:
	* gst/base/gstbasesink.c: (gst_basesink_get_template),
	(gst_basesink_base_init), (gst_basesink_class_init),
	(gst_basesink_pad_getcaps), (gst_basesink_pad_setcaps),
	(gst_basesink_pad_buffer_alloc), (gst_basesink_init),
	(gst_basesink_set_pad_functions),
	(gst_basesink_set_all_pad_functions), (gst_basesink_set_clock),
	(gst_basesink_set_property), (gst_basesink_get_property),
	(gst_base_sink_get_template), (gst_base_sink_get_caps),
	(gst_base_sink_set_caps), (gst_base_sink_buffer_alloc),
	(gst_basesink_preroll_queue_push),
	(gst_basesink_preroll_queue_empty),
	(gst_basesink_preroll_queue_flush), (gst_basesink_finish_preroll),
	(gst_basesink_event), (gst_basesink_get_times),
	(gst_basesink_do_sync), (gst_basesink_handle_buffer),
	(gst_basesink_chain_unlocked), (gst_basesink_chain),
	(gst_basesink_loop), (gst_basesink_activate),
	(gst_basesink_change_state):
	* gst/base/gstbasesink.h:
	* gst/elements/Makefile.am:
	* gst/elements/gstfakesink.c: (gst_fakesink_base_init),
	(gst_fakesink_class_init), (gst_fakesink_init),
	(gst_fakesink_set_property), (gst_fakesink_get_property),
	(gst_fakesink_get_times), (gst_fakesink_event),
	(gst_fakesink_preroll), (gst_fakesink_render),
	(gst_fakesink_change_state):
	* gst/elements/gstfakesink.h:
	* gst/gstbin.c: (gst_bin_class_init), (gst_bin_set_manager),
	(gst_bin_get_state), (gst_bin_change_state), (gst_bin_send_event):
	* gst/gstelement.c: (gst_element_add_pad),
	(gst_element_get_state_func), (gst_element_abort_state),
	(gst_element_commit_state), (gst_element_lost_state),
	(gst_element_set_state), (gst_element_pads_activate):
	* gst/gstpad.c: (gst_pad_set_active), (gst_pad_event_default):
	* gst/gstpipeline.c: (gst_pipeline_send_event),
	(gst_pipeline_change_state):
	Added state change code.
	Added/updated docs.
	Added sink base class, make fakesink extend the base class.
	Small cleanups in GstPipeline.

2005-03-26  David Schleef  <ds@schleef.org>

	* gst/Makefile.am: remove gstcpu.[ch].  The gst_cpu functionality
	is broken and should be implemented in a different library.
	* gst/gst.c: (init_post): don't call _gst_cpu_initialize()
	* gst/gst.h: remove gstcpu.h
	* gst/gstcpu.c: remove
	* gst/gstcpu.h: remove
	* gst/Makefile.am.future: Remove this file.  It's ancient.

2005-03-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/gstbin.c: (gst_bin_class_init), (gst_bin_set_manager),
	(gst_bin_send_event):
	  Add default event/set_manager handlers. The set_manager handler
	  takes care that the manager is distributed over kids that were
	  already in the bin before the manager was set. The event handler
	  is a utility virtual function that sends the event over all sinks,
	  so that gst_element_send_event (bin, event); has the expected
	  behaviour.
	* gst/gstpad.c: (gst_pad_event_default):
	  Re-install default event handling for discontinuities, so that
	  seeking works without requiring hacks in applications or extra
	  code in sinks.
	* gst/gstpipeline.c: (gst_pipeline_class_init),
	(gst_pipeline_send_event):
	  Half hack, half utility: set a pipeline to PAUSED for seek events,
	  since that is the only way we can guarantee a/v sync. Means that
	  you can do gst_element_seek (pipeline, method, pos); on a pipeline
	  and it "just works".

2005-03-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/gstpipeline.c: (gst_pipeline_use_clock):
	  Lock/unlock mismatch.

2005-03-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/faq/gst-uninstalled:
	  add gst-plugins-base
	* docs/gst/Makefile.am:
	  don't error out until docs are fixed
	* docs/gst/gstreamer.types:
	  remove thread

2005-03-22  Wim Taymans  <wim@fluendo.com>

	* check/Makefile.am:
	* check/gst/gstmessage.c: (START_TEST), (gst_data_suite), (main):
	* gst/gststructure.c: (gst_structure_set_valist),
	(gst_structure_copy_conditional):
	Activated more tests.
	Added message test.
	Added G_TYPE_POINTER to GstStructure.
	

2005-03-22  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-TODO.txt:
	* docs/design/part-events.txt:
	* docs/design/part-gstbin.txt:
	* docs/design/part-gstbus.txt:
	* docs/design/part-gstpipeline.txt:
	* docs/design/part-messages.txt:
	* gst/gstbus.c:
	* gst/gstmessage.c:
	Docs updates

2005-03-21  Wim Taymans  <wim@fluendo.com>

	* gst/gstbus.c: (gst_bus_post):
	Fix copy-and-paste error.

2005-03-21  Wim Taymans  <wim@fluendo.com>

	* check/Makefile.am:
	* gst/Makefile.am:
	* gst/elements/Makefile.am:
	* gst/elements/gstelements.c:
	* gst/elements/gstfakesink.c: (gst_fakesink_init),
	(gst_fakesink_event), (gst_fakesink_chain):
	* gst/elements/gstfakesrc.c: (gst_fakesrc_class_init),
	(gst_fakesrc_init), (gst_fakesrc_get_event_mask),
	(gst_fakesrc_event_handler), (gst_fakesrc_set_pad_functions),
	(gst_fakesrc_set_all_pad_functions), (gst_fakesrc_request_new_pad),
	(gst_fakesrc_set_property), (gst_fakesrc_get_property),
	(gst_fakesrc_get_range_unlocked), (gst_fakesrc_get_range),
	(gst_fakesrc_loop), (gst_fakesrc_activate),
	(gst_fakesrc_change_state):
	* gst/elements/gstfakesrc.h:
	* gst/elements/gstfilesrc.c: (gst_filesrc_init),
	(gst_filesrc_get_read), (gst_filesrc_getrange), (gst_filesrc_get),
	(gst_filesrc_open_file), (gst_filesrc_loop),
	(gst_filesrc_activate), (gst_filesrc_change_state),
	(filesrc_find_peek), (filesrc_find_suggest),
	(gst_filesrc_type_find):
	* gst/elements/gstidentity.c: (gst_identity_finalize),
	(gst_identity_class_init), (gst_identity_init),
	(gst_identity_proxy_getcaps), (identity_queue_push),
	(identity_queue_pop), (identity_queue_flush), (gst_identity_event),
	(gst_identity_getrange), (gst_identity_chain),
	(gst_identity_sink_loop), (gst_identity_src_loop),
	(gst_identity_handle_buffer), (gst_identity_set_dataflow_funcs),
	(gst_identity_set_property), (gst_identity_get_property),
	(gst_identity_change_state):
	* gst/elements/gstidentity.h:
	* gst/elements/gsttee.c: (gst_tee_class_init), (gst_tee_init),
	(gst_tee_update_pad_functions), (gst_tee_request_new_pad),
	(gst_tee_set_property), (gst_tee_get_property), (gst_tee_do_push),
	(gst_tee_handle_buffer), (gst_tee_chain), (gst_tee_loop),
	(gst_tee_sink_activate):
	* gst/elements/gsttee.h:
	* gst/gst.c: (gst_register_core_elements), (init_post):
	* gst/gst.h:
	* gst/gstbin.c: (gst_bin_class_init), (gst_bin_set_bus),
	(gst_bin_set_scheduler), (gst_bin_add_func), (gst_bin_add),
	(gst_bin_remove_func), (gst_bin_remove), (gst_bin_get_state),
	(gst_bin_change_state):
	* gst/gstbin.h:
	* gst/gstbus.c: (gst_bus_get_type), (gst_bus_class_init),
	(gst_bus_init), (gst_bus_dispose), (gst_bus_set_property),
	(gst_bus_get_property), (gst_bus_new), (gst_bus_post),
	(gst_bus_have_pending), (gst_bus_pop), (gst_bus_peek),
	(gst_bus_set_sync_handler), (gst_bus_create_watch),
	(bus_watch_callback), (bus_watch_destroy),
	(gst_bus_add_watch_full), (gst_bus_add_watch), (poll_handler),
	(poll_timeout), (gst_bus_poll):
	* gst/gstbus.h:
	* gst/gstcaps.h:
	* gst/gstdata.h:
	* gst/gstelement.c: (gst_element_class_init), (gst_element_init),
	(gst_element_post_message), (gst_element_message_full),
	(gst_element_get_state_func), (gst_element_get_state),
	(gst_element_abort_state), (gst_element_commit_state),
	(gst_element_lost_state), (gst_element_set_state),
	(gst_element_pads_activate), (gst_element_change_state),
	(gst_element_dispose), (gst_element_set_manager_func),
	(gst_element_set_bus_func), (gst_element_set_scheduler_func),
	(gst_element_set_manager), (gst_element_get_manager),
	(gst_element_set_bus), (gst_element_get_bus),
	(gst_element_set_scheduler), (gst_element_get_scheduler):
	* gst/gstelement.h:
	* gst/gstevent.c: (gst_event_new_segment_seek),
	(gst_event_new_flush):
	* gst/gstevent.h:
	* gst/gstmessage.c: (_gst_message_initialize), (_gst_message_copy),
	(_gst_message_free), (gst_message_get_type), (gst_message_new),
	(gst_message_new_eos), (gst_message_new_error),
	(gst_message_new_warning), (gst_message_new_tag),
	(gst_message_new_state_changed), (gst_message_new_application),
	(gst_message_get_structure), (gst_message_parse_tag),
	(gst_message_parse_state_changed), (gst_message_parse_error),
	(gst_message_parse_warning):
	* gst/gstmessage.h:
	* gst/gstpad.c: (gst_real_pad_class_init), (gst_real_pad_init),
	(gst_real_pad_set_property), (gst_pad_set_active),
	(gst_pad_is_active), (gst_pad_set_blocked_async),
	(gst_pad_set_blocked), (gst_pad_is_blocked),
	(gst_pad_set_activate_function), (gst_pad_set_loop_function),
	(gst_pad_set_getrange_function), (gst_pad_set_acceptcaps_function),
	(gst_pad_set_fixatecaps_function), (gst_pad_set_setcaps_function),
	(gst_pad_unlink), (gst_pad_link_prepare_filtered),
	(gst_pad_link_filtered), (gst_pad_relink_filtered),
	(gst_real_pad_get_caps_unlocked), (gst_pad_get_caps),
	(gst_pad_peer_get_caps), (gst_pad_fixate_caps),
	(gst_pad_accept_caps), (gst_pad_peer_accept_caps),
	(gst_pad_set_caps), (gst_pad_configure_sink),
	(gst_pad_configure_src), (gst_pad_get_negotiated_caps),
	(gst_pad_get_filter_caps), (gst_pad_alloc_buffer),
	(gst_real_pad_dispose), (gst_real_pad_finalize),
	(handle_pad_block), (gst_pad_push), (gst_pad_pull_range),
	(gst_pad_event_default_dispatch), (gst_pad_event_default),
	(gst_pad_push_event), (gst_pad_send_event), (gst_pad_get_formats):
	* gst/gstpad.h:
	* gst/gstpipeline.c: (gst_pipeline_init), (is_eos),
	(pipeline_bus_handler), (gst_pipeline_change_state),
	(gst_pipeline_get_scheduler), (gst_pipeline_get_bus):
	* gst/gstpipeline.h:
	* gst/gstprobe.h:
	* gst/gstqueue.c: (gst_queue_class_init), (gst_queue_init),
	(gst_queue_finalize), (gst_queue_getcaps), (gst_queue_link_sink),
	(gst_queue_link_src), (gst_queue_bufferalloc),
	(gst_queue_locked_flush), (gst_queue_handle_sink_event),
	(gst_queue_is_empty), (gst_queue_is_filled), (gst_queue_chain),
	(gst_queue_loop), (gst_queue_handle_src_event),
	(gst_queue_handle_src_query), (gst_queue_src_activate),
	(gst_queue_change_state):
	* gst/gstqueue.h:
	* gst/gstscheduler.c: (gst_scheduler_init),
	(gst_scheduler_dispose), (gst_scheduler_create_task),
	(gst_scheduler_factory_create):
	* gst/gstscheduler.h:
	* gst/gststructure.c: (gst_structure_get_type),
	(gst_structure_copy_conditional):
	* gst/gststructure.h:
	* gst/gsttaginterface.h:
	* gst/gsttask.c: (gst_task_get_type), (gst_task_class_init),
	(gst_task_init), (gst_task_dispose), (gst_task_create),
	(gst_task_get_state), (gst_task_start), (gst_task_stop),
	(gst_task_pause):
	* gst/gsttask.h:
	* gst/gstthread.c:
	* gst/gstthread.h:
	* gst/gsttypes.h:
	* gst/schedulers/Makefile.am:
	* gst/schedulers/cothreads_compat.h:
	* gst/schedulers/entryscheduler.c:
	* gst/schedulers/faircothreads.c:
	* gst/schedulers/faircothreads.h:
	* gst/schedulers/fairscheduler.c:
	* gst/schedulers/gstbasicscheduler.c:
	* gst/schedulers/gstoptimalscheduler.c:
	* gst/schedulers/gthread-cothreads.h:
	* gst/schedulers/threadscheduler.c:
	(gst_thread_scheduler_task_get_type),
	(gst_thread_scheduler_task_class_init),
	(gst_thread_scheduler_task_init),
	(gst_thread_scheduler_task_start),
	(gst_thread_scheduler_task_stop),
	(gst_thread_scheduler_task_pause), (gst_thread_scheduler_get_type),
	(gst_thread_scheduler_class_init), (gst_thread_scheduler_func),
	(gst_thread_scheduler_init), (gst_thread_scheduler_create_task),
	(gst_thread_scheduler_setup), (gst_thread_scheduler_reset),
	(plugin_init):
	* libs/gst/Makefile.am:
	* libs/gst/bytestream/bytestream.c: (gst_bytestream_get_next_buf):
	* libs/gst/bytestream/filepad.c: (gst_file_pad_init),
	(gst_file_pad_parent_set):
	* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_packet_from_event),
	(gst_dp_event_from_packet):
	* tests/complexity.c: (main):
	* tests/mass_elements.c: (main):
	* testsuite/states/locked.c: (message_received), (main):
	* testsuite/states/parent.c: (main):
	* tools/gst-inspect.c: (print_element_flag_info),
	(print_implementation_info), (print_pad_info):
	* tools/gst-launch.c: (check_intr), (play_handler), (event_loop),
	(main):
	* tools/gst-md5sum.c: (event_loop), (main):
	* tools/gst-typefind.c: (main):
	* tools/gst-xmlinspect.c: (print_element_info):
	Next big merge.
	Added GstBus for mainloop integration.
	Added GstMessage for sending notifications on the bus.
	Added GstTask as an abstraction for pipeline entry points.
	Removed GstThread.
	Removed Schedulers.
	Simplified GstQueue for multithreaded core.
	Made _link threadsafe, removed old capsnego.
	Added STREAM_LOCK and PREROLL_LOCK in GstPad.
	Added pad blocking functions.
	Reworked scheduling functions in GstPad to prepare for
	scheduling updates soon.
	Moved events out of data stream.
	Simplified GstEvent types.
	Added return values to push/pull.
	Removed clocking from GstElement.
	Added prototypes for state change function for next merge.
	Removed iterate from bins and state change management.
	Fixed some elements, disabled others for now.
	Fixed -inspect and -launch.
	Added check for GstBus.

2005-03-10  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-MT-refcounting.txt:
	* docs/design/part-clocks.txt:
	* docs/design/part-gstelement.txt:
	* docs/design/part-gstobject.txt:
	* docs/design/part-standards.txt:
	* gst/gstbin.c: (gst_bin_add_func), (gst_bin_add),
	(gst_bin_remove_func), (gst_bin_remove):
	* gst/gstbin.h:
	* gst/gstbuffer.c:
	* gst/gstcaps.h:
	* testsuite/clock/clock1.c: (main):
	* testsuite/clock/clock2.c: (gst_clock_debug), (element_wait),
	(main):
	* testsuite/dlopen/loadgst.c: (do_test):
	* testsuite/refcounting/bin.c: (add_remove_test1),
	(add_remove_test2), (main):
	* testsuite/refcounting/element.c: (main):
	* testsuite/refcounting/element_pad.c: (main):
	* testsuite/refcounting/pad.c: (main):
	* tools/gst-launch.c: (sigint_handler_sighandler):
	* tools/gst-typefind.c: (main):
	Doc updates.
	Added doc about clock.
	removed gst_bin_iterate_recurse_up(), marked methods
	for removal.
	Fix more testsuites.

2005-03-09  Wim Taymans  <wim@fluendo.com>

	* gst/gstpad.c: (gst_pad_get_direction),
	(_gst_pad_default_fixate_foreach), (gst_pad_collectv),
	(gst_pad_collect_valist):
	* testsuite/bins/interface.c: (main):
	* testsuite/caps/audioscale.c: (test_caps):
	* testsuite/caps/caps.c: (test1), (test2), (test3):
	* testsuite/caps/deserialize.c: (main):
	* testsuite/caps/enumcaps.c: (main):
	* testsuite/caps/filtercaps.c: (main):
	* testsuite/caps/intersect2.c: (main):
	* testsuite/caps/random.c: (main):
	* testsuite/caps/renegotiate.c: (my_fixate), (main):
	* testsuite/caps/sets.c: (check_caps):
	* testsuite/caps/simplify.c: (check_caps), (main):
	* testsuite/caps/subtract.c: (check_caps):
	Fix _pad_get_direction wrt ghostpads.
	Fix caps testsuite.

2005-03-09  Wim Taymans  <wim@fluendo.com>

	* check/Makefile.am:
	* check/gst/gstbin.c: (START_TEST), (gst_bin_suite), (main):
	* check/gst/gstsystemclock.c: (START_TEST), (gst_clock_debug),
	(ok_callback), (error_callback), (gst_systemclock_suite), (main):
	* gst/gstbin.c: (gst_bin_class_init), (gst_bin_set_index_func),
	(gst_bin_set_clock_func), (gst_bin_get_clock_func),
	(gst_bin_add_func), (gst_bin_add), (gst_bin_remove_func),
	(gst_bin_remove), (gst_bin_iterate_recurse_up),
	(bin_element_is_sink), (gst_bin_iterate_sinks),
	(gst_bin_iterate_all_by_interface):
	* gst/gstbin.h:
	* gst/gstelement.c: (gst_element_init), (gst_element_error_full),
	(gst_element_change_state), (gst_element_dispose),
	(gst_element_finalize), (gst_element_set_loop_function):
	* gst/gstelement.h:
	* gst/gstiterator.c: (find_custom_fold_func):
	* gst/gstpad.c: (_gst_pad_default_fixate_foreach),
	(gst_pad_collectv), (gst_pad_collect_valist),
	(gst_pad_template_new):
	* gst/gstpipeline.c: (gst_pipeline_class_init),
	(gst_pipeline_dispose), (gst_pipeline_set_property),
	(gst_pipeline_get_property), (gst_pipeline_get_clock_func),
	(gst_pipeline_get_clock), (gst_pipeline_use_clock),
	(gst_pipeline_set_clock), (gst_pipeline_auto_clock):
	* gst/gstutils.h:
	* gst/schedulers/entryscheduler.c:
	* gst/schedulers/gstbasicscheduler.c:
	(gst_basic_scheduler_cothreaded_chain),
	(gst_basic_scheduler_chain_add_element):
	* testsuite/bins/interface.c: (main):
	Added GstBin test.
	Added GstSystemClock test.
	Implemented clock distribution code in GstBin.
	Implemented iterate sinks method for future use.
	Rearranged gstelement.h
	Fix GstIterator comparison bug.
	Moved some code to GstPipeline, mostly clocking related.

2005-03-09  Wim Taymans  <wim@fluendo.com>

	* configure.ac:
	* gst/gst_private.h:
	* gst/gstbin.c: (gst_bin_add_func), (gst_bin_add),
	(gst_bin_remove_func), (gst_bin_remove),
	(gst_bin_get_by_name_recurse_up):
	* gst/gstclock.c: (gst_clock_id_ref), (gst_clock_id_unref),
	(gst_clock_id_compare_func), (gst_clock_id_wait),
	(gst_clock_id_wait_async), (gst_clock_init),
	(gst_clock_adjust_unlocked), (gst_clock_get_time):
	* gst/gstelement.h:
	* gst/gstinfo.c: (_gst_debug_init):
	* gst/gstobject.h:
	* gst/gstpad.c: (_gst_pad_default_fixate_foreach),
	(gst_pad_collectv), (gst_pad_collect_valist), (gst_pad_query):
	* gst/gstpad.h:
	Bump version number, we're now 0.9.0
	Add future debugging category.
	Fix NULL _unref() in _get_by_name_recurse_up
	Rearrange gstpad.h.
	Update some docs.

2005-03-08  Wim Taymans  <wim@fluendo.com>

	* gst/elements/gstaggregator.c: (gst_aggregator_class_init):
	* gst/elements/gstfakesink.c: (gst_fakesink_class_init):
	* gst/elements/gstfakesrc.c: (gst_fakesrc_class_init):
	* gst/elements/gstfdsink.c: (gst_fdsink_class_init):
	* gst/elements/gstfdsrc.c: (gst_fdsrc_class_init):
	* gst/elements/gstfilesink.c: (gst_filesink_class_init):
	* gst/elements/gstfilesrc.c: (gst_filesrc_class_init):
	* gst/elements/gstidentity.c: (gst_identity_class_init):
	* gst/elements/gstmd5sink.c: (gst_md5sink_class_init):
	* gst/elements/gstmultifilesrc.c: (gst_multifilesrc_class_init):
	* gst/elements/gstshaper.c: (gst_shaper_class_init):
	* gst/elements/gststatistics.c: (gst_statistics_class_init):
	* gst/elements/gsttee.c: (gst_tee_class_init), (gst_tee_getcaps),
	(gst_tee_link):
	* gst/gstelement.c: (gst_element_class_init),
	(gst_element_base_class_init), (gst_element_init),
	(gst_element_get_random_pad), (gst_element_wait_state_change),
	(gst_element_change_state), (gst_element_dispose),
	(gst_element_finalize), (gst_element_set_loop_function):
	* gst/gstelement.h:
	* gst/gstqueue.c: (gst_queue_class_init), (gst_queue_link_src):
	* gst/gstthread.c: (gst_thread_class_init),
	(gst_thread_release_children_locks), (gst_thread_change_state):
	* gst/schedulers/gstbasicscheduler.c:
	(gst_basic_scheduler_loopfunc_wrapper),
	(gst_basic_scheduler_chain_wrapper),
	(gst_basic_scheduler_src_wrapper),
	(gst_basic_scheduler_remove_element):
	* gst/schedulers/gstoptimalscheduler.c: (schedule_group):
	Remove threadsafe properties. Fix elements because GObject
	complains when installing a property before declaring a
	set/get_property handler.
	Rearrange gstelement.h file, use STATE macros for state locks.
	Free mutexes in the finalize method instead of dispose.

2005-03-08  Wim Taymans  <wim@fluendo.com>

	* check/gst/gstobject.c: (START_TEST), (gst_object_suite):
	* gst/gstthread.c: (gst_thread_release_children_locks):
	Added parentage check.
	Fix build og GstThread again.

2005-03-08  Wim Taymans  <wim@fluendo.com>

	* docs/design/part-MT-refcounting.txt:
	* docs/design/part-conventions.txt:
	* docs/design/part-gstobject.txt:
	* docs/design/part-relations.txt:
	* docs/design/part-standards.txt:
	* gst/gstbin.c: (gst_bin_add_func), (gst_bin_add),
	(gst_bin_remove_func), (gst_bin_remove), (gst_bin_iterate_recurse),
	(gst_bin_get_by_name), (gst_bin_get_by_interface),
	(gst_bin_iterate_all_by_interface):
	* gst/gstbuffer.h:
	* gst/gstclock.h:
	* gst/gstelement.c: (gst_element_class_init),
	(gst_element_change_state), (gst_element_set_loop_function):
	* gst/gstelement.h:
	* gst/gstiterator.c:
	* gst/gstobject.c: (gst_object_class_init), (gst_object_ref),
	(gst_object_unref), (gst_object_sink), (gst_object_dispose),
	(gst_object_dispatch_properties_changed), (gst_object_set_name),
	(gst_object_set_parent), (gst_object_unparent),
	(gst_object_check_uniqueness):
	* gst/gstobject.h:
	Docs updates, clean up some headers.

2005-03-07  Wim Taymans  <wim@fluendo.com>

	* check/.cvsignore:
	* check/Makefile.am:
	* check/gst-libs/.cvsignore:
	* check/gst-libs/gdp.c: (START_TEST), (gst_object_suite), (main):
	* check/gst/.cvsignore:
	* check/gst/gstbus.c: (pound_bus_with_messages), (pull_messages),
	(START_TEST), (gstbus_suite), (main):
	* check/gst/gstcaps.c: (START_TEST), (gst_caps_suite), (main):
	* check/gst/gstdata.c: (START_TEST), (thread_ref), (thread_unref),
	(gst_data_suite), (main):
	* check/gst/gstiterator.c: (make_list_of_ints), (START_TEST),
	(add_fold_func), (gstiterator_suite), (main):
	* check/gst/gstobject.c: (gst_fake_object_get_type), (START_TEST),
	(thread_name_object), (thread_name_object_default),
	(gst_object_name_compare), (gst_object_suite), (main):
	* check/gst/gstpad.c: (START_TEST), (thread_link_unlink),
	(gst_pad_suite), (main):
	* check/gstcheck.c: (gst_check_log_message_func),
	(gst_check_log_critical_func), (gst_check_init):
	* check/gstcheck.h:
	* check/pipelines/simple_launch_lines.c: (setup_pipeline),
	(run_pipeline), (START_TEST), (simple_launch_lines_suite), (main):
	Added checks.

2005-03-07  Wim Taymans  <wim@fluendo.com>

	* gst/gstiterator.c: (gst_iterator_init), (gst_iterator_new),
	(gst_list_iterator_next), (gst_list_iterator_resync),
	(gst_list_iterator_free), (gst_iterator_new_list),
	(gst_iterator_pop), (gst_iterator_next), (gst_iterator_resync),
	(gst_iterator_free), (gst_iterator_push), (filter_next),
	(filter_resync), (filter_uninit), (filter_free),
	(gst_iterator_filter), (gst_iterator_fold), (foreach_fold_func),
	(gst_iterator_foreach), (find_custom_fold_func),
	(gst_iterator_find_custom):
	* gst/gstiterator.h:
	Added missing files.

2005-03-07  Wim Taymans  <wim@fluendo.com>

	* Makefile.am:
	* configure.ac:
	* docs/design/part-MT-refcounting.txt:
	* docs/design/part-conventions.txt:
	* docs/design/part-gstobject.txt:
	* docs/design/part-relations.txt:
	* examples/mixer/mixer.c: (main):
	* examples/thread/thread.c: (eos), (main):
	* gst/Makefile.am:
	* gst/autoplug/gstsearchfuncs.c: (gst_autoplug_caps_intersect):
	* gst/autoplug/gstspider.c: (gst_spider_identity_plug),
	(gst_spider_plug_from_srcpad):
	* gst/autoplug/gstspideridentity.c: (gst_spider_identity_getcaps),
	(gst_spider_identity_change_state),
	(gst_spider_identity_sink_loop_type_finding):
	* gst/elements/gstfakesrc.c: (gst_fakesrc_loop):
	* gst/elements/gstidentity.c: (gst_identity_init):
	* gst/elements/gsttee.c: (gst_tee_init), (gst_tee_getcaps),
	(gst_tee_link), (gst_tee_request_new_pad), (gst_tee_chain):
	* gst/elements/gsttypefindelement.c: (free_entry):
	* gst/gst.c:
	* gst/gst.h:
	* gst/gstbin.c: (gst_bin_init), (gst_bin_get_clock_func),
	(gst_bin_set_clock_func), (gst_bin_auto_clock),
	(gst_bin_set_index), (gst_bin_set_element_sched),
	(gst_bin_unset_element_sched), (gst_bin_add_func), (gst_bin_add),
	(gst_bin_remove_func), (gst_bin_remove), (iterate_child),
	(gst_bin_iterate_elements), (iterate_child_recurse),
	(gst_bin_iterate_recurse), (gst_bin_dispose), (compare_name),
	(gst_bin_get_by_name), (gst_bin_get_by_name_recurse_up),
	(compare_interface), (gst_bin_get_by_interface),
	(gst_bin_iterate_all_by_interface), (gst_bin_iterate_func):
	* gst/gstbin.h:
	* gst/gstbuffer.c: (gst_buffer_get_type), (_gst_buffer_sub_free),
	(gst_buffer_default_free), (gst_buffer_default_copy),
	(gst_buffer_new), (gst_buffer_get_caps), (gst_buffer_set_caps),
	(gst_buffer_create_sub):
	* gst/gstbuffer.h:
	* gst/gstcaps.c: (gst_caps_get_type), (gst_caps_new_empty),
	(_gst_caps_free), (gst_caps_make_writable), (gst_caps_ref),
	(gst_caps_unref), (gst_static_caps_get),
	(gst_caps_remove_and_get_structure), (gst_caps_append),
	(gst_caps_append_structure), (gst_caps_remove_structure),
	(gst_caps_copy_nth), (gst_caps_set_simple),
	(gst_caps_set_simple_valist), (gst_caps_is_fixed_foreach),
	(gst_structure_is_equal_foreach), (gst_caps_is_subset),
	(gst_caps_structure_intersect_field), (gst_caps_intersect),
	(gst_caps_structure_subtract_field), (gst_caps_subtract),
	(gst_caps_normalize_foreach), (gst_caps_compare_structures),
	(gst_caps_structure_figure_out_union),
	(gst_caps_switch_structures), (gst_caps_do_simplify),
	(gst_caps_replace), (gst_caps_from_string),
	(gst_caps_copy_conditional):
	* gst/gstcaps.h:
	* gst/gstclock.c: (gst_clock_entry_new), (gst_clock_id_ref),
	(_gst_clock_id_free), (gst_clock_id_unref),
	(gst_clock_id_compare_func), (gst_clock_id_wait),
	(gst_clock_id_wait_async), (gst_clock_class_init),
	(gst_clock_init), (gst_clock_dispose), (gst_clock_adjust_unlocked),
	(gst_clock_get_time), (gst_clock_set_time_adjust),
	(gst_clock_set_property), (gst_clock_get_property):
	* gst/gstclock.h:
	* gst/gstcompat.h:
	* gst/gstcpu.c: (_gst_cpu_initialize_i386), (gst_cpu_get_flags):
	* gst/gstdata.c: (gst_data_is_writable), (gst_data_copy_on_write):
	* gst/gstdata.h:
	* gst/gstelement.c: (gst_element_class_init), (gst_element_init),
	(gst_element_requires_clock), (gst_element_provides_clock),
	(gst_element_set_clock), (gst_element_clock_wait),
	(gst_element_wait), (gst_element_set_time_delay),
	(gst_element_is_indexable), (gst_element_add_pad),
	(gst_element_add_ghost_pad), (gst_element_remove_pad),
	(pad_compare_name), (gst_element_get_static_pad),
	(gst_element_request_pad), (gst_element_get_request_pad),
	(gst_element_get_pad), (iterate_pad), (gst_element_iterate_pads),
	(gst_element_class_get_pad_template_list),
	(gst_element_class_get_pad_template), (gst_element_error_func),
	(gst_element_get_random_pad), (gst_element_get_event_masks),
	(gst_element_send_event), (gst_element_seek),
	(gst_element_get_query_types), (gst_element_query),
	(gst_element_get_formats), (gst_element_convert),
	(gst_element_is_locked_state), (gst_element_set_locked_state),
	(gst_element_sync_state_with_parent), (gst_element_change_state),
	(gst_element_finalize), (gst_element_yield),
	(gst_element_interrupt), (gst_element_set_scheduler),
	(gst_element_get_scheduler), (gst_element_set_loop_function):
	* gst/gstelement.h:
	* gst/gstevent.h:
	* gst/gstformat.c: (_gst_format_initialize), (gst_format_register),
	(gst_format_get_by_nick), (gst_format_get_details),
	(gst_format_iterate_definitions):
	* gst/gstformat.h:
	* gst/gstindex.c: (gst_index_gtype_resolver):
	* gst/gstinfo.c:
	* gst/gstinfo.h:
	* gst/gstmemchunk.c: (gst_mem_chunk_alloc), (gst_mem_chunk_alloc0),
	(gst_mem_chunk_free):
	* gst/gstobject.c: (gst_object_class_init), (gst_object_init),
	(gst_object_ref), (gst_object_unref), (gst_object_sink),
	(gst_object_replace), (gst_object_dispose), (gst_object_finalize),
	(gst_object_dispatch_properties_changed),
	(gst_object_set_name_default), (gst_object_set_name),
	(gst_object_get_name), (gst_object_set_name_prefix),
	(gst_object_get_name_prefix), (gst_object_set_parent),
	(gst_object_get_parent), (gst_object_unparent),
	(gst_object_check_uniqueness), (gst_object_save_thyself),
	(gst_object_restore_thyself), (gst_object_real_restore_thyself),
	(gst_object_set_property), (gst_object_get_property),
	(gst_object_get_path_string):
	* gst/gstobject.h:
	* gst/gstpad.c: (gst_pad_dispose), (gst_real_pad_class_init),
	(gst_real_pad_init), (gst_real_pad_get_property),
	(gst_pad_custom_new), (gst_pad_get_direction),
	(gst_pad_set_active), (gst_pad_is_active),
	(gst_pad_set_event_function), (gst_pad_is_linked),
	(gst_pad_link_free), (gst_pad_link_intersect),
	(gst_pad_link_fixate), (gst_pad_set_caps),
	(gst_pad_try_set_caps_nonfixed), (gst_pad_set_pad_template),
	(gst_pad_get_real_parent), (gst_pad_add_ghost_pad),
	(gst_pad_remove_ghost_pad), (_gst_pad_default_fixate_foreach),
	(gst_pad_link_unnegotiate), (gst_pad_proxy_fixate),
	(gst_pad_get_caps), (gst_pad_peer_get_caps),
	(gst_pad_get_pad_template_caps), (gst_pad_get_peer),
	(gst_pad_realize), (gst_pad_get_allowed_caps),
	(gst_real_pad_dispose), (gst_real_pad_finalize),
	(gst_pad_collectv), (gst_pad_collect_valist),
	(gst_pad_template_dispose), (gst_pad_template_new),
	(gst_pad_get_internal_links):
	* gst/gstpad.h:
	* gst/gstpipeline.c: (gst_pipeline_dispose),
	(gst_pipeline_change_state):
	* gst/gstpipeline.h:
	* gst/gstplugin.c:
	* gst/gstpluginfeature.c: (gst_plugin_feature_get_name),
	(gst_plugin_feature_set_rank), (gst_plugin_feature_get_rank):
	* gst/gstpluginfeature.h:
	* gst/gstprobe.c: (gst_probe_dispatcher_dispatch):
	* gst/gstquery.c: (_gst_query_type_initialize),
	(gst_query_type_register), (gst_query_type_get_by_nick),
	(gst_query_type_get_details), (gst_query_type_iterate_definitions):
	* gst/gstquery.h:
	* gst/gstqueue.c: (gst_queue_link_sink), (gst_queue_link_src):
	* gst/gstscheduler.c: (gst_scheduler_add_element),
	(gst_scheduler_factory_create):
	* gst/gststructure.c: (gst_structure_set_parent_refcount),
	(gst_structure_free), (gst_structure_set_name),
	(gst_structure_id_set_value), (gst_structure_set_value),
	(gst_structure_set_valist), (gst_structure_remove_field),
	(gst_structure_remove_fields),
	(gst_structure_remove_fields_valist),
	(gst_structure_remove_all_fields), (gst_structure_foreach),
	(gst_structure_map_in_place),
	(gst_caps_structure_fixate_field_nearest_int),
	(gst_caps_structure_fixate_field_nearest_double):
	* gst/gststructure.h:
	* gst/gstsystemclock.c: (gst_system_clock_class_init),
	(gst_system_clock_init), (gst_system_clock_dispose),
	(gst_system_clock_async_thread),
	(gst_system_clock_id_wait_unlocked), (gst_system_clock_id_wait),
	(gst_system_clock_id_wait_async), (gst_system_clock_id_unschedule):
	* gst/gstsystemclock.h:
	* gst/gsttag.c: (gst_tag_list_add_value_internal),
	(gst_tag_list_copy_foreach), (structure_foreach_wrapper):
	* gst/gsttaginterface.c:
	* gst/gstthread.c: (gst_thread_dispose),
	(gst_thread_release_children_locks), (gst_thread_change_state),
	(gst_thread_main_loop):
	* gst/gsttrashstack.h:
	* gst/gsttypefind.c: (gst_type_find_factory_dispose):
	* gst/gsttypes.h:
	* gst/gstutils.c: (gst_element_get_compatible_pad_template),
	(gst_element_request_pad), (gst_element_get_pad_from_template),
	(gst_element_request_compatible_pad),
	(gst_element_get_compatible_pad_filtered),
	(gst_element_get_compatible_pad), (gst_element_state_get_name),
	(gst_element_link_pads_filtered), (gst_element_link_filtered),
	(gst_element_link_many), (gst_element_link),
	(gst_element_link_pads), (gst_element_unlink_pads),
	(gst_element_unlink_many), (gst_element_unlink),
	(gst_pad_can_link_filtered), (gst_pad_can_link),
	(gst_pad_use_fixed_caps), (gst_pad_get_fixed_caps_func),
	(gst_object_default_error), (gst_bin_add_many),
	(gst_bin_remove_many), (gst_element_populate_std_props),
	(gst_element_class_install_std_props), (gst_buffer_merge),
	(gst_buffer_stamp), (intersect_caps_func), (gst_pad_proxy_getcaps),
	(link_fold_func), (gst_pad_proxy_setcaps):
	* gst/gstutils.h:
	* gst/gstvalue.c: (gst_value_deserialize_string):
	* gst/parse/grammar.y:
	* gst/schedulers/gstbasicscheduler.c:
	(gst_basic_scheduler_cothreaded_chain),
	(gst_basic_scheduler_chain_recursive_add),
	(gst_basic_scheduler_pad_link):
	* gst/schedulers/gstoptimalscheduler.c:
	(get_group_schedule_function),
	(gst_opt_scheduler_state_transition),
	(gst_opt_scheduler_add_element), (element_get_reachables_func):
	* libs/gst/bytestream/bytestream.c:
	* libs/gst/dataprotocol/dataprotocol.c:
	(gst_dp_header_from_buffer):
	* po/nb.po:
	* po/ru.po:
	* tests/threadstate/threadstate2.c: (eos):
	* tools/gst-compprep.c: (main):
	* tools/gst-inspect.c: (print_field), (print_element_flag_info),
	(print_pad_info), (print_children_info):
	* tools/gst-launch.c: (idle_func), (main):
	* tools/gst-md5sum.c: (idle_func), (main):
	* tools/gst-xmlinspect.c: (print_element_info):
	First THREADED backport attempt, focusing on adding locks and
	making sure the API is threadsafe. Needs more work. More docs
	follow this week.

2005-02-24  Andy Wingo  <wingo@pobox.com>

	* tests/bench-complexity.scm:
	* tests/complexity.gnuplot: New files, good for running complexity
	benchmarks.

	* tests/Makefile.am:
	* tests/complexity.c: New test, sets up N elements, at each level
	teeing into M streams per element. Eeeenteresting.

	* tests/mass_elements.gnuplot: gnuplot file for the mass_elements
	benchmark. Run as gnuplot mass_elements.gnuplot > foo.ps, after
	running bench-mass_elements.scm.

	* tests/bench-mass_elements.scm: New script, runs mass_elements
	for various numbers of identities, outputting the results to a
	file. Requires guile 1.6. Just for testing.

2005-02-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/schedulers/fairscheduler.c:
	  compile with debug disabled

2005-02-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  hunting season on 0.9 is now OPEN
