[][src]Struct gstreamer::PadTemplate

pub struct PadTemplate(_, _);

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 Caps attached to it to describe the media type they are capable of dealing with. PadTemplate::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 PadPresence 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 PadTemplate 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 ElementExt::get_request_pad call to instantiate a pad from this template.

Padtemplates can be created with PadTemplate::new or with gst_static_pad_template_get (), which creates a PadTemplate from a StaticPadTemplate that can be filled with the convenient GST_STATIC_PAD_TEMPLATE() macro.

A padtemplate can be used to create a pad (see 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.

  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:

  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);
  }

Implements

GstObjectExt, glib::object::ObjectExt

Methods

impl PadTemplate[src]

pub fn new(
    name_template: &str,
    direction: PadDirection,
    presence: PadPresence,
    caps: &Caps
) -> Result<PadTemplate, BoolError>
[src]

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 PadDirection of the template.

presence

the PadPresence of the pad.

caps

a Caps set for the template.

Returns

a new PadTemplate.

pub fn with_gtype(
    name_template: &str,
    direction: PadDirection,
    presence: PadPresence,
    caps: &Caps,
    pad_type: Type
) -> Result<PadTemplate, BoolError>
[src]

pub fn get_caps(&self) -> Option<Caps>[src]

Gets the capabilities of the pad template.

Returns

the Caps of the pad template. Unref after usage.

pub fn get_documentation_caps(&self) -> Option<Caps>[src]

See PadTemplate::set_documentation_caps.

Feature: v1_18

Returns

The caps to document. For convenience, this will return PadTemplate::get_caps when no documentation caps were set.

pub fn pad_created<P: IsA<Pad>>(&self, pad: &P)[src]

Emit the pad-created signal for this template when created by this pad.

pad

the Pad that created it

pub fn set_documentation_caps(&self, caps: &Caps)[src]

Certain elements will dynamically construct the caps of their pad templates. In order not to let environment-specific information into the documentation, element authors should use this method to expose "stable" caps to the reader.

Feature: v1_18

caps

the documented capabilities

pub fn get_property_direction(&self) -> PadDirection[src]

The direction of the pad described by the pad template.

pub fn get_property_gtype(&self) -> Type[src]

The type of the pad described by the pad template.

Feature: v1_14

pub fn get_property_name_template(&self) -> Option<GString>[src]

The name template of the pad template.

pub fn get_property_presence(&self) -> PadPresence[src]

When the pad described by the pad template will become available.

pub fn connect_pad_created<F: Fn(&PadTemplate, &Pad) + Send + Sync + 'static>(
    &self,
    f: F
) -> SignalHandlerId
[src]

This signal is fired when an element creates a pad from this template.

pad

the pad that was created.

impl PadTemplate[src]

pub fn from_static_pad_template_with_gtype(
    pad_template: &StaticPadTemplate,
    pad_type: Type
) -> Result<PadTemplate, BoolError>
[src]

Trait Implementations

impl Clone for PadTemplate[src]

impl Debug for PadTemplate[src]

impl Eq for PadTemplate[src]

impl Hash for PadTemplate[src]

impl IsA<Object> for PadTemplate[src]

impl Ord for PadTemplate[src]

impl<T: ObjectType> PartialEq<T> for PadTemplate[src]

impl<T: ObjectType> PartialOrd<T> for PadTemplate[src]

impl Send for PadTemplate[src]

impl StaticType for PadTemplate[src]

impl Sync for PadTemplate[src]

Auto Trait Implementations

impl RefUnwindSafe for PadTemplate

impl Unpin for PadTemplate

impl UnwindSafe for PadTemplate

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<Super, Sub> CanDowncast<Sub> for Super where
    Sub: IsA<Super>,
    Super: IsA<Super>, 
[src]

impl<T> Cast for T where
    T: ObjectType
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ObjectExt for T where
    T: ObjectType
[src]

impl<'a, T> ToGlibContainerFromSlice<'a, *const GList> for T where
    T: GlibPtrDefault + ToGlibPtr<'a, <T as GlibPtrDefault>::GlibType>, 
[src]

impl<'a, T> ToGlibContainerFromSlice<'a, *const GPtrArray> for T where
    T: GlibPtrDefault + ToGlibPtr<'a, <T as GlibPtrDefault>::GlibType>, 
[src]

impl<'a, T> ToGlibContainerFromSlice<'a, *mut GArray> for T where
    T: GlibPtrDefault + ToGlibPtr<'a, <T as GlibPtrDefault>::GlibType>, 
[src]

impl<'a, T> ToGlibContainerFromSlice<'a, *mut GList> for T where
    T: GlibPtrDefault + ToGlibPtr<'a, <T as GlibPtrDefault>::GlibType>, 
[src]

impl<'a, T> ToGlibContainerFromSlice<'a, *mut GPtrArray> for T where
    T: GlibPtrDefault + ToGlibPtr<'a, <T as GlibPtrDefault>::GlibType>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToSendValue for T where
    T: ToValue + SetValue + Send + ?Sized
[src]

impl<T> ToValue for T where
    T: SetValue + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.