![]() |
![]() |
![]() |
GStreamer 1.0 Core Reference Manual | ![]() |
---|---|---|---|---|
Top | Description | Object Hierarchy |
#include <gst/gst.h> GstElementFactory; gboolean gst_element_register (GstPlugin *plugin
,const gchar *name
,guint rank
,GType type
); GstElementFactory * gst_element_factory_find (const gchar *name
); GType gst_element_factory_get_element_type (GstElementFactory *factory
); const gchar * gst_element_factory_get_metadata (GstElementFactory *factory
,const gchar *key
); gchar ** gst_element_factory_get_metadata_keys (GstElementFactory *factory
); guint gst_element_factory_get_num_pad_templates (GstElementFactory *factory
); GstURIType gst_element_factory_get_uri_type (GstElementFactory *factory
); gboolean gst_element_factory_has_interface (GstElementFactory *factory
,const gchar *interfacename
); GstElement* gst_element_factory_create (GstElementFactory *factory
,const gchar *name
); GstElement* gst_element_factory_make (const gchar *factoryname
,const gchar *name
); gboolean gst_element_factory_can_sink_all_caps (GstElementFactory *factory
,const GstCaps *caps
); gboolean gst_element_factory_can_src_all_caps (GstElementFactory *factory
,const GstCaps *caps
); gboolean gst_element_factory_can_sink_any_caps (GstElementFactory *factory
,const GstCaps *caps
); gboolean gst_element_factory_can_src_any_caps (GstElementFactory *factory
,const GstCaps *caps
); const GList * gst_element_factory_get_static_pad_templates (GstElementFactory *factory
); typedef GstElementFactoryListType; #define GST_ELEMENT_FACTORY_TYPE_ANY #define GST_ELEMENT_FACTORY_TYPE_AUDIOVIDEO_SINKS #define GST_ELEMENT_FACTORY_TYPE_AUDIO_ENCODER #define GST_ELEMENT_FACTORY_TYPE_DECODABLE #define GST_ELEMENT_FACTORY_TYPE_DECODER #define GST_ELEMENT_FACTORY_TYPE_DEMUXER #define GST_ELEMENT_FACTORY_TYPE_DEPAYLOADER #define GST_ELEMENT_FACTORY_TYPE_ENCODER #define GST_ELEMENT_FACTORY_TYPE_FORMATTER #define GST_ELEMENT_FACTORY_TYPE_MAX_ELEMENTS #define GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO #define GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE #define GST_ELEMENT_FACTORY_TYPE_MEDIA_METADATA #define GST_ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE #define GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO #define GST_ELEMENT_FACTORY_TYPE_MEDIA_ANY #define GST_ELEMENT_FACTORY_TYPE_MUXER #define GST_ELEMENT_FACTORY_TYPE_PARSER #define GST_ELEMENT_FACTORY_TYPE_PAYLOADER #define GST_ELEMENT_FACTORY_TYPE_SINK #define GST_ELEMENT_FACTORY_TYPE_SRC #define GST_ELEMENT_FACTORY_TYPE_VIDEO_ENCODER GList * gst_element_factory_list_filter (GList *list
,const GstCaps *caps
,GstPadDirection direction
,gboolean subsetonly
); GList * gst_element_factory_list_get_elements (GstElementFactoryListType type
,GstRank minrank
); gboolean gst_element_factory_list_is_type (GstElementFactory *factory
,GstElementFactoryListType type
);
GObject +----GInitiallyUnowned +----GstObject +----GstPluginFeature +----GstElementFactory
GstElementFactory is used to create instances of elements. A GstElementfactory can be added to a GstPlugin as it is also a GstPluginFeature.
Use the gst_element_factory_find()
and gst_element_factory_create()
functions to create element instances or use gst_element_factory_make()
as a
convenient shortcut.
The following code example shows you how to create a GstFileSrc element.
Example 6. Using an element factory
1 2 3 4 5 6 7 8 9 10 11 12 |
#include <gst/gst.h> GstElement *src; GstElementFactory *srcfactory; gst_init (&argc, &argv); srcfactory = gst_element_factory_find ("filesrc"); g_return_if_fail (srcfactory != NULL); src = gst_element_factory_create (srcfactory, "src"); g_return_if_fail (src != NULL); ... |
Last reviewed on 2005-11-23 (0.9.5)
typedef struct _GstElementFactory GstElementFactory;
The opaque GstElementFactory data structure.
gboolean gst_element_register (GstPlugin *plugin
,const gchar *name
,guint rank
,GType type
);
Create a new elementfactory capable of instantiating objects of the
type
and add the factory to plugin
.
|
GstPlugin to register the element with, or NULL for a static element. [allow-none] |
|
name of elements of this type |
|
rank of element (higher rank means more importance when autoplugging) |
|
GType of element to register |
Returns : |
TRUE, if the registering succeeded, FALSE on error |
GstElementFactory * gst_element_factory_find (const gchar *name
);
Search for an element factory of the given name. Refs the returned element factory; caller is responsible for unreffing.
|
name of factory to find |
Returns : |
GstElementFactory if found, NULL otherwise. [transfer full] |
GType gst_element_factory_get_element_type
(GstElementFactory *factory
);
Get the GType for elements managed by this factory. The type can
only be retrieved if the element factory is loaded, which can be
assured with gst_plugin_feature_load()
.
const gchar * gst_element_factory_get_metadata (GstElementFactory *factory
,const gchar *key
);
Get the metadata on factory
with key
.
|
a GstElementFactory |
|
a key |
Returns : |
the metadata with key on factory or NULL when there was no
metadata with the given key .
|
gchar ** gst_element_factory_get_metadata_keys
(GstElementFactory *factory
);
Get the available keys for the metadata on factory
.
|
a GstElementFactory |
Returns : |
a NULL -terminated array of key strings, or NULL when there is no
metadata. Free with g_strfreev() when no longer needed. [transfer full][element-type utf8][array zero-terminated=1]
|
guint gst_element_factory_get_num_pad_templates
(GstElementFactory *factory
);
Gets the number of pad_templates in this factory.
|
a GstElementFactory |
Returns : |
the number of pad_templates |
GstURIType gst_element_factory_get_uri_type (GstElementFactory *factory
);
Gets the type of URIs the element supports or GST_URI_UNKNOWN if none.
|
a GstElementFactory |
Returns : |
type of URIs this element supports |
gboolean gst_element_factory_has_interface (GstElementFactory *factory
,const gchar *interfacename
);
Check if factory
implements the interface with name interfacename
.
|
a GstElementFactory |
|
an interface name |
Returns : |
TRUE when factory implement the interface.
|
GstElement* gst_element_factory_create (GstElementFactory *factory
,const gchar *name
);
Create a new element of the type defined by the given elementfactory. It will be given the name supplied, since all elements require a name as their first argument.
|
factory to instantiate |
|
name of new element, or NULL to automatically create a unique name. [allow-none] |
Returns : |
new GstElement or NULL if the element couldn't be created. [transfer floating] |
GstElement* gst_element_factory_make (const gchar *factoryname
,const gchar *name
);
Create a new element of the type defined by the given element factory. If name is NULL, then the element will receive a guaranteed unique name, consisting of the element factory name and a number. If name is given, it will be given the name supplied.
|
a named factory to instantiate |
|
name of new element, or NULL to automatically create a unique name. [allow-none] |
Returns : |
new GstElement or NULL if unable to create element. [transfer floating] |
gboolean gst_element_factory_can_sink_all_caps (GstElementFactory *factory
,const GstCaps *caps
);
Checks if the factory can sink all possible capabilities.
|
factory to query |
|
the caps to check |
Returns : |
TRUE if the caps are fully compatible.
|
gboolean gst_element_factory_can_src_all_caps (GstElementFactory *factory
,const GstCaps *caps
);
Checks if the factory can src all possible capabilities.
|
factory to query |
|
the caps to check |
Returns : |
TRUE if the caps are fully compatible.
|
gboolean gst_element_factory_can_sink_any_caps (GstElementFactory *factory
,const GstCaps *caps
);
Checks if the factory can sink any possible capability.
|
factory to query |
|
the caps to check |
Returns : |
TRUE if the caps have a common subset.
|
gboolean gst_element_factory_can_src_any_caps (GstElementFactory *factory
,const GstCaps *caps
);
Checks if the factory can src any possible capability.
|
factory to query |
|
the caps to check |
Returns : |
TRUE if the caps have a common subset.
|
const GList * gst_element_factory_get_static_pad_templates
(GstElementFactory *factory
);
Gets the GList of GstStaticPadTemplate for this factory.
|
a GstElementFactory |
Returns : |
the static pad templates. [transfer none][element-type Gst.StaticPadTemplate] |
#define GST_ELEMENT_FACTORY_TYPE_ANY ((G_GUINT64_CONSTANT (1) << 49) - 1)
Elements of any of the defined GST_ELEMENT_FACTORY_LIST types
Value: 562949953421311 Type: GstElementFactoryListType
#define GST_ELEMENT_FACTORY_TYPE_AUDIOVIDEO_SINKS (GST_ELEMENT_FACTORY_TYPE_SINK | GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO | GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO | GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE)
All sinks handling audio, video or image media types
Value: 3940649673949188 Type: GstElementFactoryListType
#define GST_ELEMENT_FACTORY_TYPE_AUDIO_ENCODER (GST_ELEMENT_FACTORY_TYPE_ENCODER | GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO)
All encoders handling audio media types
Value: 1125899906842626 Type: GstElementFactoryListType
#define GST_ELEMENT_FACTORY_TYPE_DECODABLE
All elements used to 'decode' streams (decoders, demuxers, parsers, depayloaders)
Value: 353 Type: GstElementFactoryListType
#define GST_ELEMENT_FACTORY_TYPE_DECODER (G_GUINT64_CONSTANT (1) << 0)
#define GST_ELEMENT_FACTORY_TYPE_DEMUXER (G_GUINT64_CONSTANT (1) << 5)
#define GST_ELEMENT_FACTORY_TYPE_DEPAYLOADER (G_GUINT64_CONSTANT (1) << 8)
#define GST_ELEMENT_FACTORY_TYPE_ENCODER (G_GUINT64_CONSTANT (1) << 1)
#define GST_ELEMENT_FACTORY_TYPE_FORMATTER (G_GUINT64_CONSTANT (1) << 9)
#define GST_ELEMENT_FACTORY_TYPE_MAX_ELEMENTS (G_GUINT64_CONSTANT (1) << 48)
#define GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO (G_GUINT64_CONSTANT (1) << 50)
#define GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE (G_GUINT64_CONSTANT (1) << 51)
#define GST_ELEMENT_FACTORY_TYPE_MEDIA_METADATA (G_GUINT64_CONSTANT (1) << 53)
#define GST_ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE (G_GUINT64_CONSTANT (1) << 52)
#define GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO (G_GUINT64_CONSTANT (1) << 49)
#define GST_ELEMENT_FACTORY_TYPE_MEDIA_ANY (~G_GUINT64_CONSTANT (0) << 48)
Elements matching any of the defined GST_ELEMENT_FACTORY_TYPE_MEDIA types
Note: Do not use this if you wish to not filter against any of the defined media types. If you wish to do this, simply don't specify any GST_ELEMENT_FACTORY_TYPE_MEDIA flag.
Value: 18446462598732840960 Type: GstElementFactoryListType
#define GST_ELEMENT_FACTORY_TYPE_PARSER (G_GUINT64_CONSTANT (1) << 6)
#define GST_ELEMENT_FACTORY_TYPE_PAYLOADER (G_GUINT64_CONSTANT (1) << 7)
#define GST_ELEMENT_FACTORY_TYPE_VIDEO_ENCODER (GST_ELEMENT_FACTORY_TYPE_ENCODER | GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO | GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE)
All encoders handling video or image media types
Value: 2814749767106562 Type: GstElementFactoryListType
GList * gst_element_factory_list_filter (GList *list
,const GstCaps *caps
,GstPadDirection direction
,gboolean subsetonly
);
Filter out all the elementfactories in list
that can handle caps
in
the given direction.
If subsetonly
is TRUE
, then only the elements whose pads templates
are a complete superset of caps
will be returned. Else any element
whose pad templates caps can intersect with caps
will be returned.
|
a GList of GstElementFactory to filter. [transfer none][element-type Gst.ElementFactory] |
|
a GstCaps |
|
a GstPadDirection to filter on |
|
whether to filter on caps subsets or not. |
Returns : |
a GList of GstElementFactory elements that match the given requisits. Use gst_plugin_feature_list_free after usage. [transfer full][element-type Gst.ElementFactory] |
GList * gst_element_factory_list_get_elements (GstElementFactoryListType type
,GstRank minrank
);
Get a list of factories that match the given type
. Only elements
with a rank greater or equal to minrank
will be returned.
The list of factories is returned by decreasing rank.
|
a GstElementFactoryListType |
|
Minimum rank |
Returns : |
a GList of
GstElementFactory elements. Use gst_plugin_feature_list_free() after
usage. [transfer full][element-type Gst.ElementFactory]
|
gboolean gst_element_factory_list_is_type (GstElementFactory *factory
,GstElementFactoryListType type
);
Check if factory
is of the given types.
|
a GstElementFactory |
|
a GstElementFactoryListType |
Returns : |
TRUE if factory is of type .
|