| 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.
|