=== release 0.10.12 === 2007-03-07 Jan Schmidt * configure.ac: releasing 0.10.12, "Inevitable Demise" 2007-03-01 Jan Schmidt * configure.ac: Version 0.10.11.2 (0.10.12 pre-release) Bump libtool versioning. 2007-03-01 Stefan Kost * libs/gst/base/gstbasesrc.c: (gst_base_src_loop): Log flow-names and not numbers. 2007-02-28 Thomas Vander Stichele * configure.ac: Convert to new AG_GST style. 2007-02-28 Wim Taymans * libs/gst/base/gstbasesink.c: (gst_base_sink_query_latency): Don't unref query twice. 2007-02-28 Wim Taymans * gst/gstvalue.c: (gst_value_transform_object_string), (_gst_value_initialize): Implement GstObject -> string transform so we print object names when serializing GValues containing GstObjects. 2007-02-28 Wim Taymans * docs/gst/gstreamer-sections.txt: Add new stuff to docs. 2007-02-28 Wim Taymans * libs/gst/base/gstbasesink.c: (gst_base_sink_query_latency), (gst_base_sink_queue_object_unlocked), (gst_base_sink_send_event), (gst_base_sink_change_state): Improve latency query code. Don't leak latency events. * tests/check/gst/gstbin.c: (GST_START_TEST): Improve debugging. 2007-02-28 Wim Taymans * gst/gstelement.c: (gst_element_message_full), (gst_element_get_state_func): * gst/gstelement.h: Improve docs a little. Added Since: for new macro. * gst/gstobject.c: (gst_object_sink): * gst/gstpipeline.c: (gst_pipeline_change_state), (gst_pipeline_set_new_stream_time): * gst/gstpipeline.h: Improve debugging and docs. * gst/gstutils.c: (gst_element_state_change_return_get_name): Improve debugging. 2007-02-28 Wim Taymans * gst/gstelement.c: (gst_element_message_full), (gst_element_set_locked_state), (gst_element_get_state_func), (gst_element_change_state): Handle INFO messages from the GST_ELEMENT_INFO macro as well. Documentation updates. Small code cleanups. * gst/gstmessage.c: (gst_message_new_info), (gst_message_parse_info): * gst/gstmessage.h: API: gst_message_new_info() API: gst_message_parse_info() Add INFO message create and parse code. 2007-02-28 Wim Taymans * gst/gstbin.c: (bin_query_min_max_init), (bin_query_latency_fold), (bin_query_latency_done): Also report the live parameter of a latency query. 2007-02-28 Thomas Vander Stichele * tests/check/generic/states.c: (GST_START_TEST), (states_suite): Copy the current generic/states example from -base and adapt so we can use the exact same code everywhere. Check a STATES_IGNORE_ELEMENTS env var which can be used to ignore certain element factories for this test, which is what is being done in -base * tests/check/Makefile.am: Mention this environment variable. 2007-02-27 Wim Taymans * docs/gst/gstreamer-sections.txt: * gst/gstbus.c: (gst_bus_init), (gst_bus_dispose), (gst_bus_post), (gst_bus_timed_pop), (gst_bus_pop): * gst/gstbus.h: API: gst_bus_timed_pop() Implement gst_bus_timed_pop() to do a blocking timed wait for a message to arrive on the bus. * tests/check/gst/gstbus.c: (GST_START_TEST), (pop_thread), (gst_bus_suite): Two unit tests for new _timed_pop() function. 2007-02-23 Wim Taymans * gst/gstpipeline.c: (gst_pipeline_change_state), (gst_pipeline_provide_clock_func), (gst_pipeline_set_delay): Don't ref a NULL clock in _provide_clock_func(). Don't allow an INVALID delay. Don't try to calculate base_time with an invalid start_time. Also distribute and notify a NULL clock when it was selected. * tools/gst-launch.c: (event_loop): Don't crash when a NULL clock was selected in the pipeline. 2007-02-23 Tim-Philipp Müller * docs/design/Makefile.am: * docs/design/draft-missing-plugins.txt: * docs/random/draft-missing-plugins.txt: Some small updates: update plugin system identifier prefix ('gstreamer.net' to 'gstreamer'), mention our new install API in libgstbaseutils rather than libgimme-codec, add reference to the online docs. 2007-02-21 Thomas Vander Stichele * win32/common/config.h: Pretty sure Bill never made a powerpc version. Powerpc hackers, use moap cl ci to only check in what is mentioned in the ChangeLog. 2007-02-21 Thomas Vander Stichele * docs/gst/gstreamer-sections.txt: * gst/gstelement.h: Fix up documentation to link to the correct GstGError section. Add GST_ELEMENT_INFO macro since someone else added a Info message. 2007-02-21 Thomas Vander Stichele * tools/gst-launch.c: (event_loop): Make sure that we actually show the important message part of a warning message. No need to check if the gerror is not NULL to free; first of all g_free accepts NULL; and second the default error handler would segfault if gerror was NULL. 2007-02-21 Wim Taymans * docs/gst/gstreamer-sections.txt: Removed docs as well. 2007-02-21 Wim Taymans * gst/gstmessage.c: (gst_message_parse_duration): * gst/gstmessage.h: Remove new messages for release. 2007-02-20 Wim Taymans * docs/design/part-gstghostpad.txt: * gst/gstghostpad.c: (gst_ghost_pad_dispose), (gst_ghost_pad_new_full): Make the ghostpad a parent of the internal pad again for better backward compatibility. Don't write code that relies on this however. * gst/gstpad.c: (gst_pad_activate_pull), (gst_pad_activate_push), (gst_pad_link_check_hierarchy): Require that parents should be GstElements in the hierarchy check. 2007-02-20 Wim Taymans * gst/gstbin.c: (bin_replace_message), (gst_bin_add_func), (gst_bin_change_state_func), (bin_query_min_max_init), (bin_query_latency_fold), (bin_query_latency_done), (gst_bin_query): Improve debug info. Implement latency query. 2007-02-20 Wim Taymans * docs/design/part-gstghostpad.txt: * gst/gstghostpad.c: (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_dispose), (gst_ghost_pad_new_full), (gst_ghost_pad_set_target): Do not set the internal pad as a parent anymore so we can avoid hierarchy linking errors when the ghostpad has no parent yet. This also fixes failed activation because of unlinked internal pads, which in turn fixes the impossible case where you have to activate a pad before you can add it to a running element. Also fix the docs. * gst/gstpad.c: (pre_activate), (post_activate), (gst_pad_set_active), (gst_pad_activate_pull), (gst_pad_activate_push), (gst_pad_check_pull_range): Add some more debug info. Mark activation mode in pre_activate so that we don't try to activate in endless loops. Fixes #385084. 2007-02-19 Wim Taymans * libs/gst/base/gstbasetransform.c: (gst_base_transform_init), (gst_base_transform_check_get_range): Implement a checkgetrange function instead of relying on the default core behaviour that assumes we can operate in pull mode if we have a getrange function. First step at fixing #385084. 2007-02-15 Stefan Kost * gst/gstchildproxy.h: * libs/gst/base/gstbasesink.h: * libs/gst/base/gstbasesrc.h: * libs/gst/base/gstbasetransform.h: More docs coverage and some ChangeLog surgery (add missing names) 2007-02-15 Wim Taymans * docs/design/part-TODO.txt: * docs/design/part-activation.txt: * docs/design/part-block.txt: * docs/design/part-buffering.txt: * docs/design/part-clocks.txt: * docs/design/part-element-source.txt: * docs/design/part-events.txt: * docs/design/part-gstbin.txt: * docs/design/part-gstbus.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-qos.txt: * docs/design/part-query.txt: * docs/design/part-states.txt: * docs/design/part-trickmodes.txt: Some doc updates. Start renaming from stream_time to running_time where it was used wrongly. 2007-02-15 Wim Taymans * libs/gst/base/gstbasesrc.c: (gst_base_src_default_query): Answer LATENCY query. 2007-02-15 Wim Taymans * tests/check/gst/gstevent.c: (event_probe), (test_event), (GST_START_TEST): Improve debugging. 2007-02-15 Wim Taymans * gst/gstpad.c: (gst_pad_get_internal_links_default), (gst_pad_dispatcher): Improve debugging of default pad dispatcher and query functions. 2007-02-15 Wim Taymans * docs/gst/gstreamer-sections.txt: Remove old unused method. 2007-02-13 Wim Taymans * tests/check/gst/gstsegment.c: (GST_START_TEST): Fix check 2007-02-13 Wim Taymans * docs/design/part-seeking.txt: Some small update. * gst/gstsegment.c: (gst_segment_set_seek): Revert old bogus change that should make seeking work again. 2007-02-13 Stefan Kost * docs/random/ensonic/dynlink.txt: * docs/random/ensonic/interfaces.txt: * docs/random/ensonic/receipies.txt: Possible dynamic reconnection api, plus some type fixes the other two docs. 2007-02-13 Sebastian Dröge * plugins/elements/gstfilesink.c: (gst_file_sink_uri_set_uri): * plugins/elements/gstfilesrc.c: (gst_file_src_uri_set_uri): Also check for an absolute path following file:// in the filesrc element. Remove redundant check and call g_path_is_absolute() on the unescaped location. 2007-02-13 Stefan Kost * docs/design/draft-klass.txt: Add existing category analysis. * gst/gstcaps.c: Fix doc example, framerate is a fraction. 2007-02-12 Stefan Kost * configure.ac: * docs/gst/Makefile.am: * docs/libs/Makefile.am: * docs/plugins/Makefile.am: Add crossreferences to glib/gobject docs. 2007-02-12 Wim Taymans * docs/design/draft-latency.txt: Small update. * docs/libs/gstreamer-libs-sections.txt: * libs/gst/base/gstbasesink.c: (gst_base_sink_class_init), (gst_base_sink_get_latency), (gst_base_sink_query_latency), (gst_base_sink_wait_clock), (gst_base_sink_send_qos), (gst_base_sink_perform_qos), (gst_base_sink_queue_object_unlocked), (gst_base_sink_chain_unlocked), (gst_base_sink_send_event), (gst_base_sink_get_position), (gst_base_sink_query), (gst_base_sink_change_state): * libs/gst/base/gstbasesink.h: API: gst_base_sink_query_latency() to let subclasses query the upstream latency. API: gst_base_sink_get_latency() to let subclasses query the configured latency in the sink. Implement query and set latency. Update some docs. As spotted by Will Newton : Make sure we don't continue preroll when we are flushing. Fixes #405284. * tests/check/pipelines/stress.c: (change_state_timeout), (quit_timeout), (GST_START_TEST), (stress_suite): Test for #405284. 2007-02-09 Tim-Philipp Müller Patch by: René Stadler * docs/gst/gstreamer-sections.txt: * gst/gsttaglist.c: (_gst_tag_initialize): * gst/gsttaglist.h: API: add GST_TAG_REFERENCE_LEVEL (#403597). 2007-02-11 Stefan Kost * docs/libs/Makefile.am: Fix path to core docs. * gst/gstbin.c: (gst_bin_get_by_interface), (gst_bin_iterate_all_by_interface): Refix docs by also renaming 'interface' to 'iface' in implementation. * docs/gst/gstreamer-sections.txt: * gst/gstcaps.c: * gst/gstchildproxy.c: (gst_child_proxy_base_init): * gst/gstchildproxy.h: * gst/gstelementfactory.c: * gst/gstpadtemplate.h: * libs/gst/controller/gstcontroller.c: (gst_controlled_property_new): Document more. 2007-02-10 Sébastien Moutte * gst/gstbin.h:(gst_bin_get_by_interface), (gst_bin_iterate_all_by_interface): Replace interface parameter name by iface as interface is a reserved keyword in Visual Studio for C++ projects so it removes a build error for application developpers using VS. * plugins/elements/gstfilesrc.c:(gst_file_src_uri_set_uri): Fix a bug on Windows in uri format check. Now the prefix checked is file:// and next we check if the path after file:// is absolute. * win32/common/libgstbase.def: * win32/common/libgstdataprotocol.def: * win32/common/libgstgstreamer.def: Add new exported functions. 2007-02-09 Andy Wingo * tests/check/pipelines/simple-launch-lines.c (simple_launch_lines_suite, test_tee): Disable tee test until I have time to fix it :-( * tests/check/Makefile.am (noinst_HEADERS): * tests/check/libs/libsabi.c: * tests/check/libs/struct_ppc32.h: Add ABI checks for PPC32. * tests/check/gst/gstabi.c: * tests/check/gst/struct_ppc32.h: Add ABI checks for PPC32. * tests/check/pipelines/simple-launch-lines.c (test_tee): Add tests for push and pull tee behavior. * plugins/elements/gsttee.h: * plugins/elements/gsttee.c: Describe has-sink-loop better, and mark as deprecated as well as unimplemented. It was a crack idea. Add support for tee operating in pull mode, off by default. * gst/gstregistryxml.c (load_feature, load_plugin): Drop some normal-case logs down to LOG, raise errors to WARNING. (gst_registry_xml_read_cache): Don't log before calling a function that logs. * gst/gstregistry.c (gst_registry_finalize): Less debug on program exit (registry finalize). (gst_registry_add_plugin, gst_registry_add_feature): No need for a DEBUG log when we emit signals that people don't even have the chance to connect to. (gst_registry_scan_path_level): Less logging in the normal case. 2007-02-05 Sebastian Dröge Patch by: Michal Benes * plugins/elements/gstfilesrc.c: (gst_file_src_create_read): Correctly generate EOS for non-seekable files. We don't have a total length for them and would get an unexpected end of file if we only special-cased for regular files. (Fixes: #404569) 2007-02-05 Sebastian Dröge * tests/check/elements/filesrc.c: (GST_START_TEST), (filesrc_suite): Add unit test for the GstURIHandler interface in filesrc. This also tests the newly added file://localhost/foo/bar support. 2007-02-04 Tim-Philipp Müller * gst/gstelementfactory.h: The klass string is not a hierarchy. Add reference to the design doc for more information and common types. 2007-02-02 Wim Taymans * gst/gstquery.c: (gst_query_new_latency): Remove old structure field. 2007-02-02 Stefan Kost * tools/gst-launch.1.in: Give example for network streaming (#351998) 2007-02-02 Wim Taymans * docs/gst/gstreamer-sections.txt: Add docs for new methods. * gst/gstevent.c: (gst_event_new_latency), (gst_event_parse_latency): * gst/gstevent.h: Add new LATENCY event to configure latency in a pipeline. API: gst_event_new_latency API: gst_event_parse_latency * gst/gstmessage.c: (gst_message_new_buffering), (gst_message_new_lost_preroll), (gst_message_new_prerolled), (gst_message_new_latency), (gst_message_parse_buffering), (gst_message_parse_lost_preroll): * gst/gstmessage.h: Added messages used in draft-latency. API: gst_message_new_lost_preroll API: gst_message_parse_lost_preroll API: gst_message_new_prerolled API: gst_message_new_latency * gst/gstquery.c: (gst_query_new_latency), (gst_query_set_latency), (gst_query_parse_latency): * gst/gstquery.h: Implemented new latency query as in design doc. API: gst_query_new_latency API: gst_query_set_latency API: gst_query_parse_latency 2007-02-02 Wim Taymans * docs/design/draft-latency.txt: Slight redesign to allow for dynamic latency adjustments. * docs/design/part-negotiation.txt: Fix some typos. 2007-02-02 Sebastian Dröge reviewed by: Wim Taymans * plugins/elements/gstfilesink.c: (gst_file_sink_uri_set_uri): * plugins/elements/gstfilesrc.c: (gst_file_src_uri_set_uri): Allow file://localhost/foo/bar URLs and correctly fail for every other hostname that one sets. This was gnomevfssrc is linked for those if installed as it can handle it (#403172) 2007-02-01 Sebastian Dröge reviewed by: Tim-Philipp Müller * libs/gst/base/gstcollectpads.c: (gst_collect_pads_finalize), (unref_data), (gst_collect_pads_add_pad_full): * libs/gst/base/gstcollectpads.h: Don't put the previously added destroy notify in the GstCollectData struct as all it's padding is already used and we don't want to break ABI. Instead put in the pad's GObject data for now. This should be cleaned up for 0.11 (#402393). 2007-02-01 Sebastian Dröge reviewed by: Wim Taymans * docs/libs/gstreamer-libs-sections.txt: * libs/gst/base/gstcollectpads.c: (gst_collect_pads_finalize), (unref_data), (gst_collect_pads_add_pad), (gst_collect_pads_add_pad_full): * libs/gst/base/gstcollectpads.h: API: Add function to specify a destroy notification for custom GstCollectData when adding new pads in GstCollectPads (#402393). 2007-02-01 Tim-Philipp Müller * po/sv.po: Update Swedish translation (#378255). 2007-01-31 Stefan Kost * docs/design/draft-klass.txt: Fix the previous change, this is a list of categories and not a hierarchy. 2007-01-31 Stefan Kost * docs/design/draft-klass.txt: Add info about how to get a list of used classes. 2007-01-30 Tim-Philipp Müller * plugins/elements/gsttypefindelement.c: (gst_type_find_element_chain_do_typefinding), (gst_type_find_element_change_state): Don't leak found caps in chain function (no idea why that never showed up as a leak anywhere). 2007-01-30 Stefan Kost * gst/gstplugin.h: Fix and expand GstPluginDesc API docs. 2007-01-29 Stefan Kost * gst/gstcaps.c: * gst/gstelementfactory.c: * gst/gstpadtemplate.h: api doc fixes * libs/gst/controller/gstcontroller.c: (gst_controlled_property_new): * tests/examples/controller/audio-example.c: comment fixes 2007-01-29 Stefan Kost * configure.ac: comment about refining the xml deps * docs/manuals.mak: comments about moving away from jade for docs * gst/gst.c: recommit the ifdefs to use the binary registry * gst/gstbin.c: (gst_bin_change_state_func): this break is obsolete * gst/gstelementfactory.h: better GST_ELEMENT_DETAILS docs, add comment about translation * gst/gstinfo.h: remove eol slash * gst/gstobject.c: (gst_signal_object_get_type): add G_UNLIKELY as usual * gst/gstpad.c: (gst_pad_event_default): add fall trhu comment * gst/gstregistrybinary.c: (gst_registry_binary_write), (gst_registry_binary_initialize_magic), (gst_registry_binary_save_string), (gst_registry_binary_save_pad_template), (gst_registry_binary_save_feature), (gst_registry_binary_save_plugin), (gst_registry_binary_write_cache), (gst_registry_binary_check_magic), (gst_registry_binary_load_pad_template), (gst_registry_binary_load_feature), (gst_registry_binary_load_plugin), (gst_registry_binary_read_cache): comment typo and formatting * gst/gstutils.c: (gst_element_state_get_name), (gst_element_state_change_return_get_name): remove obsolete breaks * gst/gstvalue.c: (gst_date_get_type), (_gst_value_initialize): add FIXME 0.11 and remove cpp comment 2007-01-29 Edward Hervey * gst/gstregistrybinary.c: (gst_registry_binary_read_cache): Fix print statement in an even more portable way. 2007-01-29 Tim-Philipp Müller * docs/gst/gstreamer-sections.txt: * gst/gstutils.h: API: add GST_ROUND_DOWN_* macros (#401781). 2007-01-27 Tim-Philipp Müller * docs/gst/gstreamer.types.in: * gst/gstregistry.c: (gst_registry_class_init): Document registry signals and make gtk-doc pick them up (#401381). 2007-01-26 Tim-Philipp Müller * docs/pwg/building-testapp.xml: Add some audioconverts and audioresample to the pipeline, and some more comments and error handling. 2007-01-26 Tim-Philipp Müller * docs/manual/manual.xml: * docs/pwg/pwg.xml: Fix typo (#400987). 2007-01-26 Wim Taymans * gst/gstcaps.c: (gst_static_caps_get): Init caps flags too. 2007-01-25 Sebastian Dröge Patch by: Jindrich Makovicka * plugins/elements/gstfilesrc.c: (gst_file_src_start): If not using mmap'ed files try to seek to the end instead of the start to determine whether we can seek at all. This fixes the case of 2GB+ files over NFS, where seeks in the first 2GB can succeed but seeks for everything afterwards fail. Fixes #400656 2007-01-25 Wim Taymans * gst/gstcaps.c: (_gst_caps_free), (gst_static_caps_get): Add some refcount debugging. Make gst_static_caps_get threadsafe, which is needed when autoplugging in multiple streaming threads. 2007-01-25 Wim Taymans Patch by: David Schleef * docs/libs/gstreamer-libs-sections.txt: * libs/gst/base/gstadapter.c: (gst_adapter_copy): * libs/gst/base/gstadapter.h: API: gst_adapter_copy() that can reduce the amount of memcpy when getting data from the adapter. Fixes #388201. 2007-01-25 Edward Hervey * gst/gstregistrybinary.c: (gst_registry_binary_read_cache): In print statements, "%x" is for guint. Fixes build on macosx. 2007-01-24 Edward Hervey * plugins/elements/gstmultiqueue.c: (gst_multi_queue_loop): Small fix. (single_queue_overrun_cb), (single_queue_underrun_cb), (single_queue_check_full), (gst_single_queue_new): Implement single queue growth system. This uses the extra-size properties, and will grow single queues by that much if one goes full whereas there are others empty. This is called extra-mode in the code. When a single queue's levels go back below the initial max-size limits, it is no longer in extra-mode. This is to ensure we don't consume too much memory. Fixes #399875 2007-01-23 Tim-Philipp Müller * gst/gst.c: (gst_init_get_option_group): Make warning about late g_thread_init() calls a bit more explicit, so that it's more obvious to application developers what they need to do if a user files a bug against their application. 2007-01-22 Edward Hervey * plugins/elements/gstmultiqueue.c: (gst_multi_queue_src_activate_push), (gst_single_queue_new): Remove previous hack of unsetting the flushing flag for the source pad instead of activating it. Instead, fix the source pad activate function so that it no longer depends on having a parent set or not. 2007-01-22 Tim-Philipp Müller Patch by: Carlos Sanmartin Dominguez * docs/manual/basics-bus.xml: Fix example code, gst_element_unref() doesn't exist any longer. 2007-01-21 Tim-Philipp Müller Patch by: Mark Nauwelaerts * gst/gstpad.c: Fix two docs typoes (#399094). 2007-01-19 Edward Hervey * docs/faq/gst-uninstalled: Add gst-plugins-base/gst/utils/ to LD_LIBRARY_PATH so that plugins depending on libgstbaseutils can work in uninstalled environment. 2007-01-18 Stefan Kost * gst/gsttaglist.h: * gst/gsttagsetter.c: Add more docs regarding tag merge-modes and when to send tags. Fix 'since' statement for new tag. 2007-01-17 Edward Hervey * plugins/elements/gstmultiqueue.c: (gst_single_queue_new): When dynamically creating single queues, activate sinkpad before adding it. We should be doing the same thing for the source pad, but we can't since it would call a method which needs the parent to be set in order to work propertly. Instead of activating the source pad, we just unset the flushing flag, which is the minimal requirement for adding a pad to an element in a state greater than READY. 2007-01-17 Edward Hervey * docs/faq/gst-uninstalled: Add DYLD_LIBRARY_PATH declarations so we can also use this script on Mac OS X. 2007-01-17 Tim-Philipp Müller * tests/check/gst/gstabi.c: * tests/check/gst/struct_hppa.h: * tests/check/libs/libsabi.c: * tests/check/libs/struct_hppa.h: Add ABI structs for HPPA (see #393796). 2007-01-16 Tim-Philipp Müller * libs/gst/check/gstcheck.c: (gst_check_abi_list): Actually write ABI structs to the file specified in the GST_ABI environment variable, as the message we print claims we would. 2007-01-15 Stefan Kost * tests/check/gst/gsttask.c: Fix header comment. 2007-01-15 Stefan Kost * gst/gsttaglist.c: (_gst_tag_initialize): Change tag type from STRING to DOUBLE. Apply ChangeLog surgery for my previous two entries. 2007-01-15 Stefan Kost * docs/gst/gstreamer-sections.txt: * gst/gsttaglist.c: (_gst_tag_initialize): * gst/gsttaglist.h: Add tag support for beat-per-minute. 2007-01-15 Stefan Kost * gst/gstregistrybinary.c: (gst_registry_binary_write), (gst_registry_binary_initialize_magic), (gst_registry_binary_save_string), (gst_registry_binary_make_data), (gst_registry_binary_save_pad_template), (gst_registry_binary_save_feature), (gst_registry_binary_save_plugin), (gst_registry_binary_write_cache), (gst_registry_binary_check_magic), (gst_registry_binary_load_pad_template), (gst_registry_binary_load_feature), (gst_registry_binary_load_plugin), (gst_registry_binary_read_cache): * gst/gstregistrybinary.h: Use glib types, cleanup comments, impement interfaces and uri-types. 2007-01-13 Andy Wingo * gst/gstpad.c (gst_pad_get_range, gst_pad_pull_range): Allow getrange() to return buffers with other caps, while we fix demuxers and typefind, or otherwise change part-negotiation.txt. 2007-01-12 Andy Wingo * libs/gst/base/gstbasetransform.c (gst_base_transform_activate): Factor start/stop into this private function instead of partially in activate functions and partially in the change_state function. Fixes setup before the element has changed from READY->PAUSED, as is the case in pull-mode pipelines. (gst_base_transform_sink_activate_push) (gst_base_transform_src_activate_pull): Refactor to use gst_base_transform_activate(). (gst_base_transform_change_state): Removed, not needed any more. * libs/gst/base/gstbasesink.c (gst_base_sink_negotiate_pull): Truncate before fixating. * libs/gst/base/gstbasesink.c (gst_base_sink_negotiate_pull): Don't set_caps() if the result of fixating is ANY, as it's not supported, and not necessary in the case of a link with no template caps on either side. Fixes tests/check/libs/basesrc in some pull-mode tests. * libs/gst/base/gstbasetransform.c (_GstBaseTransformPrivate): (gst_base_transform_init, gst_base_transform_sink_activate_push) (gst_base_transform_src_activate_pull): Track the activation mode. (gst_base_transform_setcaps): In pull mode, when activating the src pad, after activating the sink pad, activate the sink pad's peer, as discussed in part-negotiation.txt. * libs/gst/base/gstbasesrc.h: * libs/gst/base/gstbasesrc.c (gst_base_src_fixate): Add fixate vmethod, as in basesink. * libs/gst/base/gstbasesink.h: Reformat docs, add fixate vmethod. * libs/gst/base/gstbasesink.c (gst_base_sink_pad_setcaps): In pull mode, first proxy the setcaps to the peer pad. (gst_base_sink_pad_fixate): Add a fixate function that calls the new fixate vmethod. (gst_base_sink_default_activate_pull): Rename from gst_base_sink_activate_pull. (gst_base_sink_negotiate_pull): New function, performs negotiation in pull mode before calling ::activate_pull(). (gst_base_sink_pad_activate_pull): Actually call the activate_pull vmethod instead of the default implementation. I have no idea how this worked before. Negotiate before calling activate_pull. * gst/gstpad.c (gst_pad_activate_pull): Refuse to activate unlinked sink pads in pull mode. In addition to being correct, fixes filesrc ! decodebin ! identity ! fakesink. (gst_pad_get_range, gst_pad_pull_range): Don't call gst_pad_set_caps() if the caps changes; instead error out with GST_FLOW_NOT_NEGOTIATED, as discussed in part-negotiation.txt. 2007-01-12 Andy Wingo * docs/design/part-negotiation.txt: Update with more policy. 2007-01-12 Tim-Philipp Müller * libs/gst/check/gstbufferstraw.h: * libs/gst/check/gstcheck.h: Add G_BEGIN_DECLS and G_END_DECLS. Move GST_CHECK_MAIN where it belongs. 2007-01-12 Tim-Philipp Müller * tests/check/Makefile.am: * tests/check/gst/.cvsignore: * tests/check/gst/gsttagsetter.c: (gst_dummy_enc_add_interfaces), (gst_dummy_enc_base_init), (gst_dummy_enc_class_init), (gst_dummy_enc_init), (tag_list_foreach), (tag_setter_list_length), (GST_START_TEST), (gst_tag_setter_suite): Add minimal unit test for beforementioned GstTagSetter bug. 2007-01-12 Tim-Philipp Müller Patch by: René Stadler * gst/gsttagsetter.c: (gst_tag_setter_merge_tags): gst_tag_list_merge() returns a new list, so it's not the best idea to ingore its return value. Effectively meant that tags could only be merged on a GstTagSetter once using _merge_tags(). Fixes #395554. Also add function guard to require a non-NULL taglist as input (has always been so due to gst_tag_list_copy(), just making it explicit). 2007-01-11 Tim-Philipp Müller * docs/random/draft-missing-plugins.txt: Some additions: mention new API that is supposed to be used at the various stages; short blob about new gst-inspect introspection option; mention potential future problem with plugins that have a dynamic list of elements (such as ladspa, pitfdll, libvisual). 2007-01-11 Tim-Philipp Müller * tools/gst-inspect.c: (print_plugin_automatic_install_info_codecs), (print_plugin_automatic_install_info_protocols), (print_plugin_automatic_install_info), (main): Add --print-plugin-auto-install-info option to gst-inspect, so we can introspect plugin files and get machine-parsable output that corresponds to the last bit of the missing-plugin installer string (small gotcha: doesn't take into account ranks). 2007-01-11 Stefan Kost * configure.ac: * docs/gst/gstreamer-sections.txt: * gst/Makefile.am: * gst/gstregistry.c: (gst_registry_lookup_feature_locked), (gst_registry_lookup_locked): * gst/gstregistry.h: * gst/gstregistrybinary.c: (gst_registry_binary_write), (gst_registry_binary_initialize_magic), (gst_registry_binary_save_string), (gst_registry_binary_save_pad_template), (gst_registry_binary_save_feature), (gst_registry_binary_save_plugin), (gst_registry_binary_write_cache), (gst_registry_binary_check_magic), (gst_registry_binary_load_pad_template), (gst_registry_binary_load_feature), (gst_registry_binary_load_plugin), (gst_registry_binary_read_cache): * gst/gstregistrybinary.h: * gst/gstregistryxml.c: (load_feature), (gst_registry_xml_read_cache): commit binary registry (disabled by default, see #359653) 2007-01-11 Tim-Philipp Müller * tests/check/gst/gstpad.c: (test_get_allowed_caps): Fix 'make check' too. 2007-01-10 Andy Wingo * docs/design/part-negotiation.txt: Fix a typo, add a couple notes. * docs/design/part-negotiation.txt: Update with, um, one way that pull-mode negotiation might work? * gst/gstpad.h: * gst/gstpad.c (gst_pad_get_allowed_caps): Remove the restriction that the pad must be a src pad; makes sense to call it the other way in pull mode, and the logic is symmetric anyway. 2007-01-10 Tim-Philipp Müller * plugins/elements/gstfilesink.c: Include for fseeko(). 2007-01-10 Wim Taymans * gst/gstevent.c: * gst/gstevent.h: Reserve LATENCY event. 2007-01-09 Wim Taymans * docs/design/draft-latency.txt: Updates. 2007-01-09 Wim Taymans * docs/design/draft-latency.txt: Updates. * gst/gstelement.h: * gst/gststructure.c: * gst/gsttrace.c: Small typo fixes. 2007-01-09 Tim-Philipp Müller * tests/check/.cvsignore: Ignore test-registry.xml as well. 2007-01-09 Wim Taymans * libs/gst/base/gstcollectpads.c: (gst_collect_pads_remove_pad): unref data at the end when we are done with the pad. 2007-01-08 Tim-Philipp Müller * docs/gst/gstreamer-sections.txt: * gst/gst.c: (load_plugin_func), (scan_and_update_registry), (init_post), (gst_deinit), (gst_update_registry): * gst/gst.h: API: add gst_update_registry() (#391296). * tests/check/Makefile.am: * tests/check/gst/gstregistry.c: * tests/check/gst/.cvsignore: Simple unit test for the above. 2007-01-08 Tim-Philipp Müller * gst/gstregistry.c: (gst_registry_scan_path_level): Plugin extension on HP-UX is .sl, add that to the list of approved plugin extensions (see #393796). * tests/check/gst/gstpad.c: (GST_START_TEST): ulong => gulong. Fixes compilation with HP-UX compiler. * tests/check/pipelines/parse-launch.c: (GST_START_TEST): Fix compilation if valgrind headers are not available. 2007-01-07 Sébastien Moutte * win32/common/libgstreamer.def: Add new exported function. * win32/vs6/libgstbase.dsp: Add gstdataqueue.c to the build. * win32/vs6/libgstcoreelements.dsp: Add gstmultiqueue.c to the build. 2007-01-06 Andy Wingo * libs/gst/base/gstbasesink.h: New GstBaseSinkClass vmethod, activate_pull(), providing for a way to specialize the process of spawning a thread to pull on the sink pad. There is a default implementation. * libs/gst/base/gstbasesink.c (gst_base_sink_pad_activate_pull) (gst_base_sink_pad_activate_push, gst_base_sink_pad_activate) (gst_base_sink_init): Renamed pad activation functions (inserting "_pad" in their names). Refactor to use the new activate_pull vmethod, as appropriate. (gst_base_sink_class_init, gst_base_sink_activate_pull): Set the default activate_pull function to start a task pulling from the sink pad, as before. * gst/gstpad.c (gst_pad_get_range, gst_pad_pull_range): Set caps on the pads if necessary, as in push()/chain(). Update docs. Shouldn't affect existing pull() usage as it is currently only being used on buffers without caps. 2007-01-05 Tim-Philipp Müller * gst/gst.c: (gst_init_get_option_group), (gst_init_check), (init_pre): Call g_thread_init() first thing in gst_init() / gst_check_init(). When initialisation is done via gst_init_get_option_group() and GOption parsing, issue a warning if the GLib thread system has not been initialised yet by the time gst_init_get_option_group() is called, as it's quite likely other GLib functions such as g_option_context_new() have been called already then, and g_thread_init() must be called before any other GLib function. The application in question must be fixed in that case, since memory corruption might happen otherwise. We issue the warning because even if the GLib folks decide to work around the problem on their end in future, this is still an issue with all GLib versions >= 2.10.0, so we should warn until we depend on a GLib version we know to be safe. Update documentation as well. Closes bug #391278. 2007-01-05 Tim-Philipp Müller * tools/gst-inspect.c: (main): * tools/gst-launch.c: (main): * tools/gst-typefind.c: (main): * tools/gst-xmlinspect.c: (main): Call g_thread_init() really really early, before any other GLib function (see #342564 and recent discussion on gtk-devel-list). 2007-01-05 Tim-Philipp Müller Patch by: Vincent Torri * gst/gst_private.h: * gst/gstconfig.h.in: * gst/gstinfo.h: On win32, all the __declspec stuff for symbol exporting is apparently only needed with MSVC, but doesn't work with MingW. Fixes compilation with MingW and #391909. 2007-01-05 Tim-Philipp Müller * libs/gst/base/gstbasesrc.c: (gst_base_src_activate_push): Change some GST_ERROR_OBJECT that aren't really errors to GST_WARNING_OBJECT in order to reduce terminal spam. 2007-01-04 Stefan Kost * tests/check/Makefile.am: disable test again, as there seem to be still race problems 2007-01-04 Stefan Kost * tests/check/Makefile.am: * tests/check/elements/queue.c: (queue_overrun), (queue_underrun), (GST_START_TEST), (queue_suite): enable queue test again, add tests for the leaky behaviour 2007-01-02 Tim-Philipp Müller * configure.ac: * tests/examples/Makefile.am: Compile adapter test/example only if the required headers are available (fixes #391915). 2007-01-01 David Schleef * gst/gstplugin.c: Restore the previous signal handler for SIGSEGV instead of setting to default, since we may have stolen it away from someone. (i.e., Mono) 2006-12-26 Tim-Philipp Müller * docs/random/draft-missing-plugins.txt: Some small additions and clarifications. 2006-12-26 Tim-Philipp Müller * gst/gstregistryxml.c: (gst_registry_save_escaped): Make sure we don't pass non-UTF-8 strings to g_markup_escape(), since that can lead to random memory corruptions and crashes (may or may not be related to #383244, #386711, and #386711). 2006-12-21 Stefan Kost * tests/check/.cvsignore: * tests/check/Makefile.am: sync .cvsignome and CLEANFILES 2006-12-21 Stefan Kost * tests/check/Makefile.am: fix distcheck 2006-12-21 Stefan Kost * docs/design/part-states.txt: two tiny additional comments * gst/gststructure.c: doc fixing * tests/check/Makefile.am: * tests/check/elements/queue.c: (queue_overrun), (queue_underrun), (GST_START_TEST): disable test for now, unless it gets fixed 2006-12-21 Stefan Kost * tests/check/elements/queue.c: (queue_overrun), (queue_underrun), (GST_START_TEST): fix race in underrun test 2006-12-21 Stefan Kost * tests/check/elements/.cvsignore: ignore more * tests/check/elements/queue.c: (queue_overrun), (queue_underrun), (GST_START_TEST): try to narrow test failure 2006-12-21 David Schleef * plugins/elements/gstfakesrc.c: Use g_random_int_range(), since it produces better random numbers in a range than almost-correct floating point code. 2006-12-21 Stefan Kost * libs/gst/check/gstcheck.c: (gst_check_setup_src_pad), (gst_check_teardown_src_pad), (gst_check_setup_sink_pad), (gst_check_teardown_sink_pad): do not automatically (de)activate pads * tests/check/Makefile.am: * tests/check/elements/queue.c: (queue_overrun), (queue_underrun), (setup_queue), (cleanup_queue), (GST_START_TEST), (queue_suite): add new, yet simple tests for queue * tests/check/elements/fakesrc.c: (cleanup_fakesrc): * tests/check/elements/fdsrc.c: (cleanup_fdsrc): * tests/check/elements/filesrc.c: (cleanup_filesrc), (GST_START_TEST): * tests/check/elements/identity.c: (cleanup_identity): consistent pad (de)activation 2006-12-20 Tim-Philipp Müller Patch by: Sebastian Dröge * libs/gst/base/gstcollectpads.c: Fix two doc typos (#387866). 2006-12-19 Tim-Philipp Müller * docs/manual/advanced-dparams.xml: Fix typo (g_object_control_properties() doesn't exist). 2006-12-19 Edward Hervey * gst/gstsegment.c: (gst_segment_set_seek): Fine tune the cases where the segment start/stop values are really updated. * tests/check/gst/gstsegment.c: (GST_START_TEST): Add tests for the return values of gst_segment_set_seek(). 2006-12-19 Tim-Philipp Müller * gst/gst.c: Docs typo fix. * plugins/elements/gstqueue.c: (gst_queue_class_init), (gst_queue_init): Fix incorrect documentation and flesh it out a bit more. Set default values for the max properties on the GParamSpec as well, so it shows up correctly in gst-inspect. 2006-12-18 Stefan Kost * plugins/elements/gstqueue.c: (queue_leaky_get_type): Correct docs of queue, add more detail and crosslink it more. 2006-12-16 Tim-Philipp Müller * plugins/elements/gstidentity.c: (gst_identity_check_perfect): Print additional debug info when the stream isn't perfectly timestamped; don't try to use invalid durations. 2006-12-16 Tim-Philipp Müller * docs/design/Makefile.am: Dist new design docs. 2006-12-16 Wim Taymans Patch by: Sjoerd Simons * libs/gst/base/gstcollectpads.c: (ref_data), (unref_data), (gst_collect_pads_add_pad), (gst_collect_pads_remove_pad), (gst_collect_pads_stop), (gst_collect_pads_event), (gst_collect_pads_chain): * libs/gst/base/gstcollectpads.h: Add refcounting to the collectpads data so we can track when it's safe to free the data. Fixes #383382. 2006-12-15 Wim Taymans * libs/gst/base/gstcollectpads.c: (gst_collect_pads_add_pad), (gst_collect_pads_remove_pad): Automatically activate/deactivate pads when they are added to a started/stoped collectpads. 2006-12-15 Wim Taymans * gst/gstelement.c: (gst_element_add_pad): * gst/gstghostpad.c: (gst_ghost_pad_new_full): * gst/gstpad.c: (gst_pad_init): Set pads to FLUSHING when they are created. Check, warn and fix when a demuxer adds an inactive pad to itself when running. Fixes #339326. 2006-12-15 Wim Taymans * gst/gstelement.c: (gst_element_class_init), (gst_element_default_send_event), (gst_element_send_event), (gst_element_default_query), (gst_element_query): Expose default element send_event and query handling as vmethods that subclasses can chain up to. 2006-12-15 Wim Taymans * gst/gstelement.c: (gst_element_set_state_func): Small documentation fixes. 2006-12-15 Wim Taymans * docs/design/draft-latency.txt: Checked in draft for handling latency in pipelines. 2006-12-15 Thomas Vander Stichele * Makefile.am: * gstreamer.doap: * gstreamer.spec.in: adding .doap file 2006-12-14 Tim-Philipp Müller * gst/gst.c: (init_pre), (init_post): init_pre() and init_post() might be called via our GOptionGroup or from gst_init(), and we should skip both of them if we've already been initialised, otherwise we will init some things twice or add two default log functions. 2006-12-13 Edward Hervey * docs/manual/basics-bus.xml: No, gst_main_loop does not exist. Its g_main_loop. Discovered by somebody who abused the copy-paste technique of coding :) 2006-12-13 Tim-Philipp Müller * gst/gstghostpad.c: Log ghostpad debug stuff to the GST_PADS category as well rather than just to the default category. 2006-12-12 Tim-Philipp Müller * configure.ac: * gst/gst.c: (init_pre): Add some basic system details such as OS and architecture to the debug output if possible, courtesy of uname(). 2006-12-11 Tim-Philipp Müller * docs/gst/running.xml: Document GST_REGISTRY_FORK and GST_DEBUG_NO_COLOR environment variables. 2006-12-09 Jan Schmidt * tests/check/gst/gstbin.c: (GST_START_TEST): It is acceptable to have a refcount of 2 or 3 at this point in the test, because the pipeline might be just posting its state_change message. The next line then waits for that message to appear using bus_poll, so that should be fine too. 2006-12-09 Jan Schmidt * gst/gst.c: (ensure_current_registry_forking): Ignore EINTR when reading from the child registry pipe. Explicitly ignore the return value from close, since it makes no difference. * gst/gstminiobject.c: (gst_mini_object_ref), (gst_mini_object_unref): When debugging refcounts, check GST_IS_MINI_OBJECT and warn. * gst/gstregistry.c: (_priv_gst_registry_remove_cache_plugins): When removing cached plugins, remove their features too, so they're not visible after they've disappeared. * gst/gstutils.c: (prepare_link_maybe_ghosting): In the unlikely case that we are linking pads with no parents, don't crash trying to get the non-existent parent bin. * gst/parse/grammar.y: Output debug in the PIPELINE category 2005-03-08 Wim Taymans Patch by: René Stadler * gst/gstclock.c: (gst_clock_new_periodic_id): Reject invalid clock times for interval of periodic ids. Fixes ##383506. 2006-12-07 Jan Schmidt * gst/gstelementfactory.c: (gst_element_factory_create): * gst/gstpluginfeature.c: (gst_plugin_feature_load): * gst/gsttypefindfactory.c: (gst_type_find_factory_call_function): * tools/gst-inspect.c: (print_element_info): Fix refcounting of gst_plugin_feature_load to match the docs. Fixes: #380129 2006-12-07 Wim Taymans * libs/gst/base/gstbasesink.c: (gst_base_sink_event), (gst_base_sink_get_position): Improve debugging of events. 2006-12-07 Wim Taymans Patch by: René Stadler * gst/gstclock.c: (gst_clock_id_wait): Make period ids add the interval to the origial requested time instead of the possibly updated time which can be wrong when there are multiple waiters for the same id. Fixes #382592. * gst/gstsystemclock.c: (gst_system_clock_async_thread), (gst_system_clock_id_wait_jitter_unlocked), (gst_system_clock_id_wait_jitter): Fix restart in the async notify thread when an async entry is added to the front of the list. Fixes #381492. * tests/check/gst/gstsystemclock.c: (store_callback), (notify_callback), (GST_START_TEST), (gst_systemclock_suite): Added test for multiple async waits. Added test for async wait order. 2006-12-07 Wim Taymans * gst/gstbin.c: (gst_bin_query): Add some more docs about the POSITION query. 2006-12-07 Jan Schmidt * configure.ac: Bump version nano - back to CVS.