mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-23 06:26:23 +00:00
miniobject: make miniobject a boxed type
First attempt at making miniobject a simple boxed type.
This commit is contained in:
parent
1218511185
commit
086aac764d
7 changed files with 47 additions and 153 deletions
|
@ -131,7 +131,18 @@
|
||||||
static void gst_buffer_finalize (GstBuffer * buffer);
|
static void gst_buffer_finalize (GstBuffer * buffer);
|
||||||
static GstBuffer *_gst_buffer_copy (GstBuffer * buffer);
|
static GstBuffer *_gst_buffer_copy (GstBuffer * buffer);
|
||||||
|
|
||||||
static GType _gst_buffer_type = 0;
|
GType
|
||||||
|
gst_buffer_get_type (void)
|
||||||
|
{
|
||||||
|
static GType gst_buffer_type = 0;
|
||||||
|
|
||||||
|
if (G_UNLIKELY (gst_buffer_type == 0)) {
|
||||||
|
gst_buffer_type = g_boxed_type_register_static ("GstBuffer",
|
||||||
|
(GBoxedCopyFunc) gst_buffer_copy_conditional,
|
||||||
|
(GBoxedFreeFunc) gst_buffer_unref);
|
||||||
|
}
|
||||||
|
return gst_buffer_type;
|
||||||
|
}
|
||||||
|
|
||||||
/* buffer alignment in bytes
|
/* buffer alignment in bytes
|
||||||
* an alignment of 8 would be the same as malloc() guarantees
|
* an alignment of 8 would be the same as malloc() guarantees
|
||||||
|
@ -172,21 +183,6 @@ _gst_buffer_initialize (void)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#define _do_init \
|
|
||||||
{ \
|
|
||||||
_gst_buffer_type = g_define_type_id; \
|
|
||||||
}
|
|
||||||
|
|
||||||
G_DEFINE_TYPE_WITH_CODE (GstBuffer, gst_buffer, GST_TYPE_MINI_OBJECT, _do_init);
|
|
||||||
|
|
||||||
static void
|
|
||||||
gst_buffer_class_init (GstBufferClass * klass)
|
|
||||||
{
|
|
||||||
klass->mini_object_class.copy = (GstMiniObjectCopyFunction) _gst_buffer_copy;
|
|
||||||
klass->mini_object_class.finalize =
|
|
||||||
(GstMiniObjectFinalizeFunction) gst_buffer_finalize;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gst_buffer_finalize (GstBuffer * buffer)
|
gst_buffer_finalize (GstBuffer * buffer)
|
||||||
{
|
{
|
||||||
|
@ -202,9 +198,6 @@ gst_buffer_finalize (GstBuffer * buffer)
|
||||||
|
|
||||||
if (buffer->parent)
|
if (buffer->parent)
|
||||||
gst_buffer_unref (buffer->parent);
|
gst_buffer_unref (buffer->parent);
|
||||||
|
|
||||||
/* ((GstMiniObjectClass *) */
|
|
||||||
/* gst_buffer_parent_class)->finalize (GST_MINI_OBJECT_CAST (buffer)); */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -310,6 +303,9 @@ gst_buffer_init (GstBuffer * buffer)
|
||||||
{
|
{
|
||||||
GST_CAT_LOG (GST_CAT_BUFFER, "init %p", buffer);
|
GST_CAT_LOG (GST_CAT_BUFFER, "init %p", buffer);
|
||||||
|
|
||||||
|
buffer->mini_object.copy = (GstMiniObjectCopyFunction) _gst_buffer_copy;
|
||||||
|
buffer->mini_object.free = (GstMiniObjectFreeeFunction) gst_buffer_finalize;
|
||||||
|
|
||||||
GST_BUFFER_TIMESTAMP (buffer) = GST_CLOCK_TIME_NONE;
|
GST_BUFFER_TIMESTAMP (buffer) = GST_CLOCK_TIME_NONE;
|
||||||
GST_BUFFER_DURATION (buffer) = GST_CLOCK_TIME_NONE;
|
GST_BUFFER_DURATION (buffer) = GST_CLOCK_TIME_NONE;
|
||||||
GST_BUFFER_OFFSET (buffer) = GST_BUFFER_OFFSET_NONE;
|
GST_BUFFER_OFFSET (buffer) = GST_BUFFER_OFFSET_NONE;
|
||||||
|
@ -331,7 +327,7 @@ gst_buffer_new (void)
|
||||||
{
|
{
|
||||||
GstBuffer *newbuf;
|
GstBuffer *newbuf;
|
||||||
|
|
||||||
newbuf = (GstBuffer *) gst_mini_object_new (_gst_buffer_type);
|
newbuf = (GstBuffer *) gst_mini_object_new (GST_TYPE_BUFFER);
|
||||||
|
|
||||||
GST_CAT_LOG (GST_CAT_BUFFER, "new %p", newbuf);
|
GST_CAT_LOG (GST_CAT_BUFFER, "new %p", newbuf);
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,6 @@
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
typedef struct _GstBuffer GstBuffer;
|
typedef struct _GstBuffer GstBuffer;
|
||||||
typedef struct _GstBufferClass GstBufferClass;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GST_BUFFER_TRACE_NAME:
|
* GST_BUFFER_TRACE_NAME:
|
||||||
|
@ -41,12 +40,9 @@ typedef struct _GstBufferClass GstBufferClass;
|
||||||
#define GST_BUFFER_TRACE_NAME "GstBuffer"
|
#define GST_BUFFER_TRACE_NAME "GstBuffer"
|
||||||
|
|
||||||
#define GST_TYPE_BUFFER (gst_buffer_get_type())
|
#define GST_TYPE_BUFFER (gst_buffer_get_type())
|
||||||
#define GST_IS_BUFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_BUFFER))
|
#define GST_IS_BUFFER(obj) (GST_MINI_OBJECT_TYPE(obj) == GST_TYPE_BUFFER)
|
||||||
#define GST_IS_BUFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_BUFFER))
|
|
||||||
#define GST_BUFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_BUFFER, GstBufferClass))
|
|
||||||
#define GST_BUFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_BUFFER, GstBuffer))
|
|
||||||
#define GST_BUFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_BUFFER, GstBufferClass))
|
|
||||||
#define GST_BUFFER_CAST(obj) ((GstBuffer *)(obj))
|
#define GST_BUFFER_CAST(obj) ((GstBuffer *)(obj))
|
||||||
|
#define GST_BUFFER(obj) (GST_BUFFER_CAST(obj))
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GST_BUFFER_FLAGS:
|
* GST_BUFFER_FLAGS:
|
||||||
|
@ -233,7 +229,7 @@ typedef enum {
|
||||||
GST_BUFFER_FLAG_MEDIA1 = (GST_MINI_OBJECT_FLAG_LAST << 5),
|
GST_BUFFER_FLAG_MEDIA1 = (GST_MINI_OBJECT_FLAG_LAST << 5),
|
||||||
GST_BUFFER_FLAG_MEDIA2 = (GST_MINI_OBJECT_FLAG_LAST << 6),
|
GST_BUFFER_FLAG_MEDIA2 = (GST_MINI_OBJECT_FLAG_LAST << 6),
|
||||||
GST_BUFFER_FLAG_MEDIA3 = (GST_MINI_OBJECT_FLAG_LAST << 7),
|
GST_BUFFER_FLAG_MEDIA3 = (GST_MINI_OBJECT_FLAG_LAST << 7),
|
||||||
GST_BUFFER_FLAG_LAST = (GST_MINI_OBJECT_FLAG_LAST << 8)
|
GST_BUFFER_FLAG_LAST = (GST_MINI_OBJECT_FLAG_LAST << 16)
|
||||||
} GstBufferFlag;
|
} GstBufferFlag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -291,10 +287,6 @@ struct _GstBuffer {
|
||||||
gpointer _gst_reserved[GST_PADDING];
|
gpointer _gst_reserved[GST_PADDING];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _GstBufferClass {
|
|
||||||
GstMiniObjectClass mini_object_class;
|
|
||||||
};
|
|
||||||
|
|
||||||
GType gst_buffer_get_type (void);
|
GType gst_buffer_get_type (void);
|
||||||
|
|
||||||
/* allocation */
|
/* allocation */
|
||||||
|
@ -484,7 +476,7 @@ GstBuffer* gst_buffer_span (GstBuffer *buf1, guint32 offset
|
||||||
*
|
*
|
||||||
* Sets @b as the value of @v. Caller retains reference to buffer.
|
* Sets @b as the value of @v. Caller retains reference to buffer.
|
||||||
*/
|
*/
|
||||||
#define gst_value_set_buffer(v,b) gst_value_set_mini_object(v, GST_MINI_OBJECT_CAST(b))
|
#define gst_value_set_buffer(v,b) g_value_set_boxed((v),(b))
|
||||||
/**
|
/**
|
||||||
* gst_value_take_buffer:
|
* gst_value_take_buffer:
|
||||||
* @v: a #GValue to receive the data
|
* @v: a #GValue to receive the data
|
||||||
|
@ -492,7 +484,7 @@ GstBuffer* gst_buffer_span (GstBuffer *buf1, guint32 offset
|
||||||
*
|
*
|
||||||
* Sets @b as the value of @v. Caller gives away reference to buffer.
|
* Sets @b as the value of @v. Caller gives away reference to buffer.
|
||||||
*/
|
*/
|
||||||
#define gst_value_take_buffer(v,b) gst_value_take_mini_object(v, GST_MINI_OBJECT_CAST(b))
|
#define gst_value_take_buffer(v,b) g_value_take_boxed(v,(b))
|
||||||
/**
|
/**
|
||||||
* gst_value_get_buffer:
|
* gst_value_get_buffer:
|
||||||
* @v: a #GValue to query
|
* @v: a #GValue to query
|
||||||
|
@ -503,7 +495,7 @@ GstBuffer* gst_buffer_span (GstBuffer *buf1, guint32 offset
|
||||||
*
|
*
|
||||||
* Returns: (transfer none): buffer
|
* Returns: (transfer none): buffer
|
||||||
*/
|
*/
|
||||||
#define gst_value_get_buffer(v) GST_BUFFER_CAST (gst_value_get_mini_object(v))
|
#define gst_value_get_buffer(v) GST_BUFFER_CAST (g_value_get_boxed(v))
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
|
|
@ -117,21 +117,12 @@ typedef struct _GstStaticCaps GstStaticCaps;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GstCaps:
|
* GstCaps:
|
||||||
* @type: GType of the caps
|
* @mini_object: the parent type
|
||||||
* @refcount: the atomic refcount value
|
|
||||||
* @flags: extra flags for the caps, read only.
|
|
||||||
*
|
*
|
||||||
* Object describing media types.
|
* Object describing media types.
|
||||||
*/
|
*/
|
||||||
struct _GstCaps {
|
struct _GstCaps {
|
||||||
GType type;
|
GstMiniObject mini_object;
|
||||||
|
|
||||||
/*< public >*/ /* with COW */
|
|
||||||
/* refcounting */
|
|
||||||
gint refcount;
|
|
||||||
|
|
||||||
/*< public >*/ /* read only */
|
|
||||||
GstCapsFlags flags;
|
|
||||||
|
|
||||||
/*< private >*/
|
/*< private >*/
|
||||||
GPtrArray *structs;
|
GPtrArray *structs;
|
||||||
|
|
|
@ -157,7 +157,6 @@ typedef enum {
|
||||||
#define GST_EVENT_TRACE_NAME "GstEvent"
|
#define GST_EVENT_TRACE_NAME "GstEvent"
|
||||||
|
|
||||||
typedef struct _GstEvent GstEvent;
|
typedef struct _GstEvent GstEvent;
|
||||||
typedef struct _GstEventClass GstEventClass;
|
|
||||||
|
|
||||||
#define GST_TYPE_EVENT (gst_event_get_type())
|
#define GST_TYPE_EVENT (gst_event_get_type())
|
||||||
#define GST_IS_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_EVENT))
|
#define GST_IS_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_EVENT))
|
||||||
|
@ -364,13 +363,6 @@ struct _GstEvent {
|
||||||
gpointer _gst_reserved[GST_PADDING];
|
gpointer _gst_reserved[GST_PADDING];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _GstEventClass {
|
|
||||||
GstMiniObjectClass mini_object_class;
|
|
||||||
|
|
||||||
/*< private >*/
|
|
||||||
gpointer _gst_reserved[GST_PADDING];
|
|
||||||
};
|
|
||||||
|
|
||||||
const gchar* gst_event_type_get_name (GstEventType type);
|
const gchar* gst_event_type_get_name (GstEventType type);
|
||||||
GQuark gst_event_type_to_quark (GstEventType type);
|
GQuark gst_event_type_to_quark (GstEventType type);
|
||||||
GstEventTypeFlags
|
GstEventTypeFlags
|
||||||
|
|
|
@ -25,7 +25,6 @@
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
typedef struct _GstMessage GstMessage;
|
typedef struct _GstMessage GstMessage;
|
||||||
typedef struct _GstMessageClass GstMessageClass;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GstMessageType:
|
* GstMessageType:
|
||||||
|
@ -142,12 +141,9 @@ typedef enum
|
||||||
#define GST_MESSAGE_TRACE_NAME "GstMessage"
|
#define GST_MESSAGE_TRACE_NAME "GstMessage"
|
||||||
|
|
||||||
#define GST_TYPE_MESSAGE (gst_message_get_type())
|
#define GST_TYPE_MESSAGE (gst_message_get_type())
|
||||||
#define GST_IS_MESSAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_MESSAGE))
|
#define GST_IS_MESSAGE(obj) (GST_MINI_OBJECT_TYPE (obj) == GST_TYPE_MESSAGE)
|
||||||
#define GST_IS_MESSAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_MESSAGE))
|
|
||||||
#define GST_MESSAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_MESSAGE, GstMessageClass))
|
|
||||||
#define GST_MESSAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_MESSAGE, GstMessage))
|
|
||||||
#define GST_MESSAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_MESSAGE, GstMessageClass))
|
|
||||||
#define GST_MESSAGE_CAST(obj) ((GstMessage*)(obj))
|
#define GST_MESSAGE_CAST(obj) ((GstMessage*)(obj))
|
||||||
|
#define GST_MESSAGE(obj) (GST_MESSAGE_CAST(obj))
|
||||||
|
|
||||||
/* the lock is used to handle the synchronous handling of messages,
|
/* the lock is used to handle the synchronous handling of messages,
|
||||||
* the emiting thread is block until the handling thread processed
|
* the emiting thread is block until the handling thread processed
|
||||||
|
@ -303,13 +299,6 @@ struct _GstMessage
|
||||||
gpointer _gst_reserved[GST_PADDING];
|
gpointer _gst_reserved[GST_PADDING];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _GstMessageClass {
|
|
||||||
GstMiniObjectClass mini_object_class;
|
|
||||||
|
|
||||||
/*< private >*/
|
|
||||||
gpointer _gst_reserved[GST_PADDING];
|
|
||||||
};
|
|
||||||
|
|
||||||
GType gst_message_get_type (void);
|
GType gst_message_get_type (void);
|
||||||
|
|
||||||
const gchar* gst_message_type_get_name (GstMessageType type);
|
const gchar* gst_message_type_get_name (GstMessageType type);
|
||||||
|
|
|
@ -29,17 +29,10 @@
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
#define GST_TYPE_MINI_OBJECT (gst_mini_object_get_type())
|
|
||||||
#define GST_IS_MINI_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_MINI_OBJECT))
|
|
||||||
#define GST_IS_MINI_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_MINI_OBJECT))
|
|
||||||
#define GST_MINI_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_MINI_OBJECT, GstMiniObjectClass))
|
|
||||||
#define GST_MINI_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_MINI_OBJECT, GstMiniObject))
|
|
||||||
#define GST_MINI_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_MINI_OBJECT, GstMiniObjectClass))
|
|
||||||
#define GST_MINI_OBJECT_CAST(obj) ((GstMiniObject*)(obj))
|
#define GST_MINI_OBJECT_CAST(obj) ((GstMiniObject*)(obj))
|
||||||
#define GST_MINI_OBJECT_CONST_CAST(obj) ((const GstMiniObject*)(obj))
|
#define GST_MINI_OBJECT_CONST_CAST(obj) ((const GstMiniObject*)(obj))
|
||||||
|
|
||||||
typedef struct _GstMiniObject GstMiniObject;
|
typedef struct _GstMiniObject GstMiniObject;
|
||||||
typedef struct _GstMiniObjectClass GstMiniObjectClass;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GstMiniObjectCopyFunction:
|
* GstMiniObjectCopyFunction:
|
||||||
|
@ -51,17 +44,24 @@ typedef struct _GstMiniObjectClass GstMiniObjectClass;
|
||||||
*/
|
*/
|
||||||
typedef GstMiniObject * (*GstMiniObjectCopyFunction) (const GstMiniObject *obj);
|
typedef GstMiniObject * (*GstMiniObjectCopyFunction) (const GstMiniObject *obj);
|
||||||
/**
|
/**
|
||||||
* GstMiniObjectFinalizeFunction:
|
* GstMiniObjectFreeFunction:
|
||||||
* @obj: MiniObject to finalize
|
* @obj: MiniObject to free
|
||||||
*
|
*
|
||||||
* Virtual function prototype for methods to free ressources used by
|
* Virtual function prototype for methods to free ressources used by
|
||||||
* mini-objects. Subclasses of the mini object are allowed to revive the
|
* 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
|
* passed object by doing a gst_mini_object_ref(). If the object is not
|
||||||
* revived after the finalize function, the memory associated with the
|
* revived after the free function, the memory associated with the
|
||||||
* object is freed.
|
* object is freed.
|
||||||
*/
|
*/
|
||||||
typedef void (*GstMiniObjectFinalizeFunction) (GstMiniObject *obj);
|
typedef void (*GstMiniObjectFreeFunction) (GstMiniObject *obj);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GST_MINI_OBJECT_FLAGS:
|
||||||
|
* @obj: MiniObject to return flags for.
|
||||||
|
*
|
||||||
|
* This macro returns the entire set of flags for the mini-object.
|
||||||
|
*/
|
||||||
|
#define GST_MINI_OBJECT_TYPE(obj) (GST_MINI_OBJECT_CAST(obj)->type)
|
||||||
/**
|
/**
|
||||||
* GST_MINI_OBJECT_FLAGS:
|
* GST_MINI_OBJECT_FLAGS:
|
||||||
* @obj: MiniObject to return flags for.
|
* @obj: MiniObject to return flags for.
|
||||||
|
@ -94,14 +94,6 @@ typedef void (*GstMiniObjectFinalizeFunction) (GstMiniObject *obj);
|
||||||
*/
|
*/
|
||||||
#define GST_MINI_OBJECT_FLAG_UNSET(obj,flag) (GST_MINI_OBJECT_FLAGS (obj) &= ~(flag))
|
#define GST_MINI_OBJECT_FLAG_UNSET(obj,flag) (GST_MINI_OBJECT_FLAGS (obj) &= ~(flag))
|
||||||
|
|
||||||
/**
|
|
||||||
* GST_VALUE_HOLDS_MINI_OBJECT:
|
|
||||||
* @value: the #GValue to check
|
|
||||||
*
|
|
||||||
* Checks if the given #GValue contains a #GST_TYPE_MINI_OBJECT value.
|
|
||||||
*/
|
|
||||||
#define GST_VALUE_HOLDS_MINI_OBJECT(value) (G_VALUE_HOLDS(value, GST_TYPE_MINI_OBJECT))
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GstMiniObjectFlags:
|
* GstMiniObjectFlags:
|
||||||
* @GST_MINI_OBJECT_FLAG_READONLY: is the miniobject readonly or writable
|
* @GST_MINI_OBJECT_FLAG_READONLY: is the miniobject readonly or writable
|
||||||
|
@ -111,7 +103,6 @@ typedef void (*GstMiniObjectFinalizeFunction) (GstMiniObject *obj);
|
||||||
*
|
*
|
||||||
* Flags for the mini object
|
* Flags for the mini object
|
||||||
*/
|
*/
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
GST_MINI_OBJECT_FLAG_READONLY = (1<<0),
|
GST_MINI_OBJECT_FLAG_READONLY = (1<<0),
|
||||||
|
@ -148,28 +139,18 @@ typedef enum
|
||||||
* Get Value Func: gst_value_get_mini_object
|
* Get Value Func: gst_value_get_mini_object
|
||||||
*/
|
*/
|
||||||
struct _GstMiniObject {
|
struct _GstMiniObject {
|
||||||
GTypeInstance instance;
|
GType type;
|
||||||
|
|
||||||
/*< public >*/ /* with COW */
|
/*< public >*/ /* with COW */
|
||||||
gint refcount;
|
gint refcount;
|
||||||
guint flags;
|
guint flags;
|
||||||
|
|
||||||
/*< private >*/
|
|
||||||
gpointer _gst_reserved;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _GstMiniObjectClass {
|
|
||||||
GTypeClass type_class;
|
|
||||||
|
|
||||||
GstMiniObjectCopyFunction copy;
|
GstMiniObjectCopyFunction copy;
|
||||||
GstMiniObjectFinalizeFunction finalize;
|
GstMiniObjectFreeFunction free;
|
||||||
|
|
||||||
/*< private >*/
|
|
||||||
gpointer _gst_reserved;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
GType gst_mini_object_get_type (void);
|
GType gst_mini_object_get_type (void);
|
||||||
|
|
||||||
GstMiniObject* gst_mini_object_new (GType type);
|
|
||||||
GstMiniObject* gst_mini_object_copy (const GstMiniObject *mini_object);
|
GstMiniObject* gst_mini_object_copy (const GstMiniObject *mini_object);
|
||||||
gboolean gst_mini_object_is_writable (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_make_writable (GstMiniObject *mini_object);
|
||||||
|
@ -177,45 +158,9 @@ GstMiniObject* gst_mini_object_make_writable (GstMiniObject *mini_object);
|
||||||
/* refcounting */
|
/* refcounting */
|
||||||
GstMiniObject* gst_mini_object_ref (GstMiniObject *mini_object);
|
GstMiniObject* gst_mini_object_ref (GstMiniObject *mini_object);
|
||||||
void gst_mini_object_unref (GstMiniObject *mini_object);
|
void gst_mini_object_unref (GstMiniObject *mini_object);
|
||||||
|
|
||||||
void gst_mini_object_replace (GstMiniObject **olddata, GstMiniObject *newdata);
|
void gst_mini_object_replace (GstMiniObject **olddata, GstMiniObject *newdata);
|
||||||
|
|
||||||
/* GParamSpec */
|
|
||||||
|
|
||||||
#define GST_TYPE_PARAM_MINI_OBJECT (gst_param_spec_mini_object_get_type())
|
|
||||||
#define GST_IS_PARAM_SPEC_MINI_OBJECT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), \
|
|
||||||
GST_TYPE_PARAM_MINI_OBJECT))
|
|
||||||
#define GST_PARAM_SPEC_MINI_OBJECT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), \
|
|
||||||
GST_TYPE_PARAM_MINI_OBJECT, \
|
|
||||||
GstParamSpecMiniObject))
|
|
||||||
|
|
||||||
typedef struct _GstParamSpecMiniObject GstParamSpecMiniObject;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* GstParamSpecMiniObject:
|
|
||||||
* @parent_instance: private %GParamSpec portion
|
|
||||||
*
|
|
||||||
* A %GParamSpec derived structure that contains the meta data
|
|
||||||
* for %GstMiniObject properties.
|
|
||||||
*/
|
|
||||||
struct _GstParamSpecMiniObject
|
|
||||||
{
|
|
||||||
GParamSpec parent_instance;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
GType gst_param_spec_mini_object_get_type (void);
|
|
||||||
|
|
||||||
GParamSpec* gst_param_spec_mini_object (const char *name, const char *nick,
|
|
||||||
const char *blurb, GType object_type,
|
|
||||||
GParamFlags flags);
|
|
||||||
|
|
||||||
/* GValue stuff */
|
|
||||||
|
|
||||||
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);
|
|
||||||
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
|
|
@ -90,7 +90,6 @@ typedef enum {
|
||||||
|
|
||||||
typedef struct _GstQueryTypeDefinition GstQueryTypeDefinition;
|
typedef struct _GstQueryTypeDefinition GstQueryTypeDefinition;
|
||||||
typedef struct _GstQuery GstQuery;
|
typedef struct _GstQuery GstQuery;
|
||||||
typedef struct _GstQueryClass GstQueryClass;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GstQueryTypeDefinition:
|
* GstQueryTypeDefinition:
|
||||||
|
@ -109,13 +108,10 @@ struct _GstQueryTypeDefinition
|
||||||
GQuark quark;
|
GQuark quark;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define GST_TYPE_QUERY (gst_query_get_type())
|
#define GST_TYPE_QUERY (gst_query_get_type())
|
||||||
#define GST_IS_QUERY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_QUERY))
|
#define GST_IS_QUERY(obj) (GST_MINI_OBJECT_TYPE (obj) == GST_TYPE_QUERY)
|
||||||
#define GST_IS_QUERY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_QUERY))
|
#define GST_QUERY_CAST(obj) ((GstQuery*)(obj))
|
||||||
#define GST_QUERY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_QUERY, GstQueryClass))
|
#define GST_QUERY(obj) (GST_QUERY_CAST(obj))
|
||||||
#define GST_QUERY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_QUERY, GstQuery))
|
|
||||||
#define GST_QUERY_CAST(obj) ((GstQuery*)(obj)) /* only since 0.10.23 */
|
|
||||||
#define GST_QUERY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_QUERY, GstQueryClass))
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -158,13 +154,6 @@ struct _GstQuery
|
||||||
gpointer _gst_reserved;
|
gpointer _gst_reserved;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _GstQueryClass {
|
|
||||||
GstMiniObjectClass mini_object_class;
|
|
||||||
|
|
||||||
/*< private >*/
|
|
||||||
gpointer _gst_reserved[GST_PADDING];
|
|
||||||
};
|
|
||||||
|
|
||||||
const gchar* gst_query_type_get_name (GstQueryType query);
|
const gchar* gst_query_type_get_name (GstQueryType query);
|
||||||
GQuark gst_query_type_to_quark (GstQueryType query);
|
GQuark gst_query_type_to_quark (GstQueryType query);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue