MiniObject is a simple structure that can be used to implement refcounted types.
Subclasses will include MiniObject as the first member in their structure and then call
gst_mini_object_init to initialize the MiniObject fields.
@ref and
unref increment and decrement the refcount respectively. When the refcount
of a mini-object reaches 0, the dispose function is called first and when this returns true, the free function of the miniobject is
called.
is_writable will return true when the refcount of the
object is exactly 1 and there is no parent or a single parent exists and is writable itself, meaning the current caller has the only reference
to the object. make_writable will return a writable version of the
object, which might be a new copy when the refcount was not 1.
Opaque data can be associated with a MiniObject with
set_qdata and
get_qdata. The data is meant to be specific to the particular object
and is not automatically copied with copy or similar methods.
A weak reference can be added and remove with weak_ref and
weak_unref respectively.
If this has the LOCKABLE flag set, check
if the current EXCLUSIVE lock on object is the only one, this means that changes to the object will not be visible to any other
object.
This function gets back user data pointers stored via
set_qdata and removes the data from
this without invoking its `destroy()` function (if any was set).