GstTypefind

The following functions allow you to detect the media type of an unknown stream.

GstTypeFind

Object that stores typefind callbacks. To use with GstTypeFindFactory.

Members

data (gpointer) –

The data used by the caller of the typefinding function.


Methods

gst_type_find_get_length

guint64
gst_type_find_get_length (GstTypeFind * find)

Get the length of the data stream.

Parameters:

find

The GstTypeFind the function was called with

Returns

The length of the data stream, or 0 if it is not available.


gst_type_find_peek

const guint8 *
gst_type_find_peek (GstTypeFind * find,
                    gint64 offset,
                    guint size)

Returns the size bytes of the stream to identify beginning at offset. If offset is a positive number, the offset is relative to the beginning of the stream, if offset is a negative number the offset is relative to the end of the stream. The returned memory is valid until the typefinding function returns and must not be freed.

Parameters:

find

The GstTypeFind object the function was called with

offset

The offset

size

The number of bytes to return

Returns ( [transfer: none][nullable])

the requested data, or NULL if that data is not available.


gst_type_find_suggest

gst_type_find_suggest (GstTypeFind * find,
                       guint probability,
                       GstCaps * caps)

If a GstTypeFindFunction calls this function it suggests the caps with the given probability. A GstTypeFindFunction may supply different suggestions in one call. It is up to the caller of the GstTypeFindFunction to interpret these values.

Parameters:

find

The GstTypeFind object the function was called with

probability

The probability in percent that the suggestion is right

caps

The fixed GstCaps to suggest


gst_type_find_suggest_empty_simple

gst_type_find_suggest_empty_simple (GstTypeFind * find,
                                    guint probability,
                                    const char* media_type)

If a GstTypeFindFunction calls this function it suggests caps of the given media_type with the given probability.

This function is similar to gst_type_find_suggest_simple, but uses a GstCaps with no fields.

Parameters:

find

The GstTypeFind object the function was called with

probability

The probability in percent that the suggestion is right

media_type

the media type of the suggested caps

Since : 1.20


gst_type_find_suggest_simple

gst_type_find_suggest_simple (GstTypeFind * find,
                              guint probability,
                              const char* media_type,
                              const char* fieldname,
                              ... ...)

If a GstTypeFindFunction calls this function it suggests the caps with the given probability. A GstTypeFindFunction may supply different suggestions in one call. It is up to the caller of the GstTypeFindFunction to interpret these values.

This function is similar to gst_type_find_suggest, only that instead of passing a GstCaps argument you can create the caps on the fly in the same way as you can with gst_caps_new_simple.

Make sure you terminate the list of arguments with a NULL argument and that the values passed have the correct type (in terms of width in bytes when passed to the vararg function - this applies particularly to gdouble and guint64 arguments).

Parameters:

find

The GstTypeFind object the function was called with

probability

The probability in percent that the suggestion is right

media_type

the media type of the suggested caps

fieldname ( [allow-none])

first field of the suggested caps, or NULL

...

additional arguments to the suggested caps in the same format as the arguments passed to gst_structure_new (ie. triplets of field name, field GType and field value). If fieldname is NULL, this list must be exactly one NULL.


Functions

gst_type_find_register

gboolean
gst_type_find_register (GstPlugin * plugin,
                        const gchar * name,
                        guint rank,
                        GstTypeFindFunction func,
                        const gchar * extensions,
                        GstCaps * possible_caps,
                        gpointer data,
                        GDestroyNotify data_notify)

Registers a new typefind function to be used for typefinding. After registering this function will be available for typefinding. This function is typically called during an element's plugin initialization.

Parameters:

plugin ( [nullable])

A GstPlugin, or NULL for a static typefind function

name

The name for registering

rank

The rank (or importance) of this typefind function

func

The GstTypeFindFunction to use

extensions ( [nullable])

Optional comma-separated list of extensions that could belong to this type

possible_caps ( [nullable])

Optionally the caps that could be returned when typefinding succeeds

data

Optional user data. This user data must be available until the plugin is unloaded.

data_notify

a GDestroyNotify that will be called on data when the plugin is unloaded.

Returns

TRUE on success, FALSE otherwise


Function Macros

GST_TYPE_FIND_REGISTER

#define GST_TYPE_FIND_REGISTER(t_f, plugin) G_PASTE(gst_type_find_register_, t_f) (plugin)

This macro can be used to register a type find into a GstPlugin. This method will be usually called in the plugin init function but can also be called with a NULL plugin.

Parameters:

t_f

The type find name in lower case, with words separated by '_'.

plugin

The GstPlugin where to register the type find.

Since : 1.20


GST_TYPE_FIND_REGISTER_DECLARE

#define GST_TYPE_FIND_REGISTER_DECLARE(t_f) \
G_BEGIN_DECLS \
gboolean G_PASTE(gst_type_find_register_, t_f) (GstPlugin * plugin); \
G_END_DECLS

This macro can be used to declare a new type find. It has to be used in combination with GST_TYPE_FIND_REGISTER_DEFINE macro and must be placed outside any block to declare the type find registration function.

Parameters:

t_f

The type find name in lower case, with words separated by '_'.

Since : 1.20


GST_TYPE_FIND_REGISTER_DEFINE

#define GST_TYPE_FIND_REGISTER_DEFINE(t_f, t_f_n, r, func, extensions, possible_caps, data, data_notify) \
G_BEGIN_DECLS \
gboolean G_PASTE (gst_type_find_register_, t_f) (GstPlugin * plugin) \
{ \
  return gst_type_find_register (plugin, t_f_n, r, func, extensions, possible_caps, data, data_notify); \
} \
G_END_DECLS

A convenience macro to define the entry point of a type find gst_type_find_register_*(GstPlugin* plugin).

Parameters:

t_f

The type find name in lower case, with words separated by '_'. Used to generate gst_type_find_register_*(GstPlugin* plugin).

t_f_n

The public name of the type find

r

The GstRank of the type find (higher rank means more importance when autoplugging, see GstRank)

func

The GstTypeFindFunction to use

extensions ( [nullable])

Optional comma-separated list of extensions that could belong to this type

possible_caps ( [nullable])

Optionally the caps that could be returned when typefinding succeeds

data

Optional user data. This user data must be available until the plugin is unloaded.

data_notify

a GDestroyNotify that will be called on data when the plugin is unloaded.

Since : 1.20


GST_TYPE_FIND_REGISTER_DEFINE_CUSTOM

#define GST_TYPE_FIND_REGISTER_DEFINE_CUSTOM(type_find, register_func) \
G_BEGIN_DECLS \
gboolean G_PASTE (gst_type_find_register_, type_find) (GstPlugin * plugin) \
{ \
  return register_func (plugin); \
} \
G_END_DECLS

A convenience macro to define the entry point of a type find gst_type_find_register_*(GstPlugin* plugin) which uses register_func as the main registration method for the type find. As an example, you may define the type find named "custom-typefind" as following using type_find_register_custom:

GST_TYPE_FIND_REGISTER_DEFINE_CUSTOM (plugin, type_find_register_custom)

Parameters:

type_find

The type find name in lower case, with words separated by '_'. Used to generate gst_type_find_register_*(GstPlugin* plugin).

register_func

pointer to a method with the format: gboolean register_func (GstPlugin* plugin);

Since : 1.20


Enumerations

GstTypeFindProbability

The probability of the typefind function. Higher values have more certainty in doing a reliable typefind.

Members
GST_TYPE_FIND_NONE (0) –

type undetected.

GST_TYPE_FIND_MINIMUM (1) –

unlikely typefind.

GST_TYPE_FIND_POSSIBLE (50) –

possible type detected.

GST_TYPE_FIND_LIKELY (80) –

likely a type was detected.

GST_TYPE_FIND_NEARLY_CERTAIN (99) –

nearly certain that a type was detected.

GST_TYPE_FIND_MAXIMUM (100) –

very certain a type was detected.


Callbacks

GstTypeFindFunction

(*GstTypeFindFunction) (GstTypeFind * find,
                        gpointer user_data)

A function that will be called by typefinding.

Parameters:

find

A GstTypeFind structure

user_data

optional data to pass to the function


The results of the search are