GStreamer 0.10 Core Reference Manual | ||||
---|---|---|---|---|
#include <gst/gst.h> GstGhostPad; GstPad* gst_ghost_pad_new (const gchar *name, GstPad *target); GstPad* gst_ghost_pad_new_no_target (const gchar *name, GstPadDirection dir); GstPad* gst_ghost_pad_new_from_template (const gchar *name, GstPad *target, GstPadTemplate *templ); GstPad* gst_ghost_pad_new_no_target_from_template (const gchar *name, GstPadTemplate *templ); gboolean gst_ghost_pad_set_target (GstGhostPad *gpad, GstPad *newtarget); GstPad* gst_ghost_pad_get_target (GstGhostPad *gpad); gboolean gst_ghost_pad_construct (GstGhostPad *gpad);
GhostPads are useful when organizing pipelines with GstBin like elements. The idea here is to create hierarchical element graphs. The bin element contains a sub-graph. Now one would like to treat the bin-element like other GstElements. This is where GhostPads come into play. A GhostPad acts as a proxy for another pad. Thus the bin can have sink and source ghost-pads that are associated with sink and source pads of the child elements.
If the target pad is known at creation time, gst_ghost_pad_new()
is the
function to use to get a ghost-pad. Otherwise one can use gst_ghost_pad_new_no_target()
to create the ghost-pad and use gst_ghost_pad_set_target()
to establish the
association later on.
Note that GhostPads add overhead to the data processing of a pipeline.
Last reviewed on 2005-11-18 (0.9.5)
GstPad* gst_ghost_pad_new (const gchar *name, GstPad *target);
Create a new ghostpad with target
as the target. The direction will be taken
from the target pad. target
must be unlinked.
Will ref the target.
name : |
the name of the new pad, or NULL to assign a default name. |
target : |
the pad to ghost. |
Returns : | a new GstPad, or NULL in case of an error. |
GstPad* gst_ghost_pad_new_no_target (const gchar *name, GstPadDirection dir);
Create a new ghostpad without a target with the given direction.
A target can be set on the ghostpad later with the
gst_ghost_pad_set_target()
function.
The created ghostpad will not have a padtemplate.
name : |
the name of the new pad, or NULL to assign a default name. |
dir : |
the direction of the ghostpad |
Returns : | a new GstPad, or NULL in case of an error. |
GstPad* gst_ghost_pad_new_from_template (const gchar *name, GstPad *target, GstPadTemplate *templ);
Create a new ghostpad with target
as the target. The direction will be taken
from the target pad. The template used on the ghostpad will be template
.
Will ref the target.
name : |
the name of the new pad, or NULL to assign a default name. |
target : |
the pad to ghost. |
templ : |
the GstPadTemplate to use on the ghostpad. |
Returns : | a new GstPad, or NULL in case of an error. |
Since 0.10.10
GstPad* gst_ghost_pad_new_no_target_from_template (const gchar *name, GstPadTemplate *templ);
Create a new ghostpad based on templ
, without setting a target. The
direction will be taken from the templ
.
name : |
the name of the new pad, or NULL to assign a default name. |
templ : |
the GstPadTemplate to create the ghostpad from. |
Returns : | a new GstPad, or NULL in case of an error. |
Since 0.10.10
gboolean gst_ghost_pad_set_target (GstGhostPad *gpad, GstPad *newtarget);
Set the new target of the ghostpad gpad
. Any existing target
is unlinked and links to the new target are established. if newtarget
is
NULL the target will be cleared.
gpad : |
the GstGhostpad |
newtarget : |
the new pad target |
Returns : | TRUE if the new target could be set. This function can return FALSE when the internal pads could not be linked. |
GstPad* gst_ghost_pad_get_target (GstGhostPad *gpad);
Get the target pad of gpad. Unref target pad after usage.
gpad : |
the GstGhostpad |
Returns : | the target GstPad, can be NULL if the ghostpad has no target set. Unref target pad after usage. |
gboolean gst_ghost_pad_construct (GstGhostPad *gpad);
Finish initialization of a newly allocated ghost pad.
This function is most useful in language bindings and when subclassing
GstGhostPad; plugin and application developers normally will not call this
function. Call this function directly after a call to g_object_new
(GST_TYPE_GHOST_PAD, "direction", dir
, ..., NULL).
gpad : |
the newly allocated ghost pad |
Returns : | TRUE if the construction succeeds, FALSE otherwise.
|
Since 0.10.22