![]() |
![]() |
![]() |
GStreamer 0.10 Core Reference Manual | ![]() |
---|---|---|---|---|
#include <gst/gst.h> GstStaticPadTemplate; #define GST_STATIC_PAD_TEMPLATE (padname, dir, pres, caps) GstPadTemplate* gst_static_pad_template_get (GstStaticPadTemplate *pad_template); GstCaps* gst_static_pad_template_get_caps (GstStaticPadTemplate *templ); GstPadTemplate; enum GstPadTemplateFlags; enum GstPadPresence; #define GST_PAD_TEMPLATE_NAME_TEMPLATE (templ) #define GST_PAD_TEMPLATE_DIRECTION (templ) #define GST_PAD_TEMPLATE_PRESENCE (templ) #define GST_PAD_TEMPLATE_CAPS (templ) #define GST_PAD_TEMPLATE_IS_FIXED (templ) GstPadTemplate* gst_pad_template_new (const gchar *name_template, GstPadDirection direction, GstPadPresence presence, GstCaps *caps); GstCaps* gst_pad_template_get_caps (GstPadTemplate *templ);
"pad-created" void user_function (GstPadTemplate *pad_template, GstPad *pad, gpointer user_data) : Run last
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_request_pad_by_name()
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_pad_template()
).
The following code example shows the code to create a pad from a padtemplate.
Example 12. Create a pad from a padtemplate
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-int, " "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 base_init of the class:
static void my_element_base_init (gpointer g_class) { GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class); gst_element_class_add_pad_template (gstelement_class, gst_static_pad_template_get (&my_template)); }
Last reviewed on 2006-02-14 (0.10.3)
typedef struct { gchar *name_template; GstPadDirection direction; GstPadPresence presence; GstStaticCaps static_caps; } GstStaticPadTemplate;
Structure describing the GstStaticPadTemplate.
name_template
;gcharname_template
the name of the template
the name of the template
GstPadDirection direction
;GstPadDirectiondirection
the direction of the template
the direction of the template
GstPadPresence presence
;GstPadPresencepresence
the presence of the template
the presence of the template
GstStaticCaps static_caps
;GstStaticCapsstatic_caps
the caps of the template.
the caps of the template.
gchar *name_template ; |
the name of the template |
GstPadDirection direction ; |
the direction of the template |
GstPadPresence presence ; |
the presence of the template |
GstStaticCaps static_caps ; |
the caps of the template. |
#define GST_STATIC_PAD_TEMPLATE(padname, dir, pres, caps)
Convenience macro to fill the values of a GstStaticPadTemplate structure.
padname
:padname
the name template of pad
the name template of pad
dir
:dir
the GstPadDirection of the pad
the GstPadDirection of the pad
pres
:pres
the GstPadPresence of the pad
the GstPadPresence of the pad
caps
:caps
the GstStaticCaps of the pad
the GstStaticCaps of the pad
padname : |
the name template of pad |
dir : |
the GstPadDirection of the pad |
pres : |
the GstPadPresence of the pad |
caps : |
the GstStaticCaps of the pad |
GstPadTemplate* gst_static_pad_template_get (GstStaticPadTemplate *pad_template);
Converts a GstStaticPadTemplate into a GstPadTemplate.
pad_template
:pad_template
the static pad template
the static pad template
Returns :Returns a new GstPadTemplate.
a new GstPadTemplate.
GstPadTemplateGstPadTemplate
pad_template : |
the static pad template |
Returns : | a new GstPadTemplate. |
GstCaps* gst_static_pad_template_get_caps (GstStaticPadTemplate *templ);
Gets the capabilities of the static pad template.
templ
:templ
a GstStaticPadTemplate to get capabilities of.
a GstStaticPadTemplate to get capabilities of.
GstStaticPadTemplateGstStaticPadTemplateReturns :Returns the GstCaps of the static pad template. If you need to keep a
reference to the caps, take a ref (see gst_caps_ref()
).
the GstCaps of the static pad template. If you need to keep a
reference to the caps, take a ref (see gst_caps_ref()
).
GstCapsGstCapsgst_caps_ref()
gst_caps_ref()
templ : |
a GstStaticPadTemplate to get capabilities of. |
Returns : | the GstCaps of the static pad template. If you need to keep a
reference to the caps, take a ref (see gst_caps_ref() ).
|
typedef enum { GST_PAD_TEMPLATE_FIXED = (GST_OBJECT_FLAG_LAST << 0), /* padding */ GST_PAD_TEMPLATE_FLAG_LAST = (GST_OBJECT_FLAG_LAST << 4) } GstPadTemplateFlags;
Flags for the padtemplate
GST_PAD_TEMPLATE_FIXED
GST_PAD_TEMPLATE_FIXED
the padtemplate has no variable properties
the padtemplate has no variable properties
GST_PAD_TEMPLATE_FLAG_LAST
GST_PAD_TEMPLATE_FLAG_LAST
first flag that can be used by subclasses.
first flag that can be used by subclasses.
GST_PAD_TEMPLATE_FIXED |
the padtemplate has no variable properties |
GST_PAD_TEMPLATE_FLAG_LAST |
first flag that can be used by subclasses. |
typedef enum { GST_PAD_ALWAYS, GST_PAD_SOMETIMES, GST_PAD_REQUEST } GstPadPresence;
Indicates when this pad will become available.
GST_PAD_ALWAYS
GST_PAD_ALWAYS
the pad is always available
the pad is always available
GST_PAD_SOMETIMES
GST_PAD_SOMETIMES
the pad will become available depending on the media stream
the pad will become available depending on the media stream
GST_PAD_REQUEST
GST_PAD_REQUEST
the pad is only available on request with
gst_element_request_pad_by_name()
or gst_element_request_compatible_pad()
.
the pad is only available on request with
gst_element_request_pad_by_name()
or gst_element_request_compatible_pad()
.
gst_element_request_pad_by_name()
gst_element_request_pad_by_name()
gst_element_request_compatible_pad()
gst_element_request_compatible_pad()
#define GST_PAD_TEMPLATE_NAME_TEMPLATE(templ) (((GstPadTemplate *)(templ))->name_template)
Get the nametemplate of the padtemplate.
templ
:templ
the template to query
the template to query
templ : |
the template to query |
#define GST_PAD_TEMPLATE_DIRECTION(templ) (((GstPadTemplate *)(templ))->direction)
Get the direction of the padtemplate.
templ
:templ
the template to query
the template to query
templ : |
the template to query |
#define GST_PAD_TEMPLATE_PRESENCE(templ) (((GstPadTemplate *)(templ))->presence)
Get the presence of the padtemplate.
templ
:templ
the template to query
the template to query
templ : |
the template to query |
#define GST_PAD_TEMPLATE_CAPS(templ) (((GstPadTemplate *)(templ))->caps)
Get a handle to the padtemplate GstCaps
templ
:templ
the template to query
the template to query
templ : |
the template to query |
#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
templ
:templ
the template to query
the template to query
templ : |
the template to query |
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. This functions takes ownership of the provided caps, so be sure to not use them afterwards.
name_template
:name_template
the name template.
the name template.
direction
:direction
the GstPadDirection of the template.
the GstPadDirection of the template.
GstPadDirectionGstPadDirectionpresence
:presence
the GstPadPresence of the pad.
the GstPadPresence of the pad.
GstPadPresenceGstPadPresencecaps
:caps
a GstCaps set for the template. The caps are taken ownership of.
a GstCaps set for the template. The caps are taken ownership of.
GstCapsGstCapsReturns :Returns a new GstPadTemplate.
a new GstPadTemplate.
GstPadTemplateGstPadTemplate
name_template : |
the name template. |
direction : |
the GstPadDirection of the template. |
presence : |
the GstPadPresence of the pad. |
caps : |
a GstCaps set for the template. The caps are taken ownership of. |
Returns : | a new GstPadTemplate. |
GstCaps* gst_pad_template_get_caps (GstPadTemplate *templ);
Gets the capabilities of the pad template.
templ
:templ
a GstPadTemplate to get capabilities of.
a GstPadTemplate to get capabilities of.
GstPadTemplateGstPadTemplateReturns :Returns the GstCaps of the pad template. If you need to keep a reference to
the caps, take a ref (see gst_caps_ref()
).
the GstCaps of the pad template. If you need to keep a reference to
the caps, take a ref (see gst_caps_ref()
).
GstCapsGstCapsgst_caps_ref()
gst_caps_ref()
templ : |
a GstPadTemplate to get capabilities of. |
Returns : | the GstCaps of the pad template. If you need to keep a reference to
the caps, take a ref (see gst_caps_ref() ).
|
void user_function (GstPadTemplate *pad_template, GstPad *pad, gpointer user_data) : Run last
This signal is fired when an element creates a pad from this template.
pad_template
:pad_template
the object which received the signal.
the object which received the signal.
pad
:pad
the pad that was created.
the pad that was created.
user_data
:user_data
user data set when the signal handler was connected.user data set when the signal handler was connected.
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. |