gstbuffer.h | gstbuffer.h | |||
---|---|---|---|---|
skipping to change at line 40 | skipping to change at line 40 | |||
G_BEGIN_DECLS | G_BEGIN_DECLS | |||
typedef struct _GstBuffer GstBuffer; | typedef struct _GstBuffer GstBuffer; | |||
typedef struct _GstBufferClass GstBufferClass; | typedef struct _GstBufferClass GstBufferClass; | |||
/** | /** | |||
* GST_BUFFER_TRACE_NAME: | * GST_BUFFER_TRACE_NAME: | |||
* | * | |||
* The name used for tracing memory allocations. | * The name used for tracing memory allocations. | |||
*/ | */ | |||
#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) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_BUFFER)) | |||
#define GST_IS_BUFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE (( klass), 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_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(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_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)) | |||
/** | /** | |||
* GST_BUFFER_FLAGS: | * GST_BUFFER_FLAGS: | |||
* @buf: a #GstBuffer. | * @buf: a #GstBuffer. | |||
skipping to change at line 88 | skipping to change at line 88 | |||
* Clears a buffer flag. | * Clears a buffer flag. | |||
*/ | */ | |||
#define GST_BUFFER_FLAG_UNSET(buf,flag) GST_MINI_OBJECT_FLAG_UNSET (buf, flag) | #define GST_BUFFER_FLAG_UNSET(buf,flag) GST_MINI_OBJECT_FLAG_UNSET (buf, flag) | |||
/** | /** | |||
* GST_BUFFER_DATA: | * GST_BUFFER_DATA: | |||
* @buf: a #GstBuffer. | * @buf: a #GstBuffer. | |||
* | * | |||
* A pointer to the data element of this buffer. | * A pointer to the data element of this buffer. | |||
*/ | */ | |||
#define GST_BUFFER_DATA(buf) (GST_BUFFER_CAST(buf)->data) | #define GST_BUFFER_DATA(buf) (GST_BUFFER_CAST(buf)->data ) | |||
/** | /** | |||
* GST_BUFFER_SIZE: | * GST_BUFFER_SIZE: | |||
* @buf: a #GstBuffer. | * @buf: a #GstBuffer. | |||
* | * | |||
* The size in bytes of the data in this buffer. | * The size in bytes of the data in this buffer. | |||
*/ | */ | |||
#define GST_BUFFER_SIZE(buf) (GST_BUFFER_CAST(buf)->size) | #define GST_BUFFER_SIZE(buf) (GST_BUFFER_CAST(buf)->size ) | |||
/** | /** | |||
* GST_BUFFER_TIMESTAMP: | * GST_BUFFER_TIMESTAMP: | |||
* @buf: a #GstBuffer.: | * @buf: a #GstBuffer.: | |||
* | * | |||
* The timestamp in nanoseconds (as a #GstClockTime) of the data in the buf fer. | * The timestamp in nanoseconds (as a #GstClockTime) of the data in the buf fer. | |||
* Value will be %GST_CLOCK_TIME_NONE if the timestamp is unknown. | * Value will be %GST_CLOCK_TIME_NONE if the timestamp is unknown. | |||
* | * | |||
*/ | */ | |||
#define GST_BUFFER_TIMESTAMP(buf) (GST_BUFFER_CAST(buf)->times tamp) | #define GST_BUFFER_TIMESTAMP(buf) (GST_BUFFER_CAST(buf)->time stamp) | |||
/** | /** | |||
* GST_BUFFER_DURATION: | * GST_BUFFER_DURATION: | |||
* @buf: a #GstBuffer. | * @buf: a #GstBuffer. | |||
* | * | |||
* The duration in nanoseconds (as a #GstClockTime) of the data in the buff er. | * The duration in nanoseconds (as a #GstClockTime) of the data in the buff er. | |||
* Value will be %GST_CLOCK_TIME_NONE if the duration is unknown. | * Value will be %GST_CLOCK_TIME_NONE if the duration is unknown. | |||
*/ | */ | |||
#define GST_BUFFER_DURATION(buf) (GST_BUFFER_CAST(buf)->durat ion) | #define GST_BUFFER_DURATION(buf) (GST_BUFFER_CAST(buf)->dura tion) | |||
/** | /** | |||
* GST_BUFFER_CAPS: | * GST_BUFFER_CAPS: | |||
* @buf: a #GstBuffer. | * @buf: a #GstBuffer. | |||
* | * | |||
* The caps for this buffer. | * The caps for this buffer. | |||
*/ | */ | |||
#define GST_BUFFER_CAPS(buf) (GST_BUFFER_CAST(buf)->caps) | #define GST_BUFFER_CAPS(buf) (GST_BUFFER_CAST(buf)->caps ) | |||
/** | /** | |||
* GST_BUFFER_OFFSET: | * GST_BUFFER_OFFSET: | |||
* @buf: a #GstBuffer. | * @buf: a #GstBuffer. | |||
* | * | |||
* The offset in the source file of the beginning of this buffer. | * The offset in the source file of the beginning of this buffer. | |||
*/ | */ | |||
#define GST_BUFFER_OFFSET(buf) (GST_BUFFER_CAST(buf)->offse t) | #define GST_BUFFER_OFFSET(buf) (GST_BUFFER_CAST(buf)->offs et) | |||
/** | /** | |||
* GST_BUFFER_OFFSET_END: | * GST_BUFFER_OFFSET_END: | |||
* @buf: a #GstBuffer. | * @buf: a #GstBuffer. | |||
* | * | |||
* The offset in the source file of the end of this buffer. | * The offset in the source file of the end of this buffer. | |||
*/ | */ | |||
#define GST_BUFFER_OFFSET_END(buf) (GST_BUFFER_CAST(buf)->offse t_end) | #define GST_BUFFER_OFFSET_END(buf) (GST_BUFFER_CAST(buf)->offs et_end) | |||
/** | /** | |||
* GST_BUFFER_MALLOCDATA: | * GST_BUFFER_MALLOCDATA: | |||
* @buf: a #GstBuffer. | * @buf: a #GstBuffer. | |||
* | * | |||
* A pointer to any data allocated for this buffer using g_malloc(). If thi s is | * A pointer to any data allocated for this buffer using g_malloc(). If thi s is | |||
* non-NULL, this memory will be freed at the end of the buffer's lifecycle | * non-NULL, this memory will be freed at the end of the buffer's lifecycle | |||
* (i.e. when its refcount becomes zero). | * (i.e. when its refcount becomes zero). | |||
*/ | */ | |||
#define GST_BUFFER_MALLOCDATA(buf) (GST_BUFFER_CAST(buf)->mallo c_data) | #define GST_BUFFER_MALLOCDATA(buf) (GST_BUFFER_CAST(buf)->mall oc_data) | |||
/** | /** | |||
* GST_BUFFER_FREE_FUNC: | * GST_BUFFER_FREE_FUNC: | |||
* @buf: a #GstBuffer. | * @buf: a #GstBuffer. | |||
* | * | |||
* A pointer to a function that will be called on the buffer's malloc_data when | * A pointer to a function that will be called on the buffer's malloc_data when | |||
* this buffer is finalized. Defaults to g_free(). | * this buffer is finalized. Defaults to g_free(). | |||
* | * | |||
* Note that the free function only affects the buffer's malloc_data; if th e | * Note that the free function only affects the buffer's malloc_data; if th e | |||
* buffer's malloc_data is %NULL, the function will not be called. | * buffer's malloc_data is %NULL, the function will not be called. | |||
* | * | |||
* Since: 0.10.22 | * Since: 0.10.22 | |||
*/ | */ | |||
#define GST_BUFFER_FREE_FUNC(buf) (GST_BUFFER_CAST(buf)->free_ func) | #define GST_BUFFER_FREE_FUNC(buf) (GST_BUFFER_CAST(buf)->free _func) | |||
/** | /** | |||
* GST_BUFFER_OFFSET_NONE: | * GST_BUFFER_OFFSET_NONE: | |||
* | * | |||
* Constant for no-offset return results. | * Constant for no-offset return results. | |||
*/ | */ | |||
#define GST_BUFFER_OFFSET_NONE ((guint64)-1) | #define GST_BUFFER_OFFSET_NONE ((guint64)-1) | |||
/** | /** | |||
* GST_BUFFER_DURATION_IS_VALID: | * GST_BUFFER_DURATION_IS_VALID: | |||
* @buffer: a #GstBuffer | * @buffer: a #GstBuffer | |||
* | * | |||
* Tests if the duration is known. | * Tests if the duration is known. | |||
*/ | */ | |||
#define GST_BUFFER_DURATION_IS_VALID(buffer) (GST_CLOCK_TIME_IS_VALID (GS T_BUFFER_DURATION (buffer))) | #define GST_BUFFER_DURATION_IS_VALID(buffer) (GST_CLOCK_TIME_IS_VALID (G ST_BUFFER_DURATION (buffer))) | |||
/** | /** | |||
* GST_BUFFER_TIMESTAMP_IS_VALID: | * GST_BUFFER_TIMESTAMP_IS_VALID: | |||
* @buffer: a #GstBuffer | * @buffer: a #GstBuffer | |||
* | * | |||
* Tests if the timestamp is known. | * Tests if the timestamp is known. | |||
*/ | */ | |||
#define GST_BUFFER_TIMESTAMP_IS_VALID(buffer) (GST_CLOCK_TIME_IS_VALID (GS T_BUFFER_TIMESTAMP (buffer))) | #define GST_BUFFER_TIMESTAMP_IS_VALID(buffer) (GST_CLOCK_TIME_IS_VALID (G ST_BUFFER_TIMESTAMP (buffer))) | |||
/** | /** | |||
* GST_BUFFER_OFFSET_IS_VALID: | * GST_BUFFER_OFFSET_IS_VALID: | |||
* @buffer: a #GstBuffer | * @buffer: a #GstBuffer | |||
* | * | |||
* Tests if the start offset is known. | * Tests if the start offset is known. | |||
*/ | */ | |||
#define GST_BUFFER_OFFSET_IS_VALID(buffer) (GST_BUFFER_OFFSET (buffer) != GST_BUFFER_OFFSET_NONE) | #define GST_BUFFER_OFFSET_IS_VALID(buffer) (GST_BUFFER_OFFSET (buffer) != GST_BUFFER_OFFSET_NONE) | |||
/** | /** | |||
* GST_BUFFER_OFFSET_END_IS_VALID: | * GST_BUFFER_OFFSET_END_IS_VALID: | |||
* @buffer: a #GstBuffer | * @buffer: a #GstBuffer | |||
* | * | |||
* Tests if the end offset is known. | * Tests if the end offset is known. | |||
*/ | */ | |||
#define GST_BUFFER_OFFSET_END_IS_VALID(buffer) (GST_BUFFER_OFFSET_END (buff er) != GST_BUFFER_OFFSET_NONE) | #define GST_BUFFER_OFFSET_END_IS_VALID(buffer) (GST_BUFFER_OFFSET_END (buf fer) != GST_BUFFER_OFFSET_NONE) | |||
/** | /** | |||
* GST_BUFFER_IS_DISCONT: | * GST_BUFFER_IS_DISCONT: | |||
* @buffer: a #GstBuffer | * @buffer: a #GstBuffer | |||
* | * | |||
* Tests if the buffer marks a discontinuity in the stream. | * Tests if the buffer marks a discontinuity in the stream. | |||
* | * | |||
* Since: 0.10.9 | * Since: 0.10.9 | |||
*/ | */ | |||
#define GST_BUFFER_IS_DISCONT(buffer) (GST_BUFFER_FLAG_IS_SET (buffer, GST _BUFFER_FLAG_DISCONT)) | #define GST_BUFFER_IS_DISCONT(buffer) (GST_BUFFER_FLAG_IS_SET (buffer, GS T_BUFFER_FLAG_DISCONT)) | |||
/** | /** | |||
* GstBufferFlag: | * GstBufferFlag: | |||
* @GST_BUFFER_FLAG_READONLY: the buffer is read-only. This means the data of | * @GST_BUFFER_FLAG_READONLY: the buffer is read-only. This means the data of | |||
* the buffer should not be modified. The metadata might still be modified. | * the buffer should not be modified. The metadata might still be modified. | |||
* @GST_BUFFER_FLAG_PREROLL: the buffer is part of a preroll and should not be | * @GST_BUFFER_FLAG_PREROLL: the buffer is part of a preroll and should not be | |||
* displayed. | * displayed. | |||
* @GST_BUFFER_FLAG_DISCONT: the buffer marks a discontinuity in the stream . | * @GST_BUFFER_FLAG_DISCONT: the buffer marks a discontinuity in the stream . | |||
* This typically occurs after a seek or a dropped buffer from a live or | * This typically occurs after a seek or a dropped buffer from a live or | |||
* network source. | * network source. | |||
* @GST_BUFFER_FLAG_IN_CAPS: the buffer has been added as a field in a #Gst Caps. | * @GST_BUFFER_FLAG_IN_CAPS: the buffer has been added as a field in a #Gst Caps. | |||
* @GST_BUFFER_FLAG_GAP: the buffer has been created to fill a gap in the | * @GST_BUFFER_FLAG_GAP: the buffer has been created to fill a gap in the | |||
* stream and contains media neutral data (elements can switch to optimized code | * stream and contains media neutral data (elements can switch to optimized code | |||
* path that ignores the buffer content). | * path that ignores the buffer content). | |||
* @GST_BUFFER_FLAG_DELTA_UNIT: this unit cannot be decoded independently. | * @GST_BUFFER_FLAG_DELTA_UNIT: this unit cannot be decoded independently. | |||
* @GST_BUFFER_FLAG_MEDIA1: a flag whose use is specific to the caps of the | * @GST_BUFFER_FLAG_MEDIA1: a flag whose use is specific to the caps of the | |||
buffer. | buffer. Since: 0.10.23. | |||
* Since: 0.10.23 | * @GST_BUFFER_FLAG_MEDIA2: a flag whose use is specific to the caps of the | |||
* @GST_BUFFER_FLAG_MEDIA2: a flag whose use is specific to the caps of the | buffer. Since: 0.10.23. | |||
buffer. | * @GST_BUFFER_FLAG_MEDIA3: a flag whose use is specific to the caps of the | |||
* Since: 0.10.23 | buffer. Since: 0.10.23. | |||
* @GST_BUFFER_FLAG_MEDIA3: a flag whose use is specific to the caps of the | ||||
buffer. | ||||
* Since: 0.10.23 | ||||
* @GST_BUFFER_FLAG_LAST: additional flags can be added starting from this flag. | * @GST_BUFFER_FLAG_LAST: additional flags can be added starting from this flag. | |||
* | * | |||
* A set of buffer flags used to describe properties of a #GstBuffer. | * A set of buffer flags used to describe properties of a #GstBuffer. | |||
*/ | */ | |||
typedef enum { | typedef enum { | |||
GST_BUFFER_FLAG_READONLY = GST_MINI_OBJECT_FLAG_READONLY, | GST_BUFFER_FLAG_READONLY = GST_MINI_OBJECT_FLAG_READONLY, | |||
GST_BUFFER_FLAG_PREROLL = (GST_MINI_OBJECT_FLAG_LAST << 0), | GST_BUFFER_FLAG_PREROLL = (GST_MINI_OBJECT_FLAG_LAST << 0), | |||
GST_BUFFER_FLAG_DISCONT = (GST_MINI_OBJECT_FLAG_LAST << 1), | GST_BUFFER_FLAG_DISCONT = (GST_MINI_OBJECT_FLAG_LAST << 1), | |||
GST_BUFFER_FLAG_IN_CAPS = (GST_MINI_OBJECT_FLAG_LAST << 2), | GST_BUFFER_FLAG_IN_CAPS = (GST_MINI_OBJECT_FLAG_LAST << 2), | |||
GST_BUFFER_FLAG_GAP = (GST_MINI_OBJECT_FLAG_LAST << 3), | GST_BUFFER_FLAG_GAP = (GST_MINI_OBJECT_FLAG_LAST << 3), | |||
skipping to change at line 260 | skipping to change at line 257 | |||
* For video frames, this is the frame number of this buffer. | * For video frames, this is the frame number of this buffer. | |||
* For audio samples, this is the offset of the first sample in this bu ffer. | * For audio samples, this is the offset of the first sample in this bu ffer. | |||
* For file data or compressed data this is the byte offset of the firs t | * For file data or compressed data this is the byte offset of the firs t | |||
* byte in this buffer. | * byte in this buffer. | |||
* @offset_end: the last offset contained in this buffer. It has the same | * @offset_end: the last offset contained in this buffer. It has the same | |||
* format as @offset. | * format as @offset. | |||
* @malloc_data: a pointer to the allocated memory associated with this buf fer. | * @malloc_data: a pointer to the allocated memory associated with this buf fer. | |||
* When the buffer is freed, this data will freed with @free_func. | * When the buffer is freed, this data will freed with @free_func. | |||
* @free_func: a custom function that will be called with @malloc_data, def aults | * @free_func: a custom function that will be called with @malloc_data, def aults | |||
* to g_free(). Since 0.10.22. | * to g_free(). Since 0.10.22. | |||
* @parent: the parent buffer if this is a subbuffer. Since 0.10.26. | ||||
* | * | |||
* The structure of a #GstBuffer. Use the associated macros to access the p ublic | * The structure of a #GstBuffer. Use the associated macros to access the p ublic | |||
* variables. | * variables. | |||
*/ | */ | |||
struct _GstBuffer { | struct _GstBuffer { | |||
GstMiniObject mini_object; | GstMiniObject mini_object; | |||
/*< public >*/ /* with COW */ | /*< public >*/ /* with COW */ | |||
/* pointer to data and its size */ | /* pointer to data and its size */ | |||
guint8 *data; | guint8 *data; | |||
guint size; | guint size; | |||
/* timestamp */ | /* timestamp */ | |||
GstClockTime timestamp; | GstClockTime timestamp; | |||
GstClockTime duration; | GstClockTime duration; | |||
/* the media type of this buffer */ | /* the media type of this buffer */ | |||
GstCaps *caps; | GstCaps *caps; | |||
/* media specific offset */ | /* media specific offset */ | |||
guint64 offset; | guint64 offset; | |||
guint64 offset_end; | guint64 offset_end; | |||
guint8 *malloc_data; | guint8 *malloc_data; | |||
/* ABI Added */ | ||||
GFreeFunc free_func; | GFreeFunc free_func; | |||
GstBuffer *parent; | ||||
/*< private >*/ | /*< private >*/ | |||
gpointer _gst_reserved[GST_PADDING - 1]; | gpointer _gst_reserved[GST_PADDING - 2]; | |||
}; | }; | |||
struct _GstBufferClass { | struct _GstBufferClass { | |||
GstMiniObjectClass mini_object_class; | GstMiniObjectClass mini_object_class; | |||
}; | }; | |||
GType gst_buffer_get_type (void); | GType gst_buffer_get_type (void); | |||
/* allocation */ | /* allocation */ | |||
GstBuffer * gst_buffer_new (void); | GstBuffer * gst_buffer_new (void); | |||
skipping to change at line 315 | skipping to change at line 315 | |||
* @data: The data (a #guint8 *) to set on the buffer. | * @data: The data (a #guint8 *) to set on the buffer. | |||
* @size: The size (in bytes, as a #guint) of the data being set. | * @size: The size (in bytes, as a #guint) of the data being set. | |||
* | * | |||
* A convenience function to set the data and size on a buffer. | * A convenience function to set the data and size on a buffer. | |||
* This will replace any existing data pointer set on this buffer, but will | * This will replace any existing data pointer set on this buffer, but will | |||
* not change GST_BUFFER_MALLOCDATA(), if any. Callers should ensure that | * not change GST_BUFFER_MALLOCDATA(), if any. Callers should ensure that | |||
* GST_BUFFER_MALLOCDATA() is non-NULL, or should free that and set it to N ULL. | * GST_BUFFER_MALLOCDATA() is non-NULL, or should free that and set it to N ULL. | |||
* | * | |||
* No checks are done on the data or size arguments passed. | * No checks are done on the data or size arguments passed. | |||
*/ | */ | |||
#define gst_buffer_set_data(buf, data, size) \ | #define gst_buffer_set_data(buf, data, size) \ | |||
G_STMT_START { \ | G_STMT_START { \ | |||
GST_BUFFER_DATA (buf) = data; \ | GST_BUFFER_DATA (buf) = data; \ | |||
GST_BUFFER_SIZE (buf) = size; \ | GST_BUFFER_SIZE (buf) = size; \ | |||
} G_STMT_END | } G_STMT_END | |||
/* refcounting */ | /* refcounting */ | |||
/** | /** | |||
* gst_buffer_ref: | * gst_buffer_ref: | |||
* @buf: a #GstBuffer. | * @buf: a #GstBuffer. | |||
* | * | |||
* Increases the refcount of the given buffer by one. | * Increases the refcount of the given buffer by one. | |||
* | * | |||
* Note that the refcount affects the writeability | * Note that the refcount affects the writeability | |||
* of @buf and its metadata, see gst_buffer_is_writable() and | * of @buf and its metadata, see gst_buffer_is_writable() and | |||
* gst_buffer_is_metadata_writable(). It is | * gst_buffer_is_metadata_writable(). It is | |||
* important to note that keeping additional references to | * important to note that keeping additional references to | |||
* GstBuffer instances can potentially increase the number | * GstBuffer instances can potentially increase the number | |||
* of memcpy operations in a pipeline. | * of memcpy operations in a pipeline. | |||
* | * | |||
* Returns: @buf | * Returns: (transfer full): @buf | |||
*/ | */ | |||
#ifdef _FOOL_GTK_DOC_ | #ifdef _FOOL_GTK_DOC_ | |||
G_INLINE_FUNC GstBuffer * gst_buffer_ref (GstBuffer * buf); | G_INLINE_FUNC GstBuffer * gst_buffer_ref (GstBuffer * buf); | |||
#endif | #endif | |||
static inline GstBuffer * | static inline GstBuffer * | |||
gst_buffer_ref (GstBuffer * buf) | gst_buffer_ref (GstBuffer * buf) | |||
{ | { | |||
return (GstBuffer *) gst_mini_object_ref (GST_MINI_OBJECT_CAST (buf)); | return (GstBuffer *) gst_mini_object_ref (GST_MINI_OBJECT_CAST (buf)); | |||
} | } | |||
/** | /** | |||
* gst_buffer_unref: | * gst_buffer_unref: | |||
* @buf: a #GstBuffer. | * @buf: (transfer full): a #GstBuffer. | |||
* | * | |||
* Decreases the refcount of the buffer. If the refcount reaches 0, the buf fer | * Decreases the refcount of the buffer. If the refcount reaches 0, the buf fer | |||
* will be freed. If GST_BUFFER_MALLOCDATA() is non-NULL, this pointer will | * will be freed. If GST_BUFFER_MALLOCDATA() is non-NULL, this pointer will | |||
* also be freed at this time. | * also be freed at this time. | |||
*/ | */ | |||
#ifdef _FOOL_GTK_DOC_ | #ifdef _FOOL_GTK_DOC_ | |||
G_INLINE_FUNC void gst_buffer_unref (GstBuffer * buf); | G_INLINE_FUNC void gst_buffer_unref (GstBuffer * buf); | |||
#endif | #endif | |||
static inline void | static inline void | |||
skipping to change at line 373 | skipping to change at line 373 | |||
} | } | |||
/* copy buffer */ | /* copy buffer */ | |||
/** | /** | |||
* gst_buffer_copy: | * gst_buffer_copy: | |||
* @buf: a #GstBuffer. | * @buf: a #GstBuffer. | |||
* | * | |||
* Create a copy of the given buffer. This will also make a newly allocated | * Create a copy of the given buffer. This will also make a newly allocated | |||
* copy of the data the source buffer contains. | * copy of the data the source buffer contains. | |||
* | * | |||
* Returns: a new copy of @buf. | * Returns: (transfer full): a new copy of @buf. | |||
*/ | */ | |||
#ifdef _FOOL_GTK_DOC_ | #ifdef _FOOL_GTK_DOC_ | |||
G_INLINE_FUNC GstBuffer * gst_buffer_copy (const GstBuffer * buf); | G_INLINE_FUNC GstBuffer * gst_buffer_copy (const GstBuffer * buf); | |||
#endif | #endif | |||
static inline GstBuffer * | static inline GstBuffer * | |||
gst_buffer_copy (const GstBuffer * buf) | gst_buffer_copy (const GstBuffer * buf) | |||
{ | { | |||
return GST_BUFFER (gst_mini_object_copy (GST_MINI_OBJECT_CAST (buf))); | return GST_BUFFER (gst_mini_object_copy (GST_MINI_OBJECT_CONST_CAST (buf) )); | |||
} | } | |||
/** | /** | |||
* GstBufferCopyFlags: | * GstBufferCopyFlags: | |||
* @GST_BUFFER_COPY_FLAGS: flag indicating that buffer flags should be copi ed | * @GST_BUFFER_COPY_FLAGS: flag indicating that buffer flags should be copi ed | |||
* @GST_BUFFER_COPY_TIMESTAMPS: flag indicating that buffer timestamp, dura tion, | * @GST_BUFFER_COPY_TIMESTAMPS: flag indicating that buffer timestamp, dura tion, | |||
* offset and offset_end should be copied | * offset and offset_end should be copied | |||
* @GST_BUFFER_COPY_CAPS: flag indicating that buffer caps should be copied | * @GST_BUFFER_COPY_CAPS: flag indicating that buffer caps should be copied | |||
* | * | |||
* A set of flags that can be provided to the gst_buffer_copy_metadata() | * A set of flags that can be provided to the gst_buffer_copy_metadata() | |||
skipping to change at line 426 | skipping to change at line 426 | |||
/** | /** | |||
* gst_buffer_is_writable: | * gst_buffer_is_writable: | |||
* @buf: a #GstBuffer | * @buf: a #GstBuffer | |||
* | * | |||
* Tests if you can safely write data into a buffer's data array or validly | * Tests if you can safely write data into a buffer's data array or validly | |||
* modify the caps and timestamp metadata. Metadata in a GstBuffer is alway s | * modify the caps and timestamp metadata. Metadata in a GstBuffer is alway s | |||
* writable, but it is only safe to change it when there is only one owner | * writable, but it is only safe to change it when there is only one owner | |||
* of the buffer - ie, the refcount is 1. | * of the buffer - ie, the refcount is 1. | |||
*/ | */ | |||
#define gst_buffer_is_writable(buf) gst_mini_object_is_w ritable (GST_MINI_OBJECT_CAST (buf)) | #define gst_buffer_is_writable(buf) gst_mini_object_is_writable (GST_MINI_OBJECT_CAST (buf)) | |||
/** | /** | |||
* gst_buffer_make_writable: | * gst_buffer_make_writable: | |||
* @buf: a #GstBuffer | * @buf: (transfer full): a #GstBuffer | |||
* | * | |||
* Makes a writable buffer from the given buffer. If the source buffer is | * Makes a writable buffer from the given buffer. If the source buffer is | |||
* already writable, this will simply return the same buffer. A copy will | * already writable, this will simply return the same buffer. A copy will | |||
* otherwise be made using gst_buffer_copy(). | * otherwise be made using gst_buffer_copy(). | |||
* | ||||
* Returns: (transfer full): a writable buffer which may or may not be the | ||||
* same as @buf | ||||
*/ | */ | |||
#define gst_buffer_make_writable(buf) GST_BUFFER_CAST (gst _mini_object_make_writable (GST_MINI_OBJECT_CAST (buf))) | #define gst_buffer_make_writable(buf) GST_BUFFER_CAST (gst_mini_o bject_make_writable (GST_MINI_OBJECT_CAST (buf))) | |||
/* Ensure that the metadata of the buffer is writable, even if the buffer d ata | /* Ensure that the metadata of the buffer is writable, even if the buffer d ata | |||
* isn't */ | * isn't */ | |||
gboolean gst_buffer_is_metadata_writable (GstBuffer *buf); | gboolean gst_buffer_is_metadata_writable (GstBuffer *buf); | |||
GstBuffer* gst_buffer_make_metadata_writable (GstBuffer *buf); | GstBuffer* gst_buffer_make_metadata_writable (GstBuffer *buf); | |||
/** | /** | |||
* gst_buffer_replace: | * gst_buffer_replace: | |||
* @obuf: pointer to a pointer to a #GstBuffer to be replaced. | * @obuf: (inout) (transfer full): pointer to a pointer to a #GstBuffer to | |||
* @nbuf: pointer to a #GstBuffer that will replace the buffer pointed to b | be | |||
y | * replaced. | |||
* @obuf. | * @nbuf: (transfer none) (allow-none): pointer to a #GstBuffer that will | |||
* replace the buffer pointed to by @obuf. | ||||
* | * | |||
* Modifies a pointer to a #Gstbuffer to point to a different #GstBuffer. T he | * Modifies a pointer to a #GstBuffer to point to a different #GstBuffer. T he | |||
* modification is done atomically (so this is useful for ensuring thread s afety | * modification is done atomically (so this is useful for ensuring thread s afety | |||
* in some cases), and the reference counts are updated appropriately (the old | * in some cases), and the reference counts are updated appropriately (the old | |||
* buffer is unreffed, the new is reffed). | * buffer is unreffed, the new is reffed). | |||
* | * | |||
* Either @nbuf or the #GstBuffer pointed to by @obuf may be NULL. | * Either @nbuf or the #GstBuffer pointed to by @obuf may be NULL. | |||
*/ | */ | |||
#define gst_buffer_replace(obuf,nbuf) \ | #define gst_buffer_replace(obuf,nbuf) \ | |||
G_STMT_START { | G_STMT_START { | |||
\ | \ | |||
GstBuffer **___obufaddr = (GstBuffer **)(obuf); \ | GstBuffer **___obufaddr = (GstBuffer **)(obuf); \ | |||
gst_mini_object_replace ((GstMiniObject **)___obufaddr, \ | gst_mini_object_replace ((GstMiniObject **)___obufaddr, \ | |||
GST_MINI_OBJECT_CAST (nbuf)); \ | GST_MINI_OBJECT_CAST (nbuf)); \ | |||
} G_STMT_END | } G_STMT_END | |||
GstCaps* gst_buffer_get_caps (GstBuffer *buffer); | GstCaps* gst_buffer_get_caps (GstBuffer *buffer); | |||
void gst_buffer_set_caps (GstBuffer *buffer, GstCaps | void gst_buffer_set_caps (GstBuffer *buffer, GstCaps | |||
*caps); | *caps); | |||
/* creating a subbuffer */ | /* creating a subbuffer */ | |||
GstBuffer* gst_buffer_create_sub (GstBuffer *parent, guint of fset, guint size); | GstBuffer* gst_buffer_create_sub (GstBuffer *parent, guint o ffset, guint size); | |||
/* span, two buffers, intelligently */ | /* span, two buffers, intelligently */ | |||
gboolean gst_buffer_is_span_fast (GstBuffer *buf1, GstBuffer | gboolean gst_buffer_is_span_fast (GstBuffer *buf1, GstBuffer | |||
*buf2); | *buf2); | |||
GstBuffer* gst_buffer_span (GstBuffer *buf1, guint32 of | GstBuffer* gst_buffer_span (GstBuffer *buf1, guint32 o | |||
fset, GstBuffer *buf2, guint32 len); | ffset, GstBuffer *buf2, guint32 len); | |||
/** | /** | |||
* gst_value_set_buffer: | * gst_value_set_buffer: | |||
* @v: a #GstValue to receive the data | * @v: a #GValue to receive the data | |||
* @b: a #GstBuffer to assign to the GstValue | * @b: (transfer none): a #GstBuffer to assign to the GstValue | |||
* | * | |||
* 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_o bject(v, GST_MINI_OBJECT_CAST(b)) | #define gst_value_set_buffer(v,b) gst_value_set_mini_object(v , GST_MINI_OBJECT_CAST(b)) | |||
/** | /** | |||
* gst_value_take_buffer: | * gst_value_take_buffer: | |||
* @v: a #GstValue to receive the data | * @v: a #GValue to receive the data | |||
* @b: a #GstBuffer to assign to the GstValue | * @b: (transfer full): a #GstBuffer to assign to the GstValue | |||
* | * | |||
* 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) gst_value_take_mini_object( v, GST_MINI_OBJECT_CAST(b)) | |||
/** | /** | |||
* gst_value_get_buffer: | * gst_value_get_buffer: | |||
* @v: a #GstValue to qeury | * @v: a #GValue to query | |||
* | * | |||
* Receives a #GstBuffer as the value of @v. Does not return a reference to | * Receives a #GstBuffer as the value of @v. Does not return a reference to | |||
* the buffer, so the pointer is only valid for as long as the caller owns | * the buffer, so the pointer is only valid for as long as the caller owns | |||
* a reference to @v. | * a reference to @v. | |||
* | ||||
* 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 (gst_value_ get_mini_object(v)) | |||
G_END_DECLS | G_END_DECLS | |||
#endif /* __GST_BUFFER_H__ */ | #endif /* __GST_BUFFER_H__ */ | |||
End of changes. 49 change blocks. | ||||
70 lines changed or deleted | 76 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |