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).