Blame docs/gst/html/GstTypeFindFactory.html

Packit a6ee4b
Packit a6ee4b
<html>
Packit a6ee4b
<head>
Packit a6ee4b
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Packit a6ee4b
<title>GstTypeFindFactory: GStreamer 1.0 Core Reference Manual</title>
Packit a6ee4b
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
Packit a6ee4b
<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
Packit a6ee4b
<link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
Packit a6ee4b
<link rel="prev" href="gstreamer-GstTypeFind.html" title="GstTypefind">
Packit a6ee4b
<link rel="next" href="gstreamer-GstUri.html" title="GstUri">
Packit a6ee4b
<meta name="generator" content="GTK-Doc V1.28 (XML mode)">
Packit a6ee4b
<link rel="stylesheet" href="style.css" type="text/css">
Packit a6ee4b
</head>
Packit a6ee4b
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Top  | 
Packit a6ee4b
                  Description  | 
Packit a6ee4b
                  Object Hierarchy
Packit a6ee4b
Packit a6ee4b
Home
Packit a6ee4b
Up
Packit a6ee4b
Prev
Packit a6ee4b
Next
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

GstTypeFindFactory

Packit a6ee4b

GstTypeFindFactory — Information about registered typefind functions

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Functions

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
GList *
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
gst_type_find_factory_get_list ()
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
const gchar * const *
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
gst_type_find_factory_get_extensions ()
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
GstCaps *
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
gst_type_find_factory_get_caps ()
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
gboolean
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
gst_type_find_factory_has_function ()
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
void
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
gst_type_find_factory_call_function ()
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Types and Values

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
 
Packit a6ee4b
GstTypeFindFactory
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Object Hierarchy

Packit a6ee4b
    GObject
Packit a6ee4b
    ╰── GInitiallyUnowned
Packit a6ee4b
        ╰── GstObject
Packit a6ee4b
            ╰── GstPluginFeature
Packit a6ee4b
                ╰── GstTypeFindFactory
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Includes

Packit a6ee4b
#include <gst/gst.h>
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Description

Packit a6ee4b

These functions allow querying information about registered typefind

Packit a6ee4b
functions. How to create and register these functions is described in
Packit a6ee4b
the section <GTKDOCLINK HREF="gstreamer-Writing-typefind-functions">
Packit a6ee4b
"Writing typefind functions"</GTKDOCLINK>.

Packit a6ee4b

The following example shows how to write a very simple typefinder that

Packit a6ee4b
identifies the given data. You can get quite a bit more complicated than
Packit a6ee4b
that though.

Packit a6ee4b
Packit a6ee4b
  
Packit a6ee4b
    
Packit a6ee4b
      
Packit a6ee4b
        
1
Packit a6ee4b
2
Packit a6ee4b
3
Packit a6ee4b
4
Packit a6ee4b
5
Packit a6ee4b
6
Packit a6ee4b
7
Packit a6ee4b
8
Packit a6ee4b
9
Packit a6ee4b
10
Packit a6ee4b
11
Packit a6ee4b
12
Packit a6ee4b
13
Packit a6ee4b
14
Packit a6ee4b
15
Packit a6ee4b
16
Packit a6ee4b
17
Packit a6ee4b
18
Packit a6ee4b
19
Packit a6ee4b
20
Packit a6ee4b
21
Packit a6ee4b
22
Packit a6ee4b
23
Packit a6ee4b
24
Packit a6ee4b
25
Packit a6ee4b
26
Packit a6ee4b
27
Packit a6ee4b
28
Packit a6ee4b
29
Packit a6ee4b
30
Packit a6ee4b
31
Packit a6ee4b
32
Packit a6ee4b
33
Packit a6ee4b
34
Packit a6ee4b
35
Packit a6ee4b
36
Packit a6ee4b
37
Packit a6ee4b
38
Packit a6ee4b
39
Packit a6ee4b
        
typedef struct {
Packit a6ee4b
  guint8 *data;
Packit a6ee4b
  guint size;
Packit a6ee4b
  guint probability;
Packit a6ee4b
  GstCaps *data;
Packit a6ee4b
} MyTypeFind;
Packit a6ee4b
static void
Packit a6ee4b
my_peek (gpointer data, gint64 offset, guint size)
Packit a6ee4b
{
Packit a6ee4b
  MyTypeFind *find = (MyTypeFind *) data;
Packit a6ee4b
  if (offset >= 0 && offset + size <= find->size) {
Packit a6ee4b
    return find->data + offset;
Packit a6ee4b
  }
Packit a6ee4b
  return NULL;
Packit a6ee4b
}
Packit a6ee4b
static void
Packit a6ee4b
my_suggest (gpointer data, guint probability, GstCaps *caps)
Packit a6ee4b
{
Packit a6ee4b
  MyTypeFind *find = (MyTypeFind *) data;
Packit a6ee4b
  if (probability > find->probability) {
Packit a6ee4b
    find->probability = probability;
Packit a6ee4b
    gst_caps_replace (&find->caps, caps);
Packit a6ee4b
  }
Packit a6ee4b
}
Packit a6ee4b
static GstCaps *
Packit a6ee4b
find_type (guint8 *data, guint size)
Packit a6ee4b
{
Packit a6ee4b
  GList *walk, *type_list;
Packit a6ee4b
  MyTypeFind find = {data, size, 0, NULL};
Packit a6ee4b
  GstTypeFind gst_find = {my_peek, my_suggest, &find, };
Packit a6ee4b
  walk = type_list = gst_type_find_factory_get_list ();
Packit a6ee4b
  while (walk) {
Packit a6ee4b
    GstTypeFindFactory *factory = GST_TYPE_FIND_FACTORY (walk->data);
Packit a6ee4b
    walk = g_list_next (walk)
Packit a6ee4b
    gst_type_find_factory_call_function (factory, &gst_find);
Packit a6ee4b
  }
Packit a6ee4b
  g_list_free (type_list);
Packit a6ee4b
  return find.caps;
Packit a6ee4b
};
Packit a6ee4b
      
Packit a6ee4b
    
Packit a6ee4b
  
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Functions

Packit a6ee4b
Packit a6ee4b

gst_type_find_factory_get_list ()

Packit a6ee4b
GList *
Packit a6ee4b
gst_type_find_factory_get_list (void);
Packit a6ee4b

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

Packit a6ee4b
list using gst_plugin_feature_list_free().

Packit a6ee4b

The returned factories are sorted by highest rank first, and then by

Packit a6ee4b
factory name.

Packit a6ee4b

Free-function: gst_plugin_feature_list_free

Packit a6ee4b
Packit a6ee4b

Returns

Packit a6ee4b

the list of all

Packit a6ee4b
registered GstTypeFindFactory. 

Packit a6ee4b

[transfer full][element-type Gst.TypeFindFactory]

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Packit a6ee4b
Packit a6ee4b

gst_type_find_factory_get_extensions ()

Packit a6ee4b
const gchar * const *
Packit a6ee4b
gst_type_find_factory_get_extensions (GstTypeFindFactory *factory);
Packit a6ee4b

Gets the extensions associated with a GstTypeFindFactory. The returned

Packit a6ee4b
array should not be changed. If you need to change stuff in it, you should
Packit a6ee4b
copy it using g_strdupv().  This function may return NULL to indicate
Packit a6ee4b
a 0-length list.

Packit a6ee4b
Packit a6ee4b

Parameters

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

factory

Packit a6ee4b

A GstTypeFindFactory

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Returns

Packit a6ee4b

a NULL-terminated array of extensions associated with this factory.

Packit a6ee4b

[transfer none][array zero-terminated=1][element-type utf8][nullable]

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Packit a6ee4b
Packit a6ee4b

gst_type_find_factory_get_caps ()

Packit a6ee4b
GstCaps *
Packit a6ee4b
gst_type_find_factory_get_caps (GstTypeFindFactory *factory);
Packit a6ee4b

Gets the GstCaps associated with a typefind factory.

Packit a6ee4b
Packit a6ee4b

Parameters

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

factory

Packit a6ee4b

A GstTypeFindFactory

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Returns

Packit a6ee4b

the GstCaps associated with this factory.

Packit a6ee4b

[transfer none]

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Packit a6ee4b
Packit a6ee4b

gst_type_find_factory_has_function ()

Packit a6ee4b
gboolean
Packit a6ee4b
gst_type_find_factory_has_function (GstTypeFindFactory *factory);
Packit a6ee4b

Check whether the factory has a typefind function. Typefind factories

Packit a6ee4b
without typefind functions are a last-effort fallback mechanism to
Packit a6ee4b
e.g. assume a certain media type based on the file extension.

Packit a6ee4b
Packit a6ee4b

Parameters

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

factory

Packit a6ee4b

A GstTypeFindFactory

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Returns

Packit a6ee4b

TRUE if the factory has a typefind functions set, otherwise FALSE

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Packit a6ee4b
Packit a6ee4b

gst_type_find_factory_call_function ()

Packit a6ee4b
void
Packit a6ee4b
gst_type_find_factory_call_function (GstTypeFindFactory *factory,
Packit a6ee4b
                                     GstTypeFind *find);
Packit a6ee4b

Calls the GstTypeFindFunction associated with this factory.

Packit a6ee4b
Packit a6ee4b

Parameters

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

factory

Packit a6ee4b

A GstTypeFindFactory

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

find

Packit a6ee4b

a properly setup GstTypeFind entry. The get_data

Packit a6ee4b
and suggest_type members must be set. 

Packit a6ee4b
[transfer none]
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Types and Values

Packit a6ee4b
Packit a6ee4b

GstTypeFindFactory

Packit a6ee4b
typedef struct _GstTypeFindFactory GstTypeFindFactory;
Packit a6ee4b

Opaque object that stores information about a typefind function.

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Generated by GTK-Doc V1.28
Packit a6ee4b
</body>
Packit a6ee4b
</html>