=== release 0.10.14 ===

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

	* configure.ac:
	  releasing 0.10.14, "Breathing Vacuum"

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

	* gst/gstelement.c: (gst_element_class_set_details_simple):
	* gst/gstelement.h:
	  Make strings passed to gst_element_class_set_details_simple()
	  constant, as they should be (#462752).

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

	* gst/gstbin.c: (gst_bin_change_state_func),
	(bin_handle_async_done), (gst_bin_handle_message_func):
	Don't forget about the fact that some element went ASYNC even after a
	resync. This makes us post the ASYNC_DONE message correctly.
	Fixes #462558.

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

	* gst/gstregistry.c: (gst_registry_add_feature):
	When replacing an existing feature in the registry, make sure to
	continue holding a reference until we've replaced the name string
	within our feature hash table. Make sure to use g_hash_table_replace
	instead of g_hash_table_insert to ensure the new name string is used
	as a key instead of the old one that we're about to free.
	Fixes: #462085

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

	* gst/gstpluginfeature.c: (gst_plugin_feature_finalize),
	(gst_plugin_feature_set_name):
	Revert patch from #459466 until after the release and we can work
	out exactly what the problem is (if any).

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

	* docs/gst/gstreamer-sections.txt:
	* gst/gsttaglist.c:
	* gst/gsttaglist.h:
	  API: add GST_TAG_LICENSE_URI and GST_TAG_COPYRIGHT_URI (#451939).

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

	* docs/libs/Makefile.am:
	Include our build-prefix libs and includes before the generic ones to
	avoid linking against the installed libs when we want the build-tree
	ones.

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

	Patch by: Steve Fink  <sphink gmail com>

	* docs/pwg/building-testapp.xml:
	  Mention that GST_PLUGIN_PATH or --gst-plugin-path might be needed
	  if people try to build or install the example from the plugin
          template against a GStreamer from package using the configure
	  defaults.

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

	Patch by: Steve Fink  <sphink gmail com>

	* tools/gst-inspect.1.in:
	  Document --print-all and --print-plugin-auto-install-info command
	  line options in man page.

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

	* docs/gst/gstreamer-sections.txt:
	Add docs for new api function.

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

	* gst/gstelementfactory.c: (gst_element_factory_has_interface):
	* gst/gstelementfactory.h:
	API: gst_element_factory_has_interface()
	Added method to check if an element factory implements a named
	interface.

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

	* configure.ac:
	* docs/gst/gstreamer.types.in:
	  Another conditional doc check.

	* gst/gstmessage.c:
	* gst/gstparamspecs.h:
	* gst/gstregistrybinary.c: (gst_registry_binary_read_cache):
	* gst/gstvalue.c:
	* gst/gstxml.h:
	  API-doc fixes.

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

	* gst/gstregistrybinary.c: (gst_registry_binary_check_magic),
	(gst_registry_binary_load_feature),
	(gst_registry_binary_load_plugin),
	(gst_registry_binary_read_cache):
	  Print error just once and with additional info.

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

	* libs/gst/base/gsttypefindhelper.c: (helper_find_peek),
	(helper_find_suggest), (helper_find_get_length),
	(gst_type_find_helper_get_range), (buf_helper_find_suggest),
	(gst_type_find_helper_for_buffer):
	  Cleanup the typefindhelper code and add private doc comments.

2007-07-24  Edward Hervey  <bilboed@bilboed.com>

	* plugins/elements/gstcapsfilter.c: (gst_capsfilter_class_init),
	(gst_capsfilter_transform_size), (gst_capsfilter_prepare_buf):
	Fix capsfilter for cases where the caps set on capsfilter will provide
	additional information.
	Fixes #449197

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

	* gst/gsttypefindfactory.c:
	  Fix docs that recommened wrong function to use.

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

	* tools/gst-inspect.c: (print_plugin_features):
	  Also give media-type for typefinders in element output.

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

	* gst/gstregistry.c: (gst_registry_init), (gst_registry_finalize),
	(gst_registry_remove_features_for_plugin_unlocked),
	(gst_registry_add_feature), (gst_registry_remove_feature),
	(gst_registry_lookup_feature_locked):
	* gst/gstregistry.h:
	  Speed up gst_registry_lookup_feature_locked() by using a hashmap.
	  Fixes #459501.

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

	* gst/gstpluginfeature.c: (gst_plugin_feature_finalize),
	(gst_plugin_feature_set_name):
	  Avoid double memory usage for pluginfeature names. Fixes #459466.

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

	* gst/gstpad.h:
	  Small addition to GST_FLOW_IS_FATAL() docs: mention that elements
	  driving the pipeline may need to explicitly check for NOT_LINKED as
	  well, since IS_FATAL doesn't cover that.

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

	* docs/pwg/advanced-types.xml:
	  Fix typo and duplicate entry in video formats list.

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

	* libs/gst/controller/gstinterpolation.c:
	Also round to the nearest int when using cubic interpolation.

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

	* libs/gst/controller/gstinterpolation.c:
	When linearly interpolating integer types, round to the nearest int
	by adding 0.5. Don't do it for float/double types.
	Fixes the failing controller test on my machine, which is somehow
	rounding differently than on the buildbots.

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

	* tools/gst-plot-timeline.py:
	  Better log parsing (categories can have -). Adjust text vs. lines, so
	  that they span the same y-range.	  

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

	* docs/random/ensonic/audiobaseclasses.txt:
	* docs/random/ensonic/dynlink.txt:
	* docs/random/ensonic/profiling.txt:
	  Save my thoughts.

	* docs/random/moving-plugins:
	  Add note to use g_assert type macros.

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

	* configure.ac:
	* libs/gst/check/Makefile.am:
	  Add libm check as we use in for plugins.

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

	* gst/gstbin.c: (gst_bin_continue_func):
	Check that the state_cookie hasn't changed since the continue_func
	was scheduled. Avoids problems where the state changes back to
	something it shouldn't be because it was changed in the meantime.

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

	* gst/gstregistrybinary.c: (gst_registry_binary_save_const_string),
	(gst_registry_binary_save_string),
	(gst_registry_binary_save_pad_template),
	(gst_registry_binary_save_feature),
	(gst_registry_binary_save_plugin),
	(gst_registry_binary_load_feature),
	(gst_registry_binary_load_plugin),
	(gst_registry_binary_read_cache):
	  Fix memory leak. Be less verbose in the log.

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

	* tests/check/elements/.cvsignore:
	Add file to cvsignore as commanded.

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

	* tests/check/elements/multiqueue.c: (mq_dummypad_chain),
	(mq_dummypad_event), (run_output_order_test):
	Use a GStaticMutex to protect all cases where libcheck
	fail_if/fail_unless macros might be called from multiple threads
	simultaneously to avoid errors like:
	  "check_pack.c:107: :-1081725400:Bad message type arg"

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

	* tests/check/pipelines/stress.c: (GST_START_TEST):
	Make sure we set the pipeline back to the NULL state before
	dropping our final reference.

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

	* tests/check/elements/tee.c: (GST_START_TEST):
	Make the tee stress-test a little less stressful so it doesn't just
	time out on slow-machines, and remove a small race when it's starting 
	up by adding a get_state() call.

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

	* gst/gst.c:
	  Avoid reading registry twice on startup. Fixes #457322.

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

	* pkgconfig/gstreamer-check-uninstalled.pc.in:
	* pkgconfig/gstreamer-check.pc.in:
	Substitute the CFLAGS for libcheck into our .pc file too so that
	dependent modules will pick it up properly if libcheck is installed
	into some other prefix.

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

	* configure.ac:
	Revert the pkg-config check for libcheck, since it pulls in the
	wrong non-PIC libcheck.a on Ubuntu and probably Fedora too. We need
	a proper solution, either from the check project, or something else.

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

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

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

	* gst/gsttaglist.c:
	  Fix doc syntax.

	* gst/gstutils.c:
	* gst/gstutils.h:
	  Add deprecation guards.

	* libs/gst/base/gstcollectpads.h:
	  Don't document object (this is implicitly private).

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

	* gst/gststructure.c: (gst_structure_parse_value):
	  When deserialising foo=bar without a type cast, check if it's a
	  boolean before falling back to a string type, otherwise things like
	  audiotestsrc ! audio/x-raw-int,signed=true ! fakesink won't work,
	  because the filtercaps end up having a signed=(string)true field,
	  which causes problems later when intersection caps.

	* tests/check/gst/gststructure.c: (GST_START_TEST):
	  Add a unit test for this.

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

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

	* libs/gst/controller/Makefile.am:
	* libs/gst/controller/gstcontroller.c:
	(gst_controlled_property_add_interpolation_control_source),
	(gst_controlled_property_new), (gst_controlled_property_free),
	(gst_controller_find_controlled_property),
	(gst_controller_new_valist), (gst_controller_new_list),
	(gst_controller_new), (gst_controller_remove_properties_valist),
	(gst_controller_remove_properties_list),
	(gst_controller_remove_properties),
	(gst_controller_set_property_disabled),
	(gst_controller_set_disabled), (gst_controller_set_control_source),
	(gst_controller_get_control_source), (gst_controller_get),
	(gst_controller_sync_values), (gst_controller_get_value_array),
	(_gst_controller_dispose), (gst_controller_get_type),
	(gst_controlled_property_set_interpolation_mode),
	(gst_controller_set), (gst_controller_set_from_list),
	(gst_controller_unset), (gst_controller_unset_all),
	(gst_controller_get_all), (gst_controller_set_interpolation_mode):
	* libs/gst/controller/gstcontroller.h:
	* libs/gst/controller/gstcontrollerprivate.h:
	* libs/gst/controller/gstcontrolsource.c:
	(gst_control_source_class_init), (gst_control_source_init),
	(gst_control_source_get_value),
	(gst_control_source_get_value_array), (gst_control_source_bind):
	* libs/gst/controller/gstcontrolsource.h:
	* libs/gst/controller/gsthelper.c: (gst_object_set_control_source),
	(gst_object_get_control_source):
	* libs/gst/controller/gstinterpolation.c:
	(gst_interpolation_control_source_find_control_point_node),
	(gst_interpolation_control_source_get_first_value),
	(_interpolate_none_get), (interpolate_none_get),
	(interpolate_none_get_boolean_value_array),
	(interpolate_none_get_enum_value_array),
	(interpolate_none_get_string_value_array),
	(_interpolate_trigger_get), (interpolate_trigger_get),
	(interpolate_trigger_get_boolean_value_array),
	(interpolate_trigger_get_enum_value_array),
	(interpolate_trigger_get_string_value_array):
	* libs/gst/controller/gstinterpolationcontrolsource.c:
	(gst_control_point_free), (gst_interpolation_control_source_reset),
	(gst_interpolation_control_source_new),
	(gst_interpolation_control_source_set_interpolation_mode),
	(gst_interpolation_control_source_bind),
	(gst_control_point_compare), (gst_control_point_find),
	(gst_interpolation_control_source_set_internal),
	(gst_interpolation_control_source_set),
	(gst_interpolation_control_source_set_from_list),
	(gst_interpolation_control_source_unset),
	(gst_interpolation_control_source_unset_all),
	(gst_interpolation_control_source_get_all),
	(gst_interpolation_control_source_get_count),
	(gst_interpolation_control_source_init),
	(gst_interpolation_control_source_finalize),
	(gst_interpolation_control_source_dispose),
	(gst_interpolation_control_source_class_init):
	* libs/gst/controller/gstinterpolationcontrolsource.h:
	* libs/gst/controller/gstinterpolationcontrolsourceprivate.h:
	API: Refactor GstController into the core controller which can take
	a GstControlSource for providing actual values for timestamps.
	Implement a interpolation control source and use this for backward
	compatibility, deprecate a bunch of functions that are now handled
	by GstControlSource or GstInterpolationControlSource.
	Make it possible to disable the controller completely or only for
	specific properties. Fixes #450711.
	* docs/libs/gstreamer-libs-docs.sgml:
	* docs/libs/gstreamer-libs-sections.txt:
	* docs/libs/gstreamer-libs.types:
	Add new functions and classes to the docs.
	* tests/check/libs/controller.c: (GST_START_TEST),
	(gst_controller_suite):
	* tests/examples/controller/audio-example.c: (main):
	Port unit test and example to the new API and add some new
	unit tests.

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

	Patch by: Mark Nauwelaerts <manauw at skynet be>

	* plugins/elements/gstmultiqueue.c:
	(gst_multi_queue_get_internal_links), (apply_buffer),
	(single_queue_overrun_cb), (gst_single_queue_new):
	Implement non-default GstPadIntLinkFunction for multiqueue pads so that
	the pipeline layout can be tracked correctly. Fixes #453732.

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

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

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

	* tools/gst-launch.c: (main):
	When we got an error, there is no point in waiting for preroll when
	shutting down.

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

	* plugins/elements/gsttee.c: (gst_tee_base_init),
	(gst_tee_request_new_pad), (gst_tee_release_pad),
	(gst_tee_find_buffer_alloc), (gst_tee_buffer_alloc),
	(gst_tee_do_push), (clear_pads), (gst_tee_handle_buffer),
	(gst_tee_chain):
	Be a lot smarter when deciding what srcpad to use for proxying
	the buffer_alloc. Also handle pad added/removed when doing so.
	Fixes #357959.
	Keep track of what pads we already pushed on in case we have pads
	added/removed while pushing. Fixes #374639 

	* tests/check/Makefile.am:
	* tests/check/elements/tee.c: (handoff), (GST_START_TEST),
	(tee_suite):
	Added unit test for pad resync.

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

	* po/nl.po:
	* po/sv.po:
	  Updated translations.

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

	translation by: Tommi Vainikainen <Tommi.Vainikainen@iki.fi>

	* po/LINGUAS:
	* po/fi.po:
	  Added new Finnish translation.

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

	* plugins/elements/gstmultiqueue.c: (apply_buffer),
	(single_queue_overrun_cb):
	When figuring out when a queue is filled, use our internal time estimate
	based on segments, just like check_full does.

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

	* gst/gstminiobject.c: (gst_mini_object_get_type):
	  Remove 3 do-nothing methods.

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

	Patch by: Tim Angus <tim at ngus dot net>

	* plugins/elements/gstcapsfilter.c: (gst_capsfilter_class_init),
	(gst_capsfilter_set_property):
	Take a reference instead of a copy when setting "caps".
	Fix documentation to clarify this behaviour. Fixes #449414.

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

	* gst/gstindexfactory.c: (gst_index_factory_get_type):
	* gst/gstplugin.c: (gst_plugin_init):
	* gst/gstpluginfeature.c: (gst_plugin_feature_init):
	* gst/gstquery.c: (gst_query_get_type):
	* gst/gstregistry.c: (gst_registry_init):
	* gst/gsturi.c: (gst_uri_handler_base_init):
	  Remove empty instance_init() functions to save relocs and lessen the
	  noise. Remove some of the function prototypes that are doubled by
	  G_DEFINE_TYPE.
	  
2007-06-27  Wim Taymans  <wim@fluendo.com>

	Patch by: Étienne Noreau-Hébert <etienne at deepunder dot org>

	* gst/gstghostpad.c: (gst_proxy_pad_save_thyself):
	Add peer and direction in the XML serialisation of ghostpads.
	Fixes #449226.

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

	* configure.ac:
	  Preserve useful information, thanks Tim.

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

	* plugins/elements/gstmultiqueue.c: (gst_multi_queue_init),
	(gst_single_queue_flush), (apply_segment), (apply_buffer),
	(gst_single_queue_push_one), (gst_multi_queue_loop),
	(gst_multi_queue_sink_activate_push), (gst_multi_queue_sink_event),
	(gst_multi_queue_src_activate_push), (wake_up_next_non_linked),
	(compute_high_id), (gst_single_queue_new):
	* plugins/elements/gstmultiqueue.h:
	Take the multiqueue lock when updating the fill level so we don't get
	confused. 

	After applying a buffer or event on the src pad segment, make sure to
	call gst_data_queue_limits_changed() to get the data queue to unblock
	and check the filled state again.
	
	Rework the not-linked pad handling so the logic is that not-linked 
	pads can push as fast as they like, but only so they never get 
	ahead of any linked pads.

	* tests/check/elements/multiqueue.c: (mq_sinkpad_to_srcpad),
	(mq_dummypad_getcaps), (mq_dummypad_chain), (mq_dummypad_event),
	(run_output_order_test), (GST_START_TEST), (multiqueue_suite):

	Add a test to check that not-linked pads always stay behind
	linked pads.

	Fixes: #430682

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

	* docs/random/release:
	  Some updates to the release procedure.

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

	* gst/gstelementfactory.c: (__gst_element_details_clear):
	  Microoptimization that saves stunning 80 bytes.

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

	* docs/plugins/gstreamer-plugins.args:
	* docs/plugins/inspect/plugin-coreelements.xml:
	* docs/plugins/inspect/plugin-coreindexers.xml:
	  Update docs with caps info.

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

	* po/it.po:
	  Updated Italian translation.

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

	* ChangeLog:
	* po/vi.po:
	  Update Vietnamese translations.

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

	* libs/gst/base/gstbasesink.c:
	  Remove unused signal enum.

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

	* docs/gst/gstreamer-sections.txt:
	* gst/gstelement.c:
	* gst/gstutils.c: (gst_type_register_static_full):
	Beef up and include the docs for gst_type_register_static_full and
	gst_element_class_set_details_simple and add the API keyword
	in the ChangeLog.

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

	* plugins/elements/gstmultiqueue.c: (gst_multi_queue_set_property),
	(update_time_level), (gst_single_queue_push_one),
	(gst_multi_queue_chain), (gst_multi_queue_sink_event),
	(single_queue_overrun_cb), (single_queue_underrun_cb),
	(single_queue_check_full):
	Fix setting max-* properties after adding queues.
	Use IS_FILLED for checking visible items.
	Signal overrun if multiple queues overrun.
	Add extra debug output.
	Patch by: Wim Taymans <wim@fluendo.com>

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

	* gst/gstelement.c: (gst_element_class_set_details_simple):
	* gst/gstelement.h:
	* gst/gstutils.c: (gst_type_register_static_full):
	* gst/gstutils.h:
	* plugins/elements/gstcapsfilter.c: (gst_capsfilter_base_init):
	* plugins/elements/gstfakesink.c: (gst_fake_sink_base_init):
	* plugins/elements/gstfakesrc.c: (gst_fake_src_base_init):
	* plugins/elements/gstfdsink.c: (gst_fd_sink_base_init):
	* plugins/elements/gstfdsrc.c: (gst_fd_src_base_init):
	* plugins/elements/gstfilesink.c: (gst_file_sink_base_init):
	* plugins/elements/gstfilesrc.c: (gst_file_src_base_init):
	* plugins/elements/gstidentity.c: (gst_identity_base_init):
	* plugins/elements/gstmultiqueue.c: (gst_multi_queue_base_init):
	* plugins/elements/gstqueue.c: (gst_queue_base_init),
	(apply_buffer), (gst_queue_chain):
	* plugins/elements/gsttee.c: (gst_tee_base_init):
	* plugins/elements/gsttypefindelement.c:
	(gst_type_find_element_base_init),
	(gst_type_find_element_class_init):
	  Saving relocations for GTypeInfo and GstElementDetails. Fixes #437457.
	  API: add gst_type_register_static_full
	  API: add gst_element_class_set_details_simple

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

	* docs/pwg/advanced-types.xml:
	  Fix typo in iana.org URI.

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

	* tests/check/pipelines/simple-launch-lines.c
	(test_state_change_returns): Enable pull-mode tests now that
	basesink has been fixed.

	* libs/gst/base/gstbasesink.c (gst_base_sink_needs_preroll):
	Changed from gst_base_sink_is_prerolled, reversing the sense of
	the return value. Returns FALSE also if the sink is in pull mode,
	in which case it needs no preroll.
	(gst_base_sink_query, gst_base_sink_change_state): Update for
	needs_preroll change.
	(gst_base_sink_change_state): Add a case for READY_TO_PAUSED after
	chaining up, in which we return SUCCESS directly if we activated
	in pull mode instead of ASYNC. Involves countering an async_start
	message sent before chaining up; not sure if this is correct, in
	an ideal world we only send async-start when activating in push
	mode.

	* tests/check/pipelines/simple-launch-lines.c
	(test_state_change_returns): New test, partially disabled until
	basesink is fixed.

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

	* plugins/elements/gstmultiqueue.c: (apply_buffer),
	(gst_multi_queue_sink_event):
	Fix event leak.

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

	* gst/gstbin.c: (gst_bin_add_func), (gst_bin_remove_func),
	(gst_bin_change_state_func), (bin_push_state_continue),
	(bin_handle_async_start), (bin_handle_async_done),
	(gst_bin_handle_message_func):
	Move the common code for posting state-change messages into
	one function.
	Broadcast the state signal after we posted the messages.
	Mark the bin as busy when it's doing a state-change.
	Make sure async-start/done messages don't interfere with the bin's
	state when it's busy.
	After the state change, let the bin check which elements completed the
	state change while it was busy so that it can update its state.

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

	* docs/random/release:
	Add a note about updating the doap file to the release checklist

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

	* plugins/elements/gstmultiqueue.c: (apply_buffer),
	(gst_single_queue_push_one), (gst_multi_queue_chain),
	(gst_multi_queue_sink_event):
	Make sure we don't reference the buffer/event after we have given away
	ownership in the queue.

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

	* plugins/elements/gstmultiqueue.c: (gst_single_queue_flush),
	(gst_multi_queue_chain), (gst_multi_queue_sink_event):
	Update queue state _after_ adding the item in the queue because else we
	could end up being full without the element added yet.

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

	* gst/gstbin.c: (gst_bin_init), (gst_bin_add_func),
	(gst_bin_remove_func), (gst_bin_get_state_func),
	(gst_bin_element_set_state), (gst_bin_continue_func),
	(bin_push_state_continue), (bin_handle_async_start),
	(bin_handle_async_done), (gst_bin_handle_message_func):
	* gst/gstbin.h:
	Immediatly commit the toplevel bin state when receiving an async-done
	message. This enables us to avoid spawning a thread to commit the state
	in some common cases and it also avoids some races.
	Avoid spawning a state thread when adding/removing async elements to a
	toplevel bin. Instead we immediatly update the bin state.
	Get rid of iterating all the children when getting the state in the bin
	because it is now always up-to-date.
	Fix bug where locked elements would always return _SUCCESS even it they
	returned NO_PREROLL before being locked.
	Fix the order of the state_change, async-start/done messages that was
	sometimes incorrect.
	Mark the state_dirty field as deprecated, we don't need it anymore as we
	are always up-to-date.

	* gst/gstelement.c: (gst_element_get_state_func),
	(gst_element_continue_state):
	Small debug inprovements.
	Return the previous element state return when nothing is pending instead
	of blindly returning SUCCESS.

	* tests/check/generic/sinks.c: (GST_START_TEST), (pad_blocked_cb),
	(gst_sinks_suite):
	Add a whole bunch of new testcases.

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

	* po/uk.po:
	* po/vi.po:
	  Update translations.

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

	* gst/gstpad.c:
	Fix typo in the docs.

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

	* docs/libs/gstreamer-libs-sections.txt:
	Add docs for new methods.

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

	* plugins/elements/gstmultiqueue.c: (gst_multi_queue_item_destroy),
	(gst_multi_queue_item_new):
	Don't use GSlice because we don't depend on >= 2.10 yet.

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

	* plugins/elements/gstmultiqueue.c: (gst_single_queue_flush),
	(update_time_level), (apply_segment), (apply_buffer),
	(gst_single_queue_push_one), (gst_multi_queue_item_new),
	(gst_multi_queue_loop), (gst_multi_queue_sink_activate_push),
	(gst_multi_queue_sink_event), (single_queue_overrun_cb),
	(single_queue_underrun_cb), (single_queue_check_full):
	Remove debug printf.

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

	* libs/gst/base/gstdataqueue.c: (gst_data_queue_cleanup),
	(gst_data_queue_finalize), (gst_data_queue_locked_is_empty),
	(gst_data_queue_set_flushing), (gst_data_queue_push),
	(gst_data_queue_pop), (gst_data_queue_drop_head),
	(gst_data_queue_limits_changed), (gst_data_queue_get_level):
	* libs/gst/base/gstdataqueue.h:
	Various cleanups.
	Added methods to get the current levels and to inform the queue that the
	'full' limits changed.

	* plugins/elements/gstmultiqueue.c: (gst_multi_queue_init),
	(gst_multi_queue_finalize), (gst_multi_queue_set_property),
	(gst_single_queue_flush), (update_time_level), (apply_segment),
	(apply_buffer), (gst_single_queue_push_one),
	(gst_multi_queue_item_steal_object),
	(gst_multi_queue_item_destroy), (gst_multi_queue_item_new),
	(gst_multi_queue_loop), (gst_multi_queue_chain),
	(gst_multi_queue_sink_activate_push), (gst_multi_queue_sink_event),
	(gst_multi_queue_getcaps), (gst_multi_queue_src_activate_push),
	(gst_multi_queue_src_query), (single_queue_overrun_cb),
	(single_queue_underrun_cb), (single_queue_check_full),
	(gst_single_queue_new):
	Keep track of time in the queue by measuring the difference between
	running_time on input and output. This gives more accurate results and
	can compensate for segments correctly.
	Make a queue by default only 5 buffers deep. We will now increase the
	buffer size depending on the filledness of the other queues.
	Factor out commong flush code.
	Make sure we don't add additional refcounts to buffers when we can avoid
	it.
	Propagate GstFlowReturn differently.
	Use GSlice for intermediate GstMultiQueueItems.
	Keep track of EOS.
	Resize queues on over and underruns based on filled level of other
	queues.
	When checking if the queue is filled, prefer to measure in time if we
	can and fall back to bytes when no time is known.

	* plugins/elements/gstqueue.c:
	Fix return value.

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

	* libs/gst/base/gstbasetransform.c:
	(gst_base_transform_sink_event):
	Work around the brokenness of the event vmethod in basetransform. Prefer
	to return TRUE when the subclass returned FALSE (meaning don't forward
	the event). 

	* libs/gst/base/gstbasetransform.h:
	Clarify the docs.

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

	* gst/gstpad.c: (gst_pad_push_event), (gst_pad_send_event):
	* libs/gst/base/gstbasesrc.c: (gst_base_src_query_latency),
	(gst_base_src_default_query), (gst_base_src_get_range),
	(gst_base_src_start):
	* tests/check/pipelines/parse-launch.c: (setup_pipeline):
	Improve debugging.

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

	* docs/pwg/advanced-types.xml:
	  Added more formats to caps table.

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

	* tools/gst-launch.c: (main):
	  Remove crufy code. GOption does not need this workaround.

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

	* libs/gst/controller/gstcontroller.c:
	(gst_controlled_property_set_interpolation_mode):
	  Fix wrong getter for enums in controller.

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

	* libs/gst/check/gstcheck.c: (gst_check_init):
	  Intercept criticals and warnings in the Gst-Phonon log domain, so
	  ASSERT_CRITICAL() etc. can be used in gst-phonon's unit tests as
	  well.
	
2007-06-14  Edward Hervey  <edward@fluendo.com>

	* gst/gstparamspecs.c: (_gst_param_fraction_validate):
	Since this file doesn't include "gst.h" it will not go through the
	macros that disable GST_LOG if debugging was disabled.

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

	* libs/gst/check/Makefile.am:
	* libs/gst/check/gstcheck.h:
	* pkgconfig/gstreamer-check-uninstalled.pc.in:
	* pkgconfig/gstreamer-check.pc.in:
	  Ugly 'fix' for the controller unit test on the p5 bot: in
	  fail_unless_equals_float() check whether the values are 'almost
	  equal' by allowing a small absolute error, which should be good
	  enough for our use cases (normal numbers and values close to 0).
	  Proper fixage left to floating point arithmetic aficionados.

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

	* libs/gst/base/gstbasesink.c: (gst_base_sink_reset_qos),
	(gst_base_sink_render_object), (gst_base_sink_get_position):
	  Add two breaks thats where missing.

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

	* docs/libs/gstreamer-libs-sections.txt:
	* libs/gst/check/gstcheck.h:
	  API: add fail_unless_equals_float() and assert_equals_float().
	  Add documentation for some of the macros.

	* tests/check/libs/controller.c: (GST_START_TEST):
	  Use newly-added asserts.

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

	* gst/gstpad.c: (gst_pad_alloc_buffer_full), (gst_pad_push):
	  Show the caps change in the log to help spotting the case of not
	  exactly matching caps.

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

	* docs/pwg/building-boiler.xml:
	  Fix typos, spotted by Thijs Vermeir (#447190).

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

	* docs/plugins/tmpl/.cvsignore:
	Ignore file to keep the buildbots happy

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

	* docs/plugins/Makefile.am:
	* docs/plugins/gstreamer-plugins-docs.sgml:
	* docs/plugins/gstreamer-plugins-sections.txt:
	Pull fdsink into the docs too.

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

	* libs/gst/controller/gstinterpolation.c:
	Actually use the new functions with min/max checks for the trigger and
	none interpolation modes for get() and get_value_array() instead of
	just the latter.

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

	* libs/gst/controller/gstcontroller.c:
	(gst_controlled_property_free):
	Unset the minimum and maximum GValues when freeing the corresponding
	GstControllerProperty struct.

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

	* libs/gst/controller/gstcontroller.c:
	(gst_controlled_property_new):
	* libs/gst/controller/gstcontrollerprivate.h:
	* libs/gst/controller/gstinterpolation.c:
	(gst_controlled_property_find_control_point_node),
	(interpolate_none_get), (interpolate_none_get_enum_value_array),
	(interpolate_none_get_string_value_array),
	(interpolate_trigger_get),
	(interpolate_trigger_get_enum_value_array),
	(interpolate_trigger_get_string_value_array):
	Protect against values larger or smaller than the minimum or maximum
	allowed value for the property when using values that can be compared.

	Optimize trigger interpolator a bit by taking the last requested value
	into account instead of always looping through the complete list.

	Fix coding style a bit, everywhere else we use "return foo" instead
	of "return (foo)".
	
	* tests/check/libs/controller.c: (GST_START_TEST),
	(gst_controller_suite):
	Add unit test for the protection against too large or too small
	values.

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

	* docs/random/slomo/controller.txt:
	Add some thoughts about the future of the controller.

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

	* plugins/elements/gstidentity.c: (gst_identity_transform_ip):
	Don't overflow in retimestamping code.

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

	* libs/gst/controller/gstinterpolation.c: (DEFINE_CUBIC_GET):
	Use gst_util_guint64_to_gdouble for conversions.
	* win32/common/libgstreamer.def:
	Add new exported functions.

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

	* gst/gstutils.c:
	  Small docs addition.

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

	* README:
	  Remove that test line again.

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

	* README:
	  Test commit mail sending.

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

	* configure.ac:
	  Fix typo and test commit mail sending.

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

	* tests/examples/controller/audio-example.c:
	  Improve comment and test commit mail sending.

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

	* gst/gstbin.c: (find_message), (bin_replace_message), (is_eos),
	(gst_bin_remove_func), (gst_bin_element_set_state),
	(bin_handle_async_start), (bin_handle_async_done),
	(gst_bin_handle_message_func):
	Add helper function to find messages.
	Generate the async-done messages together with the state change
	messages.
	Small cleanups in handling toplevel bins.

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

	* libs/gst/base/gstdataqueue.c:
	* libs/gst/base/gstdataqueue.h:
	* plugins/elements/gstmultiqueue.c: (gst_single_queue_push_one),
	(gst_multi_queue_item_new), (gst_multi_queue_chain),
	(gst_multi_queue_sink_event):
	* tests/check/elements/multiqueue.c: (multiqueue_suite):
	  Fix multiqueue leaking buffers and events when downstream or the
	  queue are flushing. Make refcounting assumptions explicit and
	  document them (shouldn't break existing code that uses it other than
	  maybe leak miniobjects, but that already happens anyway). Add unit
	  test for the most common flushing case. Fixes #423700.
	  
2007-06-06  Sebastian Dröge  <slomo@circular-chaos.org>

	* libs/gst/controller/gstcontroller.c:
	Clarify docs: The get_all, get_value_array(s) functions
	don't modify the GObject properties.

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

	* libs/gst/controller/gstcontroller.c:
	(gst_controlled_property_set_interpolation_mode),
	(gst_controlled_property_prepend_default),
	(gst_controlled_property_new), (gst_controller_set_unlocked),
	(gst_controller_set), (gst_controller_set_from_list),
	(gst_controller_unset), (gst_controller_unset_all):
	* libs/gst/controller/gstcontrollerprivate.h:
	* libs/gst/controller/gstinterpolation.c:
	Factor out the 'set' logic into gst_controller_set_unlocked for the
	gst_controller_set and gst_controller_set_from_list functions.

	To make life of the interpolators easier always add a control point
	at timestamp zero with the default value.

	In the linear interpolator make things more obvious by better variable
	naming (slope).

	Implement cubic interpolation mode (by using a natural cubic spline)
	and map the quadratic interpolation mode to this too (as quadratic
	doesn't make much sense, see discussion on the list).

	* tests/check/libs/controller.c: (GST_START_TEST),
	(gst_controller_suite):
	Add unit test for the cubic interpolation mode and check everywhere
	if the interpolation mode could be set as expected.

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

	* gst/gstparamspecs.c: (gst_param_spec_fraction_get_type):
	  Don't use GLib-2.10 functions, we still depend on
	  GLib-how-old-is-it-again-2.8.

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

	* docs/gst/gstreamer-sections.txt:
	* gst/Makefile.am:
	* gst/gst.c:
	* gst/gst.h:
	* gst/gstparamspecs.c: (_gst_param_fraction_init),
	(_gst_param_fraction_set_default), (_gst_param_fraction_validate),
	(_gst_param_fraction_values_cmp),
	(gst_param_spec_fraction_get_type), (gst_param_spec_fraction):
	* gst/gstparamspecs.h:
	* gst/gstvalue.c:
	* tests/check/Makefile.am:
	* tests/check/gst/.cvsignore:
	* tests/check/gst/gstparamspecs.c: (gst_dummy_obj_base_init),
	(gst_dummy_obj_class_init), (gst_dummy_obj_init),
	(gst_dummy_obj_set_property), (gst_dummy_obj_get_property),
	(GST_START_TEST), (gst_param_spec_suite):
	  API: add GstParamSpecFraction, so elements can have fraction
	  properties without lots of painful string parsing (#444648).

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

	* gst/gstobject.c: (gst_object_class_init):
	Fix signal signature.

	* gst/gstsegment.c:
	Add small clarification in the api docs.

	* plugins/elements/gstfilesrc.c: (gst_file_src_set_location):
	States are protected with object lock.

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

	* AUTHORS:
	I should probably be listed as an author by now.

	* docs/random/release:
	Update the release doc

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

	* gst/gstvalue.c:
	  Make docs for gst_value_compare() mention return enums that
	  actually exist.

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

	* configure.ac:
	  Back to CVS