=== release 0.10.15 === 2007-11-15 Jan Schmidt * configure.ac: releasing 0.10.15, "October" 2007-11-14 Jan Schmidt * win32/vs6/libgstreamer.dsp: Convert line endings back to DOS. 2007-11-13 Stefan Kost * docs/design/draft-tagreading.txt: * docs/random/ensonic/profiling.txt: Update fast tagreading draft and performance profiling ideas. 2007-11-09 Wim Taymans * libs/gst/base/gstbasesink.c: (gst_base_sink_set_last_buffer): Don't hold the object lock when unreffing a buffer because it could cause a deadlock when the finalize function wants to grab the object lock too. Fixes #495133. 2007-11-09 Wim Taymans * gst/gstsegment.c: (gst_segment_set_newsegment_full), (gst_segment_to_stream_time), (gst_segment_to_running_time): Also accumulate time correctly when doing reverse playback. Fixes #488201, When converting to running and stream time, use default values for start/stop/time/accum when comparing different formats. Fixes #494245. * libs/gst/base/gstbasesink.c: (gst_base_sink_get_sync_times): Do running/stream time in TIME format. * tests/check/gst/gstsegment.c: (GST_START_TEST), (gst_segment_suite): 2 new unit tests for segment accumulation. 2007-11-07 Tim-Philipp Müller * gst/gst.c: (init_pre): * gst/gstdebugutils.c: (priv_gst_dump_dot_dir), (debug_dump_element), (_gst_debug_bin_to_dot_file): Move getenv() back into gst_init, so everyone can live happily ever after. Make sure the symbol isn't exported though. 2007-11-06 Tim-Philipp Müller Patch by: Sebastien Moutte * win32/common/gstenumtypes.c: * win32/common/gstenumtypes.h: Update enum types. * win32/vs6/libgstreamer.dsp: Update vs6 project files (#494343). 2007-11-06 Wim Taymans * libs/gst/base/gstbasesrc.c: (gst_base_src_default_query), (gst_base_src_perform_seek), (gst_base_src_default_event), (gst_base_src_set_flushing), (gst_base_src_activate_push), (gst_base_src_activate_pull): Unify flushing code, remove some old unlock code that is no longer used. Take the streaming lock when seeking to avoid races. Fixes #492729. Added some more comments. 2007-11-06 Tim-Philipp Müller * gst/gst.c: (_gst_disable_segtrap): Make _gst_disable_segtrap static, it's only used in gstplugin.c and we can use gst_segtrap_is_enabled() there now that we have that API. Move _gst_debug_dump_dot_dir into gstdebugutils.c, there's no reason to do the getenv here (and export the variable). * gst/gstdebugutils.c: (debug_dump_element), (_gst_debug_bin_to_dot_file), (_gst_debug_bin_to_dot_file_with_ts): Don't use VLAs which is a C99ism and throws off MSVC (#493983). * gst/gstinfo.c: (_priv_gst_info_start_time), (_gst_debug_init), (gst_debug_log_default): Rename _gst_info_start_time to priv_gst_info_start_time so it doesn't get exported (was never in any header). * gst/gstplugin.c: (_gst_plugin_fault_handler_setup), (gst_plugin_loading_mutex): Make static mutex gst_plugin_loading_mutex really static (was never in any header), and use gst_segtrap_is_enabled() instead of _gst_disable_segtrap. * gst/gsttrace.c: (_gst_trace_default): Make local _gst_trace_default static (was never in any header). 2007-11-06 Tim-Philipp Müller Patch by: Ole André Vadla Ravnås * win32/common/libgstbase.def: * win32/common/libgstcontroller.def: * win32/common/libgstdataprotocol.def: * win32/common/libgstnet.def: * win32/common/libgstreamer.def: Add more missing symbols, remove some duplicates, and sort as the 'sort' command sorts it (partially fixes #493983). 2007-11-06 Wim Taymans * gst/gstelement.c: (gst_element_set_state_func): Only change the state cookie if a different state was set on the element. See #492729. 2007-11-06 Tim-Philipp Müller * gst/gstvalue.c: Remove unused and uninitialised type variables that were still exported for some reason (they were never in any header files though). 2007-11-06 Wim Taymans * libs/gst/base/gstbasesink.c: (gst_base_sink_get_sync_times), (gst_base_sink_do_sync), (gst_base_sink_preroll_object), (gst_base_sink_event), (gst_base_sink_get_position_last), (gst_base_sink_get_position_paused), (gst_base_sink_get_position), (gst_base_sink_change_state): Don't try to report a 0 position when we don't know, return -1 and FALSE instead. This mostly happens when we are prerolling. Make sure we can report the right position before we post the ASYNC_DONE message so that a message handler can query position without races. * tests/check/generic/sinks.c: (send_eos), (GST_START_TEST), (async_done_handoff), (async_done_func), (send_buffer), (async_done_eos_func), (gst_sinks_suite): Add two tests for the above. 2007-11-06 Wim Taymans * MAINTAINERS: Update with new email address. * docs/design/part-TODO.txt: Add some more info about future pad-block and negotiation changes. * docs/design/part-buffering.txt: Add some ideas about buffering reporting. 2007-11-06 Jan Schmidt * tests/check/gst/gstobject.c: Disable silly racy test that always fails on this combination of CPU and kernel. 2007-11-03 Tim-Philipp Müller Patch by: Murray Cumming * gst/gstobject.c: Corrected the registration of the parent-set and parent-unset signals: The parameter is a GstObject, not a GObject (#493134). 2007-11-02 Tim-Philipp Müller * gst/gst_private.h: * gst/gstbuffer.h: * gst/gstevent.h: * gst/gstformat.h: * gst/gstmessage.h: * gst/gstplugin.h: * gst/gstquery.h: * gst/gsttaglist.h: * gst/gstvalue.h: Move declaration of private _gst_foo_initialize() functions into our private header file where they should have been all along. 2007-11-02 Tim-Philipp Müller * docs/plugins/gstreamer-plugins-sections.txt: * gst/gstdebugutils.h: * gst/gstxml.h: * plugins/elements/gstqueue.c: gtk-doc fixes; trailing-comma-in-enum fix. 2007-11-02 Tim-Philipp Müller * gst/gst.c: (gst_deinit): Clean up on deinit (not the external ones though, doesn't seem to be needed for some reason). 2007-11-01 Tim-Philipp Müller * gst/gstinfo.h: (GST_DEBUG_CATEGORY_EXTERN): Remove __declspec(dllimport) for MSVC that was copied over into core from a plugin, obviously without ever having been tested (note the single underscore in _declspec in the initial commit), and that doesn't really make sense. See #492077. 2007-11-01 Tim-Philipp Müller * gst/gst.c: (init_post): * gst/gstevent.c: (_gst_event_initialize): * gst/gstquery.c: (_gst_query_initialize): * libs/gst/dataprotocol/dataprotocol.c (gst_dp_init): g_type_class_ref() other types as well, see #349410 and #64764. * gst/gstbuffer.c: (_gst_buffer_initialize): * gst/gstmessage.c: (_gst_message_initialize): Simplify existing g_type_class_ref(). 2007-11-01 Tim-Philipp Müller * gst/gstformat.c: (_gst_format_initialize): g_type_class_ref() our GstFormat type to make sure we avoid the thread-unsafe bits of the GObject/GType system, ie. bug #349410 and bug #64764. Should fix intermittent tee unit test failures (#474823). 2007-11-01 Tim-Philipp Müller * tests/check/elements/tee.c: (test_num_buffers): Simplify, simplify, simplify - or not. Rewrite unit test not to use gst_parse_launch(); allow N sub-streams. Increasing the number of sub-streams seems to reproduce #474823 more easily. 2007-10-31 Tim-Philipp Müller Patch by: Ole André Vadla Ravnås * gst/gsttrace.c: * libs/gst/net/gstnetclientclock.c: (gst_net_client_clock_new): * libs/gst/net/gstnettimepacket.c: (gst_net_time_packet_send): * libs/gst/net/gstnettimeprovider.c: (gst_net_time_provider_new): Fix a couple of missing includes for MSVC2005 and a C99 issue. Also, starting with 2.14.0, GLib won't provide a pipe() macro any longer, so use _pipe() directly (#492077). * win32/common/dirent.c: (_treaddir): Add a couple of casts to make it build without warnings with MSVC. * win32/common/libgstreamer.def: Add some more symbols that need to be exported. 2007-10-31 Tim-Philipp Müller * tests/examples/metadata/read-metadata.c: (message_loop): Use _KEEP as merge mode rather than _KEEP_ALL, so tags arriving in a second or third tag message are added to the tag list as well. 2007-10-31 Stefan Kost * libs/gst/base/gstbasesrc.c: Its "Since:" and not "@Since:". And remove an superflous cast. 2007-10-30 Wim Taymans * docs/libs/gstreamer-libs-sections.txt: * libs/gst/base/gstbasesink.c: (gst_base_sink_class_init), (gst_base_sink_get_last_buffer), (gst_base_sink_set_last_buffer), (gst_base_sink_get_property), (gst_base_sink_render_object), (gst_base_sink_preroll_object), (gst_base_sink_queue_object_unlocked), (gst_base_sink_event), (gst_base_sink_change_state): * libs/gst/base/gstbasesink.h: Add a new last-buffer property that contains the last buffer used in basesink for preroll or rendering. useful for making snapshots. API: gst_base_sink_get_last_buffer() API: GstBaseSink::last-buffer 2007-10-29 Stefan Kost * docs/gst/running.xml: * gst/gst.c: * gst/gstdebugutils.c: * gst/gstdebugutils.h: * tools/gst-launch.c: Improve bin graph dumping, by using the envvar to specify a path. Rename the envvar to GST_DEBUG_DUMP_DOT_DIR. 2007-10-29 Tim-Philipp Müller * plugins/elements/gsttypefindelement.c: (gst_type_find_element_handle_event), (gst_type_find_element_activate): Post special error message if we can't determine the type of a stream because it's empty. 2007-10-29 Stefan Kost * docs/gst/running.xml: * gst/gstdebugutils.c: Document new env-var. Add one log-line after dumpng a graph. 2007-10-26 Tim-Philipp Müller * configure.ac: Ugly hack to put the (recently removed and non-portable, apparently) -Wl,--export-dynamic back into libgstcheck's LDFLAGS when we're using GNU ld, because without that 'make check' fails miserably on my debian stable box. Someone with more knowledge of linker intricacies and portability issues than me fix this properly please. 2007-10-25 Wim Taymans * libs/gst/base/gstbasesink.c: (gst_base_sink_event): Reset last seen position after flushing so that we don't report the old position anymore. 2007-10-25 Jan Schmidt * gst/gstelementfactory.c: (gst_element_register): * gst/gsturi.h: Patch from Alessandro Decina adding get_type_full and get_protocols_full private vfuncs to the URIHandler interface to allow bindings to support creating URI handlers. Partially fixes: #339279 API: GstURIHandlerInterface::get_type_full API: GstURIHandlerInterface::get_protocols_full 2007-10-25 Jan Schmidt * plugins/elements/gstmultiqueue.c: (gst_multi_queue_set_property), (gst_multi_queue_request_new_pad), (gst_single_queue_flush), (gst_multi_queue_loop), (gst_multi_queue_sink_activate_push): Make it so that pads are considered linked until a buffer is pushed and discovered otherwise. This avoids problems with decodebin2 hanging after a seek in the filesrc ! decodebin2 name=d ! fakesink d. ! fakesink case. Make sure we lock the multiqueue when updating the max-size properties. Fix a crash on Solaris in a debug statement in get_request_pad that passes a NULL string to GST_DEBUG. * tests/check/elements/multiqueue.c: (mq_dummypad_chain), (run_output_order_test): Fix the test to allow the first buffer on not-linked pads to come out of sequence while multiqueue discovers that they are not-linked. 2007-10-25 Jan Schmidt * configure.ac: * libs/gst/check/Makefile.am: Use a custom export symbol regex for libgstcheck, as it needs to export symbols that don't match the standard GStreamer gst_* pattern, and --export-dynamic is not portable (only works on GNU ld) * libs/gst/check/gstcheck.c: (gst_check_setup_src_pad), (gst_check_setup_sink_pad): Make sure to pass a message parameter to the fail_* macros. * tests/check/gst/gstinfo.c: (GST_START_TEST): Fix some compiler warnings. 2007-10-25 Tim-Philipp Müller * tests/check/gst/gststructure.c: (test_to_string): Disable test that checks that white spaces are not allowed in structure names or field names, since we need to support that for now for backwards compatibility reasons. 2007-10-24 Tim-Philipp Müller * docs/gst/gstreamer-sections.txt: * gst/gsttaglist.c: * gst/gsttaglist.h: API: add GST_TAG_ARTIST_SORTNAME API: add GST_TAG_ALBUM_SORTNAME API: add GST_TAG_TITLE_SORTNAME Add tag variants for sorting (#414539). 2007-10-24 Tim-Philipp Müller * gst/gststructure.c: Also allow white space for names so we don't break backwards compatibility. 2007-10-22 Wim Taymans * docs/design/part-TODO.txt: * docs/design/part-segments.txt: * docs/design/part-streams.txt: Small updates. 2007-10-22 Edgard Lima * docs/gst/gstreamer-sections.txt: Fixed documentation from my previous commit (added new API add gst_value_set_structure(), add gst_value_get_structure() and GST_VALUE_HOLDS_STRUCTURE). 2007-10-22 Stefan Kost * gst/gstdebugutils.c: Reflow code to fix uninitialized variable warning. 2007-10-22 Edgard Lima * gst/gstcaps.c: (gst_caps_to_string), (gst_caps_from_string_inplace): * gst/gststructure.c: (gst_structure_get_abbrs), (gst_structure_to_string), (gst_structure_from_string): * gst/gstvalue.c: (gst_value_set_structure), (gst_value_get_structure), (gst_value_serialize_structure), (gst_value_deserialize_structure), (_gst_value_initialize): * gst/gstvalue.h: * tests/check/gst/gststructure.c: (GST_START_TEST), (gst_structure_suite): * tests/check/gst/gstvalue.c: (GST_START_TEST): Added GstStructure to gst_value_table and its related functions. Changed gst_structure_to_string to print ';' in the end. Changed gst_caps_to_string to not print ';' beteween its fields (structures) anymore and remove the lastes ';' from latest structure. Now it is possible to have nested structures. In addition, backward compatibilty is assured by accepting '\0' as end delimiter. Fixes: #487969. API: add gst_value_set_structure() API: add gst_value_get_structure() API: add GST_VALUE_HOLDS_STRUCTURE 2007-10-19 Tim-Philipp Müller * gst/gstbus.c: When no GSource callback has been set up, tell developer to use a function that actually exists. 2007-10-17 Stefan Kost * docs/gst/gstreamer-sections.txt: * gst/Makefile.am: * gst/gst.c: * gst/gst.h: * gst/gstdebugutils.c: * gst/gstdebugutils.h: * gst/gstinfo.c: * gst/gstinfo.h: * tools/gst-launch.c: Allow dumping pipelines as dot graphs. Fixes #456573. 2007-10-16 Tim-Philipp Müller * gst/gststructure.c: Allow '+' as well, it can be part of media or mime types such as image/svg+xml. 2007-10-16 Tim-Philipp Müller * docs/gst/gstreamer-sections.txt: * gst/gstbus.c: * gst/gstbus.h: API: add gst_bus_pop_filtered API: add gst_bus_timed_pop_filtered Two new functions for waiting for specific message types on the bus for a specified amount of time without iterating any main loops or main contexts. * tests/check/gst/gstbus.c: Some tests for the new functions. 2007-10-16 Tim-Philipp Müller * docs/libs/gstreamer-libs-sections.txt: Make gtk-doc ignore stuff it should ignore. 2007-10-16 Tim-Philipp Müller * libs/gst/check/gstcheck.c: * libs/gst/check/gstcheck.h: Allow runtime selection of unit tests to run via the GST_CHECKS environment variable (test case function names, comma-separated). 2007-10-16 Stefan Kost * gst/gststructure.c: * tests/check/gst/gststructure.c: Revert serialisation change and constrain structure-names after consensus on irc. Update api documentation to reflect the change. 2007-10-16 Stefan Kost * gst/gststructure.c: Improve serialization and fix tests. * tests/check/gst/gststructure.c: Add another test that covers why I actually did the previous structure change. 2007-10-15 Wim Taymans * tools/gst-inspect.c: (print_element_info): Don't crash when inspecting an element. 2007-10-15 Tim-Philipp Müller * tests/check/gst/gststructure.c: Add unit test for escaping of structure name when serialising and deserialising to/from strings. 2007-10-15 Wim Taymans * plugins/elements/gstmultiqueue.c: (gst_single_queue_push_one), (gst_single_queue_new): * plugins/elements/gstqueue.c: (gst_queue_init), (gst_queue_push_one): Fix queue negotiation. If acceptcaps unconditionally returns TRUE, upstream is tricked into thinking it can suggest a format downstream while downstream does not support that format. The real problem is that core calls acceptcaps when pushing a buffer with new caps, for which we do a little workaround by setting the caps on the srcpad ourselves before pushing the buffer (until this is figured out). Fixes #486758. 2007-10-15 Stefan Kost * gst/gststructure.c: * gst/gstvalue.c: Add some more comments and debug output. Quote structure name to fix deserialisation of some strings. 2007-10-15 Stefan Kost * gst/gstbuffer.h: Define GST_BUFFER_FLAG_GAP more strictly to enable optimizations based on it. Fix docs for GST_BUFFER_MALLOCDATA and GstBuffer.malloc_data. 2007-10-15 Stefan Kost * tools/gst-inspect.c: Save approx. 400 1 byte allocs when printing. Use API to acces element details. * tools/gst-run.c: Avoid a strdup. * tools/gst-xmlinspect.c: Use API to acces element details. 2007-10-15 Stefan Kost * gst/gstinfo.c: Fix some spelling errors. 2007-10-14 Wim Taymans * gst/gstbin.c: (bin_handle_async_done): Correctly set the next state if all of our async children commited their state. This makes sure we can actually cancel the state change in progress. Fixes a regression in Rhythmbox when seeking. 2007-10-13 Tim-Philipp Müller * gst/gstbin.c: Don't shadow local variable. * gst/gstinfo.c: Don't shadow global function name. 2007-10-13 Tim-Philipp Müller * gst/gstelementfactory.c: * gst/gstpluginfeature.c: * gst/gstpluginfeature.h: * gst/gstregistrybinary.c: * gst/gstregistryxml.c: * gst/gsttypefind.c: Use already-interned string for the private GstPluginFeature plugin_name field. 2007-10-10 Tim-Philipp Müller * docs/libs/gstreamer-libs-sections.txt: Add new API to docs; fixes the build. 2007-10-10 Wim Taymans Patch inspired by: Benoit Fouet * libs/gst/base/gstbasesink.c: (gst_base_sink_wait_eos), (gst_base_sink_event): * libs/gst/base/gstbasesink.h: Add function to wait for EOS, subclasses can use this to correctly wait for devices to drain before performing the EOS logic. Fixes #485343. API: gst_base_sink_wait_eos() 2007-10-10 Tim-Philipp Müller * gst/gstplugin.h: Cast description string constants in GST_PLUGIN_DEFINE macros to a (gchar*) to make C++ code using these macros compile without warning with g++-4.2 (see #462737). Even if slightly ugly, this seems preferable to putting the description strings into the GLib quark table or making the structure member a const gchar * and doing casts in core code that allocs and frees these strings, or requiring a cast in the C++ code. 2007-10-09 Tim-Philipp Müller * gst/gstinfo.h: Use __FUNCTION__ instead of __PRETTY_FUNCTION__, it's silly to print the entire class/function signature into the log file for C++ code. This only affects C++ code, for C code everything remains the same. 2007-10-09 Wim Taymans * gst/gstbin.c: (remove_from_queue): Work around a problem with pipelines containing (semi)loops until a proper, more complicated solution is ready. See #475455. 2007-10-09 Tim-Philipp Müller * gst/gstplugin.c: * gst/gstplugin.h: * gst/gstregistrybinary.c: * gst/gstregistryxml.c: Put more strings into the GLib quark table. No need to keep a hundred-something copies of identical version strings, license strings, package name strings and package origin strings around. 2007-10-09 Tim-Philipp Müller * docs/manual/advanced-dataaccess.xml: Don't imply that it's okay to unconditionally change buffer data or buffer metadata in a pad probe callback, and a bunch of other comments. Fixes #430031. 2007-10-08 Tim-Philipp Müller * win32/common/gstenumtypes.c: * win32/common/gstenumtypes.h: * win32/common/gstversion.h: Update generated files. 2007-10-08 Tim-Philipp Müller * docs/manual/advanced-autoplugging.xml: Prefix section with broken code with a warning (see #342432). 2007-10-08 Tim-Philipp Müller * docs/manual/appendix-integration.xml: * docs/manual/basics-init.xml: Call g_thread_init() before g_option_context_new() to avoid warnings. Spotted by Ritesh Khadgaray. Fixes #484225. 2007-10-08 Wim Taymans * libs/gst/base/gstbasesink.c: (gst_base_sink_preroll_queue_flush), (gst_base_sink_queue_object_unlocked), (gst_base_sink_queue_object), (gst_base_sink_event), (gst_base_sink_needs_preroll), (gst_base_sink_chain_unlocked): When we received EOS and are waiting for when to post the EOS message, our state is prerolled and we should not return ASYNC. Reorganize some code paths to implement this behavior. * tests/check/generic/sinks.c: (send_eos), (GST_START_TEST), (gst_sinks_suite): Add unit test to verify above EOS fix. 2007-10-08 Wim Taymans * plugins/elements/gsttypefindelement.c: (gst_type_find_element_have_type), (gst_type_find_element_init), (gst_type_find_element_setcaps), (gst_type_find_element_chain): Move detecting the input caps of the sinkpad to the setcaps function. This allows us to update the output caps when we receive new input caps instead of always using the first detected caps. 2007-10-08 Wim Taymans * libs/gst/base/gstbasesink.c: (gst_base_sink_event), (gst_base_sink_get_position): Don't try to preroll non-async elements after a flush. Subtract latency form clock times when reporting position. 2007-10-05 Wim Taymans * gst/gstpad.c: (gst_pad_pause_task): * gst/gstutils.c: Small comment and documentation update. 2007-10-05 Wim Taymans * libs/gst/base/gstbasesrc.c: (gst_base_src_wait_playing), (gst_base_src_set_live), (gst_base_src_is_live), (gst_base_src_query_latency), (gst_base_src_perform_seek), (gst_base_src_default_event), (gst_base_src_wait), (gst_base_src_do_sync), (gst_base_src_get_range), (gst_base_src_pad_get_range), (gst_base_src_loop), (gst_base_src_unlock), (gst_base_src_unlock_stop), (gst_base_src_set_flushing), (gst_base_src_set_playing), (gst_base_src_activate_push), (gst_base_src_activate_pull), (gst_base_src_change_state): Rework the locking of basesrc in a similar fashion to basesink. We basically have one lock (LIVE_LOCK) protecting the dataflow. This allows us to handle live sources and semi live ones much better. Simplify flushing. Fix unlocking when seeking, shutting down and pausing in live sources. 2007-10-05 Wim Taymans * tests/check/pipelines/simple-launch-lines.c: (run_pipeline): Fix compilation again. 2007-10-03 Stefan Kost * gst/gstelement.c: Use meaningful categories for the logs to clean the default one. 2007-10-03 Stefan Kost * tests/check/pipelines/cleanup.c: Print message name and not just number. 2007-10-03 Stefan Kost * docs/design/draft-tagreading.txt: Add some more thoughts. 2007-10-03 Stefan Kost * tests/check/pipelines/simple-launch-lines.c: Print message name and not just number. 2007-10-03 Stefan Kost * libs/gst/base/gsttypefindhelper.c: Speedup typefinding. This is work in progress (see #459862). 2007-10-03 Stefan Kost * gst/gstplugin.c: Fix docs that mention 'plugin_desc' instead of 'gst_plugin_desc'. Spotted by Josep Torra Valles . 2007-10-03 Tim-Philipp Müller * gst/gstclock.h: Fix up broken GST_CLOCK_FLAGS macro and GstClock docs. The flags field has moved to GstObject. 2007-10-02 Wim Taymans * libs/gst/base/gstbasesrc.c: (gst_base_src_do_sync), (gst_base_src_get_range), (gst_base_src_change_state): Call unlock for live sources so that they can't get stuck in _create and produce a buffer before they are set back to PLAYING. 2007-10-02 Edward Hervey * plugins/elements/gstqueue.c: (gst_queue_locked_enqueue), (gst_queue_locked_dequeue): Comment the segment-related code... in the PROPER function. See #482147 and my commit from yesterday. 2007-10-01 Wim Taymans * libs/gst/base/gstbasesrc.c: (gst_base_src_change_state): Also initialize the counter that calculates the first timestamp on a buffer correctly for non-live sources. 2007-10-01 Edward Hervey * plugins/elements/gstqueue.c: (gst_queue_locked_dequeue): Disable code that's breaking the current-time-level reporting. See #482147 2007-09-30 Sebastian Dröge * docs/gst/gstreamer-sections.txt: Add M_PI and IMPORT_SYMBOL to the private part of the GstInfo section as they shouldn't show up. Fixes the docs build. 2007-09-29 Sebastien Moutte * gst/gstinfo.h: Add an explicit variable importation needed on VS6 (only for MSC_VER) Define M_PI which is used in files which are including gstinfo.h. VS6 includes doesn't define it. * win32/common/libgstbase.def: * win32/common/libgstcontroller.def: * win32/common/libgstreamer.def: Add new exported functions and variables. * win32/vs6/libgstcontroller.dsp: * win32/vs6/libgstreamer.dsp: Update the list of files to build. 2007-09-28 Wim Taymans Patch by: Felipe Contreras * plugins/elements/gstqueue.c: (update_time_level), (apply_buffer), (gst_queue_locked_dequeue), (gst_queue_handle_sink_event), (gst_queue_chain), (gst_queue_loop), (gst_queue_src_activate_push): Improve debugging. Fixes #480858. 2007-09-28 Wim Taymans Patch by: Felipe Contreras * plugins/elements/gstqueue.c: (gst_queue_handle_sink_event): First patch of code cleanups, use the macros and right arguments in the macros to signal and lock the queue. See #480858. 2007-09-26 Wim Taymans * gst/gstbus.c: (poll_func): Improve debugging when dealing with _poll(). 2007-09-26 Tim-Philipp Müller * gst/gstregistryxml.c: Fix memory leak I introduced a few days ago. 2007-09-26 Michael Smith * gst/gstbuffer.c: (gst_buffer_finalize): Make it once again possible to free GstBuffers in the default build. The poisoning scribbles on parts of the miniobject we need in order to free it. Fixes #480341 2007-09-25 Tim-Philipp Müller * docs/gst/gstreamer-sections.txt: * gst/gsttaglist.c: * gst/gsttaglist.h: API: add GST_TAG_COMPOSER, fixes #459809. 2007-09-24 Sebastian Dröge * gst/gstplugin.c: * gst/gstplugin.h: Add the 3-clause BSD license and the MIT/X11 license to the license list. Fixes #479784. 2007-09-24 Tim-Philipp Müller * docs/faq/getting.xml: Add Q+A about different GStreamer versions (#364056). 2007-09-24 Wim Taymans * libs/gst/base/gstbasesink.c: (gst_base_sink_query_latency), (gst_base_sink_event), (gst_base_sink_change_state): Return correct gboolean from query function. 2007-09-24 Wim Taymans * libs/gst/base/gstbasesink.c: (gst_base_sink_query_latency), (gst_base_sink_event), (gst_base_sink_query), (gst_base_sink_change_state): Simplify latency query. When not synchronizing, we can report latency without querying the peer element. 2007-09-24 Wim Taymans * gst/gstobject.h: * gst/gstvalue.c: Fix small typos in the docs. 2007-09-24 Wim Taymans * docs/design/draft-latency.txt: * docs/design/draft-push-pull.txt: * docs/design/draft-tagreading.txt: * docs/design/part-MT-refcounting.txt: * docs/design/part-activation.txt: * docs/design/part-block.txt: * docs/design/part-element-source.txt: * docs/design/part-events.txt: * docs/design/part-gstbin.txt: * docs/design/part-gstelement.txt: * docs/design/part-gstobject.txt: * docs/design/part-gstpipeline.txt: * docs/design/part-messages.txt: * docs/design/part-preroll.txt: * docs/design/part-push-pull.txt: * docs/design/part-qos.txt: * docs/design/part-query.txt: * docs/design/part-scheduling.txt: * docs/design/part-seeking.txt: * docs/design/part-segments.txt: * docs/design/part-states.txt: Documentation updates and typo fixes. 2007-09-23 Tim-Philipp Müller * plugins/elements/gstfakesink.c: Add some debug text to error message to indicate that we errored out on request. * tools/gst-launch.c: When the state change to PLAYING fails, check for an error message on the bus and print it. 2007-09-22 Thomas Vander Stichele translated by: Jorge González González * po/LINGUAS: * po/es.po: Added Spanish translation. 2007-09-21 Wim Taymans * plugins/elements/gstqueue.c: (gst_queue_push_one): Fix printf arguments. 2007-09-20 Stefan Kost * tests/check/generic/states.c: Improved state change unit test. 2007-09-20 Stefan Kost * gst/gstbin.h: Move priv to the right place. * gst/gstsystemclock.c: Add FIXME: and improve log. * tests/check/Makefile.am: * tests/examples/manual/Makefile.am: Work with all types of registries. 2007-09-19 Wim Taymans * libs/gst/base/gstbasesrc.c: (gst_base_src_send_event): Don't unref the event after pushing it. Fixes #478401. 2007-09-19 Stefan Kost * .cvsignore: * tests/examples/manual/.cvsignore: Ignore registries in any format. 2007-09-19 Tim-Philipp Müller * gst/glib-compat-private.h: Add compatibility macro for g_intern_string() for GLib-2.8 (any reason we can't just bump the requirement to at least 2.10?) * gst/gstpadtemplate.h: * gst/gstelementfactory.c: * gst/gstregistryxml.c: * gst/gstregistrybinary.c: Make GstStaticPadTemplate's templ_name field a const gchar * and fix up the internal code accordingly. This shouldn't be a problem, since there is no reason external code could ever assume the string in such a structure is dynamically allocated unless it did that itself; the use of g_strdup() is private to element factories. The new code also saves some memory by putting pad template name strings into the GLib quark table instead of allocating them dynamically. Declaring this field constant fixes warnings with g++-4.2 when using the GST_STATIC_PAD_TEMPLATE macro in c++ code (#478092). 2007-09-19 Stefan Kost * gst/gstelementfactory.c: Release static caps. Fixes #475723. 2007-09-18 Tim-Philipp Müller * gst/gstinfo.c: * gst/gstinfo.h: Make some internal API take const gchar * instead of just gchar * to avoid compiler warnings with g++-4.2.2 when passing string constants (partially fixes #478092). 2007-09-17 Wim Taymans * gst/gstbin.c: (bin_query_latency_fold), (gst_bin_query): A latency query fails when one of the sinks fail. * gst/gstelement.c: (gst_element_set_base_time): Improve debugging. 2007-09-17 Jan Schmidt - Sun Microsystems * gst/gstbin.c: (gst_bin_continue_func): * libs/gst/base/gstbasesrc.c: (gst_base_src_do_sync): * libs/gst/base/gstcollectpads.c: (gst_collect_pads_add_pad_full): * plugins/elements/gstmultiqueue.c: (gst_multi_queue_loop): Fix minor compilation warnings shown with Forte. 2007-09-17 Wim Taymans * plugins/elements/gstqueue.c: (apply_buffer), (gst_queue_locked_enqueue), (gst_queue_locked_dequeue): Measure queue level based on the diff between head and tail timestamps even when pushing the first buffer. 2007-09-14 Wim Taymans * libs/gst/base/gstbasesink.c: (gst_base_sink_preroll_queue_flush), (gst_base_sink_event), (gst_base_sink_change_state): Sinks that don't preroll can always be queried for the latency. Don't post ASYNC start when we are not async. 2007-09-14 Wim Taymans * plugins/elements/gstqueue.c: (gst_queue_locked_enqueue), (gst_queue_handle_sink_event), (gst_queue_chain), (gst_queue_push_one), (gst_queue_handle_src_query), (gst_queue_sink_activate_push), (gst_queue_src_activate_push): * plugins/elements/gstqueue.h: When downstream returns UNEXPECTED from pushing a buffer, don't try to push more buffers but allow pushing of EOS and NEWSEGMENT. Add some more debug info here and there. Fixes #476514. 2007-09-14 Wim Taymans * libs/gst/base/gstbasesink.c: (gst_base_sink_init), (gst_base_sink_preroll_queue_flush), (gst_base_sink_commit_state), (gst_base_sink_wait_preroll), (gst_base_sink_needs_preroll), (gst_base_sink_set_flushing), (gst_base_sink_query), (gst_base_sink_change_state): Latency query is allowed after we are prerolled. Introduce a new flag for this and stop abusing other variables. 2007-09-13 Wim Taymans * libs/gst/base/gstbasesrc.c: (gst_base_src_send_event): Push OOB events downstream when we get them in send_event. This allows the application to insert events in the pipeline. Add some more comments. 2007-09-13 Wim Taymans * gst/gstbin.c: (gst_bin_class_init), (clear_queue), (do_bin_latency), (gst_bin_change_state_func): * gst/gstpipeline.c: (gst_pipeline_change_state): Move latency query from GstPipeline to GstBin so that we can also use it when async-handling is enabled on bins. 2007-09-13 Wim Taymans * libs/gst/base/gstbasesrc.c: (gst_base_src_query_latency), (gst_base_src_do_sync), (gst_base_src_change_state): Update docs. Clean up the timestamping and syncing code for pseudo live sources. 2007-09-13 Tim-Philipp Müller Patch by: Steve Fink * docs/manual/appendix-checklist.xml: Mention less -R switch in the section about debug output (#474055). 2007-09-13 Wim Taymans * plugins/elements/gstqueue.c: (gst_queue_handle_src_query): Queue can latency to the pipeline up to the configured max size in time. Report this fact in the latency query. 2007-09-13 Sebastian Dröge Patch by: Sebastien Moutte * libs/gst/controller/gstinterpolation.c: * libs/gst/controller/gstlfocontrolsource.c: Use gst_guint64_to_gdouble() when converting from a uint64 or GstClockTime to double to fix the build on win32. Fixes #474371. 2007-09-13 Sebastian Dröge * gst/gstbuffer.c: (gst_buffer_finalize): Implement poisoning for GstBuffer if --enable-poisoning is specified. When finalizing a buffer the complete struct is filled with 0xff, thus making a use of the buffer after the final unref impossible. 2007-09-13 Sebastian Dröge * tests/check/libs/controller.c: (GST_START_TEST): Use fail_unless_equals_int(a, b) instead of fail_unless_equals (a == b) to get better output on failures. 2007-09-12 Tim-Philipp Müller * tests/check/gst/gsturi.c: Also check for the other file URI variant on win32. 2007-09-12 Tim-Philipp Müller * gst/gsturi.c: (gst_uri_get_location): If there's no hostname, we want to return 'c:/foo/bar.txt' and not '/c:/foo/bar.txt' on Windows. Fixes #469402. * tests/check/gst/gsturi.c: Unit test for the above and a few more things. 2007-09-11 Wim Taymans * docs/design/part-live-source.txt: Add docs on how live sources should timestamp. * libs/gst/base/gstbasesrc.c: (gst_base_src_do_sync): Add some more debug info. For subclasses that are live and like to sync, add aditional startup latency to sync time and timestamps so that we timstamp according to the design doc. 2007-09-11 Tim-Philipp Müller * gst/gstbuffer.c: Also do a g_type_class_ref() for the subbuffer type in the init function. 2007-09-11 Wim Taymans * docs/gst/gstreamer-sections.txt: * gst/gstpad.c: (gst_pad_peer_query): * gst/gstpad.h: Add function to perform a query on the peer of a pad. API: gst_pad_peer_query() 2007-09-11 Stefan Kost * tests/check/gst/gstsystemclock.c: Cleanup the test a little (use gst-logging and not g_message). Improve test to check if a wait reached the target. 2007-09-11 Tim-Philipp Müller * docs/libs/gstreamer-libs-sections.txt: Add new API to docs and fix the build. 2007-09-10 Wim Taymans * libs/gst/base/gstbasesrc.c: (gst_base_src_class_init), (gst_base_src_init), (gst_base_src_set_do_timestamp), (gst_base_src_get_do_timestamp), (gst_base_src_set_property), (gst_base_src_get_property), (gst_base_src_do_sync): * libs/gst/base/gstbasesrc.h: Add property to make the basesrc timestamp buffers based on the current running time. API: GstBaseSrc::do-timestamp API: gst_base_src_set_do_timestamp() API: gst_base_src_get_do_timestamp() 2007-09-08 Tim-Philipp Müller * docs/random/release: Really make sure translations are up-to-date before a release (#465010). 2007-09-07 Sebastian Dröge * gst/gstregistrybinary.c: (gst_registry_binary_read_cache): Always destroy the timer, also in error cases. 2007-09-05 Wim Taymans * docs/manual/highlevel-xml.xml: Fix XML example code. Fixes #472714. 2007-09-05 Wim Taymans * libs/gst/base/gstbasesink.c: (gst_base_sink_preroll_queue_flush), (gst_base_sink_wait_preroll), (gst_base_sink_needs_preroll), (gst_base_sink_query): Protect eos and have_preroll with the OBJECT lock so we don't need to take the PREROLL lock when querying the latency. Fixes #473846. 2007-09-05 Stefan Kost * gst/gstelement.c: Give some log-messages a category. 2007-09-04 Wim Taymans * gst/gststructure.c: (gst_structure_fixate_field_nearest_fraction): Fix fraction list fixation code. Take the fraction with the smallest difference with the target instead of the first one in the list. * tests/check/gst/gststructure.c: (GST_START_TEST), (gst_structure_suite): Added test to verify correct fraction list fixation behaviour. 2007-09-02 Tim-Philipp Müller * win32/common/libgstreamer.def: Export gst_bus_add_signal_watch too. 2007-08-30 Wim Taymans * docs/libs/gstreamer-libs-sections.txt: Add new methods to docs. * libs/gst/base/gstbasesink.c: (gst_base_sink_class_init), (gst_base_sink_init), (gst_base_sink_set_ts_offset), (gst_base_sink_get_ts_offset), (gst_base_sink_set_property), (gst_base_sink_get_property), (gst_base_sink_wait_clock): * libs/gst/base/gstbasesink.h: Add ts-offset property to fine-tune the synchronisation. API: GstBaseSink::ts-offset property API: gst_base_sink_set_ts_offset() API: gst_base_sink_get_ts_offset() 2007-08-29 Wim Taymans * libs/gst/base/gstbasesink.c: (gst_base_sink_class_init), (gst_base_sink_init), (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_qos_enabled), (gst_base_sink_is_qos_enabled), (gst_base_sink_set_async_enabled), (gst_base_sink_is_async_enabled), (gst_base_sink_set_property), (gst_base_sink_get_property), (gst_base_sink_change_state): * libs/gst/base/gstbasesink.h: Add async property to instruct the sink never to inform the parent about ASYNC state changes, update docs. Check argument with g_return_* for the public functions. API: GstBaseSink::async property API: gst_base_sink_set_async_enabled() API: gst_base_sink_is_async_enabled() 2007-08-28 Wim Taymans * libs/gst/base/gstbasesink.c: (gst_base_sink_loop): Improve debugging. * libs/gst/base/gstbasesrc.c: (gst_base_src_query_latency), (gst_base_src_default_query), (gst_base_src_wait), (gst_base_src_do_sync), (gst_base_src_change_state): Rearrange some code so that we can add support for measuring the startup latency. 2007-08-27 Stefan Kost * docs/random/ensonic/dynlink.txt: More thoughs on this. * plugins/elements/gstcapsfilter.c: Add bugzilla ticket number to FIXME comment. 2007-08-24 Wim Taymans * docs/design/part-TODO.txt: * docs/design/part-block.txt: Update some docs. 2007-08-24 Jan Schmidt * gst/Makefile.am: Revert patch which uses $(gst_headers) instead of $^ because it breaks make dist. 2007-08-24 Jan Schmidt * tests/check/gst/gstbin.c: (GST_START_TEST): Fix leaks in the new unit test. 2007-08-23 Tim-Philipp Müller * gst/gst.c: Don't use GST_INFO before the debug system is actually initialised (shouldn't do any harm, but won't print anything either, so we can just as well remove it). * gst/gstinfo.h: GST_CAT_LEVEL_LOG_valist(), which is our inline helper function for compilers that don't support variadic macros (such as MSVC), should check for debug_level <= __gst_debug_min as well, since that's the function called from all the level-specific GST_CAT_*_LOG_OBJECT() inline helper functions. Should improve performance a bit, but also makes sure uses of GST_INFO et.al are ignored if the debugging system isn't initialised yet (instead of printing an assertion failure). 2007-08-23 Stefan Kost patch by: David Nečas * gst/Makefile.am: Replace some non portable makefile constructs. 2007-08-21 Stefan Kost * common/gtk-doc-plugins.mak: Grrrrr. Don't remove the types file on make clean. 2007-08-20 Wim Taymans * tools/gst-launch.1.in: Add colorspace to example pipeline. Fixes #458274. 2007-08-20 Tim-Philipp Müller * docs/random/release: The release manager should run 'make download-po' before making a release to make sure translations are up-to-date. * po/LINGUAS: * po/be.po: * po/pl.po: * po/rw.po: Add some new translations. 2007-08-17 Wim Taymans * tools/gst-launch.c: (event_loop), (main): Don´t try to do any state management when a live pipeline posts buffering messages. Also make the buffering string translatable. 2007-08-16 Wim Taymans * gst/gstbin.c: (is_eos), (gst_bin_add_func), (bin_handle_async_start), (gst_bin_handle_message_func): Improve debugging. When adding elements, insert messages into the bus of the newly added element and make sure the element is the source of the message. This allows the parent bin to intercept the message and do the right thing. It also avoids us posting ASYNC_START and CLOCK_PROVIDE messages to the app (which is not allowed). Update some docs. * tests/check/gst/gstghostpad.c: (GST_START_TEST): Fix testsuite so that is does not work around messages that should not have been posted in the first place. 2007-08-16 Wim Taymans * gst/gstbin.c: (add_to_queue), (remove_from_queue), (clear_queue), (update_degree), (gst_bin_sort_iterator_next): Fix annoying bug in the sorted iterator where a sink that is not really a sink (when it has downstream links) screwed up the iterator. * tests/check/gst/gstbin.c: (GST_START_TEST), (gst_bin_suite): Unit test to verify the fix. 2007-08-16 Wim Taymans * gst/gstmessage.h: Add some more docs for the messages. * libs/gst/base/gstbasesink.c: (gst_base_sink_commit_state), (gst_base_sink_query): Add some more debugging. * tools/gst-launch.c: (event_loop): When interrupting, don't try to set pipeline to PAUSED twice. 2007-08-14 Wim Taymans * gst/gstbin.c: (gst_bin_add_func), (gst_bin_element_set_state), (bin_handle_async_start), (gst_bin_handle_message_func): Move ASYNC_START message posting to where it belongs, similar to async_done. Don't post ASYNC_START when we are in error. Post ASYNC_START when we added an async element to a bin. 2007-08-14 Julien MOUTTE * gst/gstindex.c: (gst_index_add_association): Fix index entry generation from vargs. Fixes #466595. 2007-08-14 Wim Taymans * gst/gstbin.c: (gst_bin_element_set_state): Always change the state of a NO_PREROLL element even if it has ASYNC elements inside (in case of a bin). * tests/check/generic/sinks.c: (GST_START_TEST), (gst_sinks_suite): Unit test for this case. 2007-08-13 Stefan Kost * libs/gst/check/gstbufferstraw.c: * libs/gst/check/gstcheck.h: * libs/gst/controller/gstcontroller.c: * libs/gst/controller/gstcontrolsource.h: * libs/gst/controller/gstlfocontrolsource.h: * plugins/elements/gstcapsfilter.h: * plugins/elements/gstfdsink.h: * plugins/elements/gstfdsrc.h: Add more missing docs. 2007-08-12 Wim Taymans * gst/gststructure.c: Add Since tag to docs. 2007-08-12 Wim Taymans * docs/gst/gstreamer-sections.txt: * gst/gststructure.c: (gst_structure_get_uint): * gst/gststructure.h: Add function to get uint from a structure. API: gst_structure_get_uint() 2007-08-12 Wim Taymans * gst/gstcaps.c: (gst_caps_set_simple_valist), (gst_caps_intersect): Fix proper check for simple caps. 2007-08-10 Stefan Kost * docs/gst/Makefile.am: * docs/libs/Makefile.am: Remove cruft and do some cleanups. * docs/gst/gstreamer-docs.sgml: * docs/libs/gstreamer-libs-docs.sgml: Prepare for comming gtkdoc features (rebase against online docs). 2007-08-10 Michael Smith * docs/gst/gstreamer-sections.txt: Add gst_registry_add_path to docs. 2007-08-10 Michael Smith * gst/gstregistry.h: Add gst_registry_add_path, which was missing from this header. 2007-08-10 Tim-Philipp Müller * libs/gst/controller/gstlfocontrolsource.c: Printf format fix. 2007-08-09 Philippe Kalaf * libs/gst/base/gstbasesink.c: Don't send an async_start message during downwards state change if target state is less than READY 2007-08-09 Thomas Vander Stichele translated by: Gabor Kelemen * po/LINGUAS: * po/hu.po: Added Hungarian translation. 2007-08-09 Thomas Vander Stichele * po/fi.po: * po/it.po: * po/nl.po: * po/sv.po: * po/uk.po: Updated translations. 2007-08-07 Jan Schmidt * libs/gst/controller/Makefile.am: Dist gstlfocontrolsourceprivate.h 2007-08-07 Jan Schmidt * docs/libs/gstreamer-libs.types: Don't register the enum type gst_lfo_waveform_get_type() in the .types file - only GObject derived types belong. 2007-08-07 Wim Taymans Patch by: * gst/gstbuffer.h: Remove comma from last element in enum to avoid compile errors when using -pendantic. Fixes #464366. 2007-08-07 Wim Taymans * docs/design/part-TODO.txt: Add some more TODO items * gst/gstbin.c: (find_message), (gst_bin_change_state_func): Improve debugging. * gst/gstcaps.c: (gst_caps_intersect): Optimize trivial intersection case between identical caps pointers. * gst/gstelement.c: (gst_element_continue_state), (gst_element_set_state_func): * gst/gstpad.c: Fix spelling and grammar mistakes. 2007-08-05 Stefan Kost * po/POTFILES.in: * po/POTFILES.skip: Update POTFILES. Fixes #461599. 2007-08-03 Sebastian Dröge * gst/gst.c: Fix confusing typo in debug output. 2007-08-03 Sebastian Dröge reviewed by: Stefan Kost * libs/gst/controller/Makefile.am: * libs/gst/controller/gstlfocontrolsource.c: (_calculate_pos), (gst_lfo_waveform_get_type), (gst_lfo_control_source_reset), (gst_lfo_control_source_new), (gst_lfo_control_source_set_waveform), (gst_lfo_control_source_bind), (gst_lfo_control_source_init), (gst_lfo_control_source_finalize), (gst_lfo_control_source_dispose), (gst_lfo_control_source_set_property), (gst_lfo_control_source_get_property), (gst_lfo_control_source_class_init): * libs/gst/controller/gstlfocontrolsource.h: * libs/gst/controller/gstlfocontrolsourceprivate.h: API: Add GstLFOControlSource, a control source that gives values for specific timestamps based on several periodic waveforms. Fixes #459717. * tests/check/libs/controller.c: (GST_START_TEST), (gst_controller_suite): * docs/libs/gstreamer-libs-docs.sgml: * docs/libs/gstreamer-libs-sections.txt: * docs/libs/gstreamer-libs.types: Add documentation and unit tests for GstLFOControlSource. 2007-08-03 Jan Schmidt * configure.ac: Back to CVS