=== release 0.10.3 === 2006-02-08 Jan Schmidt * configure.ac: releasing 0.10.3, "Like a virgin" 2006-02-08 Jan Schmidt * configure.ac: 2nd prerelease of 0.10.3 Bump libtool versioning. 2006-02-07 Andy Wingo * libs/gst/base/gstcollectpads.c (gst_collect_pads_chain): Only update last_stop if we're in TIME format and the timestamp is valid. * libs/gst/base/gstcollectpads.c (gst_collect_pads_event) * libs/gst/base/gstbasetransform.c (gst_base_transform_eventfunc): * libs/gst/base/gstbasesink.c (gst_base_sink_configure_segment): If we get a new newsegment with a different format, adapt accordingly. * gst/gstclock.c (gst_clock_set_calibration): Accept a numerator of 0. Not a problem, really. * libs/gst/base/gstbasesink.c (gst_base_sink_chain_unlocked): Only warn if sync=true. 2006-02-06 Jan Schmidt * configure.ac: Prelease of 0.10.3 2006-02-06 Sebastien Moutte * win32/vs7: project files updated to the default vs7 configuration * win32/common/libgstbase.def: * win32/common/libgstreamer.def: added new symbols, removed empty lines, sorted all exported symbols alphabetically * win32/common/dirent.c: * win32/common/dirent.h: * win32/common/gchar.h: use windows line end. 2006-02-06 Tim-Philipp Müller * libs/gst/base/gstbasesrc.c: (gst_base_src_change_state): Send EOS event when stopping. 2006-02-06 Tim-Philipp Müller * docs/README: Tell folks what to do if the plugin-foobar.xml file hasn't been generated for a newly-added plugin. 2006-02-05 Julien MOUTTE * libs/gst/base/gstcollectpads.c: (gst_collect_pads_finalize), (gst_collect_pads_add_pad), (gst_collect_pads_remove_pad), (gst_collect_pads_start), (gst_collect_pads_stop), (gst_collect_pads_event): Collectpads now holds a reference to the GstPad that was added. Indeed we don't want to look at pads that might just go away with no warning... 2006-02-05 Julien MOUTTE * libs/gst/base/gstcollectpads.c: (gst_collect_pads_add_pad), (gst_collect_pads_start), (gst_collect_pads_stop), (gst_collect_pads_event), (gst_collect_pads_chain): * libs/gst/base/gstcollectpads.h: Handle flush. Adapted from Mark Nauwelaerts's patch on bug #328491. 2006-02-04 Tim-Philipp Müller * tests/check/gst/gstutils.c: (test_parse_bin_from_description), (gst_utils_suite): Add some simple tests for gst_parse_bin_from_description() and gst_bin_find_unconnected_pad() (#329069). 2006-02-04 Tim-Philipp Müller * tools/gst-launch.c: (event_loop), (main): Catch errors during preroll (#320084). 2006-02-03 Tim-Philipp Müller * plugins/elements/gsttypefindelement.c: (gst_type_find_element_activate): Post TYPE_NOT_FOUND error message when typefinding is unsuccessful in the activate function as well. 2006-02-02 Wim Taymans * docs/design/part-element-sink.txt: Updated doc. 2006-02-02 Wim Taymans * libs/gst/base/gstbasesink.c: (gst_base_sink_do_sync), (gst_base_sink_render_object), (gst_base_sink_queue_object_unlocked): Only keep track of prerollable items when we are prerolling. Before rendering after preroll, always check if we have queued items. Added some more debugging. 2006-02-02 Wim Taymans * gst/gstelement.c: (gst_element_continue_state), (gst_element_set_state_func), (gst_element_change_state): Fixed #326576, been running this for quite some time with no regressions at all. 2006-02-02 Wim Taymans * common/gst.supp: Added more suppressions 2006-02-02 Wim Taymans * docs/design/part-element-sink.txt: Updated document. * libs/gst/base/gstbasesink.c: (gst_base_sink_init), (gst_base_sink_finalize), (gst_base_sink_preroll_queue_flush), (gst_base_sink_configure_segment), (gst_base_sink_commit_state), (gst_base_sink_get_sync_times), (gst_base_sink_wait_clock), (gst_base_sink_do_sync), (gst_base_sink_render_object), (gst_base_sink_preroll_object), (gst_base_sink_queue_object_unlocked), (gst_base_sink_queue_object), (gst_base_sink_event), (gst_base_sink_chain_unlocked), (gst_base_sink_chain), (gst_base_sink_loop), (gst_base_sink_activate_pull), (gst_base_sink_get_position), (gst_base_sink_change_state): * libs/gst/base/gstbasesink.h: Totally refactored matching the design doc. Use two segments, one to clip incomming buffers and another to perform sync. Handle queueing correctly, bypass the queue when playing. Make EOS cancelable. Handle errors correctly when operating in pull based mode. * tests/check/elements/fakesink.c: (GST_START_TEST), (fakesink_suite): Added new check for sinks. 2006-02-02 Wim Taymans * gst/gstsegment.c: (gst_segment_clip): No reason to refuse to clip when start == -1 2006-02-02 Stefan Kost * docs/README: * docs/manual/intro-basics.xml: * docs/manual/intro-preface.xml: * docs/manual/manual.xml: * docs/pwg/advanced-dparams.xml: * docs/pwg/intro-basics.xml: * docs/pwg/intro-preface.xml: * docs/pwg/pwg.xml: describe dparams (controller) for plugins unify docs a little more 2006-02-02 Tim-Philipp Müller * docs/gst/gstreamer-sections.txt: * gst/gstutils.c: (element_find_unconnected_pad), (gst_bin_find_unconnected_pad), (gst_parse_bin_from_description): * gst/gstutils.h: Add new API: gst_parse_bin_from_description() and gst_bin_find_unconnected_pad() (#329069). 2006-02-01 Stefan Kost * docs/manual/README: uncover a nasty detail of the docs build 2006-01-31 Wim Taymans * gst/gstbin.c: (bin_remove_messages), (bin_query_duration_done): Don't cache duration messages if we're not going to use or free them. 2006-01-31 Stefan Kost * docs/manual/advanced-dparams.xml: * docs/pwg/advanced-dparams.xml: more dparam docs * gst/gstindex.c: fix docs * libs/gst/controller/lib.c: (gst_controller_init): init just once 2006-01-31 Thomas Vander Stichele * gst/gstelement.c: (gst_element_message_full): also show file/line/func if no additional debug was given 2006-01-31 Sebastien Moutte * win32/vs7/grammar.vcproj: activate copy of autogenerated files for Release mode 2006-01-30 Sebastien Moutte * win32/common/libgstreamer.def: export gst_value_compare 2006-01-30 Jan Schmidt * plugins/elements/Makefile.am: * plugins/elements/gstelements.c: * plugins/elements/gstfdsink.c: (_do_init), (gst_fd_sink_base_init), (gst_fd_sink_class_init), (gst_fd_sink_init), (gst_fd_sink_dispose), (gst_fd_sink_query), (gst_fd_sink_render), (gst_fd_sink_check_fd), (gst_fd_sink_start), (gst_fd_sink_stop), (gst_fd_sink_unlock), (gst_fd_sink_update_fd), (gst_fd_sink_set_property), (gst_fd_sink_uri_get_type), (gst_fd_sink_uri_get_protocols), (gst_fd_sink_uri_get_uri), (gst_fd_sink_uri_set_uri), (gst_fd_sink_uri_handler_init): * plugins/elements/gstfdsink.h: Port fdsink to 0.10 (patch by Philippe Rouquier) (Fixes #325490) 2006-01-30 Stefan Kost * docs/manual/advanced-dparams.xml: describe controller * docs/manual/advanced-position.xml: * docs/manual/basics-init.xml: * docs/manual/manual.xml: * docs/manual/titlepage.xml: * docs/pwg/pwg.xml: * docs/pwg/titlepage.xml: cleanup xml (more to come) * libs/gst/controller/gstcontroller.c: fix typo 2006-01-30 Sebastien Moutte * win32/vs6/grammar.dsp: add autogen of gstmarshal.c,h for Release mode 2006-01-30 Wim Taymans * libs/gst/base/gstbasesink.c: (gst_base_sink_init), (gst_base_sink_preroll_queue_empty), (gst_base_sink_commit_state), (gst_base_sink_handle_object), (gst_base_sink_event), (gst_base_sink_is_prerolled), (gst_base_sink_wait), (gst_base_sink_do_sync), (gst_base_sink_handle_event), (gst_base_sink_handle_buffer), (gst_base_sink_set_flushing), (gst_base_sink_deactivate), (gst_base_sink_activate), (gst_base_sink_activate_pull), (gst_base_sink_get_position), (gst_base_sink_query), (gst_base_sink_change_state): Basesink cleanups, remove some old code. Handle the case where a subclass can preroll in the render method (mostly audiosinks). Handle more events. Remove some locks around variables that are now protected with the PREROLL_LOCK (clock_id, flushing, ..). Optimize position query some more, do correct locking. Remove old code to push queue in state change, this is not needed anymore since preroll blocks on all prerollable items now. Almost implemented as described in design doc. 2006-01-30 Wim Taymans * tests/check/gst/gstbin.c: (GST_START_TEST): Wait for refcount to settle down before checking. 2006-01-30 Wim Taymans * docs/design/part-element-sink.txt: Pseudo code overview of desired sink behaviour regarding preroll. 2006-01-29 Sebastien Moutte * win32/vs6/grammar.dsp: fix some bugs in Release mode for autogenerated files 2006-01-29 Sebastien Moutte * win32/common/libgstbase.def: * win32/common/libgstreamer.def: export some new symbols: gst_base_src_set_format, gst_iterator_next, gst_structure_set_valist 2006-01-29 Julien MOUTTE * gst/gstghostpad.c: (gst_proxy_pad_set_target_unlocked): Set pad functions unconditionally. Fixes #329105. 2006-01-29 Sebastien Moutte * win32/vs8: add vs8 project files created by Sergey Scobich 2006-01-28 Jan Schmidt * gst/gstutils.c: (gst_element_unlink_pads): Don't leak pad references. * tests/check/elements/fakesink.c: (GST_START_TEST): * tests/check/generic/sinks.c: (GST_START_TEST): * tests/check/generic/states.c: (GST_START_TEST): * tests/check/gst/gstbin.c: (GST_START_TEST): * tests/check/gst/gstcaps.c: (GST_START_TEST): * tests/check/gst/gstelement.c: (GST_START_TEST): * tests/check/gst/gstghostpad.c: (GST_START_TEST): * tests/check/gst/gstiterator.c: (GST_START_TEST): * tests/check/gst/gstvalue.c: (GST_START_TEST): Fix a bunch of leaks. Make generic/sinks.c use a bit less cpu by slowing the buffer rate between fakesrc and fakesink. 2006-01-27 Stefan Kost * gst/gstcaps.c: * gst/gstelement.c: (gst_element_send_event): * gst/gstevent.c: * gst/gstinfo.c: * gst/gstiterator.c: * gst/gstiterator.h: * gst/gstpad.c: (gst_pad_send_event): * gst/gststructure.c: * gst/gsturi.c: * gst/gstutils.c: * gst/gstvalue.c: * libs/gst/base/gstadapter.c: doc fixes, to link to function, just write gst_cool_function(), don't prefix with '#' 2006-01-27 Jan Schmidt * plugins/elements/gsttee.c: (gst_tee_do_push), (gst_tee_handle_buffer): Always prefer an actual return value from a src pad in place of NOT_LINKED. This means we return WRONG_STATE when all src pads are WRONG_STATE instead of NOT_LINKED. Lock when replacing the last message to prevent racing with the get_property method. Add debug output 2006-01-27 Jan Schmidt * tests/check/Makefile.am: * tests/check/gst/gstquery.c: (GST_START_TEST), (gstquery_suite), (main): Add a very simple check that should have caught the memleak I fixed last night (if not for the slice allocator hiding it) 2006-01-27 Jan Schmidt * gst/gstbin.c: (gst_bin_dispose), (gst_bin_provide_clock_func), (gst_bin_remove_func), (gst_bin_handle_message_func), (bin_query_duration_fold), (bin_query_generic_fold): Clean up references to the clock provider when disposed or when handling a clock-lost message from it. Unref sinks when performing a query via gst_iterator_fold, as the gst_bin_iterate_sinks iterator refs each item. (Fixes #323874) * gst/gstclock.c: (gst_clock_class_init), (gst_clock_dispose), (gst_clock_set_master): Drop our reference to the master clock, if any, when we are disposed. * gst/gsttypefindfactory.c: (gst_type_find_factory_dispose): Chain up in dispose. 2006-01-26 Wim Taymans * libs/gst/base/gstbasesrc.c: (gst_base_src_get_range): Add some debugging. 2006-01-26 Julien MOUTTE * plugins/elements/gsttee.c: (gst_tee_do_push), (gst_tee_handle_buffer): Apply patch from #328715. Tee now handles pad being NOT_LINKED or in WRONG_STATE. 2006-01-26 Stefan Kost * win32/MANIFEST: more updating 2006-01-26 Stefan Kost * win32/MANIFEST: remove obsolete entry 2006-01-26 Stefan Kost * docs/gst/gstreamer-sections.txt: * gst/gstbin.c: (bin_element_is_src), (src_iterator_filter), (gst_bin_iterate_sources), (gst_bin_send_event): * gst/gstbin.h: * gst/gstelement.c: (gst_element_send_event): * gst/gstevent.c: * gst/gstpad.c: (gst_pad_send_event): added code for downstream events, reviewed docs in gstevent.c 2006-01-25 Julien MOUTTE * libs/gst/base/gstbasesink.c: (gst_base_sink_get_position): We only query position using the clock in the playing state. Query peer in the other cases. * win32/common/config.h: Updates. 2006-01-24 Wim Taymans * gst/gstsystemclock.c: (gst_system_clock_id_wait_unlocked): A clock entry that is scheduled for the exact time of the clock is still in time. * libs/gst/base/gstbasesink.c: (gst_base_sink_handle_object), (gst_base_sink_do_sync): Add some more debug info. 2006-01-23 Sebastien Moutte * win32/vs7: Add new vs7 project files and solution. 2006-01-23 Sebastien Moutte * win32/vs7: all files removed as they were out-dated. 2006-01-20 Thomas Vander Stichele * docs/random/release: update notes * gst/gstbin.c: (gst_bin_init): * gst/gstbus.c: (gst_bus_new): * gst/gstbus.h: * gst/gstpipeline.c: (gst_pipeline_init): use gst_bus_new(), improve logging, fix docs * win32/common/config.h: update for cvs build 2006-01-20 Thomas Vander Stichele * autogen.sh: up required version of automake to 1.7 2006-01-20 Sebastien Moutte * win32/common/libgstreamer.def: export gst_buffer_is_metadata_writable 2006-01-20 Tim-Philipp Müller * docs/gst/gstreamer-sections.txt: * gst/gstevent.h: Add gst_event_replace() (#327001) 2006-01-20 Wim Taymans * gst/gstpad.c: (gst_pad_link_check_compatible_unlocked): Make it actually compile too.. 2006-01-20 Wim Taymans * gst/gstcaps.c: Clarify behaviour of _is_equal() when passing NULL parameters. * gst/gstpad.c: (gst_pad_link_check_compatible_unlocked), (gst_pad_set_caps): Cleanups. Don't unref NULL caps. When setting the same caps, protect caps of the pad with proper lock. Use full functionality of _is_equal() when comparing caps. 2006-01-20 Jan Schmidt * libs/gst/base/gstcollectpads.c: (gst_collect_pads_is_collected): Don't loop infinitely if there are no buffers to present. Partially fixes #327197, but collectpads is just broken for reusing elements to do multiple encodes atm. 2006-01-20 Jan Schmidt * tools/gst-inspect.c: (print_element_features): * tools/gst-xmlinspect.c: (main): URL_HANDLER is not a plugin feature we can search for in the registry. 2006-01-19 Edward Hervey * gst/gstelement.c: (gst_element_pads_activate): When activating, do src pads first, then sink pads. When de-activating, do sink pads first, then src pads. 2006-01-19 Jan Schmidt * docs/gst/gstreamer-sections.txt: Add gst_index_add_associationv to the docs 2006-01-19 Jan Schmidt * gst/gstevent.c: Fix docs typo * plugins/elements/gstqueue.c: (gst_queue_handle_sink_event), (gst_queue_chain), (gst_queue_push_one), (gst_queue_loop): Do some refactoring. Doesn't actually change functionality, but makes landing the DRAIN event easier later. 2006-01-19 Tim-Philipp Müller * docs/pwg/advanced-scheduling.xml: Update from 0.9.x to 0.10 API and make example a bit clearer. 2006-01-19 Jan Schmidt * docs/gst/gstreamer-sections.txt: Add gst_buffer_(is|make)_metadata_writable methods. 2006-01-19 Jan Schmidt * docs/design/part-sparsestreams.txt: Update sparse streams doc, hopefully for greater clarity 2006-01-18 Jan Schmidt * docs/design/part-events.txt: Remove mention of FILLER events. Add DRAIN event. * docs/design/part-sparsestreams.txt: Write some things about using NEWSEGMENT to keep sparse streams flowing. 2006-01-18 Tim-Philipp Müller * gst/gstbin.c: (gst_bin_dispose): Guard gst_object_unref call against a NULL object (dispose can theoretically be called multiple times). 2006-01-18 Wim Taymans * gst/gstbin.c: (gst_bin_element_set_state): * gst/gstclock.c: (gst_clock_id_wait): Added some more debug info. * libs/gst/base/gstadapter.c: Added more docs. * libs/gst/base/gstbasesink.c: (gst_base_sink_handle_object), (gst_base_sink_do_sync), (gst_base_sink_chain): Added some comments. 2006-01-18 Wim Taymans * tests/check/Makefile.am: * tests/check/elements/fakesink.c: (chain_async_buffer), (chain_async), (chain_async_return), (GST_START_TEST), (fakesink_suite), (main): Added fakesink test that checks prerolling and clipping behaviour. * tests/check/gst/gstutils.c: (GST_START_TEST): Make check run faster so that buildbots don't timeout. 2006-01-18 Wim Taymans * libs/gst/base/gstbasesink.c: (gst_base_sink_handle_object), (gst_base_sink_do_sync): Some cleanups. When the sink finishes blocking on the preroll buffer, it can immediatly render it instead of rendering when the next buffer arrives. 2006-01-18 Wim Taymans * libs/gst/base/gstbasesink.c: (gst_base_sink_set_property), (gst_base_sink_get_property), (gst_base_sink_do_sync), (gst_base_sink_chain): Small cleanups. GST_ELEMENT_CLOCK and sync are protected with LOCK. Don't store _last_stop if the buffer is dropped. 2006-01-18 Tim-Philipp Müller * plugins/elements/gsttypefindelement.c: (gst_type_find_element_class_init): 'have-type' signal needs to be G_SIGNAL_RUN_FIRST, as it is the object method handler that sets the caps on the pad and we want that to happen before we emit the signal (fixes e.g. feeding a plain text file to decodebin). 2006-01-18 Christian Schaller * gst/gstplugin.c: Add MPL and Proprietary as license options 2006-01-18 Andy Wingo * gst/gstindex.h (gst_index_add_associationv): Add to header. The symbol was exported before, it appears this was just an oversight. Fixes #168703. Patch by: Torsten Schoenfeld * gst/gstindex.c (gst_index_add_associationv): Changed int in prototype to gint. OK since this prototype was not in the header. 2006-01-17 Andy Wingo * gst/gstregistry.c (_gst_registry_remove_cache_plugins): Lock the registry while we remove plugins. * tools/gst-inspect.c (print_element_info): Don't unref the factory arg, that should be the responsibility of whatever code received the ref. Fixes a double-free when called from print_element_list via gst-inspect-0.10 -a. Fixes #327324. (main): Unref the factory if we have one. (print_element_list): No change -- relies on the plugin_feature_list_free to free the list of features. 2006-01-17 Jan Schmidt * gst/gstbuffer.c: (gst_buffer_is_metadata_writable), (gst_buffer_make_metadata_writable): * gst/gstbuffer.h: * libs/gst/base/gstbasetransform.c: (gst_base_transform_prepare_output_buf): * plugins/elements/gstcapsfilter.c: (gst_capsfilter_prepare_buf): * tests/check/gst/gstbuffer.c: (GST_START_TEST), (gst_test_suite): Replace gst_buffer_(make|is)_metadata_writable patch now that the release is out. 2006-01-17 Andy Wingo * gst/gstregistry.c: Reflow design comment. Update so as to speak in the present tense without reference to versions. * gst/gstregistry.c (gst_registry_add_plugin) (gst_registry_remove_plugin, gst_registry_remove_feature) (gst_registry_find_feature, gst_registry_get_feature_list) (gst_registry_get_plugin_list, gst_registry_lookup_feature) (gst_registry_lookup, gst_registry_scan_path) (_gst_registry_remove_cache_plugins) (gst_registry_get_feature_list_by_plugin): Add argument validation.