buffer: add explicit getters and setters for buffer flags
authorArjen Veenhuizen <arjen.veenhuizen@tno.nl>
Thu, 7 Jul 2016 06:01:24 +0000 (08:01 +0200)
committerTim-Philipp Müller <tim@centricular.com>
Mon, 22 Aug 2016 17:59:06 +0000 (18:59 +0100)
These can be used from bindings.

https://bugzilla.gnome.org/show_bug.cgi?id=768301

docs/gst/gstreamer-sections.txt
gst/gstbuffer.c
gst/gstbuffer.h
win32/common/libgstreamer.def

index 887e7ba..24cea45 100644 (file)
@@ -258,6 +258,11 @@ GstParentBufferMeta
 gst_buffer_add_parent_buffer_meta
 gst_buffer_get_parent_buffer_meta
 
+gst_buffer_get_flags
+gst_buffer_set_flags
+gst_buffer_unset_flags
+gst_buffer_has_flags
+
 <SUBSECTION Standard>
 GstBufferClass
 GST_BUFFER
index 4e5096f..14a8825 100644 (file)
@@ -306,6 +306,77 @@ _replace_memory (GstBuffer * buffer, guint len, guint idx, guint length,
   GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_TAG_MEMORY);
 }
 
+/**
+ * gst_buffer_get_flags:
+ * @buffer: a #GstBuffer
+ *
+ * Get the #GstBufferFlags flags set on this buffer.
+ *
+ * Returns: the flags set on this buffer.
+ *
+ * Since: 1.10
+ */
+GstBufferFlags
+gst_buffer_get_flags (GstBuffer * buffer)
+{
+  return (GstBufferFlags) GST_BUFFER_FLAGS (buffer);
+}
+
+/**
+ * gst_buffer_flag_is_set:
+ * @buffer: a #GstBuffer
+ * @flags: the #GstBufferFlags flag to check.
+ *
+ * Gives the status of a specific flag on a buffer.
+ *
+ * Returns: %TRUE if all flags in @flags are found on @buffer.
+ *
+ * Since: 1.10
+ */
+gboolean
+gst_buffer_has_flags (GstBuffer * buffer, GstBufferFlags flags)
+{
+  return GST_BUFFER_FLAG_IS_SET (buffer, flags);
+}
+
+/**
+ * gst_buffer_set_flags:
+ * @buffer: a #GstBuffer
+ * @flags: the #GstBufferFlags to set.
+ *
+ * Sets one or more buffer flags on a buffer.
+ *
+ * Returns: %TRUE if @flags were successfully set on buffer.
+ *
+ * Since: 1.10
+ */
+gboolean
+gst_buffer_set_flags (GstBuffer * buffer, GstBufferFlags flags)
+{
+  GST_BUFFER_FLAG_SET (buffer, flags);
+  return TRUE;
+}
+
+/**
+ * gst_buffer_unset_flags:
+ * @buffer: a #GstBuffer
+ * @flags: the #GstBufferFlags to clear
+ *
+ * Clears one or more buffer flags.
+ *
+ * Returns: true if @flags is successfully cleared from buffer.
+ *
+ * Since: 1.10
+ */
+gboolean
+gst_buffer_unset_flags (GstBuffer * buffer, GstBufferFlags flags)
+{
+  GST_BUFFER_FLAG_UNSET (buffer, flags);
+  return TRUE;
+}
+
+
+
 /* transfer full for return and transfer none for @mem */
 static inline GstMemory *
 _memory_get_exclusive_reference (GstMemory * mem)
@@ -2102,7 +2173,6 @@ gst_buffer_add_meta (GstBuffer * buffer, const GstMetaInfo * info,
   result = &item->meta;
   result->info = info;
   result->flags = GST_META_FLAG_NONE;
-
   GST_CAT_DEBUG (GST_CAT_BUFFER,
       "alloc metadata %p (%s) of size %" G_GSIZE_FORMAT, result,
       g_type_name (info->type), info->size);
index 4d72471..41ddbb6 100644 (file)
@@ -332,6 +332,13 @@ void        gst_buffer_extract_dup         (GstBuffer *buffer, gsize offset,
                                             gsize size, gpointer *dest,
                                             gsize *dest_size);
 
+GstBufferFlags gst_buffer_get_flags        (GstBuffer * buffer);
+gboolean       gst_buffer_has_flags        (GstBuffer * buffer, GstBufferFlags flags);
+gboolean       gst_buffer_set_flags        (GstBuffer * buffer, GstBufferFlags flags);
+gboolean       gst_buffer_unset_flags      (GstBuffer * buffer, GstBufferFlags flags);
+
+
+
 /* refcounting */
 /**
  * gst_buffer_ref:
index 5c4f45f..e4466f9 100644 (file)
@@ -128,6 +128,7 @@ EXPORTS
        gst_buffer_flags_get_type
        gst_buffer_foreach_meta
        gst_buffer_get_all_memory
+       gst_buffer_get_flags
        gst_buffer_get_max_memory
        gst_buffer_get_memory
        gst_buffer_get_memory_range
@@ -136,6 +137,7 @@ EXPORTS
        gst_buffer_get_sizes
        gst_buffer_get_sizes_range
        gst_buffer_get_type
+       gst_buffer_has_flags
        gst_buffer_insert_memory
        gst_buffer_is_all_memory_writable
        gst_buffer_is_memory_range_writable
@@ -190,8 +192,10 @@ EXPORTS
        gst_buffer_replace_memory_range
        gst_buffer_resize
        gst_buffer_resize_range
+       gst_buffer_set_flags
        gst_buffer_set_size
        gst_buffer_unmap
+       gst_buffer_unset_flags
        gst_buffering_mode_get_type
        gst_bus_add_signal_watch
        gst_bus_add_signal_watch_full