Blame docs/gst/html/GstTypeFindFactory.html

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

GstTypeFindFactory

Packit f546b1

GstTypeFindFactory — Information about registered typefind functions

Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1

Functions

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

Types and Values

Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1
 
Packit f546b1
GstTypeFindFactory
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1

Object Hierarchy

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

Includes

Packit f546b1
#include <gst/gstprotection.h>
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1

Description

Packit f546b1

These functions allow querying informations about registered typefind

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

Packit f546b1

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

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

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

Packit f546b1
Packit f546b1
Packit f546b1

Functions

Packit f546b1
Packit f546b1

gst_type_find_factory_get_list ()

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

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

Packit f546b1
list using gst_plugin_feature_list_free().

Packit f546b1

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

Packit f546b1
factory name.

Packit f546b1

Free-function: gst_plugin_feature_list_free

Packit f546b1
Packit f546b1

Returns

Packit f546b1

the list of all

Packit f546b1
registered GstTypeFindFactory. 

Packit f546b1

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

Packit f546b1
Packit f546b1
Packit f546b1

Packit f546b1
Packit f546b1

gst_type_find_factory_get_extensions ()

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

Gets the extensions associated with a GstTypeFindFactory. The returned

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

Packit f546b1
Packit f546b1

Parameters

Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1

factory

Packit f546b1

A GstTypeFindFactory

Packit f546b1
 
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1

Returns

Packit f546b1

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

Packit f546b1

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

Packit f546b1
Packit f546b1
Packit f546b1

Packit f546b1
Packit f546b1

gst_type_find_factory_get_caps ()

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

Gets the GstCaps associated with a typefind factory.

Packit f546b1
Packit f546b1

Parameters

Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1

factory

Packit f546b1

A GstTypeFindFactory

Packit f546b1
 
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1

Returns

Packit f546b1

the GstCaps associated with this factory.

Packit f546b1

[transfer none]

Packit f546b1
Packit f546b1
Packit f546b1

Packit f546b1
Packit f546b1

gst_type_find_factory_has_function ()

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

Check whether the factory has a typefind function. Typefind factories

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

Packit f546b1
Packit f546b1

Parameters

Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1

factory

Packit f546b1

A GstTypeFindFactory

Packit f546b1
 
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1

Returns

Packit f546b1

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

Packit f546b1
Packit f546b1
Packit f546b1

Packit f546b1
Packit f546b1

gst_type_find_factory_call_function ()

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

Calls the GstTypeFindFunction associated with this factory.

Packit f546b1
Packit f546b1

Parameters

Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1

factory

Packit f546b1

A GstTypeFindFactory

Packit f546b1
 
Packit f546b1
Packit f546b1
Packit f546b1

find

Packit f546b1

a properly setup GstTypeFind entry. The get_data

Packit f546b1
and suggest_type members must be set. 

Packit f546b1
[transfer none]
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1

Types and Values

Packit f546b1
Packit f546b1

GstTypeFindFactory

Packit f546b1
typedef struct _GstTypeFindFactory GstTypeFindFactory;
Packit f546b1

Opaque object that stores information about a typefind function.

Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1
Packit f546b1

Generated by GTK-Doc V1.27
Packit f546b1
</body>
Packit f546b1
</html>