=== release 0.10.4 === 2006-03-10 Thomas Vander Stichele * configure.ac: releasing 0.10.4, "Light" 2006-03-10 Michael Smith * libs/gst/dataprotocol/dataprotocol.c: Fix docs for dataprocotol to not get the return types completely wrong for a few functions. 2006-03-09 Tim-Philipp Müller * docs/gst/gstreamer-sections.txt: * gst/gstpipeline.c: (gst_pipeline_class_init), (gst_pipeline_init), (gst_pipeline_set_property), (gst_pipeline_get_property), (gst_pipeline_change_state), (gst_pipeline_set_auto_flush_bus), (gst_pipeline_get_auto_flush_bus): * gst/gstpipeline.h: Add new API: gst_pipeline_set_auto_flush_bus() and gst_pipeline_get_auto_flush_bus() to disable automatic flushing of the pipeline's GstBus when going from READY to NULL state (#332045). 2006-03-09 Tim-Philipp Müller * docs/gst/gstreamer-sections.txt: * gst/gsturi.c: (gst_uri_has_protocol): * gst/gsturi.h: Add new API: gst_uri_has_protocol() (#333779). 2006-03-09 Wim Taymans * gst/gstclock.c: (gst_clock_entry_new), (gst_clock_id_compare_func), (gst_clock_id_wait), (gst_clock_id_wait_async), (gst_clock_id_unschedule), (gst_clock_init), (gst_clock_get_internal_time), (gst_clock_set_master), (do_linear_regression), (gst_clock_add_observation), (gst_clock_set_property): * gst/gstclock.h: Review docs. Small cleanups. Fix a possible segfault when the window-size is made smaller. Calculate jitter before performing the clock wait. Ideally the clock implementation should calculate jitter but we need API breakage for that. * gst/gstsystemclock.c: (gst_system_clock_init): Docs review. * libs/gst/base/gstbasesink.c: (gst_base_sink_do_sync): Remove leftover else * tests/check/gst/gstsystemclock.c: (GST_START_TEST), (gst_systemclock_suite): Added check to test GST_CLOCK_DIFF. 2006-03-09 Tim-Philipp Müller * libs/gst/base/gsttypefindhelper.c: (helper_find_get_length), (gst_type_find_helper_get_range): If we are provided with the size, we should implement GstTypeFind::get_length, so that typefind functions who want to can actually peek at the middle of a file. 2006-03-08 Tim-Philipp Müller * docs/manual/advanced-dataaccess.xml: Add some very very basic error checking. * docs/pwg/appendix-checklist.xml: Some updates to the list of things to check when writing an element. 2006-03-08 Wim Taymans * docs/design/part-element-transform.txt: Added some docs about the design of tranform elements. * libs/gst/base/gstbasesrc.c: (gst_base_src_perform_seek), (gst_base_src_loop), (gst_base_src_change_state): Mark buffers with the DISCONT flag. 2006-03-08 Michael Smith * gst/gstregistry.h: * gst/gstregistryxml.c: (gst_registry_save), (gst_registry_save_escaped), (gst_registry_xml_save_caps), (gst_registry_xml_save_pad_template), (gst_registry_xml_save_feature), (gst_registry_xml_save_plugin), (gst_registry_xml_write_cache): Rewrite registry-saving to avoid race conditions and check for failed writes. 2006-03-08 Wim Taymans * libs/gst/base/gstbasetransform.c: (gst_base_transform_transform_caps), (gst_base_transform_transform_size), (gst_base_transform_prepare_output_buffer), (gst_base_transform_get_unit_size), (gst_base_transform_buffer_alloc), (gst_base_transform_handle_buffer), (gst_base_transform_change_state): Cleanups, separate normal flow from errors, add sensible DEBUG lines. Don't try to renegotiate when allocating an output buffer. Also copy DISCONT buffer flag when copying a buffer. Reset the transform after we finish streaming, not during. 2006-03-08 Wim Taymans * libs/gst/base/gstbasesink.c: (gst_base_sink_do_sync): Use last buffer timestamp in qos message. 2006-03-07 Wim Taymans Patch by: Christophe Fergeau * docs/pwg/advanced-tagging.xml: * docs/pwg/building-pads.xml: fixes #333416 2006-03-07 Wim Taymans * docs/libs/gstreamer-libs-sections.txt: Added basesink new methods. * gst/gstevent.c: * gst/gstevent.h: Docs updates. Flesh out the QoS docs. * libs/gst/base/gstadapter.c: Small doc clarification about ownership and flushing. * libs/gst/base/gstbasesink.c: (gst_base_sink_set_sync), (gst_base_sink_get_sync), (gst_base_sink_set_max_lateness), (gst_base_sink_get_max_lateness), (gst_base_sink_set_property), (gst_base_sink_get_property), (gst_base_sink_do_sync): * libs/gst/base/gstbasesink.h: API additions: Added new methods to allow subclass to control max-lateness and sync. Generate very basic QoS events based on last sync observation. Updated docs, fix typo, added some QoS blurb. * libs/gst/base/gstbasesrc.c: Remove obsolete _get_state() calls from docs. 2006-03-07 Wim Taymans * docs/libs/gstreamer-libs-sections.txt: * libs/gst/base/gstbasetransform.h: API addition: Fix #333669, Add pad accessor defines for GstBaseTransform Fix docs for GstBaseSrc. 2006-03-07 Wim Taymans * docs/gst/gstreamer-sections.txt: * gst/gstbuffer.h: * gst/gstvalue.c: * libs/gst/base/gstbasetransform.h: Small documentation fixes. 2006-03-07 Tim-Philipp Müller * gst/gstvalue.c: Document thread-unsafety of gst_value_register_foo_func() when used at the same time as gst_value_foo() (#322628). 2006-03-07 Tim-Philipp Müller * libs/gst/base/gstpushsrc.c: (gst_push_src_class_init), (gst_push_src_check_get_range): Push sources don't support pull mode by default. 2006-03-06 Tim-Philipp Müller * libs/gst/base/gstbasesrc.c: (gst_base_src_class_init), (gst_base_src_init), (gst_base_src_pad_check_get_range), (gst_base_src_default_check_get_range): * libs/gst/base/gstbasesrc.h: API addition: Add ::check_get_range() vfunc to GstBaseSrc (#332611), provide default implementation, and rename gst_base_src_check_get_range() to gst_base_src_pad_check_get_range() for clarity. 2006-03-06 Wim Taymans * libs/gst/base/gstbasesink.c: (gst_base_sink_class_init): Make property overridable. 2006-03-06 Wim Taymans * libs/gst/base/gstbasesink.c: (gst_base_sink_class_init), (gst_base_sink_init), (gst_base_sink_set_property), (gst_base_sink_get_property), (gst_base_sink_do_sync): * libs/gst/base/gstbasesink.h: API addition: Make max-lateness a property. 2006-03-06 Wim Taymans * libs/gst/base/gstbasesink.c: (gst_base_sink_wait_clock), (gst_base_sink_do_sync), (gst_base_sink_render_object): Don't ever draw a frame that is >10ms late. 2006-03-06 Michael Smith * gst/gstmessage.c: (_gst_message_copy): When copying a message, set the parent_refcount of the enclosed structure to point at the copy, not the original message. 2006-03-06 Tim-Philipp Müller Patch by: Christophe Fergeau * gst/gstutils.h: Do proper cast here to make GST_BOILERPLATE_WITH_INTERFACE usable in c++ code (#333417) 2006-03-06 Thomas Vander Stichele * gst/gstclock.h: Show GST_CLOCK_TIME_NONE as 99:99:99.999999999 2006-03-05 Tim-Philipp Müller * libs/gst/base/gstbasetransform.c: (gst_base_transform_transform_caps): Make sure caps are writable before passing them to gst_caps_append(). 2006-03-04 Tim-Philipp Müller * gst/gsterror.h: Fix some minor docs errors. 2006-03-04 Tim-Philipp Müller Patch by: Ross Burton * gst/gsterror.c: (_gst_resource_errors_init): * gst/gsterror.h: Add GST_RESOURCE_ERROR_NO_SPACE_LEFT (for #333352; 2006-03-03 Jan Schmidt * gst/gst.c: Add a check and output a g_warning when GStreamer is built against GLib 2.6 but running against 2.8 or higher, and vice versa. (Closes: #323542) 2006-03-03 Jan Schmidt * gst/parse/parse.l: Commit patch for parse_launch syntax from #331255. Removes support for quoted strings and mimetypes when writing filtered caps. See the bug report for more details - I'm pretty sure this obscure feature is not in use by _anyone_ anywhere. With this simple change, the size of the gstreamer.so here drops from 2193KB to 1565KB. 2006-03-03 Tim-Philipp Müller * plugins/elements/gsttypefindelement.h: * plugins/elements/gsttypefindelement.c: (gst_type_find_element_src_event), (start_typefinding), (stop_typefinding), (gst_type_find_element_handle_event), (gst_type_find_element_chain), (gst_type_find_element_chain_do_typefinding): Use gst_type_find_helper_for_buffer() for chain-based typefinding. 2006-03-03 Tim-Philipp Müller * plugins/elements/gsttypefindelement.c: (gst_type_find_element_class_init), (gst_type_find_element_set_property), (gst_type_find_element_get_property): Deprecate "maximum" property (not only was it only taken into account for typefinding in push-mode anyway, it also was never actually possible to set it in the first place because the property was registered with the numeric property ID for the "minimum" property). Register "maximum" property correctly, for the sake of future copy'n'pasters. Remove some cruft from property get/set functions. 2006-03-03 Tim-Philipp Müller * plugins/elements/gsttypefindelement.c: (gst_type_find_element_activate): Use gst_type_find_helper_get_range() here, so we can honour the "minimum" property and also emit the signal with the correct probability of the found caps. 2006-03-02 Tim-Philipp Müller * docs/libs/gstreamer-libs-sections.txt: * libs/gst/base/gsttypefindhelper.c: (helper_find_peek), (helper_find_suggest), (gst_type_find_helper_get_range), (gst_type_find_helper): * libs/gst/base/gsttypefindhelper.h: New API: gst_type_find_helper_get_range() (#333042). 2006-03-02 Michael Smith * gst/gstregistryxml.c: (load_feature): Asserting on a failure to read part of the registry is Not Cool. Just log a warning and return NULL (which is already handled) 2006-02-28 Sebastien Moutte * win32/common/libgstbase.def: added export of gst_type_find_helper_for_buffer * win32/common/libgstbase.def: added some exports : gst_bin_iterate_elements, gst_iterator_resync, gst_ghost_pad_get_target 2006-02-28 Wim Taymans * docs/design/draft-klass.txt: We use Filter now. Added Connector to mark elements that are only used to allow pipeline connections. Moved Debug to extra feature since most of them are functionally something else. 2006-02-28 Wim Taymans * docs/design/draft-klass.txt: Some updates and clarifications. 2006-02-28 Wim Taymans * docs/design/draft-klass.txt: Proposal for klass field values. * docs/design/part-streams.txt: Start of a doc describing stream anatomy. 2006-02-28 Wim Taymans * gst/gstbin.c: (gst_bin_get_type), (gst_bin_handle_message_func): Help the compiler a bit with type registration. Use existing forward cod path instead of duplicating it when handling a message. * gst/gstbus.c: (gst_bus_get_type): * gst/gstcaps.c: (gst_caps_get_type), (gst_static_caps_get_type): * gst/gstchildproxy.c: (gst_child_proxy_get_type): * gst/gstclock.c: (gst_clock_get_type): * gst/gstelement.c: (gst_element_get_type), * gst/gstelementfactory.c: (gst_element_factory_get_type): * gst/gstindexfactory.c: (gst_index_factory_get_type): * gst/gstminiobject.c: (gst_mini_object_get_type): * gst/gstpad.c: (gst_pad_get_type): * gst/gstsegment.c: (gst_segment_get_type): * gst/gststructure.c: (gst_structure_get_type): * gst/gstsystemclock.c: (gst_system_clock_get_type): * gst/gsttask.c: (gst_task_get_type), (gst_task_join): * gst/gstvalue.c: Help compiler with type registration. * plugins/elements/gstqueue.c: (gst_queue_handle_sink_event): Small doc update. 2006-02-27 Tim-Philipp Müller * plugins/elements/gsttypefindelement.c: (gst_type_find_element_handle_event): When we get an EOS event and have not found a type yet (most likely because we had not yet accumulated TYPE_FIND_MIN_SIZE of data yet), try to determine the type given the data we have so far. Fixes typefinding for very short streams again, most notably quicktime redirections as used on Apple's trailer site (#331701). 2006-02-27 Tim-Philipp Müller * libs/gst/base/gsttypefindhelper.c: (type_find_factory_rank_cmp), (gst_type_find_helper): Try typefinding factories with the highest rank first. 2006-02-27 Tim-Philipp Müller * docs/libs/gstreamer-libs-docs.sgml: * docs/libs/gstreamer-libs-sections.txt: * libs/gst/base/gsttypefindhelper.c: Add section for typefind helper and add documentation for the old and the new function. 2006-02-27 Tim-Philipp Müller * libs/gst/base/gsttypefindhelper.c: (buf_helper_find_peek), (buf_helper_find_suggest), (type_find_factory_rank_cmp), (gst_type_find_helper_for_buffer): * libs/gst/base/gsttypefindhelper.h: New API: gst_type_find_helper_for_buffer() (#332723). 2006-02-27 Michael Smith Patch by: Loïc Minier * configure.ac: * docs/Makefile.am: * docs/slides/Makefile.am: prevent CVS directories getting disted. 2006-02-27 Tim-Philipp Müller * gst/gstcaps.c: (gst_caps_ref), (gst_caps_unref): Use the REFCOUNTING category for caps refcounting. 2006-02-26 Tim-Philipp Müller * plugins/elements/gsttypefindelement.c: (stop_typefinding): This should be 0 not GST_CLOCK_TIME_NONE (see #331701). 2006-02-26 Tim-Philipp Müller * plugins/elements/gsttypefindelement.c: (gst_type_find_element_activate): Use gst_pad_check_pull_range() before _activate_pull() to avoid unnecessary open/close (see #331690). 2006-02-24 Tim-Philipp Müller * gst/gstutils.c: Docs enhancement: make it crystal clear what the gst_pad_add_*_probe() callbacks should look like. 2006-02-24 Tim-Philipp Müller * libs/gst/base/gstbasesrc.c: Document how applications can stop recording from live sources (see #330996). 2006-02-23 Tim-Philipp Müller * tests/check/Makefile.am: * tests/check/libs/basesrc.c: (eos_event_counter), (basesrc_eos_events_pull), (basesrc_eos_events_push), (basesrc_eos_events_push_live_op), (basesrc_eos_events_pull_live_op), (gst_basesrc_suite), (main): ... and add some tests for the base source EOS stuff. 2006-02-23 Tim-Philipp Müller * tests/check/gst/gstutils.c: (test_buffer_probe_n_times): Test case originally showed the problem fixed below, but was then amended. Add checks back at the place where they used to be. 2006-02-23 Tim-Philipp Müller * libs/gst/base/gstbasesrc.c: (gst_base_src_class_init), (gst_base_src_init), (gst_base_src_loop), (gst_base_src_activate_push), (gst_base_src_activate_pull), (gst_base_src_change_state): * libs/gst/base/gstbasesrc.h: Don't unconditionally send EOS when going from PAUSED to READY state, esp. make sure we don't send two EOS events in some cases (e.g. one when reaching EOS and one when going from PAUSED to READY). Also, we don't want to send EOS events when operating in pull mode. However, we do want to send an EOS event when shutting down a live source explicitly, for example (fixes #330996). 2006-02-23 Tim-Philipp Müller * plugins/elements/gstfilesrc.c: (gst_file_src_create_read): Update src->read_position after a seek when not using mmap. Fixes #332277, patch by: Renchi Raju 2006-02-21 Jan Schmidt * gst/Makefile.am: * gst/gstparse.h: * gst/gstutils.c: * gst/gstutils.h: Make things work with --disable-parse as they do with --disable-load-save - the symbols involved disappear, but the header is still installed and GST_DISABLE_PARSE is included via gstconfig.h 2006-02-20 Julien MOUTTE * libs/gst/base/gstbasetransform.c: (gst_base_transform_change_state): Fix a stupid bug. I was sure I compiled that. 2006-02-20 Julien MOUTTE * gst/gstpad.c: (gst_pad_set_blocked_async): * gst/gstutils.c: (gst_pad_add_data_probe), (gst_pad_add_event_probe), (gst_pad_add_buffer_probe), (gst_pad_remove_data_probe), (gst_pad_remove_event_probe), (gst_pad_remove_buffer_probe): Make those function act on the ghostpad target when it's a ghostpad. (Closes #331727) 2006-02-20 Julien MOUTTE * libs/gst/base/gstbasetransform.c: (gst_base_transform_change_state): Make basetransform reusable. (Closes #331898) 2006-02-20 Jan Schmidt * docs/random/release: Move the current documentation of how to do a release to the top of the file. * gst/gstbin.c: (gst_bin_class_init), (gst_bin_handle_message_func): Allow multiple state-recalculation threads. (Closes #328873) 2006-02-19 Julien MOUTTE * gst/gstinfo.h: Add GST_STR_NULL to the second string. * gst/gstpad.c: (gst_pad_set_event_function), (gst_pad_set_query_function), (gst_pad_set_query_type_function), (gst_pad_set_getcaps_function): GST_DEBUG_PAD_NAME evaluates to 2 strings. You can't use the STR_NULL macro on that. 2006-02-19 Sebastien Moutte * gst/gstpad.c: (gst_pad_set_event_function), (gst_pad_set_query_function), (gst_pad_set_query_type_function), (gst_pad_set_getcaps_function) * gst/parse/grammar.y: (gst_parse_found_pad), (gst_parse_perform_delayed_link) Fixed NULL pointer used in GST_CAT_DEBUG using GST_STR_NULL macro So now, we can use --gst-debug-level=5 on Windows * win32/common/libgstcontroller.def: Added export of gst_controller_init * win32/vs6/libgstcontroller.dsp: Fixed Release post build configuration 2006-02-17 Wim Taymans * tests/check/gst/gstquery.c: (GST_START_TEST): Added another check. 2006-02-15 Tim-Philipp Müller * plugins/elements/gsttypefindelement.c: (find_peek): We can do peeks at non-zero offsets, as long as they fall within the buffer we have. 2006-02-15 Jan Schmidt * tests/check/Makefile.am: * tests/check/pipelines/parse-launch.c: (setup_pipeline), (expected_fail_pipe), (check_pipeline_runs), (GST_START_TEST), (parse_suite), (main): Add testsuite for parse launch syntax 2006-02-14 Tim-Philipp Müller * plugins/elements/gsttypefindelement.c: (gst_type_find_element_chain): When typefinding is unsuccessful in the chain function, don't error out immediately. Only error out with NO_CAPS_FOUND if the amount of data is at least MAX_TYPEFIND_SIZE bytes, otherwise simply wait for more data so we can try typefinding again with more data later. Also, don't attempt to typefind if we have less than MIN_TYPEFIND_SIZE data available. Overall, this should improve typefinding from network sources where the size of the first buffer can be somewhat random. 2006-02-14 Wim Taymans * docs/gst/gstreamer-sections.txt: * gst/gstpadtemplate.c: * gst/gstpadtemplate.h: Fix padtemplate docs, fixes #328805. 2006-02-14 Wim Taymans * tools/gst-launch.c: (main): NO_PREROLL is not an ERROR so don't send confusing messages to the user. 2006-02-14 Wim Taymans Patch by: Torsten Schoenfeld * gst/gstregistry.c: (gst_registry_get_default), (_gst_registry_cleanup): Protect default registry with lock and ref/sink it. Fixes #324818 2006-02-14 Wim Taymans * gst/gstbuffer.c: * gst/gstquery.c: (gst_query_list_add_format), (gst_query_set_formatsv), (gst_query_parse_formats_length), (gst_query_parse_formats_nth): * libs/gst/base/gstbasesink.c: (gst_base_sink_get_sync_times): Docs fixes. 2006-02-14 Wim Taymans * docs/gst/gstreamer-sections.txt: Reworked query docs. * gst/gstquery.c: (gst_query_new_formats), (gst_query_list_add_format), (gst_query_set_formats), (gst_query_set_formatsv), (gst_query_parse_formats_length), (gst_query_parse_formats_nth): * gst/gstquery.h: Flesh out formats query, added some new methods. Fix part of #324398. * tests/check/gst/gstquery.c: (GST_START_TEST), (gstquery_suite): Added query creation tests. 2006-02-14 Jan Schmidt * gst/gstpad.c: (fixate_value): Add a default fixation for fraction lists. 2006-02-13 Wim Taymans * gst/gsttask.c: (gst_task_init), (gst_task_func), (gst_task_set_lock), (gst_task_start), (gst_task_pause), (gst_task_join): * gst/gsttask.h: Detect and warn for obvious deadlocks. fixes #320340 Fix error case where lock was not released. * tests/check/Makefile.am: * tests/check/gst/gsttask.c: (task_func2), (GST_START_TEST), (task_func), (gst_element_suite), (main): Add task check. 2006-02-13 Wim Taymans * docs/gst/gstreamer-sections.txt: * gst/gstbus.c: Add new functions to docs. 2006-02-13 Wim Taymans * docs/design/part-TODO.txt: Updated TODO list, basesrc supports seeking to non-bytes formats. * docs/design/part-element-sink.txt: Update docs. * gst/gstbin.c: (bin_replace_message), (gst_bin_handle_message_func): * gst/gstbus.c: (gst_bus_post), (gst_bus_pop): * gst/gstevent.c: (gst_event_finalize): * gst/gstpad.c: (gst_pad_event_default_dispatch), (gst_pad_send_event): Use shiny new _TYPE_NAME macros. * libs/gst/base/gstbasesrc.c: (gst_base_src_get_range): Move debug statement up. * gst/gstelement.c: (gst_element_set_locked_state): Add some debugging. 2006-02-13 Tim-Philipp Müller * docs/gst/gstreamer-sections.txt: * gst/gstmessage.h: * gst/gstquery.h: New API: add GST_MESSAGE_TYPE_NAME and GST_QUERY_TYPE_NAME macros (#330906). Also, document the already existing GST_QUERY_TYPE macro. 2006-02-13 Wim Taymans * tests/check/gst/gstutils.c: (data_probe), (buffer_probe), (event_probe), (GST_START_TEST): Only events up to the pipeline EOS are counted, there are some more when going to NULL currently which we don't care about for now. 2006-02-13 Wim Taymans * gst/gstpad.c: (gst_pad_send_event): Correctly check flushing and emit probes. fixes #330125 2006-02-10 Andy Wingo * gst/gstbus.c (gst_bus_class_init): Declare our private data structure. (gst_bus_init): Cache the location of the private data in the instance structure. (gst_bus_enable_sync_message_emission) (gst_bus_disable_sync_message_emission): Implement new public functions. (gst_bus_post): Emit the sync-message signal if the user asked for it. Fixes #330684. * gst/gstbus.h (GstBus): Use a padding pointer to cache the location of the bus-private structure. (gst_bus_enable_sync_message_emission) (gst_bus_disable_sync_message_emission): API addition 2006-02-10 Jan Schmidt Patch by: Vincent Torri * docs/pwg/building-boiler.xml: PWG patch from #326800 2006-02-09 Tim-Philipp Müller * configure.ac: * docs/Makefile.am: * docs/design/Makefile.am: Dist design docs. 2006-02-08 Jan Schmidt * configure.ac: back to CVS