|  |  |  | GStreamer 0.10 Core Reference Manual |  | 
|---|---|---|---|---|
#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);
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 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.
| GTypeInstance instance; | type instance | 
| gint refcount; | atomic refcount | 
| guint flags; | 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.
| obj: | 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.
| obj: | 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.
| obj: | 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.
| obj: | MiniObject to check for flags. | 
| flag: | Flag to check for | 
#define GST_MINI_OBJECT_FLAG_SET(obj,flag) (GST_MINI_OBJECT_FLAGS (obj) |= (flag))
This macro sets the given bits.
| obj: | MiniObject to set flag in. | 
| flag: | 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.
| obj: | MiniObject to unset flag in. | 
| flag: | 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.
| obj: | 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.
| obj: | a GstMiniObject | 
GstMiniObject* gst_mini_object_new (GType type);
Creates a new mini-object of the desired type.
MT safe
| type: | 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
| mini_object: | 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
| mini_object: | 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
| mini_object: | 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.
| mini_object: | 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.
| 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.
| olddata: | pointer to a pointer to a mini-object to be replaced | 
| newdata: | pointer to new mini-object | 
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.
| name: | the canonical name of the property | 
| nick: | the nickname of the property | 
| blurb: | a short description of the property | 
| object_type: | the GstMiniObjectType for the property | 
| flags: | 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.
| value: | a valid GValue of GST_TYPE_MINI_OBJECTderived type | 
| mini_object: | 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.
| value: | a valid GValue of GST_TYPE_MINI_OBJECTderived type | 
| mini_object: | 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.
| value: | a valid GValue of GST_TYPE_MINI_OBJECTderived type | 
| Returns : | mini object contents of value |