X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gst%2Fgstminiobject.h;h=f4e53a2ab2bc0f7c1780e095aa411c2c04545aa8;hb=1be934f0ddac980437d800f4f5b79e3d5c91eafa;hp=f4807a6e385ef90a25688a1a6b7e4d6b7c24b65a;hpb=2836cbee946f00f7876fb070c5385e36af92aff8;p=platform%2Fupstream%2Fgstreamer.git diff --git a/gst/gstminiobject.h b/gst/gstminiobject.h index f4807a6..f4e53a2 100644 --- a/gst/gstminiobject.h +++ b/gst/gstminiobject.h @@ -69,7 +69,7 @@ typedef void (*GstMiniObjectFreeFunction) (GstMiniObject *obj); /** * GstMiniObjectWeakNotify: - * @data: data that was provided when the weak reference was established + * @user_data: data that was provided when the weak reference was established * @where_the_mini_object_was: the mini object being finalized * * A #GstMiniObjectWeakNotify function can be added to a mini object as a @@ -80,14 +80,14 @@ typedef void (*GstMiniObjectFreeFunction) (GstMiniObject *obj); * * Since: 0.10.35 */ -typedef void (*GstMiniObjectWeakNotify) (gpointer data, +typedef void (*GstMiniObjectWeakNotify) (gpointer user_data, GstMiniObject * where_the_mini_object_was); /** - * GST_MINI_OBJECT_FLAGS: - * @obj: MiniObject to return flags for. + * GST_MINI_OBJECT_TYPE: + * @obj: MiniObject to return type for. * - * This macro returns the entire set of flags for the mini-object. + * This macro returns the type of the mini-object. */ #define GST_MINI_OBJECT_TYPE(obj) (GST_MINI_OBJECT_CAST(obj)->type) /** @@ -150,19 +150,10 @@ typedef enum #define GST_MINI_OBJECT_REFCOUNT_VALUE(obj) (g_atomic_int_get (&(GST_MINI_OBJECT_CAST(obj))->refcount)) /** - * GST_MINI_OBJECT_SIZE: - * @obj: a #GstMiniObject - * - * Get the allocated size of @obj. - */ -#define GST_MINI_OBJECT_SIZE(obj) ((GST_MINI_OBJECT_CAST(obj))->size) - -/** * GstMiniObject: * @type: the GType of the object * @refcount: atomic refcount * @flags: extra flags. - * @size: the size of the structure * @copy: a copy function * @dispose: a dispose function * @free: the free function @@ -179,24 +170,21 @@ struct _GstMiniObject { /*< public >*/ /* with COW */ gint refcount; guint flags; - gsize size; GstMiniObjectCopyFunction copy; GstMiniObjectDisposeFunction dispose; GstMiniObjectFreeFunction free; /* < private > */ - /* Used to keep track of weak ref notifies */ - guint n_weak_refs; - struct - { - GstMiniObjectWeakNotify notify; - gpointer data; - } *weak_refs; + /* Used to keep track of weak ref notifies and qdata */ + guint n_qdata; + gpointer qdata; }; -void gst_mini_object_init (GstMiniObject *mini_object, - GType type, gsize size); +void gst_mini_object_init (GstMiniObject *mini_object, GType type, + GstMiniObjectCopyFunction copy_func, + GstMiniObjectDisposeFunction dispose_func, + GstMiniObjectFreeFunction free_func); GstMiniObject * gst_mini_object_copy (const GstMiniObject *mini_object) G_GNUC_MALLOC; gboolean gst_mini_object_is_writable (const GstMiniObject *mini_object); @@ -213,14 +201,26 @@ void gst_mini_object_weak_unref (GstMiniObject *object, GstMiniObjectWeakNotify notify, gpointer data); +void gst_mini_object_set_qdata (GstMiniObject *object, GQuark quark, + gpointer data, GDestroyNotify destroy); +gpointer gst_mini_object_get_qdata (GstMiniObject *object, GQuark quark); + + gboolean gst_mini_object_replace (GstMiniObject **olddata, GstMiniObject *newdata); gboolean gst_mini_object_take (GstMiniObject **olddata, GstMiniObject *newdata); GstMiniObject * gst_mini_object_steal (GstMiniObject **olddata); +/** + * GST_DEFINE_MINI_OBJECT_TYPE: + * @TypeName: name of the new type in CamelCase + * @type_name: name of the new type + * + * Define a new mini-object type with the given name + */ #define GST_DEFINE_MINI_OBJECT_TYPE(TypeName,type_name) \ G_DEFINE_BOXED_TYPE(TypeName,type_name, \ (GBoxedCopyFunc) gst_mini_object_ref, \ - (GBoxedFreeFunc)gst_mini_object_unref) + (GBoxedFreeFunc) gst_mini_object_unref) G_END_DECLS