![]() |
![]() |
![]() |
GStreamer 0.10 Core Reference Manual | ![]() |
---|---|---|---|---|
Top | Description |
#include <gst/gst.h> GstMiniObject; enum GstMiniObjectFlags; GstMiniObject * (*GstMiniObjectCopyFunction) (const GstMiniObject *obj
); void (*GstMiniObjectFinalizeFunction) (GstMiniObject *obj
); #define GST_MINI_OBJECT_FLAGS (obj) #define GST_MINI_OBJECT_FLAG_IS_SET (obj, flag) #define GST_MINI_OBJECT_FLAG_SET (obj, flag) #define GST_MINI_OBJECT_FLAG_UNSET (obj, flag) #define GST_MINI_OBJECT_REFCOUNT (obj) #define GST_MINI_OBJECT_REFCOUNT_VALUE (obj) GstMiniObject* gst_mini_object_new (GType type
); GstMiniObject* gst_mini_object_copy (const GstMiniObject *mini_object
); gboolean gst_mini_object_is_writable (const GstMiniObject *mini_object
); GstMiniObject* gst_mini_object_make_writable (GstMiniObject *mini_object
); GstMiniObject* gst_mini_object_ref (GstMiniObject *mini_object
); void gst_mini_object_unref (GstMiniObject *mini_object
); void gst_mini_object_replace (GstMiniObject **olddata
,GstMiniObject *newdata
); GstParamSpecMiniObject; GParamSpec* gst_param_spec_mini_object (const char *name
,const char *nick
,const char *blurb
,GType object_type
,GParamFlags flags
); void gst_value_set_mini_object (GValue *value
,GstMiniObject *mini_object
); void gst_value_take_mini_object (GValue *value
,GstMiniObject *mini_object
); GstMiniObject* gst_value_get_mini_object (const GValue *value
); GstMiniObject* gst_value_dup_mini_object (const GValue *value
);
GstMiniObject is a baseclass like GObject, but has been stripped down of features to be fast and small. It offers sub-classing and ref-counting in the same way as GObject does. It has no properties and no signal-support though.
Last reviewed on 2005-11-23 (0.9.5)
typedef struct { GTypeInstance instance; gint refcount; guint flags; } GstMiniObject;
Base class for refcounted lightweight objects. Ref Func: gst_mini_object_ref Unref Func: gst_mini_object_unref Set Value Func: gst_value_set_mini_object Get Value Func: gst_value_get_mini_object
GTypeInstance |
type instance |
gint |
atomic refcount |
guint |
extra flags. |
typedef enum { GST_MINI_OBJECT_FLAG_READONLY = (1<<0), /* padding */ GST_MINI_OBJECT_FLAG_LAST = (1<<4) } GstMiniObjectFlags;
Flags for the padtemplate
GstMiniObject * (*GstMiniObjectCopyFunction) (const GstMiniObject *obj
);
Virtual function prototype for methods to create copies of instances.
|
MiniObject to copy |
Returns : |
reference to cloned instance. |
void (*GstMiniObjectFinalizeFunction) (GstMiniObject *obj
);
Virtual function prototype for methods to free ressources used by
mini-objects. Subclasses of the mini object are allowed to revive the
passed object by doing a gst_mini_object_ref()
. If the object is not
revived after the finalize function, the memory associated with the
object is freed.
|
MiniObject to finalize |
#define GST_MINI_OBJECT_FLAGS(obj) (GST_MINI_OBJECT_CAST(obj)->flags)
This macro returns the entire set of flags for the mini-object.
|
MiniObject to return flags for. |
#define GST_MINI_OBJECT_FLAG_IS_SET(obj,flag) !!(GST_MINI_OBJECT_FLAGS (obj) & (flag))
This macro checks to see if the given flag is set.
|
MiniObject to check for flags. |
|
Flag to check for |
#define GST_MINI_OBJECT_FLAG_SET(obj,flag) (GST_MINI_OBJECT_FLAGS (obj) |= (flag))
This macro sets the given bits.
|
MiniObject to set flag in. |
|
Flag to set, can by any number of bits in guint32. |
#define GST_MINI_OBJECT_FLAG_UNSET(obj,flag) (GST_MINI_OBJECT_FLAGS (obj) &= ~(flag))
This macro usets the given bits.
|
MiniObject to unset flag in. |
|
Flag to set, must be a single bit in guint32. |
#define GST_MINI_OBJECT_REFCOUNT(obj) ((GST_MINI_OBJECT_CAST(obj))->refcount)
Get access to the reference count field of the mini-object.
|
a GstMiniObject |
#define GST_MINI_OBJECT_REFCOUNT_VALUE(obj) (g_atomic_int_get (&(GST_MINI_OBJECT_CAST(obj))->refcount))
Get the reference count value of the mini-object.
|
a GstMiniObject |
GstMiniObject* gst_mini_object_new (GType type
);
Creates a new mini-object of the desired type.
MT safe
|
the GType of the mini-object to create |
Returns : |
the new mini-object. |
GstMiniObject* gst_mini_object_copy (const GstMiniObject *mini_object
);
Creates a copy of the mini-object.
MT safe
|
the mini-object to copy |
Returns : |
the new mini-object. |
gboolean gst_mini_object_is_writable (const GstMiniObject *mini_object
);
Checks if a mini-object is writable. A mini-object is writable if the reference count is one and the GST_MINI_OBJECT_FLAG_READONLY flag is not set. Modification of a mini-object should only be done after verifying that it is writable.
MT safe
|
the mini-object to check |
Returns : |
TRUE if the object is writable. |
GstMiniObject* gst_mini_object_make_writable (GstMiniObject *mini_object
);
Checks if a mini-object is writable. If not, a writable copy is made and returned. This gives away the reference to the original mini object, and returns a reference to the new object.
MT safe
|
the mini-object to make writable |
Returns : |
a mini-object (possibly the same pointer) that is writable. |
GstMiniObject* gst_mini_object_ref (GstMiniObject *mini_object
);
Increase the reference count of the mini-object.
Note that the refcount affects the writeability
of mini
-object, see gst_mini_object_is_writable()
. It is
important to note that keeping additional references to
GstMiniObject instances can potentially increase the number
of memcpy operations in a pipeline, especially if the miniobject
is a GstBuffer.
|
the mini-object |
Returns : |
the mini-object. |
void gst_mini_object_unref (GstMiniObject *mini_object
);
Decreases the reference count of the mini-object, possibly freeing the mini-object.
|
the mini-object |
void gst_mini_object_replace (GstMiniObject **olddata
,GstMiniObject *newdata
);
Modifies a pointer to point to a new mini-object. The modification
is done atomically, and the reference counts are updated correctly.
Either newdata
and the value pointed to by olddata
may be NULL.
|
pointer to a pointer to a mini-object to be replaced |
|
pointer to new mini-object |
typedef struct { GParamSpec parent_instance; } GstParamSpecMiniObject;
A GParamSpec
derived structure that contains the meta data
for GstMiniObject
properties.
GParamSpec |
private GParamSpec portion
|
GParamSpec* gst_param_spec_mini_object (const char *name
,const char *nick
,const char *blurb
,GType object_type
,GParamFlags flags
);
Creates a new GParamSpec instance that hold GstMiniObject references.
|
the canonical name of the property |
|
the nickname of the property |
|
a short description of the property |
|
the GstMiniObject GType for the property |
|
a combination of GParamFlags |
Returns : |
a newly allocated GParamSpec instance |
void gst_value_set_mini_object (GValue *value
,GstMiniObject *mini_object
);
Set the contents of a GST_TYPE_MINI_OBJECT
derived GValue to
mini_object
.
The caller retains ownership of the reference.
|
a valid GValue of GST_TYPE_MINI_OBJECT derived type
|
|
mini object value to set |
void gst_value_take_mini_object (GValue *value
,GstMiniObject *mini_object
);
Set the contents of a GST_TYPE_MINI_OBJECT
derived GValue to
mini_object
.
Takes over the ownership of the caller's reference to mini_object
;
the caller doesn't have to unref it any more.
|
a valid GValue of GST_TYPE_MINI_OBJECT derived type
|
|
mini object value to take |
GstMiniObject* gst_value_get_mini_object (const GValue *value
);
Get the contents of a GST_TYPE_MINI_OBJECT
derived GValue.
Does not increase the refcount of the returned object.
|
a valid GValue of GST_TYPE_MINI_OBJECT derived type
|
Returns : |
mini object contents of value
|
GstMiniObject* gst_value_dup_mini_object (const GValue *value
);
Get the contents of a GST_TYPE_MINI_OBJECT
derived GValue,
increasing its reference count.
|
a valid GValue of GST_TYPE_MINI_OBJECT derived type
|
Returns : |
mini object contents of value
|
Since 0.10.20