mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-09-09 05:38:58 +00:00
29e2850eff
Original commit message from CVS: Documentation updates
99 lines
2.4 KiB
Text
99 lines
2.4 KiB
Text
<!-- ##### SECTION Title ##### -->
|
|
GstTypeFactory
|
|
|
|
<!-- ##### SECTION Short_Description ##### -->
|
|
Add types to plugins.
|
|
|
|
<!-- ##### SECTION Long_Description ##### -->
|
|
<para>
|
|
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().
|
|
</para>
|
|
<para>
|
|
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:
|
|
<programlisting>
|
|
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));
|
|
...
|
|
}
|
|
</programlisting>
|
|
</para>
|
|
|
|
<!-- ##### SECTION See_Also ##### -->
|
|
<para>
|
|
#GstPluginFeature, #GstPlugin
|
|
</para>
|
|
|
|
<!-- ##### STRUCT GstTypeFactory ##### -->
|
|
<para>
|
|
The struct with the typefactory information.
|
|
</para>
|
|
|
|
|
|
<!-- ##### STRUCT GstTypeDefinition ##### -->
|
|
<para>
|
|
The typedefinition structure.
|
|
</para>
|
|
|
|
@name: The name of this factory
|
|
@mime: The mime type of the new type.
|
|
@exts: The extensions of this type.
|
|
@typefindfunc: An optional typefind function.
|
|
|
|
<!-- ##### USER_FUNCTION GstTypeFindFunc ##### -->
|
|
<para>
|
|
This is the function that will be called when a typefind has to be
|
|
performed by a plugin.
|
|
</para>
|
|
|
|
@buf: the buffer with media on which to perform the typefind
|
|
@priv: private; don't touch
|
|
@Returns: A #GstCaps structure describing the type or NULL if the
|
|
type was not recognized by this function;
|
|
|
|
|
|
<!-- ##### FUNCTION gst_type_factory_new ##### -->
|
|
<para>
|
|
|
|
</para>
|
|
|
|
@definition:
|
|
@Returns:
|
|
|
|
|
|
<!-- ##### FUNCTION gst_type_factory_find ##### -->
|
|
<para>
|
|
|
|
</para>
|
|
|
|
@name:
|
|
@Returns:
|
|
|
|
|