=== release 0.10.22 ===

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

	* configure.ac:
	  releasing 0.10.22, "I heard a disturbing sound"

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

	* gst/gstbus.c: (gst_bus_set_main_context), (gst_bus_create_watch):
	  Fix order of members in GstBusSource structure - the first member
	  must be the parent structure ie. GSource. Should make bus sources
	  attached to non-default main contexts work in all cases now (ie.
	  primarily in cases where the callback has a non-NULL user data
	  argument). Fixes #562170.

	* tests/check/gst/gstbus.c: (test_custom_main_context):
	  Add unit test for the above, based on code by
	  Justin Karneges <justin at affinix com>.

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

	Patch by: Jonas Holmberg <jonas dot holmberg at axis dot com>

	* gst/gstpad.h:
	A small documentation fix.

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

	* gst/gstutils.h:
	Initialize g_once_init* data with 0. Fixes bug #567225.

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

	* configure.ac:
	pre-release 0.10.21.3

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

	* libs/gst/base/gstbasesink.c: (gst_base_sink_commit_state),
	(gst_base_sink_wait_clock):
	* libs/gst/base/gstbasesink.h:
	Fix documentation for the wait_clock method, rename basesink -> sink
	for consistency.

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

	* gst/gst.c:
	  Create a registry if there is none also when the option for
	  gst-disable-registry-update has been selected. Fixes #567002

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

	* gst/gst.c: (init_post):
	  Ref new enum type in gst_init.

	* win32/common/libgstreamer.def:
	  Add recently-added API.

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

	* docs/gst/gstreamer-sections.txt::
	* gst/gst_private.h: (GstPluginDep), (_GstPluginPrivate):
	* gst/gstplugin.c: (gst_plugin_init), (gst_plugin_finalize),
	  (gst_plugin_class_init), (gst_plugin_list_free),
	  (gst_plugin_ext_dep_get_env_vars_hash),
	  (_priv_plugin_deps_env_vars_changed),
	  (gst_plugin_ext_dep_extract_env_vars_paths),
	  (gst_plugin_ext_dep_get_hash_from_stat_entry),
	  (gst_plugin_ext_dep_direntry_matches),
	  (gst_plugin_ext_dep_scan_dir_and_match_names),
	  (gst_plugin_ext_dep_scan_path_with_filenames),
	  (gst_plugin_ext_dep_get_stat_hash),
	  (_priv_plugin_deps_files_changed), (gst_plugin_ext_dep_free),
	  (gst_plugin_ext_dep_strv_equal), (gst_plugin_ext_dep_equals),
	  (gst_plugin_add_dependency), (gst_plugin_add_dependency_simple):
	* gst/gstplugin.h: (GstPluginPrivate), (GstPluginFlags),
	  (GST_PLUGIN_DEPENDENCY_FLAG_NONE),
	  (GST_PLUGIN_DEPENDENCY_FLAG_RECURSE),
	  (GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY),
	  (GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX),
	  (GstPluginDependencyFlags), (GstPluginFilter):
	* gst/gstregistry.c: (gst_registry_scan_path_level):
	* gst/gstregistrybinary.c: (gst_registry_binary_save_feature),
	  (gst_registry_binary_save_plugin_dep),
	  (gst_registry_binary_save_plugin),
	  (gst_registry_binary_load_feature),
	  (gst_registry_binary_load_plugin_dep_strv),
	  (gst_registry_binary_load_plugin_dep),
	  (gst_registry_binary_load_plugin):
	* gst/gstregistrybinary.h: (GST_MAGIC_BINARY_VERSION_STR),
	  (GstBinaryPluginElement), (_GstBinaryDep), (GstBinaryDep):
	* gst/gstregistryxml.c: (gst_registry_xml_save_plugin):
	  Add API for making a GStreamer plugin 'dependent' on external files,
	  directories or environment variables, so that GStreamer knows when
	  it needs to re-load GStreamer plugins that wrap other plugin systems.
	  Fixes bug #350477.
	  API: add gst_plugin_add_dependency()
	  API: add gst_plugin_add_dependency_simple()

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

	* docs/faq/gst-uninstalled:
	  Add libgstapp-0.10 from -base to search path and remove the old
	  lib from -bad from the search path.

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

	* libs/gst/base/gstbasesink.c: (gst_base_sink_get_position_last),
	(gst_base_sink_get_position_paused), (gst_base_sink_get_position):
	Release the object lock before calling the query convert pad functions
	to avoid deadlocks.

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

	* gst/gstbus.c: (gst_bus_wakeup_main_context):
	The lock order should be maincontext > OBJECT_LOCK so we need to release
	the object lock when waking up the mainloop to avoid deadlocks.

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

	* gst/gstbin.c: (gst_bin_set_index_func), (gst_bin_set_clock_func),
	(gst_bin_change_state_func):
	Use an iterator to set the clock and the index so that we can release
	the object lock appropriately. Fixes #566393.

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

	* libs/gst/base/gstcollectpads.c: (gst_collect_pads_available):
	Use the name of the pads instead of a pointer, helps in debugging.

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

	* gst/gstindex.c: (gst_index_get_type):
	Add a debugging category for GstIndex, first little step in making
	indexing top-notch.

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

	* gst/gstelement.c: (gst_element_message_full),
	(gst_element_pads_activate):
	* gst/gstobject.c: (gst_object_dispatch_properties_changed):
	* gst/gstutils.c: (gst_pad_proxy_getcaps), (gst_pad_proxy_setcaps),
	(gst_pad_add_data_probe_full), (gst_pad_add_event_probe_full),
	(gst_pad_add_buffer_probe_full), (gst_pad_remove_data_probe),
	(gst_pad_remove_event_probe), (gst_pad_remove_buffer_probe):
	Assign debug statements to relevant categories instead of the 'default'
	category so they don't get lost in debugging.

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

	* gst/gstdebugutils.c:
	  Add some ideas, how to make the graph smaller.

	* gst/gstutils.c:
	  Add a comment from a debug session.

	* libs/gst/base/gstbasetransform.c:
	  Log more context.

	* libs/gst/controller/gstinterpolationcontrolsource.c:
	  Indet.

	* plugins/elements/gstcapsfilter.c:
	  Fix typo in docs.

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

	* gst/gstbus.c: (gst_bus_dispose), (gst_bus_get_property),
	  (gst_bus_wakeup_main_context), (gst_bus_set_main_context),
	  (gst_bus_post), (gst_bus_source_prepare), (gst_bus_source_finalize),
	  (gst_bus_create_watch):
	  Make GstBusSource work with non-default main contexts (#562170).

	* tests/check/gst/gstbus.c: (message_func_eos), (message_func_app),
	  (test_watch), (test_watch_with_custom_context), (gst_bus_suite):
	  Add test case for GstBusSource with a non-default main context.

	* tests/check/libs/.cvsignore:
	  Ignore more.

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

	* gst/gstregistrybinary.c: (unpack_element), (unpack_const_string),
	  (unpack_string)::
	  Wrap multi-line macros in G_STMT_{START|END}.

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

	* docs/gst/gstreamer-sections.txt:
	* gst/gstquark.c:
	* gst/gstquark.h:
	* gst/gstquery.c: (gst_query_new_uri), (gst_query_set_uri),
	(gst_query_parse_uri):
	* gst/gstquery.h:
	API: Add URI query type. This is useful to query the URI
	of a sink/source element and can be used by demuxers that
	need to get data from other files.
	This query should go upstream by default.
	Fixes bug #562949.
	* plugins/elements/gstfdsink.c: (gst_fd_sink_query):
	* plugins/elements/gstfdsrc.c: (gst_fd_src_class_init),
	(gst_fd_src_query):
	* plugins/elements/gstfilesink.c: (gst_file_sink_query):
	* plugins/elements/gstfilesrc.c: (gst_file_src_class_init),
	(gst_file_src_query):
	Implement URI query.

2008-12-19  Alessandro Decina <alessandro.decina@collabora.co.uk>

	* gst/gstghostpad.c:
	* tests/check/gst/gstghostpad.c:
	Don't forward gst_pad_set_caps() on a source ghostpad to its target.
	That would cause the ghostpad to emit notify::caps two times (fist
	from gst_pad_set_caps() and after from on_src_target_notify()).

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

	* tests/check/gst/gstghostpad.c: (ghost_notify_caps),
	(GST_START_TEST):
	Add some more unit-tests for the ghostpad notify signal, one of which
	currently fails.

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

	* win32/common/libgstreamer.def:
	Add gst_tag_setter_reset_tags to the list of exported symbols.

2008-12-17  Alessandro Decina  <alessandro.decina@collabora.co.uk>

	* gst/gstghostpad.c:
	* tests/check/gst/gstghostpad.c:
	In a source ghostpad, when caps are changed in the target pad, the
	change needs to be reflected in the ghostpad.
	Fixes #564863.

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

	* gst/gstutils.c: (gst_element_found_tags_for_pad):
	Add FIXME for 0.11 to set the pad as message source and not
	the element. Otherwise it's impossible to detect for which
	pad the tags were found without adding an event probe
	or something similar to the pad.

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

	* docs/faq/general.xml:
	Update the faq.

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

	* docs/gst/gstreamer-sections.txt:
	* gst/gsttagsetter.c:
	* gst/gsttagsetter.h:
	  Rename api added in previous commit and add since tag to docs.
	  API: gst_tag_setter_reset_tags()

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

	* docs/gst/gstreamer-sections.txt:
	* gst/gsttagsetter.c:
	* gst/gsttagsetter.h:
	  Add function to reset tagsetter for element reuse.

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

	* gst/gsttaglist.c:
	  Avoid copy of empty taglist.

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

	* gst/gsttaglist.c:
	* tests/check/gst/gsttag.c:
	  More complete unit tests. Fix handling of empty taglists (they were
	  not merged before).

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

	* gst/gsttaglist.h:
	* gst/gsttagsetter.c:
	  Update GstTagSetter and GstTagMergeMode documentation. Mention
	  that tags can come from events and from application. Fix example.

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

	* docs/design/part-TODO.txt:
	Remove the seqnum entry that we implemented in 0.10 already.
	Add entry about removing the format return value for queries.

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

	* libs/gst/base/gstbasesink.c: (gst_base_sink_class_init),
	(gst_base_sink_init), (gst_base_sink_set_property),
	(gst_base_sink_get_property):
	Expose the render-delay as a property so things like appsink can use it
	to tweak the synchronisation.

2008-12-10  Peter Kjellerstedt  <pkj@axis.com>

	* libs/gst/check/gstcheck.h: Allow check tests to use
	MAIN_START_THREADS()/MAIN_STOP_THREADS() multiple times. Also allows
	CK_FORK=no to be used with multiple check test that use threads.

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

	* gst/gstutils.c: (gst_element_get_compatible_pad):
	Fix a caps memory leak introduced by the last change.

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

	* gst/gstutils.c: (gst_element_get_compatible_pad):
	Check if the caps of the pads are compatible before returning
	a pad and claiming it is compatible. This, among other things,
	fixes a bug with gst-launch where an incompatible pad is chosen
	and linking fails. Fixes bug #544003.

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

	* libs/gst/check/gstcheck.c: (gst_check_init):
	Revert accidentially commited patch for bug #404631 which
	tries to print a backtrace if a testcase is terminated by
	a signal. This code was never activated as the corresponding
	configure.ac change wasn't committed.

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

	* tests/check/libs/controller.c: (GST_START_TEST):
	This test should return TRUE now as syncing an uncontrolled
	object will succeed now (there's nothing to sync).

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

	* libs/gst/controller/gstcontroller.c:
	  Aggregate return value for gst_controller_sync_values(). More info in
	  logging. Always set values on first sync-call.

	* libs/gst/controller/gstcontrolsource.c:
	  Microoptimizations.

	* libs/gst/controller/gsthelper.c:
	  Fix return code and comment.

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

	* tools/gst-launch.1.in:
	  Fix description of how to specify a type in caps. Fixes #553873.
	  Also ranges and list contain values and not property-assignments.

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

	* plugins/elements/gsttee.c: (gst_tee_handle_buffer):
	Check for changed pads-list before checking the last returned
	GstFlowReturn because the pad could have been removed and we
	need to ignore the value in that case.

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

	* libs/gst/base/gstbasetransform.c:
	(gst_base_transform_prepare_output_buffer),
	(gst_base_transform_getrange), (gst_base_transform_chain):
	* libs/gst/base/gstbasetransform.h:
	Add vmethod that is called before we start the transform and which can
	be used to configure the transform, such as dynamic properties.

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

	* gst/gst.c:
	Search for plugins on win32 based on the location of the
	gstreamer DLL.  Fixes #548786

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

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

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

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

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

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

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

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

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

	* gst/gstpoll.c: (gst_poll_fd_ctl_write), (gst_poll_fd_has_error):
	Adds support for FD_CONNECT event (win32). See #562258.

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

	* libs/gst/base/gstbasesink.c:
	  Turn comment into gtk-doc comment.

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

	* libs/gst/base/gstbasetransform.c:
	(gst_base_transform_acceptcaps):
	Revert quick accepcaps attempt, it's not fully equivalent to the old
	behaviour and thus causes regressions.

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

	* plugins/elements/gstfilesrc.c: (gst_file_src_uri_set_uri):
	Fix memory leak.

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

	Patch by: Simon Holm Thøgersen <odie at cs dot aau dot dk>

	* gst/gstregistry.c: (gst_registry_scan_path_level):
	Reduce the number of stat() calls for every file from three times
	to one time. Fixes bug #560360.

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

	* libs/gst/base/gstbasetransform.c:
	(gst_base_transform_acceptcaps):
	Rename a variable to make the code clearer.

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

	* plugins/elements/gstidentity.c:
	Don't warning on offset==-1. Taken from _check_imperfect_offset().

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

	* plugins/elements/gstfilesrc.c:
	  Check for localhost in URI was backwards, fix it. Fixes unit test.

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

	* libs/gst/base/gstbasetransform.c: (gst_base_transform_init),
	(gst_base_transform_getcaps), (gst_base_transform_find_transform),
	(gst_base_transform_acceptcaps), (gst_base_transform_getrange):
	Add beginnings of a more optimized acceptcaps function than the default
	core one.

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

	* gst/gstpad.c: (gst_pad_accept_caps):
	Avoid getting the acceptcaps function too early.

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

	* tools/gst-launch.c: (event_loop):
	Make gst-launch handle LATENCY messages and make it recalculate the
	latency.

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

	* plugins/elements/gstfilesrc.c:
	  Use g_filename_from_uri() for URI parsing in filesrc rather than rolling
	  out own slightly incorrect version. Fixes use of some paths on
	  win32.

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

	* gst/gstregistrybinary.c:
	  In win32 codepath, if we fail to write the registry, create the
	  directory for it and try again, matching the behaviour in non-win32
	  codepaths.

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

	* libs/gst/base/gstbasesink.c: (gst_base_sink_set_render_delay):
	Changing the render delay changes the latency and so we must post a
	latency message.

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

	* gst/gstquery.c:
	* gst/gstquery.h:
	Add GstQueryType for custom queries instead of having to use the
	not-so-very-convenient registration infrastructure to register new
	types.

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

	Patch by: Andrew Feren <acferen at yahoo dot com>

	* gst/gstobject.c: (gst_object_default_deep_notify):
	Unref the GEnumClass after usage again. Fixes bug #561501.

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

	* gst/gstbin.c: (_gst_boolean_accumulator), (gst_bin_class_init),
	(gst_bin_recalculate_latency), (gst_bin_do_latency_func),
	(gst_bin_change_state_func):
	* gst/gstbin.h:
	Add do-latency signal with the old default fallback implementation. This
	allows for custom latency calculations for when the default is not
	sufficient.
	API: GstBin::do-latency signal.

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

	* win32/common/libgstreamer.def:
	Add new symbols to .def file.

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

	* docs/gst/gstreamer-sections.txt:
	* gst/gstbin.c: (gst_bin_recalculate_latency),
	(gst_bin_change_state_func):
	* gst/gstbin.h:
	Add method to recalculate and redistribute the latency on a bin.
	API: gst_bin_recalculate_latency().

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

	* gst/gstbuffer.h:
	Document the free_func.

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

	* libs/gst/controller/gstinterpolation.c:
	* libs/gst/controller/gstlfocontrolsource.c:
	Use gst_guint64_to_gdouble instead of gst_util_guint64_to_gdouble
	as it is mapped to a cast on non-win32 platforms.

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

	* libs/gst/controller/gstcontroller.c:
	* libs/gst/controller/gstcontrollerprivate.h:
	  Keep last-value and only call set_property if value has changed. This
	  supresses all the g_object_notifies we would trigger otherwise. It
	  also allows the user to chage the value while there is no controller
	  change.

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

	* gst/gstvalue.c:
	  Don't crash if either of the string GValues is empty.

2008-11-17  Andy Wingo  <wingo@pobox.com>

	* tools/gst-inspect.c (print_all_uri_handlers): New function,
	prints a summary of what URI schemes are supported by what
	elements.
	(main): Plumb in support for --uri-handlers or -u, and fix the
	argc check for -a and -u.

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

	* gst/gstutils.h:
	Add G_GNUC_PURE to gst_util_uint64_scale* and the double<->uint64
	conversion functions.

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

	* gst/gstbuffer.c: (gst_buffer_finalize):
	Avoid costly typechecking for trivially correct pointers.

	* gst/gstpoll.c: (gst_poll_wait):
	Add some G_LIKELY here and there.

	* libs/gst/base/gstadapter.c: (gst_adapter_push):
	Add some debug info.

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

	* docs/random/wtay/poll-timeout:
	Small tweaks.

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

	* tests/old/testsuite/caps/intersection.c: (main):
	* tests/old/testsuite/plugin/loading.c: (main):
	Remove references to deprecated API g_mem_chunk*.
	Fixes #560442.

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

	* tools/gst-inspect.c: (main):
	Add --plugin option. Fixes #560301.

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

	* docs/random/wtay/poll-timeout:
	Quick braindump for a possible (not totally verified) atomic case.

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

	* gst/gstregistrybinary.c: (gst_registry_binary_write_chunk),
	(gst_registry_binary_initialize_magic),
	(gst_registry_binary_write_cache),
	(gst_registry_binary_check_magic):
	* gst/gstregistrybinary.h:
	Don't write and check a CRC for the binary registry file. It's
	guaranteed that the registry is completely written (it's first written
	to a temporary file and then moved) and if the registry was corrupted
	by some hardware failure we would have bigger problems.

	Bump binary registry version to 0.10.21.1 for this as it's an
	incompatible change and to ensure that the registry gets rebuild
	after the update.

	This saves some milliseconds for reading/writing the registry.
	Fixes bug #560399.

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

	* docs/random/wtay/poll-timeout:
	Some pseudo code for how we could implement clock timeouts with GstPoll.

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

	* plugins/elements/gstfilesink.c:
	  Update Author string to match others.

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

	* gst/gstvalue.c: (gst_type_is_fixed), (gst_value_is_fixed):
	Reorganize some more, be more conservative with the GST_TYPE_ARRAY not
	being fixed and inline the trivial check.

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

	* gst/gstcaps.c: (gst_caps_copy), (_gst_caps_free),
	(gst_caps_merge_structure), (gst_caps_get_structure),
	(gst_caps_copy_nth), (gst_caps_set_simple),
	(gst_caps_set_simple_valist), (gst_caps_is_fixed),
	(gst_caps_is_equal_fixed), (gst_caps_intersect),
	(gst_caps_subtract), (gst_caps_normalize), (gst_caps_do_simplify),
	(gst_caps_to_string):
	Callgrind micro optimisations.
	Avoid array bounds checks and force inline of trivial function.

	* gst/gstobject.c: (gst_object_set_name_default):
	-1 is equivalent to letting glib to the strlen but then there is more
	room for optimisations and it's not our fault.

	* gst/gststructure.c: (gst_structure_id_empty_new_with_size):
	no need to clear the array, we're cool.

	* gst/gstvalue.c: (gst_type_is_fixed), (gst_value_is_fixed):
	The most common _is_fixed() check is done on fundamental glib base
	types so we check this first instead of doing a huge amount of
	useless GST_TYPE_ARRAY calls.

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

	* gst/gstevent.h:
	Add a SKIP seek flag for use with advanced trickmodes.
	API: GstSeekFlags::GST_SEEK_FLAG_SKIP

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

	* gst/gststructure.c: (gst_structure_id_empty_new_with_size):
	No need to memset, we can clear the value ourselves.

	* gst/gstvalue.c: (gst_type_is_fixed),
	(gst_value_get_compare_func):
	Some optimisations from a few callgrind sessions:
	When checking if a type is fixed, check for trivial fundamental types
	first before checking types for which we need to get the type followed
	by the heavy duty type checks, this reduces the amount of
	g_type_fundamental() calls a lot.
	When getting the compare function, first check for our registered types.
	If that fails, do the heavy duty g_type_is_a() checks, reduces the
	amount of g_type_is_a() considerably.

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

	* docs/design/part-TODO.txt:
	Mumble something about removing GstXML.

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

	* gst/gstbin.c: (gst_bin_handle_message_func):
	Get the seqnum before we dispose the message.

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

	* docs/design/part-TODO.txt:
	Refer to the framestepping document.

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

	* gst/gstbin.c: (bin_handle_async_start),
	(gst_bin_handle_message_func), (gst_bin_query):
	* libs/gst/base/gstbasesink.c: (gst_base_sink_render_object),
	(gst_base_sink_event), (gst_base_sink_change_state):
	* libs/gst/base/gstbasesrc.c: (gst_base_src_perform_seek),
	(gst_base_src_loop), (gst_base_src_change_state):
	Copy seqnums from events to messages so that they can all be related
	back to eachother.

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

	* tools/gst-launch.c: (event_loop):
	Print the message seqnums.

2008-11-04  Andy Wingo  <wingo@pobox.com>

	* gst/gstutils.c (gst_util_seqnum_next): Refactor for clarity.

2008-11-04  Andy Wingo  <wingo@pobox.com>

	Add sequence numbers to events and messages. See #559250.

	* gst/gstutils.c (gst_util_seqnum_next, gst_util_seqnum_compare):
	API: New functions.

	* gst/gstevent.h:
	* gst/gstevent.c (_gst_event_copy, gst_event_new): Initialize new
	events with a new sequence number, and copy it when copying.
	(gst_event_get_seqnum, gst_event_set_seqnum): API: Accessors for
	an event's sequence number.

	* gst/gstmessage.h:
	* gst/gstmessage.c (_gst_message_copy, gst_message_new_custom):
	(gst_event_get_seqnum, gst_event_set_seqnum): API: As with events,
	so with messages.

	* docs/gst/gstreamer-sections.txt: Add new functions to the docs.

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

	* docs/manual/advanced-position.xml:
	* docs/manual/basics-bins.xml:
	* docs/manual/basics-bus.xml:
	* docs/manual/basics-pads.xml:
	* docs/manual/intro-gstreamer.xml:
	* docs/manual/intro-preface.xml:
	Some Application Development Manual fixes thanks to
	Andrew Feren. Fixes #558459.

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

	* gst/gstregistrybinary.c:
	  Don't bother with the GTimer if we don't output the results.

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

	Patch by: David Schleef  <ds@schleef.org>

	* libs/gst/net/Makefile.am:
	Add WIN32_LIBS to libgstnet LIBADD. Fixes #557300.

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

	* gst/gstregistrybinary.c:
	  Oh my, studip, stupid me. Remove double stat() call.

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

	* gst/gstpreset.c:
	  Use g_unlink instead of unlink.

	* gst/gststructure.c:
	  Use glib type.

	* gst/gstutils.c:
	  Add a FIXME:.

	* gst/gsttaglist.c:
	* gst/gsttypefind.c:
	* gst/gstvalue.c:
	  Formatting & whitespaces.

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

	* plugins/elements/gstidentity.c:
	  Doc typo. Use return value of parent_class->event.
  
	* plugins/elements/gsttypefindelement.c:
	  Chain up at the end for consistency.
  
2008-10-30  Stefan Kost  <ensonic@users.sf.net>

	* docs/Makefile.am:
	* docs/gst/gstreamer-docs.sgml:
	* docs/gst/gstreamer-sections.txt:
	* docs/gst/running.xml:
	* docs/libs/gstreamer-libs-docs.sgml:
	  Change to xinclude based build - its faster and easier to maintain.

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

	* gst/gstregistrybinary.c:
	* gst/gstregistryxml.c:
	  Use g_unlink() as none of these are directories.

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

	* gst/gstpipeline.c: (gst_pipeline_provide_clock_func):
	Some more comments.

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

	* libs/gst/base/gstbasetransform.c:
	(gst_base_transform_find_transform), (gst_base_transform_getrange):
	If we have a fixate function, call it even if we already have fixed caps
	because the subclass might add some caps. Makes audioconvert add a
	default channel layout.

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

	* libs/gst/base/gstbasetransform.c:
	(gst_base_transform_prepare_output_buffer),
	(gst_base_transform_getrange):
	Clear the output buffer variable.
	Cleanups to the error path in the getrange function.
	Fixes #557649.

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

	* plugins/elements/gstfdsrc.c: (gst_fd_src_create):
	* plugins/elements/gstfilesrc.c: (gst_file_src_create_read):
	Use gst_buffer_try_new_and_alloc() and handle errors instead of
	using gst_buffer_new_and_alloc() which aborts if the buffer couldn't
	be allocated.

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

	* gst/gstsegment.c: (gst_segment_set_newsegment_full):
	Set the last_stop to a more meaningful position when configuring the
	segment. ie. the start/stop of the segment or clipped against the
	updated segment boundaries.

	* tests/check/gst/gstsegment.c: (GST_START_TEST):
	Add some unit tests for the last_stop.

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

	* libs/gst/base/gstbytereader.c:
	Use GST_(READ|WRITE)_(FLOAT|DOUBLE)_(LE|BE) instead of our own
	copies of them.

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

	* docs/gst/gstreamer-sections.txt:
	* gst/gstutils.h:
	API: Move float endianness conversion macros from libgstfloatcast
	to core as it's useful in general, even in core. Fixes bug #555196.
	This adds GDOUBLE_FROM_BE, GDOUBLE_FROM_LE, GDOUBLE_TO_BE,
	GDOUBLE_TO_LE, GDOUBLE_SWAP_LE_BE, GFLOAT_FROM_BE, GFLOAT_FROM_LE,
	GFLOAT_TO_BE, GFLOAT_TO_LE, GFLOAT_SWAP_LE_BE.

	Also add GST_READ_ and GST_WRITE_ macros for floats and doubles:
	GST_READ_FLOAT_LE, GST_READ_FLOAT_BE, GST_READ_DOUBLE_LE,
	GST_READ_DOUBLE_BE, GST_WRITE_FLOAT_LE, GST_WRITE_FLOAT_BE,
	GST_WRITE_DOUBLE_LE, GST_WRITE_DOUBLE_BE.

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

	* docs/libs/gstreamer-libs-sections.txt:
	* libs/gst/base/gstbytereader.c: (gst_byte_reader_get_data),
	(gst_byte_reader_peek_data):
	* libs/gst/base/gstbytereader.h:
	* win32/common/libgstbase.def:
	API: Add gst_byte_reader_get_data and gst_byte_reader_peek_data
	to get a pointer to the data at the current position and have
	a guaranteed size.

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

	* configure.ac:
	Fix a bug in the output of the configure script summary
	when --gst-disable-registry is supplied

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

	* libs/gst/base/gstbitreader.c:
	* libs/gst/base/gstbytereader.c:
	Fix the names of 2 functions in the docs strings.

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

	* libs/gst/base/gstbasetransform.c:
	(gst_base_transform_prepare_output_buffer),
	(gst_base_transform_buffer_alloc), (gst_base_transform_suggest):
	Protect sink_alloc caps with the sinkpad lock to avoid nasty caps
	refcount problems as seen in banshee and maybe also in farsight2.
	Remove atomic int now that we need to take the lock anyways.

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

	* libs/gst/base/gstbasesink.c: (gst_base_sink_default_do_seek),
	(gst_base_sink_default_prepare_seek_segment),
	(gst_base_sink_perform_seek), (gst_base_sink_get_position_last),
	(gst_base_sink_get_position_paused), (gst_base_sink_get_position),
	(gst_base_sink_query):
	Implement more seeking in pull mode.
	Use pad convert functions to convert position to the requested format.
	Fix position/duration reporting in pull mode.
	Implement position and duration reporting in other formats than time.

	* libs/gst/base/gstbasesink.h:
	Add member to keep track of when the segment is playing.

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

	* gst/gstpad.c: (gst_pad_configure_src):
	When we use gst_pad_alloc_buffer() without wanting to set the caps we
	also don't need to check if the caps are compatible because the caller
	presumably is going to perform its own custom checks. Fixes some cases
	where basetransform elements would error out when it was not needed.

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

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

	* libs/gst/base/gstbasetransform.c:
	(gst_base_transform_handle_buffer),
	(gst_base_transform_reconfigure):
	Add some debug info.

	* win32/common/libgstbase.def:
	Add new method.

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

	* libs/gst/base/gstbasesrc.c: (gst_base_src_default_do_seek);
	  Remove duplicated assignment and log a message in failure case.

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

	Patch by: Dig Ge <dig.ge.cn at gmail com>

	* tests/examples/helloworld/helloworld.c: (main):
	  Fix copy'n'paste bug in hello world example (#556900).

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

	* libs/gst/base/gstbasesink.c: (gst_base_sink_pad_activate_pull),
	(gst_base_sink_query):
	Query the total number of bytes when activating the pad in pull mode.
	Implement duration query in pull mode by using the installed pad convert
	function to convert from bytes to the requested format.

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

	* docs/libs/gstreamer-libs-sections.txt:
	* libs/gst/base/gstbasesink.c: (gst_base_sink_do_preroll),
	(gst_base_sink_flush_start), (gst_base_sink_flush_stop),
	(gst_base_sink_event), (gst_base_sink_perform_seek),
	(gst_base_sink_loop), (gst_base_sink_pad_activate_pull),
	(gst_base_sink_send_event), (gst_base_sink_change_state):
	* libs/gst/base/gstbasesink.h:
	Add method to commit the state in subclasses.
	Refactor the flush_start and flush_stop code because we need it for
	flushing while seeking too.
	Implement the beginnings of seeking in pull mode.
	Use the segment last_stop field for the pulling offset.
	Fix the pause method in pull mode.
	Configure the segment to BYTES for pull mode.
	API: GstBaseSink::gst_base_sink_do_preroll()

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

	* libs/gst/base/gstbasesrc.c: (gst_base_src_class_init):
	Update some docs.

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

	* gst/gstquark.c: (_priv_gst_quarks_initialize):
	  Fix printf format warning.

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

	* plugins/elements/gsttee.c: (gst_tee_handle_buffer):
	Fix flow aggregation of tee. Error out immediately for all flow returns
	except OK and NOT_LINKED, return NOT_LINKED if all pads are not linked
	and return OK if at least one pad is linked.

	Before we errored out on "fatal" flow returns (i.e. not for WRONG_STATE)
	and otherwise returned the flow return of the last pad, which is wrong.
	
	* tests/check/elements/tee.c: (_fake_chain), (_fake_chain_error),
	(GST_START_TEST), (tee_suite):
	Add unit tests for the flow aggregation.

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

	* docs/design/part-TODO.txt:
	Remove item from the todo list because it was fixed with the latency
	state change rewrites.

	* docs/design/part-seeking.txt:
	* docs/design/part-segments.txt:
	Update some docs.

	* gst/gstevent.c: (gst_event_new_new_segment_full),
	(gst_event_parse_new_segment_full), (gst_event_new_buffer_size),
	(gst_event_parse_buffer_size), (gst_event_new_qos),
	(gst_event_parse_qos), (gst_event_new_seek),
	(gst_event_parse_seek), (gst_event_new_latency),
	(gst_event_parse_latency):
	Use quarks to construct and parse events.

	* gst/gstquark.c: (_priv_gst_quarks_initialize):
	* gst/gstquark.h:
	Add some more quarks to the table.
	Emit a warning when the quark tables are not in sync.

	* tests/check/gst/gstbus.c: (GST_START_TEST):
	Add an assert.

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

	* plugins/elements/Makefile.am:
	* plugins/indexers/Makefile.am:
	  Don't install static libs for plugins. Fixes #550851 for core.

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

	* gst/gstbus.c: (gst_bus_source_finalize),
	(gst_bus_add_watch_full_unlocked), (gst_bus_add_watch_full),
	(gst_bus_enable_sync_message_emission),
	(gst_bus_disable_sync_message_emission),
	(gst_bus_add_signal_watch_full), (gst_bus_remove_signal_watch):
	Fix deadlock, g_source_get_id() cannot be called in finalize.
	Keep track of the watch source by keeping a pointer to the source object
	instead.
	Use the bus lock to protect access to the pointer to the current
	watch source.

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

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

	* gst/gstbus.c: (gst_bus_source_finalize),
	(gst_bus_add_watch_full), (gst_bus_add_signal_watch_full):
	Only allow one bus watch to be set at a time. This is necessary
	because the dispatcher pops the message from the bus and the second
	watcher will then get NULL or the next message (and the first won't
	get this next message then, etc). If more than one "watcher" is
	required signal watches should be used. Fixes bug #526044.

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

	* tools/gst-launch.c:
	Change the printing of the 'buffering...' output to avoid putting
	a \r in a translateable string (flagged by the TP).

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

	* gst/gstxml.c:
	Clarify that the save_thyself() and restore_thyself() virtual
	functions of GstObject need to be overriden, not
	gst_object_(save|restore)_thyself() which is impossible.
	Fixes bug #555700.

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

	* gst/gstpad.c: (gst_pad_get_range), (gst_pad_pull_range):
	Revert a patch from 21 months ago that broke caps negotiation in pull
	mode. Basically, having a buffer pass over a pad will trigger the
	setcaps function when caps change, just like in push mode.

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

	* docs/design/part-negotiation.txt:
	Update the docs some more.

	* libs/gst/base/gsttypefindhelper.c: (helper_find_peek):
	If we pull a buffer with non-trivial caps, suggest those caps with the
	max probability.

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

	* docs/design/part-TODO.txt:
	Add another limitation of pad-blocking with segment seeks not pushing
	EOS events.

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

	* win32/common/libgstbase.def:
	* win32/common/libgstreamer.def:
	Add new symbols to the win32 defs files

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

	* gst/gstbin.c: (gst_bin_remove_func), (update_degree),
	(gst_bin_handle_message_func):
	The message src can be NULL, don't try to print the object names in that
	case.

	* libs/gst/base/gstbasesink.c: (gst_base_sink_pad_activate):
	Add some more debug info.

	* tests/check/pipelines/simple-launch-lines.c: (run_pipeline),
	(GST_START_TEST):
	Add some debug.
	Fix the test, pull based sinks go ASYNC to PAUSED, just like other
	scheduling modes.

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

	* docs/design/part-negotiation.txt:
	Small doc update.

	* docs/libs/gstreamer-libs-sections.txt:
	* libs/gst/base/gstbasesink.c: (gst_base_sink_class_init),
	(gst_base_sink_pad_getcaps), (gst_base_sink_pad_setcaps),
	(gst_base_sink_init), (gst_base_sink_set_blocksize),
	(gst_base_sink_get_blocksize), (gst_base_sink_set_property),
	(gst_base_sink_get_property), (gst_base_sink_needs_preroll),
	(gst_base_sink_loop), (gst_base_sink_pad_activate),
	(gst_base_sink_negotiate_pull), (gst_base_sink_pad_activate_pull),
	(gst_base_sink_change_state):
	* libs/gst/base/gstbasesink.h:
	Add blocksize property and methods to control the amount of data
	to pull.
	Negotiate first before activating upstream in pull mode so that they can
	negotiate themselves.
	When we operate in pull mode, we only accept the caps that we
	negotiated.
	Make the sink go ASYNC to PAUSED, like all other sinks.
	API: GstBaseSink::gst_base_sink_set_blocksize()
	API: GstBaseSink::gst_base_sink_get_blocksize()
	API: GstBaseSink::blocksize

	* libs/gst/base/gstbasesrc.c: (gst_base_src_wait_playing),
	(gst_base_src_set_live), (gst_base_src_is_live),
	(gst_base_src_set_format), (gst_base_src_query_latency),
	(gst_base_src_set_blocksize), (gst_base_src_get_blocksize),
	(gst_base_src_set_do_timestamp), (gst_base_src_get_do_timestamp),
	(gst_base_src_set_property), (gst_base_src_get_property):
	* libs/gst/base/gstbasesrc.h:
	Add typechecking in public API functions.
	Add methods to control the blocksize in subclasses.
	API: GstBaseSrc::gst_base_src_set_blocksize()
	API: GstBaseSrc::gst_base_src_get_blocksize()

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

	* tests/check/gst/gstutils.c: (probe_do_nothing), (data_probe),
	(buffer_probe), (event_probe), (GST_START_TEST):
	We now see 3 events go through our pad, since basesink now sends
	upstream latency events.

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

	* gst/gstpipeline.c: (gst_pipeline_change_state):
	Release the object lock before trying to flush the bus.

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

	* libs/gst/base/gstbasesink.c: (gst_base_sink_send_event):
	Forward LATENCY events upstreams so that elements know about the total
	pipeline latency. Fixes #555307.

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

	* plugins/elements/gstqueue.c:
	Allow through queries when we don't know how
	to adjust them (not TIME or BYTES), as otherwise it's
	not possible to query the current position in order
	to seek in other formats at all.

2008-10-08  Andy Wingo  <wingo@pobox.com>

	* docs/gst/gstreamer-sections.txt: Placate doc pendants.

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

	* gst/gstghostpad.c:
	* gst/gstghostpad.h:
	Unbreak -good build, private is a reserved c++ keyword.

2008-10-08  Andy Wingo  <wingo@pobox.com>

	* gst/gstghostpad.h (GST_GHOST_PAD_CAST):
	* gst/gstghostpad.c (GST_GHOST_PAD_CAST): Fix unintended API
	removal: re-add GST_GHOST_PAD_CAST to the header.

	* gst/gstghostpad.h (GstProxyPad, GstProxyPadClass, GstGhostPad)
	(GstGhostPadClass): Publically expose these structures so as to
	allow easy subclassing from C. Hide the member data behind a
	private opaque data pointer.

	* gst/gstghostpad.c: Adapt to store instance data in the type
	instance's private data region, not in the public struct.

2008-10-08  Andy Wingo  <wingo@pobox.com>

	* gst/gstghostpad.c (gst_ghost_pad_construct): If we got a
	template via g_object_get(), be sure to unref it.

	* gst/gstbuffer.h (GST_BUFFER_FREE_FUNC): Fix incorrect doc.

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

	* gst/gstregistrybinary.c: (gst_registry_binary_write_cache):
	If we can't get a cache file don't try to save something to it.
	Dereferencing NULL pointers usually isn't a good idea.

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

	* tests/check/Makefile.am:
	* tests/check/gst/gstabi.c:
	* tests/check/gst/struct_sparc.h:
	* tests/check/libs/libsabi.c:
	* tests/check/libs/struct_sparc.h:
	Add Sparc ABI checks

	* tests/check/gst/gstvalue.c: (GST_START_TEST):
	Cast signed integer to unsigned to avoid a compiler warning.

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

	* libs/gst/base/gstbytereader.c: (gst_byte_reader_get_uint24_le),
	(gst_byte_reader_get_uint24_be), (gst_byte_reader_get_int24_le),
	(gst_byte_reader_get_int24_be), (gst_byte_reader_peek_uint24_le),
	(gst_byte_reader_peek_uint24_be), (gst_byte_reader_peek_int24_le),
	(gst_byte_reader_peek_int24_be):
	Use new GST_READ_UINT24_(LE|BE) macros.

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

	* docs/gst/gstreamer-sections.txt:
	* gst/gstutils.h:
	Always use the unaligned variants of GST_READ_UINT* and GST_WRITE_UINT*
	as it's too easy to break the ISO C strict aliasing rules with simple
	casts to the corresponding type and this would introduce hard to debug
	bugs. Fixes bug #545714.

	API: Add GST_READ_UINT24_(LE|BE) and GST_WRITE_UINT24_(LE|BE).

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

	* gst/gstbuffer.h: (GST_BUFFER_FREE_FUNC):
	* gst/gstghostpad.c: (gst_ghost_pad_construct):
	  Add 'Since' bits to gtk-doc chunks for new API.

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

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

2008-10-06  Andy Wingo  <wingo@pobox.com>

	* gst/gstbuffer.h (GST_BUFFER_FREE_FUNC): New API, a free function
	that will be called on the malloc_data to free it. Basically a way
	to avoid subclassing when all you need is a different free
	function, i.e. free() instead of g_free().

	* gst/gstbuffer.c (gst_buffer_finalize): Free malloc_data via
	calling the free function.
	(gst_buffer_init): Initialize the free function to g_free.

2008-10-06  Andy Wingo  <wingo@pobox.com>

	* gst/gstghostpad.h:
	* gst/gstghostpad.c (gst_ghost_pad_construct): New function,
	finishes the initialization of ghost pad. Useful for language
	bindings and subclassers of GstGhostPad. Fixes #539108.
	(gst_ghost_pad_new_full): Use the new constructor.

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

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

	* gst/gstbin.c: (gst_bin_init), (gst_bin_add_func),
	(gst_bin_remove_func), (update_degree),
	(gst_bin_sort_iterator_new), (gst_bin_handle_message_func):
	Keep track of pads that are being linked/unlinked and resync the state
	changes.

	* gst/gstpad.c: (gst_pad_get_direction),
	(gst_pad_set_chain_function), (gst_pad_set_getrange_function),
	(gst_pad_set_checkgetrange_function), (gst_pad_unlink),
	(gst_pad_link_prepare), (gst_pad_link),
	(gst_pad_event_default_dispatch), (gst_pad_chain), (gst_pad_push),
	(gst_pad_check_pull_range), (gst_pad_get_range),
	(gst_pad_pull_range):
	Some code cleanups, use macros to check pad direction.
	Don't need to take the lock on the pad direction.
	Post structure change when pads are linked/unlinked.
	Change some checks into _return_if_fail().

	* tests/check/gst/gstbin.c:
	(test_link_structure_change_state_changed_sync_cb),
	(GST_START_TEST), (gst_bin_suite):
	Add testcase for pad link/unlinke resync during a state change.
	Fixes #510354.

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

	* docs/gst/gstreamer-sections.txt:
	* gst/gstmessage.c: (gst_message_new_structure_change),
	(gst_message_parse_structure_change):
	* gst/gstmessage.h:
	Implement STRUCTURE_CHANGED messages. These messages will be used to
	signal the parent bin of link/unlink operations that could require a
	resync when doing a state change. See ##510354.
	API: gst_message_new_structure_change()
	API: gst_message_parse_structure_change()

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

	* gst/gstquark.c:
	* gst/gstquark.h:
	Add some more quarks for new message. See #510354.

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

	* docs/libs/gstreamer-libs-docs.sgml:
	* docs/libs/gstreamer-libs-sections.txt:
	* libs/gst/base/Makefile.am:
	* libs/gst/base/gstbitreader.c: (gst_bit_reader_new),
	(gst_bit_reader_new_from_buffer), (gst_bit_reader_free),
	(gst_bit_reader_init), (gst_bit_reader_init_from_buffer),
	(gst_bit_reader_set_pos), (gst_bit_reader_get_pos),
	(gst_bit_reader_get_remaining), (gst_bit_reader_skip),
	(gst_bit_reader_skip_to_byte):
	* libs/gst/base/gstbitreader.h:
	* libs/gst/base/gstbytereader.c: (GDOUBLE_SWAP_LE_BE),
	(GFLOAT_SWAP_LE_BE), (gst_byte_reader_new),
	(gst_byte_reader_new_from_buffer), (gst_byte_reader_free),
	(gst_byte_reader_init), (gst_byte_reader_init_from_buffer),
	(gst_byte_reader_set_pos), (gst_byte_reader_get_pos),
	(gst_byte_reader_get_remaining), (gst_byte_reader_skip),
	(gst_byte_reader_get_uint8), (gst_byte_reader_get_int8),
	(gst_byte_reader_peek_uint8), (gst_byte_reader_peek_int8),
	(gst_byte_reader_get_uint24_le), (gst_byte_reader_get_uint24_be),
	(gst_byte_reader_get_int24_le), (gst_byte_reader_get_int24_be),
	(gst_byte_reader_peek_uint24_le), (gst_byte_reader_peek_uint24_be),
	(gst_byte_reader_peek_int24_le), (gst_byte_reader_peek_int24_be):
	* libs/gst/base/gstbytereader.h:
	* tests/check/Makefile.am:
	* tests/check/libs/bitreader.c: (GST_START_TEST),
	(gst_bit_reader_suite):
	* tests/check/libs/bytereader.c: (GST_START_TEST),
	(gst_byte_reader_suite):
	API: Add bit reader and byte reader classes, including documentation
	and an extensive unit test suite. Fixes bug #553554.

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

	* libs/gst/base/gstbasesink.c: (gst_base_sink_get_position),
	(gst_base_sink_query):
	Improve position reporting while flushing and other intermediate state
	changes. Fixes #553874.

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

	Patch by: Antoine Tremblay <hexa00 at gmail dot com>

	* gst/gstpad.c: (gst_pad_link_check_compatible_unlocked):
	Original patch by : Simon Descaries
	Fix small refount leak in caps compatibility check.
	Fixes #551676.

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

	* docs/pwg/advanced-request.xml:
	  Fix 0.8 api usage in example. Fixes #554561

	* docs/pwg/appendix-porting.xml:
	  Change 0.9 to 0.10 here.

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

	* docs/manual/basics-data.xml:
	  Change "event-event interaction" to "element-element interaction".
	  Fixes #552448. Also fix sample code for seeking and do more 0.8->0.10
	  updates.

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

	* configure.ac:
	Back to development -> 0.10.21.1