+to a plugin. Typefactories are named so they can be found with
+gst_typefactory_find().
+</para>
+<para>
+gst_typefactory_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_typefind (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_typefind","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_typefind, /* a pointer to a GstTypeFindFunc function */
+ };
+
+ static gboolean
+ plugin_init (GModule *module, GstPlugin *plugin)
+ {
+ GstTypeFactory *type;
+ ...
+ type = gst_typefactory_new (&avidefinition);
+ gst_plugin_add_feature (plugin, GST_PLUGIN_FEATURE (type));
+ ...
+ }
+</programlisting>