Klasse TypeFindFactory

Alle implementierten Schnittstellen:
PointerInterface

public class TypeFindFactory extends PluginFeature
These functions allow querying information about registered typefind
functions. How to create and register these functions is described in
the section <link linkend="gstreamer-Writing-typefind-functions">
"Writing typefind functions"</link>.

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.
<!-- language="C" -->
   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;
   };
 

https://gstreamer.freedesktop.org/documentation/gstreamer/gi-index.html

  • Konstruktordetails

  • Methodendetails

    • getClassHandler

      public static ClassHandler getClassHandler()
    • callFunction

      public void callFunction(@Nonnull TypeFind find)
      Calls the #GstTypeFindFunction associated with this factory.
      Parameter:
      find - a properly setup #GstTypeFind entry. The get_data and suggest_type members must be set.
    • getCaps

      public Caps getCaps()
      Gets the #GstCaps associated with a typefind factory.
      Gibt zurück:
      the #GstCaps associated with this factory
    • hasFunction

      public boolean hasFunction()
      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.
      Gibt zurück:
      %TRUE if the factory has a typefind functions set, otherwise %FALSE
    • getList

      public static List getList()
      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
      Gibt zurück:
      the list of all registered #GstTypeFindFactory.
    • getTypeID

      public static long getTypeID()
    • getParentTypeID

      public static long getParentTypeID()
    • getTypeSize

      public static TypeSystem.TypeSize getTypeSize()
    • getParentTypeSize

      public static TypeSystem.TypeSize getParentTypeSize()
    • getInstanceSize

      public static int getInstanceSize()