GstTypeFactory
Name
GstTypeFactory -- Add types to plugins.
Description
A GstTypeFactory is used to add a new type and a typedetection function
to a plugin. Typefactories are named so they can be found with
gst_type_factory_find().
gst_type_factory_new() is used to create a new typefactory from the given
GstTypeDefinition. A typefactory is added to a GstPlugin with
gst_plugin_add_feature() as shown in the example:
static GstCaps*
avi_type_find (GstBuffer *buf, gpointer private)
{
gchar *data = GST_BUFFER_DATA (buf);
if (strncmp (&data[0], "RIFF", 4)) return NULL;
if (strncmp (&data[8], "AVI ", 4)) return NULL;
return gst_caps_new ("avi_type_find","video/avi", NULL);
}
/* typedefinition for 'avi' */
static GstTypeDefinition avidefinition = {
"avidecoder_video/avi", /* the name of this definition */
"video/avi", /* the mime type */
".avi", /* the file extensions */
avi_type_find, /* a pointer to a GstTypeFindFunc function */
};
static gboolean
plugin_init (GModule *module, GstPlugin *plugin)
{
GstTypeFactory *type;
...
type = gst_type_factory_new (&avidefinition);
gst_plugin_add_feature (plugin, GST_PLUGIN_FEATURE (type));
...
} |
Details
struct GstTypeFactory
The struct with the typefactory information.
struct GstTypeDefinition
struct GstTypeDefinition {
gchar *name;
gchar *mime;
gchar *exts;
GstTypeFindFunc typefindfunc;
}; |
GstTypeFindFunc ()
This is the function that will be called when a typefind has to be
performed by a plugin.
gst_type_factory_new ()
Creata a new typefactory from the given definition.
gst_type_factory_find ()
Return the TypeFactory with the given name.