gstreamermm  0.10.10.2
Public Member Functions | Static Public Member Functions | Protected Member Functions | Related Functions
Gst::Object Class Reference

A base class for the GStreamer object hierarchy. More...

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

List of all members.

Public Member Functions

virtual ~Object ()
GstObject* gobj ()
 Provides access to the underlying C GObject.
const GstObject* gobj () const
 Provides access to the underlying C GObject.
GstObject* gobj_copy ()
 Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
guint32 get_flags () const
 Returns the entire set of flags for the object.
bool set_name (const Glib::ustring& name)
 Sets the name of object, or gives object a guaranteed unique name (if name is 0).
Glib::ustring get_name () const
 Returns a copy of the name of object.
bool set_parent (const Glib::RefPtr< Gst::Object >& parent)
 Sets the parent of object to parent.
Glib::RefPtr< Gst::Objectget_parent ()
 Returns the parent of object.
Glib::RefPtr< const Gst::Objectget_parent () const
 Returns the parent of object.
void unparent ()
 Clear the parent of object, removing the associated reference.
Glib::ustring get_name_prefix () const
 Returns a copy of the name prefix of object.
void set_name_prefix (const Glib::ustring& name_prefix)
 Sets the name prefix of object to name_prefix.
bool has_ancestor (const Glib::RefPtr< const Gst::Object >& ancestor) const
 Check if object has an ancestor ancestor somewhere up in the hierarchy.
xmlpp::Node* save (xmlpp::Node* parent)
 Saves object into the parent XML node.
const xmlpp::Node* save (const xmlpp::Node* parent) const
 Saves object into the parent XML node.
void restore (xmlpp::Node* self)
 Restores object with the data from the parent XML node.
Glib::ustring get_path_string ()
 Generates a string describing the path of object in the object hierarchy.
Glib::PropertyProxy
< Glib::ustring
property_name ()
 The name of the object.
Glib::PropertyProxy_ReadOnly
< Glib::ustring
property_name () const
 The name of the object.
Glib::SignalProxy2< void,
const Glib::RefPtr< Object >
&, GParamSpec* > 
signal_deep_notify ()
 The deep notify signal is used to be notified of property changes.
Glib::SignalProxy1< void,
GstXmlNodePtr > 
signal_object_saved ()
 Trigered whenever a new object is saved to XML.
Glib::SignalProxy1< void,
const Glib::RefPtr< Object >& > 
signal_parent_set ()
 Emitted when the parent of an object is set.
Glib::SignalProxy1< void,
const Glib::RefPtr< Object >& > 
signal_parent_unset ()
 Emitted when the parent of an object is unset.
virtual xmlpp::Node* save_vfunc (xmlpp::Node* parent)
virtual void restore_vfunc (xmlpp::Node* self_node)

Static Public Member Functions

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.

Protected Member Functions

virtual void on_deep_notify (const Glib::RefPtr< Object >& prop_object, GParamSpec* prop)
 This is a default handler for the signal signal_deep_notify().
virtual void on_object_saved (GstXmlNodePtr xml_node)
 This is a default handler for the signal signal_object_saved().
virtual void on_parent_set (const Glib::RefPtr< Object >& parent)
 This is a default handler for the signal signal_parent_set().
virtual void on_parent_unset (const Glib::RefPtr< Object >& parent)
 This is a default handler for the signal signal_parent_unset().

Related Functions

(Note that these are not member functions.)

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

Detailed Description

A base class for the GStreamer object hierarchy.

Gst::Object provides a root for the object hierarchy tree filed in by the GStreamer library. It is currently a thin wrapper on top of Glib::Object. It is an abstract class that is not very usable on its own.

Gst::Object gives us basic refcounting, parenting functionality and locking. Most of the function are just extended for special GStreamer needs and can be found under the same name in the base class of Gst::Object which is Glib::Object (e.g. Glib::Object::reference() becomes Gst:Object::reference().

In contrast to Glib::Object instances, Gst::Object adds a name property. The functions set_name() and get_name() are used to set/get the name of the object.

Last reviewed on 2005-11-09 (0.9.4)


Constructor & Destructor Documentation

virtual Gst::Object::~Object ( ) [virtual]

Reimplemented from Glib::Object.


Member Function Documentation

static bool Gst::Object::check_uniqueness ( const Glib::ListHandle< const Gst::Object >&  list,
const Glib::ustring name 
) [static]

Checks to see if there is any object named name in list.

This function does not do any locking of any kind. You might want to protect the provided list with the lock of the owner of the list. This function will lock each Gst::Object in the list to compare the name, so be carefull when passing a list with a locked object.

Parameters:
listA list of Gst::Object to check through.
nameThe name to search for.
Returns:
true if a Gst::Object named name does not appear in list, false if it does.

MT safe. Grabs and releases the LOCK of each object in the list.

guint32 Gst::Object::get_flags ( ) const

Returns the entire set of flags for the object.

Returns a copy of the name of object.

Caller should Glib::free() the return value after usage. For a nameless object, this returns 0, which you can safely Glib::free() as well.

Free-function: g_free

Returns:
The name of object. Glib::free() after usage.

MT safe. This function grabs and releases object's LOCK.

Reimplemented in Gst::Plugin, and Gst::PluginFeature.

Returns a copy of the name prefix of object.

Caller should Glib::free() the return value after usage. For a prefixless object, this returns 0, which you can safely Glib::free() as well.

Deprecated: deprecated because the name prefix has never actually been used for anything.

Returns:
The name prefix of object. Glib::free() after usage.

MT safe. This function grabs and releases object's LOCK.

Returns the parent of object.

This function increases the refcount of the parent object so you should unref() it after usage.

Returns:
Parent of object, this can be 0 if object has no parent. unref after usage.

MT safe. Grabs and releases object's LOCK.

Returns the parent of object.

This function increases the refcount of the parent object so you should unref() it after usage.

Returns:
Parent of object, this can be 0 if object has no parent. unref after usage.

MT safe. Grabs and releases object's LOCK.

Generates a string describing the path of object in the object hierarchy.

Only useful (or used) for debugging.

Free-function: g_free

Returns:
A string describing the path of object. You must Glib::free() the string after usage.

MT safe. Grabs and releases the Gst::Object's LOCK for all objects in the hierarchy.

GstObject* Gst::Object::gobj ( ) [inline]

Provides access to the underlying C GObject.

Reimplemented from Glib::ObjectBase.

Reimplemented in Gst::ElementInterfaced< T_Interface >, Gst::RingBuffer, Gst::Clock, Gst::Index, Gst::Pad, Gst::Element, Gst::MultiFdSink, Gst::TextOverlay, Gst::Bus, Gst::Plugin, Gst::PadTemplate, Gst::TextRender, Gst::BaseSrc, Gst::BaseSink, Gst::BaseTransform, Gst::Bin, Gst::FakeSrc, Gst::PlayBin2, Gst::VideoTestSrc, Gst::ElementFactory, Gst::CddaBaseSrc, Gst::Task, Gst::AudioConvert, Gst::Registry, Gst::TheoraEnc, Gst::Pipeline, Gst::BaseAudioSrc, Gst::BaseAudioSink, Gst::PluginFeature, Gst::AudioTestSrc, Gst::FakeSink, Gst::CdParanoiaSrc, Gst::FileSink, Gst::OutputSelector, Gst::Queue, Gst::Tee, Gst::VideoScale, Gst::VideoSink, Gst::GDPPay, Gst::PushSrc, Gst::AudioSink, Gst::AudioSrc, Gst::GhostPad, Gst::AudioFilter, Gst::SystemClock, Gst::TypeFindFactory, Gst::XML, Gst::AudioClock, Gst::TaskPool, Gst::IndexFactory, Gst::UriDecodeBin, Gst::DecodeBin2, Gst::XvImageSink, Gst::AlsaMixer, Gst::AlsaSrc, Gst::Volume, Gst::XImageSink, Gst::DecodeBin, Gst::GioSink, Gst::GioSrc, Gst::PlayBin, Gst::Adder, Gst::AlsaSink, Gst::CapsFilter, Gst::FdSink, Gst::FdSrc, Gst::FileSrc, Gst::GioStreamSink, Gst::GioStreamSrc, Gst::Identity, Gst::InputSelector, Gst::OggMux, Gst::TCPClientSink, Gst::TCPClientSrc, Gst::TCPServerSrc, Gst::TheoraParse, Gst::TypeFindElement, Gst::VideoRate, Gst::VorbisEnc, Gst::VorbisTag, Gst::AudioRate, Gst::AudioResample, Gst::ClockOverlay, Gst::FfmpegColorSpace, Gst::Funnel, Gst::GDPDepay, Gst::MultiQueue, Gst::OggDemux, Gst::Queue2, Gst::SubtitleOverlay, Gst::TcpServerSink, Gst::TheoraDec, Gst::TimeOverlay, Gst::Valve, Gst::VorbisDec, and Gst::VorbisParse.

const GstObject* Gst::Object::gobj ( ) const [inline]

Provides access to the underlying C GObject.

Reimplemented from Glib::ObjectBase.

Reimplemented in Gst::ElementInterfaced< T_Interface >, Gst::RingBuffer, Gst::Clock, Gst::Index, Gst::Pad, Gst::Element, Gst::MultiFdSink, Gst::TextOverlay, Gst::Bus, Gst::Plugin, Gst::PadTemplate, Gst::TextRender, Gst::BaseSrc, Gst::BaseSink, Gst::BaseTransform, Gst::Bin, Gst::FakeSrc, Gst::PlayBin2, Gst::VideoTestSrc, Gst::ElementFactory, Gst::CddaBaseSrc, Gst::Task, Gst::AudioConvert, Gst::Registry, Gst::TheoraEnc, Gst::Pipeline, Gst::BaseAudioSrc, Gst::BaseAudioSink, Gst::PluginFeature, Gst::AudioTestSrc, Gst::FakeSink, Gst::CdParanoiaSrc, Gst::FileSink, Gst::OutputSelector, Gst::Queue, Gst::Tee, Gst::VideoScale, Gst::VideoSink, Gst::GDPPay, Gst::PushSrc, Gst::AudioSink, Gst::AudioSrc, Gst::GhostPad, Gst::AudioFilter, Gst::SystemClock, Gst::TypeFindFactory, Gst::XML, Gst::AudioClock, Gst::TaskPool, Gst::IndexFactory, Gst::UriDecodeBin, Gst::DecodeBin2, Gst::XvImageSink, Gst::AlsaMixer, Gst::AlsaSrc, Gst::Volume, Gst::XImageSink, Gst::DecodeBin, Gst::GioSink, Gst::GioSrc, Gst::PlayBin, Gst::Adder, Gst::AlsaSink, Gst::CapsFilter, Gst::FdSink, Gst::FdSrc, Gst::FileSrc, Gst::GioStreamSink, Gst::GioStreamSrc, Gst::Identity, Gst::InputSelector, Gst::OggMux, Gst::TCPClientSink, Gst::TCPClientSrc, Gst::TCPServerSrc, Gst::TheoraParse, Gst::TypeFindElement, Gst::VideoRate, Gst::VorbisEnc, Gst::VorbisTag, Gst::AudioRate, Gst::AudioResample, Gst::ClockOverlay, Gst::FfmpegColorSpace, Gst::Funnel, Gst::GDPDepay, Gst::MultiQueue, Gst::OggDemux, Gst::Queue2, Gst::SubtitleOverlay, Gst::TcpServerSink, Gst::TheoraDec, Gst::TimeOverlay, Gst::Valve, Gst::VorbisDec, and Gst::VorbisParse.

GstObject* Gst::Object::gobj_copy ( )

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

Reimplemented in Gst::ElementInterfaced< T_Interface >, Gst::RingBuffer, Gst::Clock, Gst::Index, Gst::Pad, Gst::Element, Gst::MultiFdSink, Gst::TextOverlay, Gst::Bus, Gst::Plugin, Gst::PadTemplate, Gst::TextRender, Gst::BaseSrc, Gst::BaseSink, Gst::BaseTransform, Gst::Bin, Gst::FakeSrc, Gst::PlayBin2, Gst::VideoTestSrc, Gst::ElementFactory, Gst::CddaBaseSrc, Gst::Task, Gst::AudioConvert, Gst::Registry, Gst::TheoraEnc, Gst::Pipeline, Gst::BaseAudioSrc, Gst::BaseAudioSink, Gst::PluginFeature, Gst::AudioTestSrc, Gst::FakeSink, Gst::CdParanoiaSrc, Gst::FileSink, Gst::OutputSelector, Gst::Queue, Gst::Tee, Gst::VideoScale, Gst::VideoSink, Gst::GDPPay, Gst::PushSrc, Gst::AudioSink, Gst::AudioSrc, Gst::GhostPad, Gst::AudioFilter, Gst::SystemClock, Gst::TypeFindFactory, Gst::XML, Gst::AudioClock, Gst::TaskPool, Gst::IndexFactory, Gst::UriDecodeBin, Gst::DecodeBin2, Gst::XvImageSink, Gst::AlsaMixer, Gst::AlsaSrc, Gst::Volume, Gst::XImageSink, Gst::DecodeBin, Gst::GioSink, Gst::GioSrc, Gst::PlayBin, Gst::Adder, Gst::AlsaSink, Gst::CapsFilter, Gst::FdSink, Gst::FdSrc, Gst::FileSrc, Gst::GioStreamSink, Gst::GioStreamSrc, Gst::Identity, Gst::InputSelector, Gst::OggMux, Gst::TCPClientSink, Gst::TCPClientSrc, Gst::TCPServerSrc, Gst::TheoraParse, Gst::TypeFindElement, Gst::VideoRate, Gst::VorbisEnc, Gst::VorbisTag, Gst::AudioRate, Gst::AudioResample, Gst::ClockOverlay, Gst::FfmpegColorSpace, Gst::Funnel, Gst::GDPDepay, Gst::MultiQueue, Gst::OggDemux, Gst::Queue2, Gst::SubtitleOverlay, Gst::TcpServerSink, Gst::TheoraDec, Gst::TimeOverlay, Gst::Valve, Gst::VorbisDec, and Gst::VorbisParse.

bool Gst::Object::has_ancestor ( const Glib::RefPtr< const Gst::Object >&  ancestor) const

Check if object has an ancestor ancestor somewhere up in the hierarchy.

One can e.g. check if a Gst::Element is inside a Gst::Pipeline.

Parameters:
ancestorA Gst::Object to check as ancestor.
Returns:
true if ancestor is an ancestor of object.

MT safe. Grabs and releases object's locks.

virtual void Gst::Object::on_deep_notify ( const Glib::RefPtr< Object >&  prop_object,
GParamSpec *  prop 
) [protected, virtual]

This is a default handler for the signal signal_deep_notify().

virtual void Gst::Object::on_object_saved ( GstXmlNodePtr  xml_node) [protected, virtual]

This is a default handler for the signal signal_object_saved().

virtual void Gst::Object::on_parent_set ( const Glib::RefPtr< Object >&  parent) [protected, virtual]

This is a default handler for the signal signal_parent_set().

virtual void Gst::Object::on_parent_unset ( const Glib::RefPtr< Object >&  parent) [protected, virtual]

This is a default handler for the signal signal_parent_unset().

The name of the object.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.

The name of the object.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.
void Gst::Object::restore ( xmlpp::Node *  self)

Restores object with the data from the parent XML node.

Parameters:
selfThe XML node to load object from.
virtual void Gst::Object::restore_vfunc ( xmlpp::Node *  self_node) [virtual]
xmlpp::Node* Gst::Object::save ( xmlpp::Node *  parent)

Saves object into the parent XML node.

Parameters:
parentThe parent XML node to save object into.
Returns:
The new xmlpp::Node pointer with the saved object.
const xmlpp::Node* Gst::Object::save ( const xmlpp::Node *  parent) const

Saves object into the parent XML node.

Parameters:
parentThe parent XML node to save object into.
Returns:
The new xmlpp::Node pointer with the saved object.
virtual xmlpp::Node* Gst::Object::save_vfunc ( xmlpp::Node *  parent) [virtual]
bool Gst::Object::set_name ( const Glib::ustring name)

Sets the name of object, or gives object a guaranteed unique name (if name is 0).

This function makes a copy of the provided name, so the caller retains ownership of the name it sent.

Parameters:
nameNew name of object.
Returns:
true if the name could be set. Since Objects that have a parent cannot be renamed, this function returns false in those cases.

MT safe. This function grabs and releases object's LOCK.

Reimplemented in Gst::PluginFeature.

void Gst::Object::set_name_prefix ( const Glib::ustring name_prefix)

Sets the name prefix of object to name_prefix.

This function makes a copy of the provided name prefix, so the caller retains ownership of the name prefix it sent.

MT safe. This function grabs and releases object's LOCK.

Deprecated: deprecated because the name prefix has never actually been used for anything.

Parameters:
name_prefixNew name prefix of object.
bool Gst::Object::set_parent ( const Glib::RefPtr< Gst::Object >&  parent)

Sets the parent of object to parent.

The object's reference count will be incremented, and any floating reference will be removed (see sink()).

This function causes the parent-set signal to be emitted when the parent was successfully set.

Parameters:
parentNew parent of object.
Returns:
true if parent could be set or false when object already had a parent or object and parent are the same.

MT safe. Grabs and releases object's LOCK.

The deep notify signal is used to be notified of property changes.

It is typically attached to the toplevel bin to receive notifications from all the elements contained in that bin.

Slot Prototype:
void on_my_deep_notify(const Glib::RefPtr<Object>& prop_object, GParamSpec* prop)

Trigered whenever a new object is saved to XML.

You can connect to this signal to insert custom XML tags into the core XML.

Slot Prototype:
void on_my_object_saved(GstXmlNodePtr xml_node)

Emitted when the parent of an object is set.

Slot Prototype:
void on_my_parent_set(const Glib::RefPtr<Object>& parent)

Emitted when the parent of an object is unset.

Slot Prototype:
void on_my_parent_unset(const Glib::RefPtr<Object>& parent)

Clear the parent of object, removing the associated reference.

This function decreases the refcount of object.

MT safe. Grabs and releases object's lock.


Friends And Related Function Documentation

Glib::RefPtr< Gst::Object > wrap ( GstObject *  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: