GstTypeFindFactory
These functions allow querying information about registered typefind functions. How to create and register these functions is described in the section "Writing typefind functions".
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;
};
GstTypeFindFactory
GObject ╰──GInitiallyUnowned ╰──GstObject ╰──GstPluginFeature ╰──GstTypeFindFactory
Opaque object that stores information about a typefind function.
Class structure
GstTypeFindFactoryClass
Gst.TypeFindFactoryClass
Gst.TypeFindFactoryClass
Gst.TypeFindFactory
GObject.Object ╰──GObject.InitiallyUnowned ╰──Gst.Object ╰──Gst.PluginFeature ╰──Gst.TypeFindFactory
Opaque object that stores information about a typefind function.
Gst.TypeFindFactory
GObject.Object ╰──GObject.InitiallyUnowned ╰──Gst.Object ╰──Gst.PluginFeature ╰──Gst.TypeFindFactory
Opaque object that stores information about a typefind function.
Methods
gst_type_find_factory_call_function
gst_type_find_factory_call_function (GstTypeFindFactory * factory, GstTypeFind * find)
Calls the GstTypeFindFunction associated with this factory.
Parameters:
factory
–
find
(
[transfer: none])
–
a properly setup GstTypeFind entry. The get_data and suggest_type members must be set.
Gst.TypeFindFactory.prototype.call_function
function Gst.TypeFindFactory.prototype.call_function(find: Gst.TypeFind): {
// javascript wrapper for 'gst_type_find_factory_call_function'
}
Calls the Gst.TypeFindFunction associated with this factory.
Gst.TypeFindFactory.call_function
def Gst.TypeFindFactory.call_function (self, find):
#python wrapper for 'gst_type_find_factory_call_function'
Calls the Gst.TypeFindFunction associated with this factory.
gst_type_find_factory_get_caps
GstCaps * gst_type_find_factory_get_caps (GstTypeFindFactory * factory)
Gets the GstCaps associated with a typefind factory.
Parameters:
factory
–
the GstCaps associated with this factory
Gst.TypeFindFactory.prototype.get_caps
function Gst.TypeFindFactory.prototype.get_caps(): {
// javascript wrapper for 'gst_type_find_factory_get_caps'
}
Gets the Gst.Caps associated with a typefind factory.
Parameters:
Gst.TypeFindFactory.get_caps
def Gst.TypeFindFactory.get_caps (self):
#python wrapper for 'gst_type_find_factory_get_caps'
Gets the Gst.Caps associated with a typefind factory.
Parameters:
gst_type_find_factory_get_extensions
const gchar*const ** gst_type_find_factory_get_extensions (GstTypeFindFactory * 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.
Parameters:
factory
–
(transfer none) (array zero-terminated=1) (element-type utf8) (nullable): a NULL-terminated array of extensions associated with this factory
Gst.TypeFindFactory.prototype.get_extensions
function Gst.TypeFindFactory.prototype.get_extensions(): {
// javascript wrapper for 'gst_type_find_factory_get_extensions'
}
Gets the extensions associated with a Gst.TypeFindFactory. The returned array should not be changed. If you need to change stuff in it, you should copy it using g_strdupv (not introspectable). This function may return null to indicate a 0-length list.
Parameters:
Gst.TypeFindFactory.get_extensions
def Gst.TypeFindFactory.get_extensions (self):
#python wrapper for 'gst_type_find_factory_get_extensions'
Gets the extensions associated with a Gst.TypeFindFactory. The returned array should not be changed. If you need to change stuff in it, you should copy it using g_strdupv (not introspectable). This function may return None to indicate a 0-length list.
Parameters:
gst_type_find_factory_has_function
gboolean gst_type_find_factory_has_function (GstTypeFindFactory * 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.
Parameters:
factory
–
Gst.TypeFindFactory.prototype.has_function
function Gst.TypeFindFactory.prototype.has_function(): {
// javascript wrapper for 'gst_type_find_factory_has_function'
}
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.
Parameters:
Gst.TypeFindFactory.has_function
def Gst.TypeFindFactory.has_function (self):
#python wrapper for 'gst_type_find_factory_has_function'
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.
Parameters:
Functions
gst_type_find_factory_get_list
GList * gst_type_find_factory_get_list ()
Gets the list of all registered typefind factories. You must free the list using gst_plugin_feature_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 GstTypeFindFactory.
Gst.TypeFindFactory.prototype.get_list
function Gst.TypeFindFactory.prototype.get_list(): {
// javascript wrapper for 'gst_type_find_factory_get_list'
}
Gets the list of all registered typefind factories. You must free the list using Gst.PluginFeature.prototype.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 Gst.TypeFindFactory.
Gst.TypeFindFactory.get_list
def Gst.TypeFindFactory.get_list ():
#python wrapper for 'gst_type_find_factory_get_list'
Gets the list of all registered typefind factories. You must free the list using Gst.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 Gst.TypeFindFactory.
The results of the search are