=== release 0.10.14 === 2007-08-03 Jan Schmidt * configure.ac: releasing 0.10.14, "Breathing Vacuum" 2007-08-02 Tim-Philipp Müller * gst/gstelement.c: (gst_element_class_set_details_simple): * gst/gstelement.h: Make strings passed to gst_element_class_set_details_simple() constant, as they should be (#462752). 2007-08-02 Wim Taymans * gst/gstbin.c: (gst_bin_change_state_func), (bin_handle_async_done), (gst_bin_handle_message_func): Don't forget about the fact that some element went ASYNC even after a resync. This makes us post the ASYNC_DONE message correctly. Fixes #462558. 2007-07-31 Jan Schmidt * gst/gstregistry.c: (gst_registry_add_feature): When replacing an existing feature in the registry, make sure to continue holding a reference until we've replaced the name string within our feature hash table. Make sure to use g_hash_table_replace instead of g_hash_table_insert to ensure the new name string is used as a key instead of the old one that we're about to free. Fixes: #462085 2007-07-31 Jan Schmidt * gst/gstpluginfeature.c: (gst_plugin_feature_finalize), (gst_plugin_feature_set_name): Revert patch from #459466 until after the release and we can work out exactly what the problem is (if any). 2007-07-26 Tim-Philipp Müller * docs/gst/gstreamer-sections.txt: * gst/gsttaglist.c: * gst/gsttaglist.h: API: add GST_TAG_LICENSE_URI and GST_TAG_COPYRIGHT_URI (#451939). 2007-07-26 Jan Schmidt * docs/libs/Makefile.am: Include our build-prefix libs and includes before the generic ones to avoid linking against the installed libs when we want the build-tree ones. 2007-07-26 Tim-Philipp Müller Patch by: Steve Fink * docs/pwg/building-testapp.xml: Mention that GST_PLUGIN_PATH or --gst-plugin-path might be needed if people try to build or install the example from the plugin template against a GStreamer from package using the configure defaults. 2007-07-25 Tim-Philipp Müller Patch by: Steve Fink * tools/gst-inspect.1.in: Document --print-all and --print-plugin-auto-install-info command line options in man page. 2007-07-25 Wim Taymans * docs/gst/gstreamer-sections.txt: Add docs for new api function. 2007-07-25 Wim Taymans * gst/gstelementfactory.c: (gst_element_factory_has_interface): * gst/gstelementfactory.h: API: gst_element_factory_has_interface() Added method to check if an element factory implements a named interface. 2007-07-25 Stefan Kost * configure.ac: * docs/gst/gstreamer.types.in: Another conditional doc check. * gst/gstmessage.c: * gst/gstparamspecs.h: * gst/gstregistrybinary.c: (gst_registry_binary_read_cache): * gst/gstvalue.c: * gst/gstxml.h: API-doc fixes. 2007-07-24 Stefan Kost * gst/gstregistrybinary.c: (gst_registry_binary_check_magic), (gst_registry_binary_load_feature), (gst_registry_binary_load_plugin), (gst_registry_binary_read_cache): Print error just once and with additional info. 2007-07-24 Stefan Kost * libs/gst/base/gsttypefindhelper.c: (helper_find_peek), (helper_find_suggest), (helper_find_get_length), (gst_type_find_helper_get_range), (buf_helper_find_suggest), (gst_type_find_helper_for_buffer): Cleanup the typefindhelper code and add private doc comments. 2007-07-24 Edward Hervey * plugins/elements/gstcapsfilter.c: (gst_capsfilter_class_init), (gst_capsfilter_transform_size), (gst_capsfilter_prepare_buf): Fix capsfilter for cases where the caps set on capsfilter will provide additional information. Fixes #449197 2007-07-24 Stefan Kost * gst/gsttypefindfactory.c: Fix docs that recommened wrong function to use. 2007-07-23 Stefan Kost * tools/gst-inspect.c: (print_plugin_features): Also give media-type for typefinders in element output. 2007-07-23 Stefan Kost * gst/gstregistry.c: (gst_registry_init), (gst_registry_finalize), (gst_registry_remove_features_for_plugin_unlocked), (gst_registry_add_feature), (gst_registry_remove_feature), (gst_registry_lookup_feature_locked): * gst/gstregistry.h: Speed up gst_registry_lookup_feature_locked() by using a hashmap. Fixes #459501. 2007-07-23 Stefan Kost * gst/gstpluginfeature.c: (gst_plugin_feature_finalize), (gst_plugin_feature_set_name): Avoid double memory usage for pluginfeature names. Fixes #459466. 2007-07-22 Tim-Philipp Müller * gst/gstpad.h: Small addition to GST_FLOW_IS_FATAL() docs: mention that elements driving the pipeline may need to explicitly check for NOT_LINKED as well, since IS_FATAL doesn't cover that. 2007-07-22 Tim-Philipp Müller * docs/pwg/advanced-types.xml: Fix typo and duplicate entry in video formats list. 2007-07-22 Sebastian Dröge * libs/gst/controller/gstinterpolation.c: Also round to the nearest int when using cubic interpolation. 2007-07-19 Jan Schmidt * libs/gst/controller/gstinterpolation.c: When linearly interpolating integer types, round to the nearest int by adding 0.5. Don't do it for float/double types. Fixes the failing controller test on my machine, which is somehow rounding differently than on the buildbots. 2007-07-20 Stefan Kost * tools/gst-plot-timeline.py: Better log parsing (categories can have -). Adjust text vs. lines, so that they span the same y-range. 2007-07-20 Stefan Kost * docs/random/ensonic/audiobaseclasses.txt: * docs/random/ensonic/dynlink.txt: * docs/random/ensonic/profiling.txt: Save my thoughts. * docs/random/moving-plugins: Add note to use g_assert type macros. 2007-07-20 Stefan Kost * configure.ac: * libs/gst/check/Makefile.am: Add libm check as we use in for plugins. 2007-07-18 Jan Schmidt * gst/gstbin.c: (gst_bin_continue_func): Check that the state_cookie hasn't changed since the continue_func was scheduled. Avoids problems where the state changes back to something it shouldn't be because it was changed in the meantime. 2007-07-17 Stefan Kost * gst/gstregistrybinary.c: (gst_registry_binary_save_const_string), (gst_registry_binary_save_string), (gst_registry_binary_save_pad_template), (gst_registry_binary_save_feature), (gst_registry_binary_save_plugin), (gst_registry_binary_load_feature), (gst_registry_binary_load_plugin), (gst_registry_binary_read_cache): Fix memory leak. Be less verbose in the log. 2007-07-16 Jan Schmidt * tests/check/elements/.cvsignore: Add file to cvsignore as commanded. 2007-07-16 Jan Schmidt * tests/check/elements/multiqueue.c: (mq_dummypad_chain), (mq_dummypad_event), (run_output_order_test): Use a GStaticMutex to protect all cases where libcheck fail_if/fail_unless macros might be called from multiple threads simultaneously to avoid errors like: "check_pack.c:107: :-1081725400:Bad message type arg" 2007-07-16 Jan Schmidt * tests/check/pipelines/stress.c: (GST_START_TEST): Make sure we set the pipeline back to the NULL state before dropping our final reference. 2007-07-16 Jan Schmidt * tests/check/elements/tee.c: (GST_START_TEST): Make the tee stress-test a little less stressful so it doesn't just time out on slow-machines, and remove a small race when it's starting up by adding a get_state() call. 2007-07-16 Stefan Kost * gst/gst.c: Avoid reading registry twice on startup. Fixes #457322. 2007-07-13 Jan Schmidt * pkgconfig/gstreamer-check-uninstalled.pc.in: * pkgconfig/gstreamer-check.pc.in: Substitute the CFLAGS for libcheck into our .pc file too so that dependent modules will pick it up properly if libcheck is installed into some other prefix. 2007-07-13 Jan Schmidt * configure.ac: Revert the pkg-config check for libcheck, since it pulls in the wrong non-PIC libcheck.a on Ubuntu and probably Fedora too. We need a proper solution, either from the check project, or something else. 2007-07-12 Stefan Kost * configure.ac: Use pkg-config to locate check. 2007-07-10 Stefan Kost * gst/gsttaglist.c: Fix doc syntax. * gst/gstutils.c: * gst/gstutils.h: Add deprecation guards. * libs/gst/base/gstcollectpads.h: Don't document object (this is implicitly private). 2007-07-08 Tim-Philipp Müller * gst/gststructure.c: (gst_structure_parse_value): When deserialising foo=bar without a type cast, check if it's a boolean before falling back to a string type, otherwise things like audiotestsrc ! audio/x-raw-int,signed=true ! fakesink won't work, because the filtercaps end up having a signed=(string)true field, which causes problems later when intersection caps. * tests/check/gst/gststructure.c: (GST_START_TEST): Add a unit test for this. 2007-07-06 Sebastian Dröge Reviewed by: Stefan Kost * libs/gst/controller/Makefile.am: * libs/gst/controller/gstcontroller.c: (gst_controlled_property_add_interpolation_control_source), (gst_controlled_property_new), (gst_controlled_property_free), (gst_controller_find_controlled_property), (gst_controller_new_valist), (gst_controller_new_list), (gst_controller_new), (gst_controller_remove_properties_valist), (gst_controller_remove_properties_list), (gst_controller_remove_properties), (gst_controller_set_property_disabled), (gst_controller_set_disabled), (gst_controller_set_control_source), (gst_controller_get_control_source), (gst_controller_get), (gst_controller_sync_values), (gst_controller_get_value_array), (_gst_controller_dispose), (gst_controller_get_type), (gst_controlled_property_set_interpolation_mode), (gst_controller_set), (gst_controller_set_from_list), (gst_controller_unset), (gst_controller_unset_all), (gst_controller_get_all), (gst_controller_set_interpolation_mode): * libs/gst/controller/gstcontroller.h: * libs/gst/controller/gstcontrollerprivate.h: * libs/gst/controller/gstcontrolsource.c: (gst_control_source_class_init), (gst_control_source_init), (gst_control_source_get_value), (gst_control_source_get_value_array), (gst_control_source_bind): * libs/gst/controller/gstcontrolsource.h: * libs/gst/controller/gsthelper.c: (gst_object_set_control_source), (gst_object_get_control_source): * libs/gst/controller/gstinterpolation.c: (gst_interpolation_control_source_find_control_point_node), (gst_interpolation_control_source_get_first_value), (_interpolate_none_get), (interpolate_none_get), (interpolate_none_get_boolean_value_array), (interpolate_none_get_enum_value_array), (interpolate_none_get_string_value_array), (_interpolate_trigger_get), (interpolate_trigger_get), (interpolate_trigger_get_boolean_value_array), (interpolate_trigger_get_enum_value_array), (interpolate_trigger_get_string_value_array): * libs/gst/controller/gstinterpolationcontrolsource.c: (gst_control_point_free), (gst_interpolation_control_source_reset), (gst_interpolation_control_source_new), (gst_interpolation_control_source_set_interpolation_mode), (gst_interpolation_control_source_bind), (gst_control_point_compare), (gst_control_point_find), (gst_interpolation_control_source_set_internal), (gst_interpolation_control_source_set), (gst_interpolation_control_source_set_from_list), (gst_interpolation_control_source_unset), (gst_interpolation_control_source_unset_all), (gst_interpolation_control_source_get_all), (gst_interpolation_control_source_get_count), (gst_interpolation_control_source_init), (gst_interpolation_control_source_finalize), (gst_interpolation_control_source_dispose), (gst_interpolation_control_source_class_init): * libs/gst/controller/gstinterpolationcontrolsource.h: * libs/gst/controller/gstinterpolationcontrolsourceprivate.h: API: Refactor GstController into the core controller which can take a GstControlSource for providing actual values for timestamps. Implement a interpolation control source and use this for backward compatibility, deprecate a bunch of functions that are now handled by GstControlSource or GstInterpolationControlSource. Make it possible to disable the controller completely or only for specific properties. Fixes #450711. * docs/libs/gstreamer-libs-docs.sgml: * docs/libs/gstreamer-libs-sections.txt: * docs/libs/gstreamer-libs.types: Add new functions and classes to the docs. * tests/check/libs/controller.c: (GST_START_TEST), (gst_controller_suite): * tests/examples/controller/audio-example.c: (main): Port unit test and example to the new API and add some new unit tests. 2007-07-05 Wim Taymans Patch by: Mark Nauwelaerts * plugins/elements/gstmultiqueue.c: (gst_multi_queue_get_internal_links), (apply_buffer), (single_queue_overrun_cb), (gst_single_queue_new): Implement non-default GstPadIntLinkFunction for multiqueue pads so that the pipeline layout can be tracked correctly. Fixes #453732. 2007-07-05 Stefan Kost * docs/gst/Makefile.am: * docs/libs/Makefile.am: * docs/plugins/Makefile.am: Simplify --extra-dir as gtkdoc scans recursively. 2007-07-03 Wim Taymans * tools/gst-launch.c: (main): When we got an error, there is no point in waiting for preroll when shutting down. 2007-07-03 Wim Taymans * plugins/elements/gsttee.c: (gst_tee_base_init), (gst_tee_request_new_pad), (gst_tee_release_pad), (gst_tee_find_buffer_alloc), (gst_tee_buffer_alloc), (gst_tee_do_push), (clear_pads), (gst_tee_handle_buffer), (gst_tee_chain): Be a lot smarter when deciding what srcpad to use for proxying the buffer_alloc. Also handle pad added/removed when doing so. Fixes #357959. Keep track of what pads we already pushed on in case we have pads added/removed while pushing. Fixes #374639 * tests/check/Makefile.am: * tests/check/elements/tee.c: (handoff), (GST_START_TEST), (tee_suite): Added unit test for pad resync. 2007-07-01 Thomas Vander Stichele * po/nl.po: * po/sv.po: Updated translations. 2007-07-01 Thomas Vander Stichele translation by: Tommi Vainikainen * po/LINGUAS: * po/fi.po: Added new Finnish translation. 2007-06-28 Wim Taymans * plugins/elements/gstmultiqueue.c: (apply_buffer), (single_queue_overrun_cb): When figuring out when a queue is filled, use our internal time estimate based on segments, just like check_full does. 2007-06-27 Stefan Kost * gst/gstminiobject.c: (gst_mini_object_get_type): Remove 3 do-nothing methods. 2007-06-27 Wim Taymans Patch by: Tim Angus * plugins/elements/gstcapsfilter.c: (gst_capsfilter_class_init), (gst_capsfilter_set_property): Take a reference instead of a copy when setting "caps". Fix documentation to clarify this behaviour. Fixes #449414. 2007-06-27 Stefan Kost * gst/gstindexfactory.c: (gst_index_factory_get_type): * gst/gstplugin.c: (gst_plugin_init): * gst/gstpluginfeature.c: (gst_plugin_feature_init): * gst/gstquery.c: (gst_query_get_type): * gst/gstregistry.c: (gst_registry_init): * gst/gsturi.c: (gst_uri_handler_base_init): Remove empty instance_init() functions to save relocs and lessen the noise. Remove some of the function prototypes that are doubled by G_DEFINE_TYPE. 2007-06-27 Wim Taymans Patch by: Étienne Noreau-Hébert * gst/gstghostpad.c: (gst_proxy_pad_save_thyself): Add peer and direction in the XML serialisation of ghostpads. Fixes #449226. 2007-06-26 Stefan Kost * configure.ac: Preserve useful information, thanks Tim. 2007-06-26 Jan Schmidt * plugins/elements/gstmultiqueue.c: (gst_multi_queue_init), (gst_single_queue_flush), (apply_segment), (apply_buffer), (gst_single_queue_push_one), (gst_multi_queue_loop), (gst_multi_queue_sink_activate_push), (gst_multi_queue_sink_event), (gst_multi_queue_src_activate_push), (wake_up_next_non_linked), (compute_high_id), (gst_single_queue_new): * plugins/elements/gstmultiqueue.h: Take the multiqueue lock when updating the fill level so we don't get confused. After applying a buffer or event on the src pad segment, make sure to call gst_data_queue_limits_changed() to get the data queue to unblock and check the filled state again. Rework the not-linked pad handling so the logic is that not-linked pads can push as fast as they like, but only so they never get ahead of any linked pads. * tests/check/elements/multiqueue.c: (mq_sinkpad_to_srcpad), (mq_dummypad_getcaps), (mq_dummypad_chain), (mq_dummypad_event), (run_output_order_test), (GST_START_TEST), (multiqueue_suite): Add a test to check that not-linked pads always stay behind linked pads. Fixes: #430682 2007-06-26 Jan Schmidt * docs/random/release: Some updates to the release procedure. 2007-06-26 Stefan Kost * gst/gstelementfactory.c: (__gst_element_details_clear): Microoptimization that saves stunning 80 bytes. 2007-06-25 Stefan Kost * docs/plugins/gstreamer-plugins.args: * docs/plugins/inspect/plugin-coreelements.xml: * docs/plugins/inspect/plugin-coreindexers.xml: Update docs with caps info. 2007-06-24 Thomas Vander Stichele * po/it.po: Updated Italian translation. 2007-06-23 Thomas Vander Stichele * ChangeLog: * po/vi.po: Update Vietnamese translations. 2007-06-21 Tim-Philipp Müller * libs/gst/base/gstbasesink.c: Remove unused signal enum. 2007-06-21 Jan Schmidt * docs/gst/gstreamer-sections.txt: * gst/gstelement.c: * gst/gstutils.c: (gst_type_register_static_full): Beef up and include the docs for gst_type_register_static_full and gst_element_class_set_details_simple and add the API keyword in the ChangeLog. 2007-06-21 Jan Schmidt * plugins/elements/gstmultiqueue.c: (gst_multi_queue_set_property), (update_time_level), (gst_single_queue_push_one), (gst_multi_queue_chain), (gst_multi_queue_sink_event), (single_queue_overrun_cb), (single_queue_underrun_cb), (single_queue_check_full): Fix setting max-* properties after adding queues. Use IS_FILLED for checking visible items. Signal overrun if multiple queues overrun. Add extra debug output. Patch by: Wim Taymans 2007-06-21 Stefan Kost * gst/gstelement.c: (gst_element_class_set_details_simple): * gst/gstelement.h: * gst/gstutils.c: (gst_type_register_static_full): * gst/gstutils.h: * plugins/elements/gstcapsfilter.c: (gst_capsfilter_base_init): * plugins/elements/gstfakesink.c: (gst_fake_sink_base_init): * plugins/elements/gstfakesrc.c: (gst_fake_src_base_init): * plugins/elements/gstfdsink.c: (gst_fd_sink_base_init): * plugins/elements/gstfdsrc.c: (gst_fd_src_base_init): * plugins/elements/gstfilesink.c: (gst_file_sink_base_init): * plugins/elements/gstfilesrc.c: (gst_file_src_base_init): * plugins/elements/gstidentity.c: (gst_identity_base_init): * plugins/elements/gstmultiqueue.c: (gst_multi_queue_base_init): * plugins/elements/gstqueue.c: (gst_queue_base_init), (apply_buffer), (gst_queue_chain): * plugins/elements/gsttee.c: (gst_tee_base_init): * plugins/elements/gsttypefindelement.c: (gst_type_find_element_base_init), (gst_type_find_element_class_init): Saving relocations for GTypeInfo and GstElementDetails. Fixes #437457. API: add gst_type_register_static_full API: add gst_element_class_set_details_simple 2007-06-21 Tim-Philipp Müller * docs/pwg/advanced-types.xml: Fix typo in iana.org URI. 2007-06-19 Andy Wingo * tests/check/pipelines/simple-launch-lines.c (test_state_change_returns): Enable pull-mode tests now that basesink has been fixed. * libs/gst/base/gstbasesink.c (gst_base_sink_needs_preroll): Changed from gst_base_sink_is_prerolled, reversing the sense of the return value. Returns FALSE also if the sink is in pull mode, in which case it needs no preroll. (gst_base_sink_query, gst_base_sink_change_state): Update for needs_preroll change. (gst_base_sink_change_state): Add a case for READY_TO_PAUSED after chaining up, in which we return SUCCESS directly if we activated in pull mode instead of ASYNC. Involves countering an async_start message sent before chaining up; not sure if this is correct, in an ideal world we only send async-start when activating in push mode. * tests/check/pipelines/simple-launch-lines.c (test_state_change_returns): New test, partially disabled until basesink is fixed. 2007-06-19 Wim Taymans * plugins/elements/gstmultiqueue.c: (apply_buffer), (gst_multi_queue_sink_event): Fix event leak. 2007-06-19 Wim Taymans * gst/gstbin.c: (gst_bin_add_func), (gst_bin_remove_func), (gst_bin_change_state_func), (bin_push_state_continue), (bin_handle_async_start), (bin_handle_async_done), (gst_bin_handle_message_func): Move the common code for posting state-change messages into one function. Broadcast the state signal after we posted the messages. Mark the bin as busy when it's doing a state-change. Make sure async-start/done messages don't interfere with the bin's state when it's busy. After the state change, let the bin check which elements completed the state change while it was busy so that it can update its state. 2007-06-19 Jan Schmidt * docs/random/release: Add a note about updating the doap file to the release checklist 2007-06-18 Wim Taymans * plugins/elements/gstmultiqueue.c: (apply_buffer), (gst_single_queue_push_one), (gst_multi_queue_chain), (gst_multi_queue_sink_event): Make sure we don't reference the buffer/event after we have given away ownership in the queue. 2007-06-18 Wim Taymans * plugins/elements/gstmultiqueue.c: (gst_single_queue_flush), (gst_multi_queue_chain), (gst_multi_queue_sink_event): Update queue state _after_ adding the item in the queue because else we could end up being full without the element added yet. 2007-06-18 Wim Taymans * gst/gstbin.c: (gst_bin_init), (gst_bin_add_func), (gst_bin_remove_func), (gst_bin_get_state_func), (gst_bin_element_set_state), (gst_bin_continue_func), (bin_push_state_continue), (bin_handle_async_start), (bin_handle_async_done), (gst_bin_handle_message_func): * gst/gstbin.h: Immediatly commit the toplevel bin state when receiving an async-done message. This enables us to avoid spawning a thread to commit the state in some common cases and it also avoids some races. Avoid spawning a state thread when adding/removing async elements to a toplevel bin. Instead we immediatly update the bin state. Get rid of iterating all the children when getting the state in the bin because it is now always up-to-date. Fix bug where locked elements would always return _SUCCESS even it they returned NO_PREROLL before being locked. Fix the order of the state_change, async-start/done messages that was sometimes incorrect. Mark the state_dirty field as deprecated, we don't need it anymore as we are always up-to-date. * gst/gstelement.c: (gst_element_get_state_func), (gst_element_continue_state): Small debug inprovements. Return the previous element state return when nothing is pending instead of blindly returning SUCCESS. * tests/check/generic/sinks.c: (GST_START_TEST), (pad_blocked_cb), (gst_sinks_suite): Add a whole bunch of new testcases. 2007-06-17 Thomas Vander Stichele * po/uk.po: * po/vi.po: Update translations. 2007-06-15 Jan Schmidt * gst/gstpad.c: Fix typo in the docs. 2007-06-15 Wim Taymans * docs/libs/gstreamer-libs-sections.txt: Add docs for new methods. 2007-06-15 Wim Taymans * plugins/elements/gstmultiqueue.c: (gst_multi_queue_item_destroy), (gst_multi_queue_item_new): Don't use GSlice because we don't depend on >= 2.10 yet. 2007-06-15 Wim Taymans * plugins/elements/gstmultiqueue.c: (gst_single_queue_flush), (update_time_level), (apply_segment), (apply_buffer), (gst_single_queue_push_one), (gst_multi_queue_item_new), (gst_multi_queue_loop), (gst_multi_queue_sink_activate_push), (gst_multi_queue_sink_event), (single_queue_overrun_cb), (single_queue_underrun_cb), (single_queue_check_full): Remove debug printf. 2007-06-15 Wim Taymans * libs/gst/base/gstdataqueue.c: (gst_data_queue_cleanup), (gst_data_queue_finalize), (gst_data_queue_locked_is_empty), (gst_data_queue_set_flushing), (gst_data_queue_push), (gst_data_queue_pop), (gst_data_queue_drop_head), (gst_data_queue_limits_changed), (gst_data_queue_get_level): * libs/gst/base/gstdataqueue.h: Various cleanups. Added methods to get the current levels and to inform the queue that the 'full' limits changed. * plugins/elements/gstmultiqueue.c: (gst_multi_queue_init), (gst_multi_queue_finalize), (gst_multi_queue_set_property), (gst_single_queue_flush), (update_time_level), (apply_segment), (apply_buffer), (gst_single_queue_push_one), (gst_multi_queue_item_steal_object), (gst_multi_queue_item_destroy), (gst_multi_queue_item_new), (gst_multi_queue_loop), (gst_multi_queue_chain), (gst_multi_queue_sink_activate_push), (gst_multi_queue_sink_event), (gst_multi_queue_getcaps), (gst_multi_queue_src_activate_push), (gst_multi_queue_src_query), (single_queue_overrun_cb), (single_queue_underrun_cb), (single_queue_check_full), (gst_single_queue_new): Keep track of time in the queue by measuring the difference between running_time on input and output. This gives more accurate results and can compensate for segments correctly. Make a queue by default only 5 buffers deep. We will now increase the buffer size depending on the filledness of the other queues. Factor out commong flush code. Make sure we don't add additional refcounts to buffers when we can avoid it. Propagate GstFlowReturn differently. Use GSlice for intermediate GstMultiQueueItems. Keep track of EOS. Resize queues on over and underruns based on filled level of other queues. When checking if the queue is filled, prefer to measure in time if we can and fall back to bytes when no time is known. * plugins/elements/gstqueue.c: Fix return value. 2007-06-15 Wim Taymans * libs/gst/base/gstbasetransform.c: (gst_base_transform_sink_event): Work around the brokenness of the event vmethod in basetransform. Prefer to return TRUE when the subclass returned FALSE (meaning don't forward the event). * libs/gst/base/gstbasetransform.h: Clarify the docs. 2007-06-15 Wim Taymans * gst/gstpad.c: (gst_pad_push_event), (gst_pad_send_event): * libs/gst/base/gstbasesrc.c: (gst_base_src_query_latency), (gst_base_src_default_query), (gst_base_src_get_range), (gst_base_src_start): * tests/check/pipelines/parse-launch.c: (setup_pipeline): Improve debugging. 2007-06-15 Stefan Kost * docs/pwg/advanced-types.xml: Added more formats to caps table. 2007-06-15 Stefan Kost * tools/gst-launch.c: (main): Remove crufy code. GOption does not need this workaround. 2007-06-14 Stefan Kost * libs/gst/controller/gstcontroller.c: (gst_controlled_property_set_interpolation_mode): Fix wrong getter for enums in controller. 2007-06-14 Tim-Philipp Müller * libs/gst/check/gstcheck.c: (gst_check_init): Intercept criticals and warnings in the Gst-Phonon log domain, so ASSERT_CRITICAL() etc. can be used in gst-phonon's unit tests as well. 2007-06-14 Edward Hervey * gst/gstparamspecs.c: (_gst_param_fraction_validate): Since this file doesn't include "gst.h" it will not go through the macros that disable GST_LOG if debugging was disabled. 2007-06-14 Tim-Philipp Müller * libs/gst/check/Makefile.am: * libs/gst/check/gstcheck.h: * pkgconfig/gstreamer-check-uninstalled.pc.in: * pkgconfig/gstreamer-check.pc.in: Ugly 'fix' for the controller unit test on the p5 bot: in fail_unless_equals_float() check whether the values are 'almost equal' by allowing a small absolute error, which should be good enough for our use cases (normal numbers and values close to 0). Proper fixage left to floating point arithmetic aficionados. 2007-06-14 Stefan Kost * libs/gst/base/gstbasesink.c: (gst_base_sink_reset_qos), (gst_base_sink_render_object), (gst_base_sink_get_position): Add two breaks thats where missing. 2007-06-14 Tim-Philipp Müller * docs/libs/gstreamer-libs-sections.txt: * libs/gst/check/gstcheck.h: API: add fail_unless_equals_float() and assert_equals_float(). Add documentation for some of the macros. * tests/check/libs/controller.c: (GST_START_TEST): Use newly-added asserts. 2007-06-14 Stefan Kost * gst/gstpad.c: (gst_pad_alloc_buffer_full), (gst_pad_push): Show the caps change in the log to help spotting the case of not exactly matching caps. 2007-06-14 Tim-Philipp Müller * docs/pwg/building-boiler.xml: Fix typos, spotted by Thijs Vermeir (#447190). 2007-06-13 Jan Schmidt * docs/plugins/tmpl/.cvsignore: Ignore file to keep the buildbots happy 2007-06-13 Jan Schmidt * docs/plugins/Makefile.am: * docs/plugins/gstreamer-plugins-docs.sgml: * docs/plugins/gstreamer-plugins-sections.txt: Pull fdsink into the docs too. 2007-06-11 Sebastian Dröge * libs/gst/controller/gstinterpolation.c: Actually use the new functions with min/max checks for the trigger and none interpolation modes for get() and get_value_array() instead of just the latter. 2007-06-10 Sebastian Dröge * libs/gst/controller/gstcontroller.c: (gst_controlled_property_free): Unset the minimum and maximum GValues when freeing the corresponding GstControllerProperty struct. 2007-06-09 Sebastian Dröge * libs/gst/controller/gstcontroller.c: (gst_controlled_property_new): * libs/gst/controller/gstcontrollerprivate.h: * libs/gst/controller/gstinterpolation.c: (gst_controlled_property_find_control_point_node), (interpolate_none_get), (interpolate_none_get_enum_value_array), (interpolate_none_get_string_value_array), (interpolate_trigger_get), (interpolate_trigger_get_enum_value_array), (interpolate_trigger_get_string_value_array): Protect against values larger or smaller than the minimum or maximum allowed value for the property when using values that can be compared. Optimize trigger interpolator a bit by taking the last requested value into account instead of always looping through the complete list. Fix coding style a bit, everywhere else we use "return foo" instead of "return (foo)". * tests/check/libs/controller.c: (GST_START_TEST), (gst_controller_suite): Add unit test for the protection against too large or too small values. 2007-06-08 Sebastian Dröge * docs/random/slomo/controller.txt: Add some thoughts about the future of the controller. 2007-06-08 Wim Taymans * plugins/elements/gstidentity.c: (gst_identity_transform_ip): Don't overflow in retimestamping code. 2007-06-07 Sebastien Moutte * libs/gst/controller/gstinterpolation.c: (DEFINE_CUBIC_GET): Use gst_util_guint64_to_gdouble for conversions. * win32/common/libgstreamer.def: Add new exported functions. 2007-06-07 Tim-Philipp Müller * gst/gstutils.c: Small docs addition. 2007-06-07 Stefan Kost * README: Remove that test line again. 2007-06-07 Stefan Kost * README: Test commit mail sending. 2007-06-07 Stefan Kost * configure.ac: Fix typo and test commit mail sending. 2007-06-07 Stefan Kost * tests/examples/controller/audio-example.c: Improve comment and test commit mail sending. 2007-06-07 Wim Taymans * gst/gstbin.c: (find_message), (bin_replace_message), (is_eos), (gst_bin_remove_func), (gst_bin_element_set_state), (bin_handle_async_start), (bin_handle_async_done), (gst_bin_handle_message_func): Add helper function to find messages. Generate the async-done messages together with the state change messages. Small cleanups in handling toplevel bins. 2007-06-06 Tim-Philipp Müller * libs/gst/base/gstdataqueue.c: * libs/gst/base/gstdataqueue.h: * plugins/elements/gstmultiqueue.c: (gst_single_queue_push_one), (gst_multi_queue_item_new), (gst_multi_queue_chain), (gst_multi_queue_sink_event): * tests/check/elements/multiqueue.c: (multiqueue_suite): Fix multiqueue leaking buffers and events when downstream or the queue are flushing. Make refcounting assumptions explicit and document them (shouldn't break existing code that uses it other than maybe leak miniobjects, but that already happens anyway). Add unit test for the most common flushing case. Fixes #423700. 2007-06-06 Sebastian Dröge * libs/gst/controller/gstcontroller.c: Clarify docs: The get_all, get_value_array(s) functions don't modify the GObject properties. 2007-06-06 Sebastian Dröge * libs/gst/controller/gstcontroller.c: (gst_controlled_property_set_interpolation_mode), (gst_controlled_property_prepend_default), (gst_controlled_property_new), (gst_controller_set_unlocked), (gst_controller_set), (gst_controller_set_from_list), (gst_controller_unset), (gst_controller_unset_all): * libs/gst/controller/gstcontrollerprivate.h: * libs/gst/controller/gstinterpolation.c: Factor out the 'set' logic into gst_controller_set_unlocked for the gst_controller_set and gst_controller_set_from_list functions. To make life of the interpolators easier always add a control point at timestamp zero with the default value. In the linear interpolator make things more obvious by better variable naming (slope). Implement cubic interpolation mode (by using a natural cubic spline) and map the quadratic interpolation mode to this too (as quadratic doesn't make much sense, see discussion on the list). * tests/check/libs/controller.c: (GST_START_TEST), (gst_controller_suite): Add unit test for the cubic interpolation mode and check everywhere if the interpolation mode could be set as expected. 2007-06-06 Tim-Philipp Müller * gst/gstparamspecs.c: (gst_param_spec_fraction_get_type): Don't use GLib-2.10 functions, we still depend on GLib-how-old-is-it-again-2.8. 2007-06-06 Tim-Philipp Müller * docs/gst/gstreamer-sections.txt: * gst/Makefile.am: * gst/gst.c: * gst/gst.h: * gst/gstparamspecs.c: (_gst_param_fraction_init), (_gst_param_fraction_set_default), (_gst_param_fraction_validate), (_gst_param_fraction_values_cmp), (gst_param_spec_fraction_get_type), (gst_param_spec_fraction): * gst/gstparamspecs.h: * gst/gstvalue.c: * tests/check/Makefile.am: * tests/check/gst/.cvsignore: * tests/check/gst/gstparamspecs.c: (gst_dummy_obj_base_init), (gst_dummy_obj_class_init), (gst_dummy_obj_init), (gst_dummy_obj_set_property), (gst_dummy_obj_get_property), (GST_START_TEST), (gst_param_spec_suite): API: add GstParamSpecFraction, so elements can have fraction properties without lots of painful string parsing (#444648). 2007-06-05 Wim Taymans * gst/gstobject.c: (gst_object_class_init): Fix signal signature. * gst/gstsegment.c: Add small clarification in the api docs. * plugins/elements/gstfilesrc.c: (gst_file_src_set_location): States are protected with object lock. 2007-06-05 Jan Schmidt * AUTHORS: I should probably be listed as an author by now. * docs/random/release: Update the release doc 2007-06-05 Tim-Philipp Müller * gst/gstvalue.c: Make docs for gst_value_compare() mention return enums that actually exist. 2007-06-05 Jan Schmidt * configure.ac: Back to CVS