gstreamermm  1.4.3
Public Member Functions | Static Public Member Functions | Protected Member Functions | Related Functions | List of all members
Gst::GhostPad Class Reference

A class that represents pseudo link pads. More...

Inheritance diagram for Gst::GhostPad:
Inheritance graph
[legend]
Collaboration diagram for Gst::GhostPad:
Collaboration graph
[legend]

Public Member Functions

virtual ~GhostPad ()
 
GstGhostPad* gobj ()
 Provides access to the underlying C GObject. More...
 
const GstGhostPad* gobj () const
 Provides access to the underlying C GObject. More...
 
GstGhostPad* gobj_copy ()
 Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. More...
 
bool set_target (const Glib::RefPtr< Gst::Pad >& newtarget)
 Set the new target of the ghostpad gpad. More...
 
Glib::RefPtr< Gst::Padget_target ()
 Get the target pad of gpad. More...
 
Glib::RefPtr< const Gst::Padget_target () const
 Get the target pad of gpad. More...
 
- Public Member Functions inherited from Gst::Pad
virtual ~Pad ()
 
GstPad* gobj ()
 Provides access to the underlying C GObject. More...
 
const GstPad* gobj () const
 Provides access to the underlying C GObject. More...
 
GstPad* gobj_copy ()
 Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. More...
 
Glib::RefPtr< Gst::Capsquery_caps (Glib::RefPtr< Gst::Caps > caps)
 Gets the capabilities this pad can produce or consume. More...
 
Glib::RefPtr< const Gst::Capsquery_caps (Glib::RefPtr< Gst::Caps > caps) const
 Gets the capabilities this pad can produce or consume. More...
 
PadDirection get_direction () const
 Gets the direction of the pad. More...
 
Glib::RefPtr< Gst::Elementget_parent_element ()
 Gets the parent of pad, cast to a Gst::Element. More...
 
Glib::RefPtr< const Gst::Elementget_parent_element () const
 Gets the parent of pad, cast to a Gst::Element. More...
 
Glib::RefPtr< Gst::PadTemplateget_pad_template ()
 Gets the template for pad. More...
 
Glib::RefPtr< const
Gst::PadTemplate
get_pad_template () const
 Gets the template for pad. More...
 
PadLinkReturn link (const Glib::RefPtr< Gst::Pad >& sink_pad)
 Links the source pad and the sink pad. More...
 
bool unlink (const Glib::RefPtr< Gst::Pad >& sink_pad)
 Unlinks the source pad from the sink pad. More...
 
bool is_linked () const
 Checks if a pad is linked to another pad or not. More...
 
bool can_link (const Glib::RefPtr< const Gst::Pad >& other_pad) const
 Checks if the source pad and the sink pad are compatible so they can be linked. More...
 
Glib::RefPtr< Gst::Capsget_allowed_caps ()
 Gets the capabilities of the allowed media types that can flow through pad and its peer. More...
 
Glib::RefPtr< const Gst::Capsget_allowed_caps () const
 Gets the capabilities of the allowed media types that can flow through pad and its peer. More...
 
Glib::RefPtr< const Gst::Capsget_pad_template_caps () const
 Gets the capabilities for pad's template. More...
 
gulong add_probe (PadProbeType mask, const SlotProbe& slot)
 
void remove_probe (gulong id)
 Remove the probe with id from pad. More...
 
Glib::RefPtr< Gst::Padget_peer ()
 Gets the peer of pad. More...
 
Glib::RefPtr< const Gst::Padget_peer () const
 Gets the peer of pad. More...
 
void use_fixed_caps ()
 A helper function you can use that sets the FIXED_CAPS flag This way the default CAPS query will always return the negotiated caps or in case the pad is not negotiated, the padtemplate caps. More...
 
bool is_active () const
 Query if a pad is active. More...
 
bool is_blocked () const
 Checks if the pad is blocked or not. More...
 
bool is_blocking () const
 Checks if the pad is blocking or not. More...
 
FlowReturn get_range (guint64 offset, guint size, Glib::RefPtr< Gst::Buffer >& buffer)
 When pad is flushing this function returns Gst::FLOW_WRONG_STATE immediatly. More...
 
bool query_accept_caps (const Glib::RefPtr< const Gst::Caps >& caps) const
 Check if the given pad accepts the caps. More...
 
bool proxy_query_caps (const Glib::RefPtr< Gst::Query >&query)
 Calls query_caps() for all internally linked pads fof pad and returns the intersection of the results. More...
 
bool proxy_query_caps (const Glib::RefPtr< Gst::Query >&query) const
 Calls query_caps() for all internally linked pads fof pad and returns the intersection of the results. More...
 
bool peer_query_accept_caps (const Glib::RefPtr< const Gst::Caps >& caps) const
 Check if the peer of pad accepts caps. More...
 
FlowReturn push (Glib::RefPtr< Gst::Buffer >& buffer)
 Pushes a buffer to the peer of the pad. More...
 
bool push_event (const Glib::RefPtr< Gst::Event >& event)
 Sends the event to the peer of the pad. More...
 
FlowReturn pull_range (guint64 offset, guint size, Glib::RefPtr< Gst::Buffer >& buffer)
 Pulls a buffer from the peer pad. More...
 
bool activate_mode (Gst::PadMode mode, bool active=true)
 Activates or deactivates the given pad in mode via dispatching to the pad's activatemodefunc. More...
 
bool send_event (const Glib::RefPtr< Gst::Event >& event)
 Sends the event to the pad. More...
 
bool event_default (const Glib::RefPtr< Gst::Object >& parent, const Glib::RefPtr< Gst::Event >& event)
 Invokes the default event handler for the given pad. More...
 
bool event_default (const Glib::RefPtr< Gst::Event >& event)
 A event_default() convenience overload. More...
 
bool query (const Glib::RefPtr< Gst::Query >& query) const
 Dispatches a query to a pad. More...
 
bool peer_query (const Glib::RefPtr< Gst::Query >&query) const
 Performs query() on the peer of pad. More...
 
Glib::RefPtr< Gst::Capspeer_query_caps (const Glib::RefPtr< Gst::Caps >& filter) const
 Gets the capabilities of the peer connected to this pad. More...
 
bool query_default (const Glib::RefPtr< Gst::Object >& parent, const Glib::RefPtr< Gst::Query >&query) const
 Invokes the default query handler for the given pad. More...
 
bool query_default (const Glib::RefPtr< Gst::Query >&query) const
 A query_default() convenience overload. More...
 
bool query_position (Format format, gint64& position) const
 Queries a pad for the stream position. More...
 
bool query_position (Format& format) const
 Queries a pad for the stream position parsing only the format. More...
 
bool query_duration (Format format, gint64& duration) const
 Queries a pad for the total stream duration. More...
 
bool query_duration (Format& format) const
 Queries a pad for the total stream duration parsing only the format. More...
 
bool query_convert (Format src_format, gint64 src_value, Format dst_format, gint64& dst_value) const
 Queries a pad to convert src_val in src_format to dest_format. More...
 
bool peer_query_convert (Format src_format, gint64 src_value, Format dst_format, gint64& dst_value) const
 Queries the peer pad of a given sink pad to convert src_val in src_format to dest_format. More...
 
Gst::Iterator< Gst::Paditerate_internal_links ()
 Gets an iterator for the pads to which the given pad is linked to inside of the parent element. More...
 
Gst::Iterator< const Gst::Paditerate_internal_links () const
 Gets an iterator for the pads to which the given pad is linked to inside of the parent element. More...
 
Gst::Iterator< Gst::Paditerate_internal_links_default (const Glib::RefPtr< Gst::Object >& parent)
 Iterate the list of pads to which the given pad is linked to inside of the parent element. More...
 
Gst::Iterator< Gst::Paditerate_internal_links_default ()
 A iterate_internal_links_default() convenience overload. More...
 
Gst::Iterator< const Gst::Paditerate_internal_links_default (const Glib::RefPtr< Gst::Object >& parent) const
 Iterate the list of pads to which the given pad is linked to inside of the parent element. More...
 
Gst::Iterator< const Gst::Paditerate_internal_links_default () const
 A iterate_internal_links_default() convenience overload. More...
 
FlowReturn chain (Glib::RefPtr< Gst::Buffer >& buffer)
 
Glib::RefPtr< Gst::Capsget_current_caps ()
 Gets the capabilities currently configured on pad with the last Gst::EVENT_CAPS event. More...
 
bool pause_task ()
 Pause the task of pad. More...
 
bool stop_task ()
 Stop the task of pad. More...
 
bool set_active (bool active=true)
 Activates or deactivates the given pad. More...
 
Glib::RefPtr< Gst::Eventget_sticky_event (Gst::EventType event_type, guint idx) const
 Returns a new reference of the sticky event of type event_type from the event. More...
 
void set_chain_function (const SlotChain& slot)
 
void set_event_function (const SlotEvent& slot)
 
void set_query_function (const SlotQuery& slot)
 
void set_activate_function (const SlotActivate& slot)
 
void set_activatemode_function (const SlotActivatemode& slot)
 
void set_getrange_function (const SlotGetrange& slot)
 
Glib::SignalProxy1< void,
const Glib::RefPtr< Gst::Pad >& > 
signal_linked ()
 
Glib::SignalProxy1< void,
const Glib::RefPtr< Gst::Pad >& > 
signal_unlinked ()
 
Glib::PropertyProxy_ReadOnly
< Glib::RefPtr< Gst::Caps > > 
property_caps () const
 The capabilities of the pad. More...
 
Glib::PropertyProxy_ReadOnly
< PadDirection
property_direction () const
 The direction of the pad. More...
 
Glib::PropertyProxy< PadTemplateproperty_template ()
 The GstPadTemplate of this pad. More...
 
Glib::PropertyProxy_ReadOnly
< PadTemplate
property_template () const
 The GstPadTemplate of this pad. More...
 
bool is_ghost_pad () const
 Checks whether pad is a ghostpad. More...
 
bool is_proxy_pad () const
 
void exception_handler ()
 Handle exceptions occuring in callback methods. More...
 
- Public Member Functions inherited from Gst::Object
virtual ~Object ()
 
GstObject* gobj ()
 Provides access to the underlying C GObject. More...
 
const GstObject* gobj () const
 Provides access to the underlying C GObject. More...
 
GstObject* gobj_copy ()
 Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. More...
 
bool is_element () const
 
bool is_element_factory () const
 
bool is_pad () const
 
bool is_pad_template () const
 
bool is_bin () const
 
guint32 get_flags () const
 Returns the entire set of flags for the object. More...
 
bool set_name (const Glib::ustring& name)
 Sets the name of object, or gives object a guaranteed unique name (if name is 0). More...
 
Glib::ustring get_name () const
 Returns a copy of the name of object. More...
 
bool set_parent (const Glib::RefPtr< Gst::Object >& parent)
 Sets the parent of object to parent. More...
 
Glib::RefPtr< Gst::Objectget_parent ()
 Returns the parent of object. More...
 
Glib::RefPtr< const Gst::Objectget_parent () const
 Returns the parent of object. More...
 
void unparent ()
 Clear the parent of object, removing the associated reference. More...
 
bool has_ancestor (const Glib::RefPtr< const Gst::Object >& ancestor) const
 Check if object has an ancestor ancestor somewhere up in the hierarchy. More...
 
Glib::ustring get_path_string ()
 Generates a string describing the path of object in the object hierarchy. More...
 
Glib::PropertyProxy
< Glib::ustring
property_name ()
 The name of the object. More...
 
Glib::PropertyProxy_ReadOnly
< Glib::ustring
property_name () const
 The name of the object. More...
 
Glib::SignalProxy2< void,
const Glib::RefPtr< Object >
&, GParamSpec* > 
signal_deep_notify ()
 
int get_refcount () const
 

Static Public Member Functions

static GType get_type ()
 Get the GType for this class, for use with the underlying GObject type system. More...
 
static Glib::RefPtr< GhostPadcreate (const Glib::RefPtr< Gst::Pad >& target, const Glib::ustring& name=Glib::ustring())
 Create a new Gst::GhostPad with target as the target. More...
 
static Glib::RefPtr< GhostPadcreate (PadDirection dir, const Glib::ustring& name=Glib::ustring())
 Create a new Gst::GhostPad without a target with the given direction. More...
 
static Glib::RefPtr< GhostPadcreate (const Glib::RefPtr< Gst::Pad >& target, const Glib::RefPtr< Gst::PadTemplate >& templ, const Glib::ustring& name=Glib::ustring())
 Create a new Gst::GhostPad with target as the target. More...
 
static Glib::RefPtr< GhostPadcreate (const Glib::RefPtr< Gst::PadTemplate >& templ, const Glib::ustring& name=Glib::ustring())
 Create a new Gst::GhostPad based on templ, without setting a target. More...
 
- Static Public Member Functions inherited from Gst::Pad
static GType get_type ()
 Get the GType for this class, for use with the underlying GObject type system. More...
 
static Glib::RefPtr< Padcreate (const Glib::ustring& name, PadDirection dir)
 Creates a new pad with the given name in the given direction. More...
 
static Glib::RefPtr< Padcreate (PadDirection dir)
 Creates a new pad with a guaranteed unique name (across all pads) in the given direction. More...
 
static Glib::RefPtr< Padcreate (const Glib::RefPtr< const Gst::PadTemplate >& pad_template)
 Creates a new pad with the given name from the given template. More...
 
static Glib::RefPtr< Padcreate (const Glib::RefPtr< const Gst::PadTemplate >& pad_template, const Glib::ustring& name)
 Creates a new pad with a guaranteed unique name (across all pads) from the given template. More...
 
static GstFlowReturn Pad_Chain_gstreamermm_callback (GstPad* pad, GstObject* parent, GstBuffer* buffer)
 
static gboolean Pad_Event_gstreamermm_callback (GstPad* pad, GstObject* parent, GstEvent* event)
 
static gboolean Pad_Query_gstreamermm_callback (GstPad* pad, GstObject* parent, GstQuery*query)
 
static gboolean Pad_Activate_gstreamermm_callback (GstPad* pad, GstObject* parent)
 
static gboolean Pad_Activatemode_gstreamermm_callback (GstPad* pad, GstObject* parent, GstPadMode mode, gboolean active)
 
static GstFlowReturn Pad_Getrange_gstreamermm_callback (GstPad* pad, GstObject* parent, guint64 offset, guint length, GstBuffer** buffer)
 
- Static Public Member Functions inherited from Gst::Object
static GType get_type ()
 Get the GType for this class, for use with the underlying GObject type system. More...
 
static bool check_uniqueness (const Glib::ListHandle< const Gst::Object >& list, const Glib::ustring& name)
 Checks to see if there is any object named name in list. More...
 

Protected Member Functions

 GhostPad (const Glib::RefPtr< Gst::Pad >& target, const Glib::ustring& name)
 Creates a Gst::GhostPad from a target pad. More...
 
 GhostPad (PadDirection direction, const Glib::ustring& name)
 Creates a Gst::GhostPad with a specified name and direction. More...
 
 GhostPad (const Glib::RefPtr< Gst::Pad >& target, const Glib::RefPtr< Gst::PadTemplate >& templ, const Glib::ustring& name)
 Creates a Gst::GhostPad from a target pad and a pad template. More...
 
 GhostPad (const Glib::RefPtr< Gst::PadTemplate >& templ, const Glib::ustring& name)
 Creates a Gst::GhostPad from a pad template. More...
 
- Protected Member Functions inherited from Gst::Pad
 Pad (const Glib::ustring& name, PadDirection direction)
 Constructs a Pad given a name and a direction. More...
 
 Pad (PadDirection direction)
 Constructs a Pad given a direction without specifying a name. More...
 
 Pad (const Glib::RefPtr< const Gst::PadTemplate >& templ, const Glib::ustring& name)
 Constructs a Pad from a PadTemplate with the specified name. More...
 
 Pad (const Glib::RefPtr< const Gst::PadTemplate >& templ)
 Constructs a Pad from a PadTemplate without specifying a name. More...
 
virtual void on_linked (const Glib::RefPtr< Gst::Pad >& peer_pad)
 This is a default handler for the signal signal_linked(). More...
 
virtual void on_unlinked (const Glib::RefPtr< Gst::Pad >& peer_pad)
 This is a default handler for the signal signal_unlinked(). More...
 
- Protected Member Functions inherited from Gst::Object
virtual void on_deep_notify (const Glib::RefPtr< Object >& prop_object, GParamSpec* prop)
 This is a default handler for the signal signal_deep_notify(). More...
 

Related Functions

(Note that these are not member functions.)

Glib::RefPtr< Gst::GhostPadwrap (GstGhostPad* object, bool take_copy=false)
 A Glib::wrap() method for this object. More...
 

Additional Inherited Members

- Public Types inherited from Gst::Pad
typedef sigc::slot
< PadProbeReturn, const
Glib::RefPtr< Gst::Pad >
&, const Gst::PadProbeInfo& > 
SlotProbe
 For example, bool on_have_data(const Glib::RefPtr<Gst::Pad>& pad, const Glib::RefPtr<Gst::MiniObjec>& data);. More...
 
typedef sigc::slot
< Gst::FlowReturn, const
Glib::RefPtr< Gst::Pad >
&, Glib::RefPtr< Gst::Buffer >& > 
SlotChain
 
typedef sigc::slot< gboolean,
const Glib::RefPtr< Gst::Pad >
&, Glib::RefPtr< Gst::Event >& > 
SlotEvent
 
typedef sigc::slot< gboolean,
const Glib::RefPtr< Gst::Pad >
&, const Glib::RefPtr
< Gst::Query >& > 
SlotQuery
 
typedef sigc::slot< bool,
const Glib::RefPtr< Gst::Pad >& > 
SlotActivate
 
typedef sigc::slot< bool,
const Glib::RefPtr< Gst::Pad >
&, Gst::PadMode, bool > 
SlotActivatemode
 
typedef sigc::slot
< Gst::FlowReturn, const
Glib::RefPtr< Gst::Pad >
&, guint64, guint,
Glib::RefPtr< Gst::Buffer >& > 
SlotGetrange
 

Detailed Description

A class that represents pseudo link pads.

Gst::GhostPad are useful when organizing pipelines with Gst::Bin 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 another Gst::Element. This is where Gst::GhostPad come into play. A Gst::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, create() with a Gst::Pad argument is the method to use to get a ghost-pad. Otherwise one can use create() with a Gst::PadDirection argument to create the ghost-pad and use set_target() to establish the association later on.

Note that Gst::GhostPad add overhead to the data processing of a pipeline.

Last reviewed on 2005-11-18 (0.9.5)

Constructor & Destructor Documentation

virtual Gst::GhostPad::~GhostPad ( )
virtual
Gst::GhostPad::GhostPad ( const Glib::RefPtr< Gst::Pad >&  target,
const Glib::ustring name 
)
protected

Creates a Gst::GhostPad from a target pad.

Parameters
targetThe target pad.
nameThe name of the Gst::GhostPad.
Exceptions
std::runtime_errorif Gst::GhostPad construction fails.
Gst::GhostPad::GhostPad ( PadDirection  direction,
const Glib::ustring name 
)
protected

Creates a Gst::GhostPad with a specified name and direction.

Parameters
directionThe direction of the Gst::GhostPad.
nameThe name of the Gst::GhostPad.
Exceptions
std::runtime_errorif Gst::GhostPad construction fails.
Gst::GhostPad::GhostPad ( const Glib::RefPtr< Gst::Pad >&  target,
const Glib::RefPtr< Gst::PadTemplate >&  templ,
const Glib::ustring name 
)
protected

Creates a Gst::GhostPad from a target pad and a pad template.

Parameters
targetThe target pad.
templThe pad template.
nameThe name of the Gst::GhostPad.
Exceptions
std::runtime_errorif Gst::GhostPad construction fails.
Gst::GhostPad::GhostPad ( const Glib::RefPtr< Gst::PadTemplate >&  templ,
const Glib::ustring name 
)
protected

Creates a Gst::GhostPad from a pad template.

Parameters
templThe pad template.
nameThe name of the Gst::GhostPad.
Exceptions
std::runtime_errorif Gst::GhostPad construction fails.

Member Function Documentation

static Glib::RefPtr<GhostPad> Gst::GhostPad::create ( const Glib::RefPtr< Gst::Pad >&  target,
const Glib::ustring name = Glib::ustring() 
)
static

Create a new Gst::GhostPad with target as the target.

The direction will be taken from the target pad. target must be unlinked.

Parameters
targetThe pad to ghost.
nameThe (optional) name of the new pad.
Returns
A new Gst::GhostPad, or an empty RefPtr in case of an error.
Exceptions
std::runtime_errorif Gst::GhostPad construction fails.
static Glib::RefPtr<GhostPad> Gst::GhostPad::create ( PadDirection  dir,
const Glib::ustring name = Glib::ustring() 
)
static

Create a new Gst::GhostPad without a target with the given direction.

A target can be set on the Gst::GhostPad later with the set_target() function.

The created Gst::GhostPad will not have a padtemplate.

Parameters
dirThe direction of the Gst::GhostPad.
nameThe (optional) name of the new Gst::GhostPad.
Returns
A new Gst::GhostPad, or an empty RefPtr in case of an error.
Exceptions
std::runtime_errorif Gst::GhostPad construction fails.
static Glib::RefPtr<GhostPad> Gst::GhostPad::create ( const Glib::RefPtr< Gst::Pad >&  target,
const Glib::RefPtr< Gst::PadTemplate >&  templ,
const Glib::ustring name = Glib::ustring() 
)
static

Create a new Gst::GhostPad with target as the target.

The direction will be taken from the target pad. The template used on the Gst::GhostPad will be template.

Parameters
targetThe pad to ghost.
templThe Gst::PadTemplate to use on the Gst::GhostPad.
nameThe (optional) name of the new Gst::GhostPad.
Returns
A new Gst::GhostPad, or an empty RefPtr in case of an error.
Exceptions
std::runtime_errorif Gst::GhostPad construction fails.
static Glib::RefPtr<GhostPad> Gst::GhostPad::create ( const Glib::RefPtr< Gst::PadTemplate >&  templ,
const Glib::ustring name = Glib::ustring() 
)
static

Create a new Gst::GhostPad based on templ, without setting a target.

The direction will be taken from templ.

Parameters
templThe Gst::PadTemplate to create the Gst::GhostPad from.
nameThe (optional) name of the new Gst::GhostPad.
Returns
A new Gst::GhostPad, or an empty RefPtr in case of an error.
Exceptions
std::runtime_errorif Gst::GhostPad construction fails.
Glib::RefPtr<Gst::Pad> Gst::GhostPad::get_target ( )

Get the target pad of gpad.

Unref target pad after usage.

Returns
The target Gst::Pad, can be 0 if the ghostpad has no target set. Unref target pad after usage.
Glib::RefPtr<const Gst::Pad> Gst::GhostPad::get_target ( ) const

Get the target pad of gpad.

Unref target pad after usage.

Returns
The target Gst::Pad, can be 0 if the ghostpad has no target set. Unref target pad after usage.
static GType Gst::GhostPad::get_type ( )
static

Get the GType for this class, for use with the underlying GObject type system.

GstGhostPad* Gst::GhostPad::gobj ( )
inline

Provides access to the underlying C GObject.

const GstGhostPad* Gst::GhostPad::gobj ( ) const
inline

Provides access to the underlying C GObject.

GstGhostPad* Gst::GhostPad::gobj_copy ( )

Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.

bool Gst::GhostPad::set_target ( const Glib::RefPtr< Gst::Pad >&  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 0 the target will be cleared.

Parameters
newtargetThe 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.

Friends And Related Function Documentation

Glib::RefPtr< Gst::GhostPad > wrap ( GstGhostPad *  object,
bool  take_copy = false 
)
related

A Glib::wrap() method for this object.

Parameters
objectThe C instance.
take_copyFalse if the result should take ownership of the C instance. True if it should take a new copy or ref.
Returns
A C++ instance that wraps this C instance.

The documentation for this class was generated from the following file: