pub struct TypeFindFactory(_, _); These functions allow querying informations about registered typefind
functions. How to create and register these functions is described in
the section
"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.
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;
};
PluginFeatureExt
, GstObjectExt
, glib::object::ObjectExt
Gets the Caps
associated with a typefind factory.
the Caps
associated with this factory
Gets the extensions associated with a TypeFindFactory
. 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 None
to indicate
a 0-length list.
a None
-terminated array of extensions associated with this factory
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.
true
if the factory has a typefind functions set, otherwise false
Gets the list of all registered typefind factories. You must free the
list using PluginFeature::list_free
.
The returned factories are sorted by highest rank first, and then by
factory name.
Free-function: gst_plugin_feature_list_free
the list of all
registered TypeFindFactory
.
Calls the GstTypeFindFunction
associated with this factory.
a properly setup TypeFind
entry. The get_data
and suggest_type members must be set.
Performs copy-assignment from source
. Read more
Feeds this value into the given [Hasher
]. Read more
Feeds a slice of this type into the given [Hasher
]. Read more
This method returns an Ordering
between self
and other
. Read more
fn max (self, other: Self) -> Self
1.21.0
[src]
Compares and returns the maximum of two values. Read more
fn min (self, other: Self) -> Self
1.21.0
[src]
Compares and returns the minimum of two values. Read more
Returns the type identifier of Self
.
This method tests for self
and other
values to be equal, and is used by ==
. Read more
This method tests for !=
.
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
This method tests greater than or equal to (for self
and other
) and is used by the >=
operator. Read more
Formats the value using the given formatter. Read more