Sets our main struct and passes it to the parent class.
Calls the #GstTypeFindFunction associated with this factory.
Gets the #GstCaps associated with a typefind factory.
Gets the extensions associated with a #GstTypeFindFactory. The returned array should not be changed. If you need to change stuff in it, you should copy it using g_strdupv(). This function may return %NULL to indicate a 0-length list.
the main Gtk struct as a void*
Get the main Gtk struct
Check whether the factory has a typefind function. Typefind factories without typefind functions are a last-effort fallback mechanism to e.g. assume a certain media type based on the file extension.
Gets the list of all registered typefind factories. You must free the list using gst_plugin_feature_list_free().
the main Gtk struct
the main Gtk struct
Get the main Gtk struct
the main Gtk struct as a void*
Copies the list of features. Caller should call @gst_plugin_feature_list_free when done with the list.
Debug the plugin feature names in @list.
Unrefs each member of @list, then frees the list.
Compares the two given #GstPluginFeature instances. This function can be used as a #GCompareFunc when sorting by rank and then by name.
Checks whether the given plugin feature is at least the required version
Get the plugin that provides this feature.
Get the name of the plugin that provides this feature.
Gets the rank of a plugin feature.
Loads the plugin containing @feature if it's not already loaded. @feature is unaffected; use the return value instead.
Specifies a rank for a plugin feature, so that autoplugging uses the most appropriate feature.
These functions allow querying informations about registered typefind functions. How to create and register these functions is described in the section <link linkend="gstreamer-Writing-typefind-functions"> "Writing typefind functions"</link>.
The following example shows how to write a very simple typefinder that identifies the given data. You can get quite a bit more complicated than that though. |[<!-- language="C" --> typedef struct { guint8 *data; guint size; guint probability; GstCaps *data; } MyTypeFind; static void my_peek (gpointer data, gint64 offset, guint size) { MyTypeFind *find = (MyTypeFind *) data; if (offset >= 0 && offset + size <= find->size) { return find->data + offset; } return NULL; } static void my_suggest (gpointer data, guint probability, GstCaps *caps) { MyTypeFind *find = (MyTypeFind *) data; if (probability > find->probability) { find->probability = probability; gst_caps_replace (&find->caps, caps); } } static GstCaps * find_type (guint8 *data, guint size) { GList *walk, *type_list; MyTypeFind find = {data, size, 0, NULL}; GstTypeFind gst_find = {my_peek, my_suggest, &find, }; walk = type_list = gst_type_find_factory_get_list (); while (walk) { GstTypeFindFactory *factory = GST_TYPE_FIND_FACTORY (walk->data); walk = g_list_next (walk) gst_type_find_factory_call_function (factory, &gst_find); } g_list_free (type_list); return find.caps; }; ]|