From d581d5c9763ab74b09dd59e82635bf90846517bc Mon Sep 17 00:00:00 2001 From: Thomas Vander Stichele Date: Wed, 2 Nov 2005 15:34:23 +0000 Subject: [PATCH] doc updates Original commit message from CVS: * docs/README: * docs/gst/gstreamer-sections.txt: * gst/gstbin.c: doc updates * gst/gstregistry.c: (gst_registry_scan_path_level): fix for a nasty little missed situation where an installed plug-in which was in the cache did not get overridden by an uninstalled one which was earlier in the plugin path because the newly created plugin for the uninstalled one (not in the registry) didn't get its ->registered set to TRUE --- ChangeLog | 13 ++++++ docs/README | 3 +- docs/gst/gstreamer-sections.txt | 15 ++++--- gst/gstbin.c | 80 ++++++++++++++++++++------------- gst/gstregistry.c | 9 +++- 5 files changed, 81 insertions(+), 39 deletions(-) diff --git a/ChangeLog b/ChangeLog index 749639cc3e..94d5ed998a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2005-11-02 Thomas Vander Stichele + + * docs/README: + * docs/gst/gstreamer-sections.txt: + * gst/gstbin.c: + doc updates + * gst/gstregistry.c: (gst_registry_scan_path_level): + fix for a nasty little missed situation where an installed plug-in + which was in the cache did not get overridden by an uninstalled one + which was earlier in the plugin path because the newly created plugin + for the uninstalled one (not in the registry) didn't get its + ->registered set to TRUE + 2005-11-02 Tim-Philipp Müller * gst/base/gstcollectpads.c: (gst_collectpads_set_function), diff --git a/docs/README b/docs/README index 35b1196fa8..565e49b370 100644 --- a/docs/README +++ b/docs/README @@ -199,7 +199,8 @@ STYLE GUIDE FOR GTK-DOC "Caller owns returned value" for other types (iterators, ..) - we do this because, in contrast with GLib/GTK, we are more explicit about threadsafety and related issues - +- link to signals from the description like this: + * The element-added signal - the bottom of the description should say when the doc was last reviewed (version and date) * Last reviewed on 2005-10-28 (0.9.4) diff --git a/docs/gst/gstreamer-sections.txt b/docs/gst/gstreamer-sections.txt index 0a4cebb071..af29c699e5 100644 --- a/docs/gst/gstreamer-sections.txt +++ b/docs/gst/gstreamer-sections.txt @@ -37,11 +37,7 @@ thread_list gstbin GstBin GstBin -GstBinFlags - -GST_BIN_CHILDREN -GST_BIN_CHILDREN_COOKIE -GST_BIN_NUMCHILDREN +GstBinClass gst_bin_new gst_bin_add @@ -56,12 +52,19 @@ gst_bin_iterate_recurse gst_bin_iterate_sinks gst_bin_iterate_sorted gst_bin_iterate_all_by_interface + gst_bin_add_many gst_bin_remove_many + +GstBinFlags + +GST_BIN_CHILDREN +GST_BIN_CHILDREN_COOKIE +GST_BIN_NUMCHILDREN + -GstBinClass GST_BIN GST_IS_BIN GST_TYPE_BIN diff --git a/gst/gstbin.c b/gst/gstbin.c index 972b259aaa..930fa1fe5a 100644 --- a/gst/gstbin.c +++ b/gst/gstbin.c @@ -25,7 +25,7 @@ /** * SECTION:gstbin - * @short_description: Base class for elements that contain other elements + * @short_description: Base class and element that can contain other elements * * GstBin is an element that can contain other elements, allowing them to be * managed as a group. @@ -49,41 +49,61 @@ * gst_bin_iterate_elements(). Various other iterators exist to retrieve the * elements in a bin. * - * The "element_added" signal is fired whenever a new element is added to the - * bin. Likewise the "element_removed" signal is fired whenever an element is - * removed from the bin. + * gst_object_unref() is used to drop your reference to the bin. * - * A GstBin internally interceps all #GstMessage posted by its children and + * The element-added signal is + * fired whenever a new element is added to the bin. Likewise the element-removed signal is fired + * whenever an element is removed from the bin. + * + * Notes + * * A GstBin internally intercepts every #GstMessage posted by its children and - * implements the following default behaviour for each of them. - * - * GST_MESSAGE_EOS: This message is only posted by sinks - * in the PLAYING state. If all sinks posted the EOS message, this bin - * will post and EOS message upwards. - * - * GST_MESSAGE_SEGMENT_START: just collected and never forwarded upwards. + * implements the following default behaviour for each of them: + * + * + * GST_MESSAGE_EOS + * This message is only posted by sinks in the PLAYING + * state. If all sinks posted the EOS message, this bin will post and EOS + * message upwards. + * + * + * GST_MESSAGE_SEGMENT_START + * just collected and never forwarded upwards. * The messages are used to decide when all elements have completed playback - * of their segment. - * - * GST_MESSAGE_SEGMENT_DONE: Is posted by GstBin when all elements that posted - * a SEGMENT_START have posted a SEGMENT_DONE. - * - * OTHERS: posted upwards. + * of their segment. + * + * + * GST_MESSAGE_SEGMENT_DONE + * Is posted by GstBin when all elements that posted + * a SEGMENT_START have posted a SEGMENT_DONE. + * + * + * OTHERS + * posted upwards. + * + * * * A GstBin implements the following default behaviour for answering to a * #GstQuery: - * - * GST_QUERY_DURATION: If the query has been asked before with the same - * format, use the cached previous value. If no previous value - * was cached, the query is sent to all sink elements in the bin - * and the MAXIMUM of all values is returned and cached. If no - * sinks are available in the bin, the query fails. - * - * OTHERS: the query is forwarded to all sink elements, the result of the - * first sink that answers the query successfully is returned. If - * no sink is in the bin, the query fails. - * - * gst_object_unref() is used to drop your reference to the bin. + * + * + * GST_QUERY_DURATION + * If the query has been asked before with the same format, + * use the cached previous value. If no previous value was cached, the + * query is sent to all sink elements in the bin and the MAXIMUM of all + * values is returned and cached. If no sinks are available in the bin, the + * query fails. + * + * + * OTHERS + * the query is forwarded to all sink elements, the result + * of the first sink that answers the query successfully is returned. If no + * sink is in the bin, the query fails. + * + * + * + * * * Last reviewed on 2005-10-28 (0.9.4) */ diff --git a/gst/gstregistry.c b/gst/gstregistry.c index 7cedf1d098..9a97d26884 100644 --- a/gst/gstregistry.c +++ b/gst/gstregistry.c @@ -709,11 +709,12 @@ gst_registry_scan_path_level (GstRegistry * registry, const gchar * path, gst_object_unref (plugin); continue; } - plugin->registered = TRUE; if (plugin->file_mtime == file_status.st_mtime && plugin->file_size == file_status.st_size) { GST_DEBUG_OBJECT (registry, "file %s cached", filename); plugin->flags &= ~GST_PLUGIN_FLAG_CACHED; + GST_DEBUG_OBJECT (registry, "marking plugin %p as registered", plugin); + plugin->registered = TRUE; } else { GST_INFO_OBJECT (registry, "cached info for %s is stale", filename); GST_DEBUG_OBJECT (registry, "mtime %ld != %ld or size %" @@ -722,8 +723,12 @@ gst_registry_scan_path_level (GstRegistry * registry, const gchar * path, plugin->file_size, file_status.st_size); gst_registry_remove_plugin (gst_registry_get_default (), plugin); newplugin = gst_plugin_load_file (filename, NULL); - if (newplugin) + if (newplugin) { + GST_DEBUG_OBJECT (registry, "marking new plugin %p as registered", + newplugin); + newplugin->registered = TRUE; gst_object_unref (newplugin); + } } gst_object_unref (plugin);