GstTypeFind

GstTypeFind — Stream type detection

Synopsis


#include <gst/gst.h>


                    GstTypeFind;
void                (*GstTypeFindFunction)              (GstTypeFind *find,
                                                         gpointer data);
enum                GstTypeFindProbability;
guint8*             gst_type_find_peek                  (GstTypeFind *find,
                                                         gint64 offset,
                                                         guint size);
void                gst_type_find_suggest               (GstTypeFind *find,
                                                         guint probability,
                                                         const GstCaps *caps);
guint64             gst_type_find_get_length            (GstTypeFind *find);
gboolean            gst_type_find_register              (GstPlugin *plugin,
                                                         const gchar *name,
                                                         guint rank,
                                                         GstTypeFindFunction func,
                                                         gchar **extensions,
                                                         const GstCaps *possible_caps,
                                                         gpointer data,
                                                         GDestroyNotify data_notify);


Description

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

Last reviewed on 2005-11-09 (0.9.4)

Details

GstTypeFind

typedef struct {
  /* private to the caller of the typefind function */
  guint8 *	(* peek)	(gpointer		data,
				 gint64	         	offset,
				 guint			size);
  void		(* suggest)	(gpointer		data,
				 guint			probability,
				 const GstCaps *	caps);

  gpointer	data;

  /* optional */
  guint64	(* get_length)	(gpointer		data);
} GstTypeFind;

Object that stores typefind callbacks. To use with GstTypeFindFactory.

peek () Method to peek data.
suggest () Method to suggest GstCaps with a given probability.
gpointer data; The data used by the caller of the typefinding function.
get_length () Returns the length of current data.

GstTypeFindFunction ()

void                (*GstTypeFindFunction)              (GstTypeFind *find,
                                                         gpointer data);

A function that will be called by typefinding.

find : A GstTypeFind structure
data : optionnal data to pass to the function

enum GstTypeFindProbability

typedef enum {
  GST_TYPE_FIND_MINIMUM = 1,
  GST_TYPE_FIND_POSSIBLE = 50,
  GST_TYPE_FIND_LIKELY = 80,
  GST_TYPE_FIND_NEARLY_CERTAIN = 99,
  GST_TYPE_FIND_MAXIMUM = 100
} GstTypeFindProbability;

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

GST_TYPE_FIND_MINIMUM unlikely typefind
GST_TYPE_FIND_POSSIBLE possible type detected
GST_TYPE_FIND_LIKELY likely a type was detected
GST_TYPE_FIND_NEARLY_CERTAIN nearly certain that a type was detected
GST_TYPE_FIND_MAXIMUM very certain a type was detected.

gst_type_find_peek ()

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.

find : The GstTypeFind object the function was called with
offset : The offset
size : The number of bytes to return
Returns : the requested data, or NULL if that data is not available.

gst_type_find_suggest ()

void                gst_type_find_suggest               (GstTypeFind *find,
                                                         guint probability,
                                                         const 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.

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_get_length ()

guint64             gst_type_find_get_length            (GstTypeFind *find);

Get the length of the data stream.

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_register ()

gboolean            gst_type_find_register              (GstPlugin *plugin,
                                                         const gchar *name,
                                                         guint rank,
                                                         GstTypeFindFunction func,
                                                         gchar **extensions,
                                                         const 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.

plugin : A GstPlugin.
name : The name for registering
rank : The rank (or importance) of this typefind function
func : The GstTypeFindFunction to use
extensions : Optional extensions that could belong to this type
possible_caps : 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