=== release 0.10.13 === 2007-06-05 Jan Schmidt * configure.ac: releasing 0.10.13, "With or without you" 2007-05-25 Wim Taymans * gst/gstbin.c: (bin_handle_async_done): Make sure that the child bin stops after completing the async state change so that the parent can continue the state change to PLAYING. Fixes #441159. 2007-05-25 Wim Taymans * libs/gst/base/gstcollectpads.c: (gst_collect_pads_finalize), (unref_data), (gst_collect_pads_remove_pad), (gst_collect_pads_check_pads): Use additional refcounting to avoid crashes when dynamically adding and removing pads. Fixes #420206. 2007-05-24 Wim Taymans * tools/gst-launch.c: (event_loop): When buffering goes from a two digit to a single digit number, make sure to remove the old second digit by writing a blank over it. 2007-05-24 Tim-Philipp Müller * libs/gst/base/gstdataqueue.c: Eliminate tabs and trailing comma in enum list; fix some typos. 2007-05-24 Wim Taymans * tests/check/gst/gstbin.c: (GST_START_TEST): Allow refcount of 3 and 4 because some state thread might still be busy with it. 2007-05-24 Tim-Philipp Müller * plugins/elements/Makefile.am: * plugins/elements/gstmultiqueue.h: * plugins/elements/gstqueue.h: These are not installed headers, no need for padding. 2007-05-24 Wim Taymans * gst/gstbin.c: (gst_bin_class_init), (gst_bin_get_state_func), (gst_bin_continue_func): Enable latency for next release. Restore STATE_LOCK around recalc_state that was left out during the rewrite and could result in racy behaviour when _get_state and recalc_state are run concurrently. See #440463. 2007-05-23 Wim Taymans * tests/check/gst/gstsystemclock.c: (store_callback), (GST_START_TEST): Improve test_async_order to also work when both timers are already expired when we get scheduled to check it. 2007-05-22 Tim-Philipp Müller * gst/gstbin.c: (gst_bin_init), (gst_bin_dispose), (gst_bin_set_property), (gst_bin_get_property), (gst_bin_remove_func), (gst_bin_handle_message_func): * gst/gstbin.h: 'private' is a c++ keyword, let's not use that in header files, otherwise c++ compilers will throw a tantrum. 2007-05-22 Tim-Philipp Müller * plugins/elements/gstelements.c: * plugins/elements/gstfilesink.c: (gst_file_sink_do_seek), (gst_file_sink_get_current_offset): * plugins/indexers/gstindexers.c: (plugin_init): Use #ifdef for HAVE_XYZ for consistency. * tests/check/Makefile.am: * tests/check/elements/.cvsignore: * tests/check/elements/filesink.c: (setup_filesink), (cleanup_filesink), (GST_START_TEST), (filesink_suite): Add some unit tests for filesink. 2007-05-22 Tim-Philipp Müller Patch by: Mark Nauwelaerts * plugins/elements/gstfilesink.c: (gst_file_sink_open_file), (gst_file_sink_query), (gst_file_sink_do_seek), (gst_file_sink_get_current_offset), (gst_file_sink_render): * plugins/elements/gstfilesink.h: Fix position reporting; rename data_written member to current_pos to reflect its real meaning (fixes #412648). 2007-05-22 Edward Hervey * docs/gst/gstreamer-sections.txt: * gst/gstbin.c: (gst_bin_class_init), (gst_bin_init), (gst_bin_dispose), (gst_bin_set_property), (gst_bin_get_property), (gst_bin_remove_func), (gst_bin_handle_message_func): * gst/gstbin.h: Add a property for bins that handle the state change of their childs. Fixes #435880 2007-05-22 Sebastian Dröge * libs/gst/controller/gstinterpolation.c: Use an array of the correct type when using _get_value_array with linear interpolation. 2007-05-22 Stefan Kost * gst/gstelement.c (gst_element_requires_clock, gst_element_provides_clock, gst_element_request_pad, gst_element_class_set_details, gst_element_class_set_details_simple, gst_element_default_send_event, gst_element_abort_state, gst_element_continue_state, gst_element_set_state, gst_element_set_state_func, iterator_activate_fold_with_resync): * gst/gstpad.c (gst_pad_activate_pull, gst_pad_set_getcaps_function, gst_pad_fixate_caps, gst_pad_configure_sink, gst_pad_configure_src, gst_pad_query, gst_pad_save_thyself, handle_pad_block, gst_pad_push, gst_pad_get_range, gst_pad_pull_range): * gst/gstpad.h (GST_PAD_LINK_SUCCESSFUL, GST_FLOW_CUSTOM_SUCCESS, GST_FLOW_NOT_SUPPORTED, GST_FLOW_IS_FATAL, GstPadActivateFunction, GstPadActivateModeFunction, GstPadChainFunction, GstPadGetCapsFunction, GstPadAcceptCapsFunction, GstPadFixateCapsFunction, GstPadTemplate): * gst/gstpipeline.c (gst_pipeline_change_state, gst_pipeline_set_new_stream_time, gst_pipeline_use_clock, gst_pipeline_set_clock, gst_pipeline_auto_clock, gst_pipeline_get_delay): Whitespace and docs fixes. 2007-05-21 Sebastian Dröge * libs/gst/controller/gstinterpolation.c: (interpolate_trigger_get_enum_value_array), (interpolate_trigger_get_string_value_array): Add support for retrieving value arrays when using the trigger interpolation mode. 2007-05-21 Sebastian Dröge * libs/gst/controller/gstcontroller.c: (gst_controller_get_value_array): * libs/gst/controller/gstcontroller.h: Clarify the docs of gst_controller_get_value_array(): The array where the values should be written to must be allocated as there seems to be no way to get the size of a random GType. This doesn't change any behaviour. Also fix some typos all over the place and remove an unused, commented function that is not necessary as g_object_set() could be used instead. * tests/check/libs/controller.c: (GST_START_TEST), (gst_controller_suite): Add unit test for gst_controller_get_value_array(). 2007-05-21 Jan Schmidt * tests/check/gst/gstbuffer.c: (GST_START_TEST): Disable part of the gst_buffer_try_new_and_alloc test, because it can happily succeed on 64-bit systems where there's more address space available. 2007-05-21 Sebastian Dröge * tests/check/gst/gstpad.c: (GST_START_TEST), (gst_pad_suite): Add unit test for the improved caps checking from bug #421543. 2007-05-21 Wim Taymans * docs/design/part-synchronisation.txt: Small addition. * gst/gstbin.c: (gst_bin_query): * plugins/elements/gstqueue.c: (apply_segment): Improve debugging. * gst/gstmessage.h: Improve docs. 2007-05-21 Wim Taymans * gst/gstpad.c: (gst_pad_get_caps_unlocked), (gst_pad_acceptcaps_default), (gst_pad_configure_sink), (gst_pad_configure_src): Added simple version of improved caps checking. It was previously assumed that a setcaps function would check the validity of the caps but people prefer us to check caps against the template automatically. Fixes #421543. 2007-05-21 Wim Taymans * libs/gst/base/gstbasetransform.h: Fix macro for locking/unlocking the transform lock. 2007-05-19 Tim-Philipp Müller * docs/plugins/tmpl/.cvsignore: Ignore more. 2007-05-18 Edward Hervey * plugins/elements/gstqueue.c: (gst_queue_loop): Hello, I am Mr Taymans' personal debugger. Today I will introduce a fix for the subtle art of warning a potentially blocking thread that it should check the source pad return value, and relay the information upstream. 2007-05-18 Edward Hervey * plugins/elements/gstqueue.c: (gst_queue_handle_sink_event): Release the queue lock ! 2007-05-17 Sebastian Dröge * docs/libs/gstreamer-libs-sections.txt: Add the two new controller functions to the appropiate places. 2007-05-17 Sebastian Dröge reviewed by: Stefan Kost * libs/gst/controller/gstcontroller.c: (gst_controller_suggest_next_sync), (gst_controller_sync_values), (_gst_controller_get_property), (_gst_controller_set_property), (_gst_controller_init), (_gst_controller_class_init): * libs/gst/controller/gstcontroller.h: * libs/gst/controller/gsthelper.c: (gst_object_suggest_next_sync), (gst_object_get_control_rate), (gst_object_set_control_rate): API: gst_controller_suggest_next_sync(), gst_object_suggest_next_sync() Add API that provides sync suggestion timestamps for elements that call gst_object_sync_values() from which those elements can subdivide their processing loop to get the best results for the controlled properties. For now it just suggests last_sync + control_rate as new timestamp but this will be improved in the future. While doing that change the control-rate property to a GstClockTime from guint and change it's meaning from samples to nanoseconds as the GstController doesn't know anything about sampling rate. Strictly speaking this breaks ABI but as the control-rate property didn't do anything in the past and as such couldn't be used this should be no problem. 2007-05-17 Sebastian Dröge reviewed by: Stefan Kost * libs/gst/controller/gstcontroller.c: (gst_controller_unset), (gst_controller_unset_all): * libs/gst/controller/gstcontrollerprivate.h: * libs/gst/controller/gstinterpolation.c: (gst_controlled_property_find_control_point_node): Save last synced value from the list to continue searching from there in future syncs. This speeds everything up a bit. 2007-05-17 Sebastian Dröge reviewed by: Stefan Kost * libs/gst/controller/gstcontroller.c: (gst_control_point_compare), (gst_control_point_find), (gst_controlled_property_new), (gst_control_point_free), (gst_controlled_property_free), (gst_controller_set), (gst_controller_set_from_list), (gst_controller_unset), (gst_controller_unset_all), (gst_controller_sync_values): * libs/gst/controller/gstcontroller.h: * libs/gst/controller/gstcontrollerprivate.h: * libs/gst/controller/gstinterpolation.c: (gst_controlled_property_find_control_point_node), (interpolate_none_get), (interpolate_trigger_get): Add a new private GstControlPoint struct which "inherits" from GstTimedValue to allow different interpolators to store internal values next to each control point. From the outside everything is still a GstControlPoint so we don't loose binary compatibility. Also fixup all the GValue handling to not leak GValues or list nodes. * tests/check/libs/controller.c: (GST_START_TEST): Free the list nodes and GValues in the controller_misc test. 2007-05-17 Edward Hervey * gst/gstsegment.c: Small doc fix. 2007-05-16 Tim-Philipp Müller * gst/gstplugin.c: (gst_plugin_load_file): If we fail to load a plugin because of unresolved symbols or missing libraries and spew a warning to stderr, we may just as well mention which plugin it was that failed to load. 2007-05-13 David Schleef * docs/Makefile.am: the gtk-doc makefile snippet correctly handles the case when ENABLE_GTK_DOC is false, and installs the prebuilt documentation. So gtk-doc subdirs are unconditionally enabled. Fixes: #349099. 2007-05-13 David Schleef * gst/gstutils.h: Reword some documentation. 2007-05-12 David Schleef * gst/gstplugin.c: gst_plugin_register_func() doesn't actually do anything with the passed "module" parameter, so remove it. Allows removal of additional vestigal code. 2007-05-12 David Schleef * gst/gstplugin.c: Using sigaction should depend on HAVE_SIGACTION, not HAVE_WIN32. Switch to using g_stat() because it's more portable. 2007-05-12 David Schleef * gst/gst.c: Add GST_DISABLE_OPTION_PARSING, in order to disable option parsing for embedded systems. * gst/gstelementfactory.c: Allow gst_element_register() to be called with plugin==NULL. Did nobody notice that static elements were broken? 2007-05-12 Wim Taymans * tools/gst-launch.c: (event_loop): Give more interesting info when buffering starts and stops. Fix case where buffering starts but we fail to update the buffering flag because the target state is not PLAYING. 2007-05-12 Wim Taymans * plugins/elements/gstqueue.c: (gst_queue_init), (gst_queue_finalize), (update_time_level), (apply_segment), (apply_buffer), (gst_queue_locked_flush), (gst_queue_locked_enqueue), (gst_queue_locked_dequeue), (gst_queue_handle_sink_event), (gst_queue_chain), (gst_queue_push_one), (gst_queue_loop): * plugins/elements/gstqueue.h: Refactor an cleanup queue a bit. Do better time level calculations that also work when the srcpad is not yet running. Remove some unneeded debug lines. * tests/check/elements/queue.c: (GST_START_TEST), (queue_suite): Added testcase for time level measurement. Try to make some stuff more racefree. 2007-05-11 Tim-Philipp Müller * gst/gsturi.c: (gst_element_make_from_uri): Don't leak plugin feature. * tests/check/Makefile.am: * tests/check/gst/.cvsignore: * tests/check/gst/gsturi.c: (GST_START_TEST), (gst_uri_suite): Add brain-dead unit test. 2007-05-11 Tim-Philipp Müller Patch by: Jeroen Wouters * gst/gsturi.c: (gst_uri_get_protocol), (search_by_entry): Treat protocol strings in a case-insensitive way (#437563). 2007-05-11 Michael Smith * gst/gstplugin.c: (gst_plugin_load_file): * gst/gstregistry.c: (gst_registry_scan_path_level): Don't print a g_warning for any failure to load a shared object. Instead, push this down into gstplugin.c, and warn _only_ if we failed to open the module (i.e. failure to link). Avoids warnings on normal, working, non-plugin .so files. 2007-05-11 Stefan Kost * gst/gstplugin.c (gst_plugin_load_file): * gst/gstregistry.c (GST_CAT_DEFAULT, gst_registry_lookup_feature_locked, gst_registry_scan_path_level): Print a g_warning if there was an error when loading a plugins during registry scan. The shuld help beginners starting with gst-plugin template. 2007-05-10 Wim Taymans * plugins/elements/gstqueue.c: (gst_queue_class_init), (update_time_level), (gst_queue_locked_flush), (gst_queue_handle_sink_event), (gst_queue_chain), (gst_queue_push_one), (gst_queue_loop): * plugins/elements/gstqueue.h: Be smarter when calculating the current amount of data in the queue by measuring the difference between start and end timestamps (in running time) inside the queue. Fixes #432876. API: GstQueue::pushing to notify elements that we are pushing data again since the running signal is rather broken for this purpose. 2007-05-10 Stefan Kost * plugins/elements/gstqueue.c (_do_init, gst_queue_signals, gst_queue_base_init, gst_queue_init): use GST_BOILERPLATE 2007-05-09 Sebastien Moutte * win32/common/libgstreamer.def: Add new exported functions. * win32/vs6/grammar.dsp: Use grammar pre-generated files. 2007-05-09 Tim-Philipp Müller Based on patch by: Peter Kjellerstedt * gst/Makefile.am: * gst/gstparse.c: (gst_parse_launchv), (gst_parse_launch): * gst/gstparse.h: * gst/gstutils.c: (gst_parse_bin_from_description): * gst/gstutils.h: Maintain API and ABI when --disable-parse is used. Now that we have an appropriate error code, we can just return NULL and the appropriate error when gst_parse_launch() is used despite it having been disabled (#342564). * tests/check/Makefile.am: * tests/check/pipelines/.cvsignore: * tests/check/pipelines/parse-disabled.c: Make sure these functions exist and return NULL plus a GError when --disable-parse is used. 2007-05-09 Tim-Philipp Müller * tests/benchmarks/complexity.c: (main): * tests/benchmarks/mass-elements.c: (main): Set a good example and don't leak messages. 2007-05-06 Stefan Kost * docs/gst/Makefile.am: * docs/libs/Makefile.am: Correct fixxrefs options. * docs/plugins/Makefile.am: * docs/plugins/gstreamer-plugins-docs.sgml: * docs/plugins/gstreamer-plugins-sections.txt: * plugins/elements/Makefile.am: * plugins/elements/gstcapsfilter.c (gst_capsfilter_details): * plugins/elements/gstcapsfilter.h (__GST_CAPSFILTER_H__, GST_TYPE_CAPSFILTER, GST_CAPSFILTER, GST_CAPSFILTER_CLASS, GST_IS_CAPSFILTER, GST_IS_CAPSFILTER_CLASS, GstCapsFilter, GstCapsFilterClass, _GstCapsFilter, trans, filter_caps, _GstCapsFilterClass, trans_class): * plugins/elements/gstelements.c (name, rank, type, _elements): * plugins/elements/gstidentity.c (gst_identity_check_imperfect_timestamp, gst_identity_check_imperfect_offset): Document capsfilter and add doc-blurb to identity. 2007-05-04 Tim-Philipp Müller * libs/gst/controller/gstcontroller.c: (gst_controlled_property_set_interpolation_mode): * libs/gst/controller/gstinterpolation.c: Don't crash if someone tries to set an interpolation mode that is invalid or that isn't supported yet. Fixes #422295. * tests/check/libs/controller.c: (GST_START_TEST), (gst_controller_suite): Add a test case for the above. 2007-05-03 Edward Hervey * libs/gst/base/gstbasetransform.c: (gst_base_transform_chain): Properly set the last_stop position on GstSegment. This will only happen if there is a buffer to push out. 2007-05-03 Wim Taymans * libs/gst/base/gstbasetransform.c: (gst_base_transform_buffer_alloc): always_in_place does not mean that the sink and source caps are the same! Make sure we don't blindly proxy the buffer_alloc in this case. 2007-05-03 Wim Taymans * docs/libs/gstreamer-libs-sections.txt: * libs/gst/base/gstbasesrc.c: (gst_base_src_query_latency), (gst_base_src_default_query), (gst_base_src_get_range): * libs/gst/base/gstbasesrc.h: API: gst_base_src_query_latency(). Added method so that subclasses can easily get the latency values of the base source class. 2007-05-02 Zaheer Abbas Merali <> * tools/gst-inspect.c (print_implementation_info): Remove 0.8 cruft. 2007-05-02 Tim-Philipp Müller * tools/Makefile.am: * tools/gst-launch.1.in: Don't create a customised man page based on the host architecture, describe the default registry path generically. That way the man page is the same for all architectures and packagers have one multilib issue less to deal with. Fixes #434926. 2007-05-02 Wim Taymans * gst/gstpad.c: Fix documentation as spotted by rg on IRC. 2007-04-29 Stefan Kost * gst/gstutils.c: Improve docs for gst_element_{link,unlink}. 2007-04-28 Tim-Philipp Müller * docs/design/part-events.txt: * docs/design/part-overview.txt: * gst/gstevent.c: * gst/gsturi.c: * gst/gsturi.h: * libs/gst/base/gstbasesink.c: Typo fixes; minor docs addition. 2007-04-27 Sebastian Dröge * docs/gst/gstreamer-sections.txt: * gst/gsturi.c: (get_element_factories_from_uri_protocol), (gst_uri_protocol_is_supported), (gst_element_make_from_uri): * gst/gsturi.h: API: Add gst_uri_protocol_is_supported(), which checks if an sink or src that supports a given URI protocol exists. 2007-04-27 Sebastian Dröge * plugins/elements/gstfilesink.c: (gst_file_sink_uri_set_uri): * plugins/elements/gstfilesrc.c: (gst_file_src_uri_set_uri): Set the location to NULL if "file://" is set as URI. Otherwise some random previous URI would still be set if "file://" is set on an already used filesink/filesrc. 2007-04-27 Sebastian Dröge * plugins/elements/gstfilesink.c: (gst_file_sink_uri_set_uri): * plugins/elements/gstfilesrc.c: (gst_file_src_uri_set_uri): Special case the "file://" URI as as this is used by some applications to test with gst_element_make_from_uri if there's an element that supports the URI protocol. Also move the g_path_is_absolute() check for the location part of the URI to also check this for "file://localhost/bla" URIs. 2007-04-26 Tim-Philipp Müller * docs/gst/gstreamer-sections.txt: * gst/gstbuffer.c: (gst_buffer_try_new_and_alloc): * gst/gstbuffer.h: * tests/check/gst/gstbuffer.c: (GST_START_TEST), (gst_buffer_suite): API: add gst_buffer_try_new_and_alloc() plus unit test (#431940). 2007-04-26 Stefan Kost * gst/gstregistrybinary.c: (gst_registry_binary_write_cache), (gst_registry_binary_load_pad_template), (gst_registry_binary_load_plugin), (gst_registry_binary_read_cache): * gst/gstregistrybinary.h: Implement no-mmap alternative for registry reading. Do code cleanups. Add more comments about avoiding strdups for all text data. Comments welcome. 2007-04-25 Stefan Kost * gst/gstregistrybinary.h (GstBinaryPluginElement, GstBinaryPluginFeature, _GstBinaryElementFactory, plugin_feature, GstBinaryElementFactory, _GstBinaryTypeFindFactory, plugin_feature): Comment structs and reformat to fix the build (that stuff should go into a priv. header). 2007-04-25 Stefan Kost * gst/gstregistrybinary.c: (gst_registry_binary_save_feature), (gst_registry_binary_load_feature): * gst/gstregistrybinary.h: Refactor so that we can implement multiple features. Add support for TypeFindFactory features. 2007-04-24 Stefan Kost Patch by: Peter Kjellerstedt * configure.ac: Fix AM_CONDITIONAL(GST_DISABLE_GST_DEBUG,...) and update comment. 2007-04-23 Stefan Kost * gst/gstbin.c: (gst_bin_element_set_state), (iterator_activate_fold_with_resync), (gst_bin_continue_func), (bin_handle_async_done), (gst_bin_handle_message_func): Fix build with --gst-disable-gst-debug 2007-04-21 Tim-Philipp Müller * libs/gst/base/gstbasetransform.c: (gst_base_transform_activate): Make sure streaming has finished before calling the ::stop() vfunc, since that vfunc might clear state which is being used in the streaming thread. This fixes a race that caused crashes in audioresample when shutting down a pipeline (#420106). 2007-04-20 Stefan Kost * docs/gst/gstreamer-sections.txt: That was one byte missing. 2007-04-20 Stefan Kost * configure.ac: * docs/gst/gstreamer-sections.txt: * gst/Makefile.am: * gst/gstconfig.h.in: * gst/gstobject.c: (gst_object_class_init), (gst_signal_object_class_init): * gst/gstobject.h: 2nd attempt to have a xml-less build as a joined effort of #413123 and #421480. 2007-04-20 Stefan Kost * docs/design/draft-tagreading.txt: Added open issues/thoughts to draft. 2007-04-19 Sebastian Dröge * gst/parse/grammar.tab.pre.c: * gst/parse/grammar.tab.pre.h: * gst/parse/lex._gst_parse_yy.pre.c: Update the prebuild parser sources. 2007-04-19 Sebastian Dröge * gst/parse/Makefile.am: And now fix the building of the flex sources. Now everything should work as expected. 2007-04-19 Sebastian Dröge * gst/parse/Makefile.am: Now hopefully fix the build failures by setting proper rule dependencies and moving instead of copying. 2007-04-19 Stefan Kost * tests/benchmarks/complexity.gnuplot: * tests/benchmarks/complexity.scm: * tests/benchmarks/mass-elements.gnuplot: * tests/benchmarks/mass-elements.scm: Total licensification. 2007-04-19 Stefan Kost * gst/parse/Makefile.am: Fix the build by correcting the rule that gave wrong files to flex. 2007-04-19 Stefan Kost * tests/benchmarks/complexity.c: * tests/benchmarks/mass-elements.c: Change licence to LGPL as granted by Benjamin and Andy. 2007-04-19 Sebastian Dröge * gst/parse/Makefile.am: Add correct grammar.tab.h dependency if compiling without new enough flex. Fixes #431150. 2007-04-18 Sebastian Dröge * gst/parse/Makefile.am: Fix typo and use outdated sources if the flex/bison sources are newer than the pregenerated ones but flex is too old. Print a warning in that case. This should fix the build on the build bot. 2007-04-18 Sebastian Dröge Patch by: Marc-Andre Lureau * gst/parse/Makefile.am: * gst/parse/grammar.y: * gst/parse/parse.l: Make the parser reentrant and recursively callable. This requires flex >= 2.5.31, for older versions pregenerated sources are used as we can't bump the build dependency. Finally fixes #349180. * gst/gstparse.c: (gst_parse_launch): Drop the HAVE_MT_SAVE_FLEX #ifdefs as we always use a new enough flex now anyway. * docs/gst/Makefile.am: * docs/gst/Makefile.am: * gst/parse/grammar.tab.pre.c: (__gst_parse_strdup), (__gst_parse_strfree), (__gst_parse_link_new), (__gst_parse_link_free), (__gst_parse_chain_new), (__gst_parse_chain_free), (SET_ERROR), (YYPRINTF), (gst_parse_element_set), (gst_parse_free_link), (gst_parse_found_pad), (gst_parse_perform_delayed_link), (gst_parse_perform_link), (yytnamerr), (yysyntax_error), (yyerror), (_gst_parse_launch): * gst/parse/grammar.tab.pre.h: * gst/parse/lex._gst_parse_yy.pre.c: (PRINT), (yy_get_next_buffer), (yy_get_previous_state), (yy_try_NUL_trans), (input), (_gst_parse_yyrestart), (_gst_parse_yy_switch_to_buffer), (_gst_parse_yy_load_buffer_state), (_gst_parse_yy_create_buffer), (_gst_parse_yy_delete_buffer), (_gst_parse_yy_init_buffer), (_gst_parse_yy_flush_buffer), (_gst_parse_yypush_buffer_state), (_gst_parse_yypop_buffer_state), (_gst_parse_yyensure_buffer_stack), (_gst_parse_yy_scan_buffer), (_gst_parse_yy_scan_string), (_gst_parse_yy_scan_bytes), (yy_fatal_error), (_gst_parse_yyget_extra), (_gst_parse_yyget_lineno), (_gst_parse_yyget_column), (_gst_parse_yyget_in), (_gst_parse_yyget_out), (_gst_parse_yyget_leng), (_gst_parse_yyget_text), (_gst_parse_yyset_extra), (_gst_parse_yyset_lineno), (_gst_parse_yyset_column), (_gst_parse_yyset_in), (_gst_parse_yyset_out), (_gst_parse_yyget_debug), (_gst_parse_yyset_debug), (_gst_parse_yyget_lval), (_gst_parse_yyset_lval), (_gst_parse_yylex_init), (yy_init_globals), (_gst_parse_yylex_destroy), (yy_flex_strncpy), (yy_flex_strlen), (_gst_parse_yyalloc), (_gst_parse_yyrealloc), (_gst_parse_yyfree): If the installed flex version is too old use pre-generated parser sources. These pre-generated parser sources are always updated when the actual flex/bison sources change but require everybody who wants to change something in the parser to have flex >= 2.5.31 installed. 2007-04-18 Stefan Kost * common/m4/gst-gettext.m4: * gst/gst-i18n-lib.h: Make --disable-nls to work 2007-04-17 Wim Taymans * gst/gstconfig.h.in: Revert previous change that broke the build. 2007-04-17 Stefan Kost * configure.ac: * gst/Makefile.am: * gst/gstconfig.h.in: Drop libxml2 dependency when building with --enable-binary-registry --disable-loadsave 2007-04-16 Tim-Philipp Müller * gst/gstregistrybinary.c: (gst_registry_binary_write_cache), (gst_registry_binary_read_cache): * gst/gstregistrybinary.h: Remove unnecessary include which broke the win32 build with MingW; move includes from header file to .c file, even if the header file isn't installed; use g_strerror() where UTF-8 strings are expected, such as in GST_DEBUG messages. 2007-04-13 Jan Schmidt * docs/libs/gstreamer-libs-sections.txt: Remove bogus addition for API I didn't end up keeping. * libs/gst/base/gstbasesrc.h: Mention Since: 0.10.13 in the documentation. Add the API keyword to the previous ChangeLog entry. 2007-04-13 Jan Schmidt * docs/libs/gstreamer-libs-sections.txt: * libs/gst/base/gstbasesrc.c: (gst_base_src_class_init), (gst_base_src_default_prepare_seek_segment), (gst_base_src_prepare_seek_segment), (gst_base_src_perform_seek): * libs/gst/base/gstbasesrc.h: Allow basesrc derived classes to execute seeks in other formats by providing a prepare_seek_segment vmethod. Sub-classes can choose to prepare the GstSegment in any format that their perform_seek method will be able to understand. The default implementation provides the old behaviour of attempting to convert the seek offsets to the configured native format. API: basesrc::prepare_seek_segment vmethod. 2007-04-13 Jan Schmidt * gst/gstelement.c: (gst_element_get_state_func): Don't output the same debug statement twice. * libs/gst/base/gstadapter.c: (gst_adapter_try_to_merge_up), (gst_adapter_peek), (gst_adapter_take_buffer): Optimise the case where we have buffers at the head of the queue that can be joined quickly (because they're contiguous sub-buffers) by merging them together rather than copying data out into new memory. * gst/parse/grammar.y: * tests/check/pipelines/parse-launch.c: Fix a leak in an error path for parse_launch, and add a check for it to the testsuite. 2007-04-13 Jan Schmidt * plugins/elements/gstmultiqueue.c: (gst_multi_queue_release_pad): Don't deadlock when releasing a pad - gst_pad_set_active may try and take the multiqueue lock too. 2007-04-12 Tim-Philipp Müller * gst/gsterror.c: (_gst_core_errors_init): * gst/gsterror.h: API: add GST_CORE_ERROR_DISABLED (#392804). 2007-04-12 Thomas Vander Stichele * docs/faq/gst-uninstalled: don't get empty paths on the PATH variables * gst/gstpad.c (gst_pad_is_active, gst_pad_set_blocked_async): Don't format for the uncommon terminal width of 84 characters. 2007-04-06 Wim Taymans * gst/gstpipeline.c: (reset_stream_time), (gst_pipeline_change_state), (gst_pipeline_set_new_stream_time): Only try to select a different pipeline clock when we went back to PAUSED and not when we merely got flushed. 2007-04-05 Michael Smith * tools/gst-launch.1.in: fractions are better supported in gstreamer than ractions, so suggest using those. 2007-04-05 Thomas Vander Stichele Submitted by: Mogens Jaeger * po/LINGUAS: * po/da.po: Added Danish translation. 2007-04-05 Wim Taymans * libs/gst/base/gstbasesink.c: (gst_base_sink_queue_object_unlocked), (gst_base_sink_event): Fix leak caused when refusing newsegment after EOS. * plugins/elements/gstfakesink.c: (gst_fake_sink_class_init), (gst_fake_sink_init), (gst_fake_sink_set_property), (gst_fake_sink_get_property), (gst_fake_sink_preroll), (gst_fake_sink_render), (gst_fake_sink_change_state): * plugins/elements/gstfakesink.h: Add num-buffers property to make the element generate EOS after a configurable amount of buffers. API: fakesink::num-buffers property. * tests/check/elements/fakesink.c: (GST_START_TEST), (fakesink_suite): Fix GstBus leak in test. Test for fakesink num-buffers. 2007-04-05 Wim Taymans * libs/gst/base/gstbasesink.c: (gst_base_sink_queue_object_unlocked), (gst_base_sink_event), (gst_base_sink_change_state): Don't accept anything after an EOS, return UNEXPECTED instead. * tests/check/elements/fakesink.c: (GST_START_TEST), (fakesink_suite): Unit test for new EOS behaviour. 2007-04-05 Wim Taymans * gst/gstelement.c: (gst_element_get_request_pad): Make padtemplates also work when they don't contain %s or %d. 2007-04-05 Wim Taymans * docs/gst/gstreamer-sections.txt: * gst/gstclock.c: (gst_clock_adjust_unlocked), (gst_clock_unadjust_unlocked), (gst_clock_set_calibration): * gst/gstclock.h: Improve _adjust_unlocked() so that it overflows less. Add gst_clock_unadjust_unlocked to convert from external time to internal time based on calibration. Add some more debug. API: GstClock::gst_clock_unadjust_unlocked() 2007-04-03 Wim Taymans Patch by: Tommi Myöhänen * plugins/elements/gstmultiqueue.c: (gst_multi_queue_release_pad): Deactivate pads and free GstSingleQueue with gst_single_queue_free() when releasing sink pad. Fixes #425400. 2007-04-02 Stefan Kost * docs/random/ensonic/dynlink.txt: More work on proposal for new core api. * docs/libs/gstreamer-libs-sections.txt: * libs/gst/base/gstbasetransform.h: API: GST_BASE_TRANSFORM_LOCK/UNLOCK added * libs/gst/controller/gstcontroller.c: (on_object_controlled_property_changed), (gst_controller_sync_values), (gst_controller_set_interpolation_mode): * libs/gst/controller/gstcontroller.h: Less verbose logging add docs for unimplemented parts and correctly return when using unavailable parts. 2007-03-29 Jan Schmidt * gst/gstclock.c: (gst_clock_set_master), (do_linear_regression): Move all the debug to the CLOCK category, and associate it with the clock object. 2007-03-29 Jan Schmidt * libs/gst/base/gstadapter.c: (gst_adapter_take_buffer): Make take_buffer a bit quicker by removing redundant checks caused by calling gst_adapter_take. 2007-03-28 Tim-Philipp Müller * plugins/elements/gstmultiqueue.c: (gst_single_queue_free): Don't leak GCond. * tests/check/Makefile.am: * tests/check/elements/.cvsignore: * tests/check/elements/multiqueue.c: (setup_multiqueue), (GST_START_TEST), (multiqueue_suite): Add some dead simple unit tests for the 'multiqueue' element (some bits don't work yet and are disabled for now). 2007-03-28 Tim-Philipp Müller * gst/gstelement.c: (gst_element_get_request_pad), (gst_element_class_get_request_pad_template): Make gst_element_get_request_pad() create request pads only for request pad templates and not for, say, sometimes pad templates. 2007-03-28 Stefan Kost * docs/design/draft-klass.txt: Add example that needs more thinking. * docs/design/draft-missing-plugins.txt: More thoughts about wrapper plugins. * docs/random/ensonic/embedded.txt: * docs/random/ensonic/profiling.txt: More design work. 2007-03-25 Wim Taymans * libs/gst/base/gstbasesrc.c: (gst_base_src_get_range), (gst_base_src_loop): Only push the segment events in the PLAYING state for live sources. 2007-03-23 Jan Schmidt * gst/gstpipeline.c: (gst_pipeline_change_state): Modify the clock distribution path in PAUSED->PLAYING so that we never attempt to choose a new clock unless we're actually leaving the PAUSED state for the first time. This prevents choosing a different clock when the state_change gets called for a 2nd time due to some element doing an async state change. 2007-03-22 Sebastian Dröge * gst/gstpad.c: (gst_pad_set_caps), (gst_pad_configure_sink), (gst_pad_configure_src), (gst_pad_alloc_buffer_full), (gst_pad_chain_unchecked), (gst_pad_push): Revert last commit. This needs some more thoughts. 2007-03-22 Sebastian Dröge * gst/gstpad.c: (gst_pad_set_caps), (gst_pad_alloc_buffer_full), (gst_pad_chain_unchecked), (gst_pad_push): Check in set_caps if the caps are compatible with the pad and remove two functions that are redundant now. Fixes #421543. 2007-03-22 Wim Taymans * tests/check/gst/gstsystemclock.c: (GST_START_TEST), (mixed_thread), (mixed_async_cb), (gst_systemclock_suite): Unref some more to make valgrind happy. 2007-03-22 Wim Taymans * gst/gstsystemclock.c: (gst_system_clock_id_wait_jitter_unlocked), (gst_system_clock_id_wait_jitter), (gst_system_clock_id_wait_async), (gst_system_clock_id_unschedule): Fix anoying regression that survived a few releases. When adding an async entry while blocking on a sync entry, the sync entry will unblock but still be busy, so it should continue to wait instead of returning _BUSY to the app. Add some comments here and there. * tests/check/gst/gstsystemclock.c: (mixed_thread), (mixed_async_cb), (GST_START_TEST), (gst_systemclock_suite): Add testcase for this. 2007-03-22 Wim Taymans * libs/gst/base/gstbasesrc.c: (gst_base_src_get_range): Handle errors from the clock sync better, only UNSCHEDULED indicates a WRONG_STATE and can silently pause the task. All other cases should error out. 2007-03-22 Wim Taymans Patch by: Ville Syrjala * gst/gstpad.c: (gst_pad_alloc_buffer_full), (gst_pad_send_event): Fix possible deadlock if pad eventfunc is not specified. Fixes #421177. Improve debugging. 2007-03-21 Michael Smith * docs/pwg/advanced-types.xml: Fix some errors in the typefinding docs pointed out on irc. 2007-03-21 Jan Schmidt * libs/gst/base/gstbasesrc.c: Clarify FIXME comment in the face of having added unlock_stop() 2007-03-21 Wim Taymans * gst/gstbin.c: (gst_bin_get_type), (gst_bin_element_set_state): Prepare for release where we warn against possible app breakage in the case of live pipelines along with an env var to enable/disable live preroll mode (GST_COMPAT=[no-]live-preroll). 2007-03-20 Zaheer Abbas Merali * plugins/elements/gstidentity.c (gst_identity_check_imperfect_offset): So we should use correct constants for checking for None offset. 2007-03-20 Wim Taymans * docs/design/part-block.txt: Mention the fact that the newly switched element should be set to at least PAUSED. 2007-03-20 Wim Taymans * gst/gst.c: Fix compilation with registry disabled as spotted by Saur. 2007-03-20 Wim Taymans Patch by: Olivier Crete * gst/gstelement.c: (gst_element_sync_state_with_parent): Look at the pending state too when syncing the element state to the parent. Fixes #420133. 2007-03-19 Jan Schmidt * libs/gst/base/gstbasesink.c: (gst_base_sink_set_flushing), (gst_base_sink_change_state): * libs/gst/base/gstbasesink.h: * libs/gst/base/gstbasesrc.c: (gst_base_src_perform_seek), (gst_base_src_default_event), (gst_base_src_unlock_stop), (gst_base_src_deactivate): * libs/gst/base/gstbasesrc.h: Add ::unlock_stop to basesrc and basesink. This allows an opportunity for sub-classes to correctly clear any state they set trying to unlock, such as clearing out unlock commands from a command fd. API: basesrc::unlock_stop API: basesink::unlock_stop * plugins/elements/gstfdsink.c: (gst_fd_sink_class_init), (gst_fd_sink_render), (gst_fd_sink_unlock), (gst_fd_sink_unlock_stop): * plugins/elements/gstfdsrc.c: (gst_fd_src_class_init), (gst_fd_src_init), (gst_fd_src_unlock), (gst_fd_src_unlock_stop), (gst_fd_src_create), (gst_fd_src_get_size), (gst_fd_src_do_seek): Implement unlock_stop in fdsrc and fdsink. Implement seeking in fdsrc when a seekable fd is passed, as in gst-launch-0.10 fdsrc ! ... ! xvimagesink < /path/to/file 2007-03-19 Wim Taymans Patch by: Evan Nemerson * gst/gstelement.c: (gst_element_class_init): Fix pad-added and pad-removed signal signatures so that the pad type is stated as GST_TYPE_PAD instead of G_TYPE_OBJECT. Fixes #419851. 2007-03-19 Wim Taymans * docs/gst/gstreamer-sections.txt: Add new element field and method. * gst/gstbin.c: (gst_bin_class_init), (gst_bin_init), (bin_remove_messages), (gst_bin_add_func), (gst_bin_remove_func), (gst_bin_recalc_state), (gst_bin_get_state_func), (gst_bin_element_set_state), (gst_bin_change_state_func), (gst_bin_continue_func), (bin_bus_handler), (bin_push_state_continue), (bin_handle_async_start), (bin_handle_async_done), (gst_bin_handle_message_func): Make async state changes a bit smarter by using new ASYNC_START and ASYNC_DONE messages. This reduces the number of times we run the state recalculation thread. Don't change state of element with a pending ASYNC_START message. Deprecate STATE_DIRTY messages. * gst/gstelement.c: (gst_element_init), (gst_element_send_event), (gst_element_get_state_func), (gst_element_continue_state), (gst_element_lost_state), (gst_element_set_state_func), (gst_element_change_state): * gst/gstelement.h: Keep the state that was last set by the app in a new element field. Don't allow state changes when handling an element event. Post ASYNC_START and ASYNC_DONE messages. Change lost_state so that we go to PAUSED and wait for the parent to set us to PLAYING again (so latency calculation can be performed) Export gst_element_change_state() method so that subclasses can use it. API: gst_element_change_state() API: GST_STATE_TARGET * gst/gstpipeline.c: (gst_pipeline_class_init), (reset_stream_time), (gst_pipeline_change_state), (gst_pipeline_handle_message), (gst_pipeline_set_new_stream_time): Using the new ASYNC_START message we can reset the base_time when needed. This can then be used to implement base_time redistribution in flushing seeks so that we can remove the explicit seek handling. Perform latency query and configuration when going to PLAYING. * libs/gst/base/gstbasesink.c: (gst_base_sink_commit_state), (gst_base_sink_query), (gst_base_sink_change_state): Post new ASYNC_START/ASYNC_DONE messages. * tests/check/generic/sinks.c: (GST_START_TEST): Fix test because the bin will not set the async element to PLAYING right away. * tests/check/gst/gstbin.c: (pop_async_done), (GST_START_TEST): Make the message check a little stronger. Handle ASYNC messages. * tests/check/pipelines/cleanup.c: (GST_START_TEST): * tests/check/pipelines/simple-launch-lines.c: (GST_START_TEST): Expect ASYNC_DONE messages. 2007-03-19 Wim Taymans * docs/gst/gstreamer-sections.txt: * gst/gstmessage.c: (gst_message_new_async_start), (gst_message_new_async_done), (gst_message_parse_info), (gst_message_parse_async_start): * gst/gstmessage.h: Add ASYNC_START and ASYNC_DONE messages to prepare for latency support. 2007-03-15 Tim-Philipp Müller * tools/gst-inspect.c: (print_plugin_automatic_install_info_codecs): Now that we don't check for the 'Codec' keyword any longer in the klass, we shouldn't spew a warning if the klass isn't a decoder or encoder (since it might be a Source/Network, for example). 2007-03-14 Tim-Philipp Müller * tools/gst-inspect.c: (print_plugin_automatic_install_info_codecs): Don't require decoder/demuxer/depayloader elements or encoder/muxer/paylader elements to have 'Codec' as part of their factory class string when introspecting a plugin's capabilities. draft-klass.txt mentions that it might be removed in future, and flump3dec doesn't have it as part of its class string, so chances are others might also not have it. 2007-03-14 Thomas Vander Stichele * po/af.po: * po/az.po: * po/bg.po: * po/ca.po: * po/cs.po: * po/de.po: * po/en_GB.po: * po/fr.po: * po/it.po: * po/nb.po: * po/nl.po: * po/ru.po: * po/sq.po: * po/sr.po: * po/sv.po: * po/tr.po: * po/uk.po: * po/vi.po: * po/zh_CN.po: * po/zh_TW.po: Update translations from translation project 2007-03-14 Stefan Kost * gst/gstchildproxy.c: (gst_child_proxy_get_property), (gst_child_proxy_set_property): Invert precondition check to be alike the ones in the mimiced gobject api. 2007-03-13 Stefan Kost * docs/design/draft-tagreading.txt: * docs/random/ensonic/audiobaseclasses.txt: Do some Architect work. * gst/gstobject.c: (gst_object_set_name): Add a WARNING. * gst/gstpad.c: Add docs that point from gst_pad_get_range to gst_pad_pull_range 2007-03-12 Jan Schmidt * gst/gstsystemclock.c: (gst_system_clock_init), (gst_system_clock_start_async), (gst_system_clock_id_wait_async): Defer starting the async system clock thread until the first async wait is scheduled. Fixes #414986. 2007-03-12 Tim-Philipp Müller * plugins/elements/gstmultiqueue.c: (gst_multi_queue_finalize), (gst_single_queue_free): Fix small leak (free GstSingleQueue structure too, not only contents). 2007-03-10 Sebastien Moutte * gst/gstbin.c:(gst_bin_add): Use GST_STR_NULL to prevent NULL pointer to be passed to GST_CAT_DEBUG. * win32/common/libgstbase.def: * win32/common/libgstreamer.def: Add new exported functions. 2007-03-09 Wim Taymans * docs/plugins/gstreamer-plugins-sections.txt: Fix GstTee docs. 2007-03-09 Wim Taymans * docs/gst/gstreamer-sections.txt: * gst/gstbuffer.c: (gst_buffer_copy_metadata), (_gst_buffer_copy): * gst/gstbuffer.h: Add metadata copy functions. Fixes #393099. API: gst_buffer_copy_metadata() * gst/gstutils.c: (gst_buffer_stamp): * libs/gst/base/gstbasetransform.c: (gst_base_transform_prepare_output_buffer): Use new metadata copy functions. 2007-03-09 Thomas Vander Stichele * plugins/elements/gstidentity.c: (gst_identity_class_init), (gst_identity_init), (gst_identity_check_perfect), (gst_identity_check_imperfect_timestamp), (gst_identity_check_imperfect_offset), (gst_identity_transform_ip), (gst_identity_set_property), (gst_identity_get_property): * plugins/elements/gstidentity.h: Separate out check-imperfect-timestamp and check-imperfect-offset. Put back check-perfect as it was to keep compatibility. 2007-03-09 Jan Schmidt * gst/gstelement.c: (gst_element_dispose): There's no need to warn if VOID_PENDING is not NONE here, as long as the state is NULL it's ok, and that's checked immediately above. 2007-03-08 Zaheer Abbas Merali * plugins/elements/gstidentity.c: (gst_identity_check_perfect): Fix check for perfect stream to ignore buffers with -1 offsets/offset ends when checking data contiguity. 2007-03-08 Wim Taymans * tools/gst-launch.c: (event_loop): Print INFO messages. 2007-03-08 Wim Taymans * libs/gst/base/gstbasetransform.c: (gst_base_transform_sink_eventfunc), (gst_base_transform_handle_buffer), (gst_base_transform_chain), (gst_base_transform_activate): * libs/gst/base/gstbasetransform.h: Add support for dropping buffers with custom GstFlowReturn. Set DISCONT flags on outgoing buffers based on QoS, incomming DISCONT buffers or dropped buffers. * docs/libs/gstreamer-libs-sections.txt: docs for new custom return code. * plugins/elements/gstidentity.c: (gst_identity_transform_ip): Use drop support in base class to implement drop-probability. 2007-03-07 Tim-Philipp Müller * gst/gst.c: (load_plugin_func): * gst/gstplugin.c: (gst_plugin_load_by_name), (gst_plugin_load): * gst/gstregistrybinary.c: (gst_registry_binary_read_cache): * gst/gsttrace.c: (gst_trace_new), (gst_alloc_trace_set_flags_all): Remove newlines at end of debug log strings. 2007-03-07 Zaheer Abbas Merali * plugins/elements/gstidentity.c: (gst_identity_check_perfect): Only post bus message at max, once per buffer received. 2007-03-07 Wim Taymans * docs/design/Makefile.am: * docs/design/part-synchronisation.txt: Add doc about synchronisation * docs/design/draft-latency.txt: * docs/design/part-TODO.txt: * docs/design/part-clocks.txt: * docs/design/part-events.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-streams.txt: * docs/design/part-trickmodes.txt: Documentation updates. 2007-03-07 Jan Schmidt * gstreamer.doap: Update the doap file. 2007-03-07 Zaheer Abbas Merali * plugins/elements/gstidentity.c: (gst_identity_check_perfect): Rename non-perfect to imperfect for Mike and for the sanctity of the language. Also make sure bus message gets emitted for data-incontiguities. 2007-03-07 Zaheer Abbas Merali * plugins/elements/gstidentity.c: (gst_identity_check_perfect), (gst_identity_start): * plugins/elements/gstidentity.h: Emit bus message if check-perfect is true and we encounter a non-perfect stream between 2 consecutive buffers. Fixes #415394. 2007-03-07 Jan Schmidt * configure.ac: Back to CVS