=== release 0.10.22 === 2009-01-19 Jan Schmidt * configure.ac: releasing 0.10.22, "I heard a disturbing sound" 2009-01-17 Tim-Philipp Müller * 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 . 2009-01-15 Wim Taymans Patch by: Jonas Holmberg * gst/gstpad.h: A small documentation fix. 2009-01-11 Sebastian Dröge * gst/gstutils.h: Initialize g_once_init* data with 0. Fixes bug #567225. 2009-01-09 Jan Schmidt * configure.ac: pre-release 0.10.21.3 2009-01-09 Wim Taymans * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * win32/common/libgstreamer.def: Add gst_tag_setter_reset_tags to the list of exported symbols. 2008-12-17 Alessandro Decina * 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 * 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 * docs/faq/general.xml: Update the faq. 2008-12-16 Stefan Kost * 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 * docs/gst/gstreamer-sections.txt: * gst/gsttagsetter.c: * gst/gsttagsetter.h: Add function to reset tagsetter for element reuse. 2008-12-16 Stefan Kost * gst/gsttaglist.c: Avoid copy of empty taglist. 2008-12-16 Stefan Kost * 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 * 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 * 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 * 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 * 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 * gst/gstutils.c: (gst_element_get_compatible_pad): Fix a caps memory leak introduced by the last change. 2008-12-09 Sebastian Dröge * 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 * 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 * 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 * 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 * 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 * 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 * 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 * gst/gst.c: Search for plugins on win32 based on the location of the gstreamer DLL. Fixes #548786 2008-12-04 Sebastian Dröge * configure.ac: Apparently AC_CONFIG_MACRO_DIR breaks when using more than one macro directory, reverting last change. 2008-12-04 Sebastian Dröge * configure.ac: Set AC_CONFIG_MACRO_DIR to common/m4 to point autoconf to our M4 macros. 2008-11-29 Sebastian Dröge Patch by: Cygwin Ports maintainer * 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 Patch by: 이문형 * 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 * libs/gst/base/gstbasesink.c: Turn comment into gtk-doc comment. 2008-11-24 Wim Taymans * 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 * plugins/elements/gstfilesrc.c: (gst_file_src_uri_set_uri): Fix memory leak. 2008-11-24 Sebastian Dröge Patch by: Simon Holm Thøgersen * 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 * libs/gst/base/gstbasetransform.c: (gst_base_transform_acceptcaps): Rename a variable to make the code clearer. 2008-11-21 Stefan Kost * plugins/elements/gstidentity.c: Don't warning on offset==-1. Taken from _check_imperfect_offset(). 2008-11-21 Michael Smith * plugins/elements/gstfilesrc.c: Check for localhost in URI was backwards, fix it. Fixes unit test. 2008-11-21 Wim Taymans * 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 * gst/gstpad.c: (gst_pad_accept_caps): Avoid getting the acceptcaps function too early. 2008-11-21 Wim Taymans * tools/gst-launch.c: (event_loop): Make gst-launch handle LATENCY messages and make it recalculate the latency. 2008-11-20 Michael Smith * 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 * 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 * 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 * 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 Patch by: Andrew Feren * gst/gstobject.c: (gst_object_default_deep_notify): Unref the GEnumClass after usage again. Fixes bug #561501. 2008-11-19 Wim Taymans * 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 * win32/common/libgstreamer.def: Add new symbols to .def file. 2008-11-18 Wim Taymans * 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 * gst/gstbuffer.h: Document the free_func. 2008-11-17 Sebastian Dröge * 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 * 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 * gst/gstvalue.c: Don't crash if either of the string GValues is empty. 2008-11-17 Andy Wingo * 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 * gst/gstutils.h: Add G_GNUC_PURE to gst_util_uint64_scale* and the double<->uint64 conversion functions. 2008-11-13 Wim Taymans * 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 * docs/random/wtay/poll-timeout: Small tweaks. 2008-11-13 Wim Taymans * 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 * tools/gst-inspect.c: (main): Add --plugin option. Fixes #560301. 2008-11-12 Wim Taymans * docs/random/wtay/poll-timeout: Quick braindump for a possible (not totally verified) atomic case. 2008-11-12 Sebastian Dröge * 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 * docs/random/wtay/poll-timeout: Some pseudo code for how we could implement clock timeouts with GstPoll. 2008-11-10 Thomas Vander Stichele * plugins/elements/gstfilesink.c: Update Author string to match others. 2008-11-06 Wim Taymans * 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 * 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 * gst/gstevent.h: Add a SKIP seek flag for use with advanced trickmodes. API: GstSeekFlags::GST_SEEK_FLAG_SKIP 2008-11-05 Wim Taymans * 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 * docs/design/part-TODO.txt: Mumble something about removing GstXML. 2008-11-04 Wim Taymans * gst/gstbin.c: (gst_bin_handle_message_func): Get the seqnum before we dispose the message. 2008-11-04 Wim Taymans * docs/design/part-TODO.txt: Refer to the framestepping document. 2008-11-04 Wim Taymans * 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 * tools/gst-launch.c: (event_loop): Print the message seqnums. 2008-11-04 Andy Wingo * gst/gstutils.c (gst_util_seqnum_next): Refactor for clarity. 2008-11-04 Andy Wingo 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 * 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 * gst/gstregistrybinary.c: Don't bother with the GTimer if we don't output the results. 2008-11-03 Wim Taymans Patch by: David Schleef * libs/gst/net/Makefile.am: Add WIN32_LIBS to libgstnet LIBADD. Fixes #557300. 2008-10-31 Stefan Kost * gst/gstregistrybinary.c: Oh my, studip, stupid me. Remove double stat() call. 2008-10-31 Stefan Kost * 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 * 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 * 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 * gst/gstregistrybinary.c: * gst/gstregistryxml.c: Use g_unlink() as none of these are directories. 2008-10-29 Wim Taymans * gst/gstpipeline.c: (gst_pipeline_provide_clock_func): Some more comments. 2008-10-27 Wim Taymans * 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 * 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 * 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 * 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 * 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 * 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 * 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 * configure.ac: Fix a bug in the output of the configure script summary when --gst-disable-registry is supplied 2008-10-22 Jan Schmidt * 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 * 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 * 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 * 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 * 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 * 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 Patch by: Dig Ge * tests/examples/helloworld/helloworld.c: (main): Fix copy'n'paste bug in hello world example (#556900). 2008-10-17 Wim Taymans * 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 * 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 * libs/gst/base/gstbasesrc.c: (gst_base_src_class_init): Update some docs. 2008-10-14 Tim-Philipp Müller * gst/gstquark.c: (_priv_gst_quarks_initialize): Fix printf format warning. 2008-10-14 Sebastian Dröge * 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 * 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 * plugins/elements/Makefile.am: * plugins/indexers/Makefile.am: Don't install static libs for plugins. Fixes #550851 for core. 2008-10-13 Wim Taymans * 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 Base on Patch by: Olivier Crete * 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 * 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 * 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 * 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 * 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 * docs/design/part-TODO.txt: Add another limitation of pad-blocking with segment seeks not pushing EOS events. 2008-10-10 Jan Schmidt * win32/common/libgstbase.def: * win32/common/libgstreamer.def: Add new symbols to the win32 defs files 2008-10-10 Wim Taymans * 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 * 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 * 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 * gst/gstpipeline.c: (gst_pipeline_change_state): Release the object lock before trying to flush the bus. 2008-10-08 Wim Taymans * 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 * 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 * docs/gst/gstreamer-sections.txt: Placate doc pendants. 2008-10-08 Wim Taymans * gst/gstghostpad.c: * gst/gstghostpad.h: Unbreak -good build, private is a reserved c++ keyword. 2008-10-08 Andy Wingo * 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 * 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 * 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 * 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 * 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 * 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 * 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 * docs/gst/gstreamer-sections.txt: Fix documentation 2008-10-06 Andy Wingo * 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 * 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 Base on Patch by: Olivier Crete * 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 * 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 * gst/gstquark.c: * gst/gstquark.h: Add some more quarks for new message. See #510354. 2008-10-06 Sebastian Dröge * 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 * 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 Patch by: Antoine Tremblay * 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 * 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 * 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 * configure.ac: Back to development -> 0.10.21.1