GObject
A GstElement
can have several properties which are implemented using standard
GObject
properties. The usual
GObject
methods to query, set and get
property values and GParamSpecs
are
therefore supported.
Every GstElement
inherits at least one
property from its parent GstObject
: the
"name" property. This is the name you provide to the functions
gst_element_factory_make ()
or
gst_element_factory_create ()
. You can get
and set this property using the functions
gst_object_set_name
and
gst_object_get_name
or use the
GObject
property mechanism as shown below.
#include <gst/gst.h> int main (int argc, char *argv[]) { GstElement *element; gchar *name; /* init GStreamer */ gst_init (&argc, &argv); /* create element */ element = gst_element_factory_make ("fakesrc", "source"); /* get name */ g_object_get (G_OBJECT (element), "name", &name, NULL); g_print ("The name of the element is '%s'.\n", name); g_free (name); gst_object_unref (GST_OBJECT (element)); return 0; }
Most plugins provide additional properties to provide more information about their configuration or to configure the element. gst-inspect is a useful tool to query the properties of a particular element, it will also use property introspection to give a short explanation about the function of the property and about the parameter types and ranges it supports. See Section 23.4.2 in the appendix for details about gst-inspect.
For more information about GObject
properties we recommend you read the GObject manual and an introduction to
The Glib Object system.
A
GstElement
also provides various
GObject
signals that can be used as a flexible
callback mechanism. Here, too, you can use gst-inspect
to see which signals a specific element supports. Together, signals
and properties are the most basic way in which elements and
applications interact.