| GStreamer 0.8 Core API Reference (0.7.6) |
|---|
GstElementFactory — Create GstElements from a factory
#include <gst/gst.h> struct GstElementDetails; GstElementFactory* gst_element_factory_find (const gchar *name); gboolean gst_element_factory_can_src_caps (GstElementFactory *factory, const GstCaps *caps); gboolean gst_element_factory_can_sink_caps (GstElementFactory *factory, const GstCaps *caps); GstElement* gst_element_factory_create (GstElementFactory *factory, const gchar *name); GstElement* gst_element_factory_make (const gchar *factoryname, const gchar *name);
GstElementFactory is used to create instances of elements. A GstElementfactory can be added to a GstPlugin as it is also a GstPluginFeature.
Use gst_element_factory_new() to create a new factory which can be added to a plugin with gst_plugin_add_feature().
gst_element_factory_add_pad_template() is used to add a padtemplate to the factory. This function will enable the application to query for elementfactories that handle a specific media type.
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.
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);
...
An elementfactory can be assigned a rank with gst_element_factory_set_rank() so that the autopluggers can select a plugin more appropriatly
struct GstElementDetails {
gchar *longname; /* long, english name */
gchar *klass; /* type of element, as hierarchy */
gchar *description; /* insights of one form or another */
gchar *author; /* who wrote this thing? */
gpointer _gst_reserved[GST_PADDING];
};
This struct is used to define public information about the element. It describes the element, mostly for the benefit of editors.
GstElementFactory* gst_element_factory_find (const gchar *name);
Search for an element factory of the given name.
| name : | name of factory to find |
| Returns : | GstElementFactory if found, NULL otherwise |
gboolean gst_element_factory_can_src_caps
(GstElementFactory *factory,
const GstCaps *caps);Checks if the factory can source the given capability.
| factory : | factory to query |
| caps : | the caps to check |
| Returns : | true if it can src the capabilities |
gboolean gst_element_factory_can_sink_caps
(GstElementFactory *factory,
const GstCaps *caps);Checks if the factory can sink the given capability.
| factory : | factory to query |
| caps : | the caps to check |
| Returns : | true if it can sink the capabilities |
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 : | factory to instantiate |
| name : | name of new element |
| Returns : | new GstElement or NULL if the element couldn't be created |
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.
| factoryname : | a named factory to instantiate |
| name : | name of new element |
| Returns : | new GstElement or NULL if unable to create element |
GstElement, GstPlugin, GstPluginFeature, GstPadTemplate.
| << GstElement | GstError >> |