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
