summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2009-11-10 18:03:43 +0100
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2009-11-10 18:17:26 +0100
commit039ef8352387646434f537138007797ac02c325c (patch)
tree3cecdb77558cdac01a71680aa51a4d855f816a01
parent1a50186630000fbd9097b042b54cc787c9876a12 (diff)
registry: API: Add gst_{default,}_registry_get_feature_list_cookie()
This returns the internal feature list cookie, which changes every time a feature is added or removed. This can be used by elements to check if they should update their cached feature lists.
-rw-r--r--docs/gst/gstreamer-sections.txt2
-rw-r--r--gst/gstregistry.c18
-rw-r--r--gst/gstregistry.h14
-rw-r--r--win32/common/libgstreamer.def1
4 files changed, 35 insertions, 0 deletions
diff --git a/docs/gst/gstreamer-sections.txt b/docs/gst/gstreamer-sections.txt
index 293bc6137d..9de13992a9 100644
--- a/docs/gst/gstreamer-sections.txt
+++ b/docs/gst/gstreamer-sections.txt
@@ -1945,6 +1945,7 @@ gst_buffering_mode_get_type
GstRegistry
gst_registry_get_default
gst_registry_get_feature_list
+gst_registry_get_feature_list_cookie
gst_registry_get_feature_list_by_plugin
gst_registry_get_path_list
gst_registry_get_plugin_list
@@ -1972,6 +1973,7 @@ gst_default_registry_add_path
gst_default_registry_find_plugin
gst_default_registry_find_feature
gst_default_registry_get_plugin_list
+gst_default_registry_get_feature_list_cookie
gst_default_registry_feature_filter
<SUBSECTION Standard>
GstRegistryClass
diff --git a/gst/gstregistry.c b/gst/gstregistry.c
index 56f4744a34..b63d886f21 100644
--- a/gst/gstregistry.c
+++ b/gst/gstregistry.c
@@ -1653,3 +1653,21 @@ gst_update_registry (void)
return res;
}
+
+/**
+ * gst_registry_get_feature_list_cookie:
+ *
+ * Returns the registrys feature list cookie. This changes
+ * every time a feature is added or removed from the registry.
+ *
+ * Returns: the feature list cookie.
+ *
+ * Since: 0.10.26
+ */
+guint32
+gst_registry_get_feature_list_cookie (GstRegistry * registry)
+{
+ g_return_val_if_fail (GST_IS_REGISTRY (registry), 0);
+
+ return registry->priv->cookie;
+}
diff --git a/gst/gstregistry.h b/gst/gstregistry.h
index e740bf47c5..dee501ba5a 100644
--- a/gst/gstregistry.h
+++ b/gst/gstregistry.h
@@ -107,6 +107,7 @@ GList* gst_registry_feature_filter (GstRegistry *registry,
GList * gst_registry_get_feature_list (GstRegistry *registry,
GType type);
GList * gst_registry_get_feature_list_by_plugin (GstRegistry *registry, const gchar *name);
+guint32 gst_registry_get_feature_list_cookie (GstRegistry *registry);
GstPlugin* gst_registry_find_plugin (GstRegistry *registry, const gchar *name);
GstPluginFeature* gst_registry_find_feature (GstRegistry *registry, const gchar *name, GType type);
@@ -204,6 +205,19 @@ gboolean gst_registry_xml_write_cache (GstRegistry * registry, const char *lo
#define gst_default_registry_feature_filter(filter,first,user_data) \
gst_registry_feature_filter (gst_registry_get_default(),filter,first,user_data)
+/**
+ * gst_default_registry_get_feature_list_cookie:
+ *
+ * Returns the default registrys feature list cookie. This changes
+ * every time a feature is added or removed from the registry.
+ *
+ * Returns: the feature list cookie.
+ *
+ * Since: 0.10.26
+ */
+#define gst_default_registry_get_feature_list_cookie() \
+ gst_registry_get_feature_list_cookie (gst_registry_get_default())
+
gboolean gst_default_registry_check_feature_version (const gchar *feature_name,
guint min_major,
guint min_minor,
diff --git a/win32/common/libgstreamer.def b/win32/common/libgstreamer.def
index 7156163c2f..c9e5069b7b 100644
--- a/win32/common/libgstreamer.def
+++ b/win32/common/libgstreamer.def
@@ -827,6 +827,7 @@ EXPORTS
gst_registry_get_default
gst_registry_get_feature_list
gst_registry_get_feature_list_by_plugin
+ gst_registry_get_feature_list_cookie
gst_registry_get_path_list
gst_registry_get_plugin_list
gst_registry_get_type