GstPluginFeature

GstPluginFeature — Base class for contents of a GstPlugin

Synopsis

#include <gst/gst.h>

                    GstPluginFeature;
gboolean            (*GstPluginFeatureFilter)           (GstPluginFeature *feature,
                                                         gpointer user_data);
enum                GstRank;
void                gst_plugin_feature_set_rank         (GstPluginFeature *feature,
                                                         guint rank);
#define             gst_plugin_feature_set_name         (feature,
                                                         name)
guint               gst_plugin_feature_get_rank         (GstPluginFeature *feature);
#define             gst_plugin_feature_get_name         (feature)
GstPlugin *         gst_plugin_feature_get_plugin       (GstPluginFeature *feature);
GstPluginFeature *  gst_plugin_feature_load             (GstPluginFeature *feature);
GList *             gst_plugin_feature_list_copy        (GList *list);
void                gst_plugin_feature_list_free        (GList *list);
#define             GST_PLUGIN_FEATURE_LIST_DEBUG       (list)
gboolean            gst_plugin_feature_check_version    (GstPluginFeature *feature,
                                                         guint min_major,
                                                         guint min_minor,
                                                         guint min_micro);
gint                gst_plugin_feature_rank_compare_func
                                                        (gconstpointer p1,
                                                         gconstpointer p2);

Object Hierarchy

  GObject
   +----GInitiallyUnowned
         +----GstObject
               +----GstPluginFeature
                     +----GstElementFactory
                     +----GstTypeFindFactory

Description

This is a base class for anything that can be added to a GstPlugin.

Details

GstPluginFeature

typedef struct _GstPluginFeature GstPluginFeature;

Opaque GstPluginFeature structure.


GstPluginFeatureFilter ()

gboolean            (*GstPluginFeatureFilter)           (GstPluginFeature *feature,
                                                         gpointer user_data);

A function that can be used with e.g. gst_registry_feature_filter() to get a list of pluginfeature that match certain criteria.

feature :

the pluginfeature to check

user_data :

the user_data that has been passed on e.g. gst_registry_feature_filter()

Returns :

TRUE for a positive match, FALSE otherwise

enum GstRank

typedef enum {
  GST_RANK_NONE                 = 0,
  GST_RANK_MARGINAL             = 64,
  GST_RANK_SECONDARY            = 128,
  GST_RANK_PRIMARY              = 256
} GstRank;

Element priority ranks. Defines the order in which the autoplugger (or similar rank-picking mechanisms, such as e.g. gst_element_make_from_uri()) will choose this element over an alternative one with the same function.

These constants serve as a rough guidance for defining the rank of a GstPluginFeature. Any value is valid, including values bigger than GST_RANK_PRIMARY.

GST_RANK_NONE

will be chosen last or not at all

GST_RANK_MARGINAL

unlikely to be chosen

GST_RANK_SECONDARY

likely to be chosen

GST_RANK_PRIMARY

will be chosen first

gst_plugin_feature_set_rank ()

void                gst_plugin_feature_set_rank         (GstPluginFeature *feature,
                                                         guint rank);

Specifies a rank for a plugin feature, so that autoplugging uses the most appropriate feature.

feature :

feature to rank

rank :

rank value - higher number means more priority rank

gst_plugin_feature_set_name()

#define                 gst_plugin_feature_set_name(feature,name) gst_object_set_name(GST_OBJECT_CAST(feature),name)

Sets the name of the plugin feature, getting rid of the old name if there was one.

feature :

a GstPluginFeature to set the name of.

name :

the new name

gst_plugin_feature_get_rank ()

guint               gst_plugin_feature_get_rank         (GstPluginFeature *feature);

Gets the rank of a plugin feature.

feature :

a feature

Returns :

The rank of the feature

gst_plugin_feature_get_name()

#define                 gst_plugin_feature_get_name(feature)      GST_OBJECT_NAME(feature)

Returns the name of feature. For a nameless plugin feature, this returns NULL.

feature :

a GstPluginFeature to get the name of feature.

Returns :

the name of feature. MT safe. [transfer none]

gst_plugin_feature_get_plugin ()

GstPlugin *         gst_plugin_feature_get_plugin       (GstPluginFeature *feature);

Get the plugin that provides this feature.

feature :

a feature

Returns :

the plugin that provides this feature, or NULL. Unref with gst_object_unref() when no longer needed. [transfer full]

gst_plugin_feature_load ()

GstPluginFeature *  gst_plugin_feature_load             (GstPluginFeature *feature);

Loads the plugin containing feature if it's not already loaded. feature is unaffected; use the return value instead.

Normally this function is used like this:

1
2
3
4
5
6
GstPluginFeature *loaded_feature;

loaded_feature = gst_plugin_feature_load (feature);
// presumably, we're no longer interested in the potentially-unloaded feature
gst_object_unref (feature);
feature = loaded_feature;

feature :

the plugin feature to check. [transfer none]

Returns :

a reference to the loaded feature, or NULL on error. [transfer full]

gst_plugin_feature_list_copy ()

GList *             gst_plugin_feature_list_copy        (GList *list);

Copies the list of features. Caller should call gst_plugin_feature_list_free when done with the list.

list :

list of GstPluginFeature. [transfer none][element-type Gst.PluginFeature]

Returns :

a copy of list, with each feature's reference count incremented. [transfer full][element-type Gst.PluginFeature]

gst_plugin_feature_list_free ()

void                gst_plugin_feature_list_free        (GList *list);

Unrefs each member of list, then frees the list.

list :

list of GstPluginFeature. [transfer full][element-type Gst.PluginFeature]

GST_PLUGIN_FEATURE_LIST_DEBUG()

#define GST_PLUGIN_FEATURE_LIST_DEBUG(list) gst_plugin_feature_list_debug(list)

Debug the plugin feature names in list.

list :

a GList of plugin features. [transfer none][element-type Gst.PluginFeature]

gst_plugin_feature_check_version ()

gboolean            gst_plugin_feature_check_version    (GstPluginFeature *feature,
                                                         guint min_major,
                                                         guint min_minor,
                                                         guint min_micro);

Checks whether the given plugin feature is at least the required version

feature :

a feature

min_major :

minimum required major version

min_minor :

minimum required minor version

min_micro :

minimum required micro version

Returns :

TRUE if the plugin feature has at least the required version, otherwise FALSE.

gst_plugin_feature_rank_compare_func ()

gint                gst_plugin_feature_rank_compare_func
                                                        (gconstpointer p1,
                                                         gconstpointer p2);

Compares the two given GstPluginFeature instances. This function can be used as a GCompareFunc when sorting by rank and then by name.

p1 :

a GstPluginFeature

p2 :

a GstPluginFeature

Returns :

negative value if the rank of p1 > the rank of p2 or the ranks are equal but the name of p1 comes before the name of p2; zero if the rank and names are equal; positive value if the rank of p1 < the rank of p2 or the ranks are equal but the name of p2 comes after the name of p1

See Also

GstPlugin