Next: , Previous: GstTrace, Up: Top


39 GstTypeFindFactory

Information about registered typefind functions

39.1 Overview

These functions allow querying informations about registered typefind functions. How to create and register these functions is described in the section "Writing typefind functions".

     
       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;
       };
     

The above 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.

Last reviewed on 2005-11-09 (0.9.4)

39.2 Usage

— Class: <gst-type-find-factory>

This <gobject> class defines no properties, other than those defined by its superclasses.

— Function: gst-type-find-factory-get-list   (ret glist-of)

Gets the list of all registered typefind factories. You must free the list using gst_plugin_feature_list_free.

ret
the list of all registered <gst-type-find-factory>.
— Function: gst-type-find-factory-get-caps (self <gst-type-find-factory>)   (ret <gst-caps>)
— Method: get-caps

Gets the <gst-caps> associated with a typefind factory.

factory
A <gst-type-find-factory>
ret
The <gst-caps> associated with this factory