Top |
#define | GST_STATIC_PAD_TEMPLATE() |
GstPadTemplate * | gst_static_pad_template_get () |
GstCaps * | gst_static_pad_template_get_caps () |
#define | GST_PAD_TEMPLATE_NAME_TEMPLATE() |
#define | GST_PAD_TEMPLATE_DIRECTION() |
#define | GST_PAD_TEMPLATE_PRESENCE() |
#define | GST_PAD_TEMPLATE_CAPS() |
#define | GST_PAD_TEMPLATE_IS_FIXED() |
#define | GST_PAD_TEMPLATE_GTYPE() |
GstPadTemplate * | gst_pad_template_new () |
GstPadTemplate * | gst_pad_template_new_from_static_pad_template_with_gtype () |
GstCaps * | gst_pad_template_get_caps () |
GstCaps * | caps | Read / Write / Construct Only |
GstPadDirection | direction | Read / Write / Construct Only |
GType * | gtype | Read / Write / Construct Only |
gchar * | name-template | Read / Write / Construct Only |
GstPadPresence | presence | Read / Write / Construct Only |
struct | GstStaticPadTemplate |
struct | GstPadTemplate |
enum | GstPadTemplateFlags |
enum | GstPadPresence |
Padtemplates describe the possible media types a pad or an elementfactory can handle. This allows for both inspection of handled types before loading the element plugin as well as identifying pads on elements that are not yet created (request or sometimes pads).
Pad and PadTemplates have GstCaps attached to it to describe the media type
they are capable of dealing with. gst_pad_template_get_caps()
or
GST_PAD_TEMPLATE_CAPS()
are used to get the caps of a padtemplate. It's not
possible to modify the caps of a padtemplate after creation.
PadTemplates have a GstPadPresence property which identifies the lifetime
of the pad and that can be retrieved with GST_PAD_TEMPLATE_PRESENCE()
. Also
the direction of the pad can be retrieved from the GstPadTemplate with
GST_PAD_TEMPLATE_DIRECTION()
.
The GST_PAD_TEMPLATE_NAME_TEMPLATE()
is important for GST_PAD_REQUEST pads
because it has to be used as the name in the gst_element_get_request_pad()
call to instantiate a pad from this template.
Padtemplates can be created with gst_pad_template_new()
or with
gst_static_pad_template_get()
, which creates a GstPadTemplate from a
GstStaticPadTemplate that can be filled with the
convenient GST_STATIC_PAD_TEMPLATE()
macro.
A padtemplate can be used to create a pad (see gst_pad_new_from_template()
or gst_pad_new_from_static_template()
) or to add to an element class
(see gst_element_class_add_static_pad_template()
).
The following code example shows the code to create a pad from a padtemplate.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
GstStaticPadTemplate my_template = GST_STATIC_PAD_TEMPLATE ( "sink", // the name of the pad GST_PAD_SINK, // the direction of the pad GST_PAD_ALWAYS, // when this pad will be present GST_STATIC_CAPS ( // the capabilities of the padtemplate "audio/x-raw, " "channels = (int) [ 1, 6 ]" ) ); void my_method (void) { GstPad *pad; pad = gst_pad_new_from_static_template (&my_template, "sink"); ... } |
The following example shows you how to add the padtemplate to an element class, this is usually done in the class_init of the class:
1 2 3 4 5 6 7 |
static void my_element_class_init (GstMyElementClass *klass) { GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); gst_element_class_add_static_pad_template (gstelement_class, &my_template); } |
#define GST_STATIC_PAD_TEMPLATE(padname, dir, pres, caps)
Convenience macro to fill the values of a GstStaticPadTemplate structure.
GstPadTemplate *
gst_static_pad_template_get (GstStaticPadTemplate *pad_template
);
Converts a GstStaticPadTemplate into a GstPadTemplate.
GstCaps *
gst_static_pad_template_get_caps (GstStaticPadTemplate *templ
);
Gets the capabilities of the static pad template.
the GstCaps of the static pad template.
Unref after usage. Since the core holds an additional
ref to the returned caps, use gst_caps_make_writable()
on the returned caps to modify it.
[transfer full]
#define GST_PAD_TEMPLATE_NAME_TEMPLATE(templ) (((GstPadTemplate *)(templ))->name_template)
Get the nametemplate of the padtemplate.
#define GST_PAD_TEMPLATE_DIRECTION(templ) (((GstPadTemplate *)(templ))->direction)
Get the GstPadDirection of the padtemplate.
#define GST_PAD_TEMPLATE_PRESENCE(templ) (((GstPadTemplate *)(templ))->presence)
Get the GstPadPresence of the padtemplate.
#define GST_PAD_TEMPLATE_CAPS(templ) (((GstPadTemplate *)(templ))->caps)
Get a handle to the padtemplate GstCaps
#define GST_PAD_TEMPLATE_IS_FIXED(templ) (GST_OBJECT_FLAG_IS_SET(templ, GST_PAD_TEMPLATE_FIXED))
Check if the properties of the padtemplate are fixed
#define GST_PAD_TEMPLATE_GTYPE(templ) (((GstPadTemplate *)(templ))->ABI.abi.gtype)
Get the GType of the padtemplate
Since: 1.14
GstPadTemplate * gst_pad_template_new (const gchar *name_template
,GstPadDirection direction
,GstPadPresence presence
,GstCaps *caps
);
Creates a new pad template with a name according to the given template and with the given arguments.
name_template |
the name template. |
|
direction |
the GstPadDirection of the template. |
|
presence |
the GstPadPresence of the pad. |
|
caps |
a GstCaps set for the template. |
[transfer none] |
GstPadTemplate * gst_pad_template_new_from_static_pad_template_with_gtype (GstStaticPadTemplate *pad_template
,GType pad_type
);
Converts a GstStaticPadTemplate into a GstPadTemplate with a type.
Since: 1.14
GstCaps *
gst_pad_template_get_caps (GstPadTemplate *templ
);
Gets the capabilities of the pad template.
struct GstStaticPadTemplate { const gchar *name_template; GstPadDirection direction; GstPadPresence presence; GstStaticCaps static_caps; };
Structure describing the GstStaticPadTemplate.
const gchar * |
the name of the template |
|
GstPadDirection |
the direction of the template |
|
GstPadPresence |
the presence of the template |
|
GstStaticCaps |
the caps of the template. |
Indicates when this pad will become available.
the pad is always available |
||
the pad will become available depending on the media stream |
||
the pad is only available on request with
|
“caps”
property“caps” GstCaps *
The capabilities of the pad described by the pad template.
Flags: Read / Write / Construct Only
“direction”
property“direction” GstPadDirection
The direction of the pad described by the pad template.
Flags: Read / Write / Construct Only
Default value: GST_PAD_UNKNOWN
“gtype”
property“gtype” GType *
The type of the pad described by the pad template.
Flags: Read / Write / Construct Only
Allowed values: void
Since: 1.14
“name-template”
property“name-template” gchar *
The name template of the pad template.
Flags: Read / Write / Construct Only
Default value: NULL
“presence”
property“presence” GstPadPresence
When the pad described by the pad template will become available.
Flags: Read / Write / Construct Only
Default value: GST_PAD_ALWAYS
“pad-created”
signalvoid user_function (GstPadTemplate *pad_template, GstPad *pad, gpointer user_data)
This signal is fired when an element creates a pad from this template.
pad_template |
the object which received the signal. |
|
pad |
the pad that was created. |
|
user_data |
user data set when the signal handler was connected. |
Flags: Run Last