GStreamer Application Development Manual (0.8.5.2) | ||
---|---|---|
<<< Previous | Next >>> |
The simplest way to create an element is to use gst_element_factory_make . This function takes a factory name and an element name for the newly created element. The name of the element is something you can use later on to look up the element in a bin, for example. You can pass NULL as the name argument to get a unique, default name.
When you don't need the element anymore, you need to unref it using gst_object_unref. This decreases the reference count for the element by 1. An element has a refcount of 1 when it gets created. An element gets destroyed completely when the refcount is decreased to 0.
The following example [1] shows how to create an element named source from the element factory named fakesrc. It checks if the creation succeeded. After checking, it unrefs the element.
/* example-begin elementmake.c */ #include <gst/gst.h> int main (int argc, char *argv[]) { GstElement *element; gst_init (&argc, &argv); element = gst_element_factory_make ("fakesrc", "source"); if (!element) { g_error ("Could not create an element from 'fakesrc' factory.\n"); } gst_object_unref (GST_OBJECT (element)); return 0; } /* example-end elementmake.c */ |
gst_element_factory_make is actually a shorthand
for a combination of two functions.
A
GstElement
object is created from a factory.
To create the element, you have to get access to a
GstElementFactory
object using a unique factory name.
This is done with
gst_element_factory_find.
The following code fragment is used to get a factory that can be used to create the fakesrc element, a fake data source.
GstElementFactory *factory; factory = gst_element_factory_find ("fakesrc"); |
Once you have the handle to the element factory, you can create a real element with the following code fragment:
GstElement *element; element = gst_element_factory_create (factory, "source"); |
gst_element_factory_create will use the element factory to create an element with the given name.
[1] | The code for this example is automatically extracted from the documentation and built under examples/manual in the GStreamer tarball. |
<<< Previous | Home | Next >>> |
Initializing GStreamer | Up | GstElement properties |