diff --git a/gst/gstbuffer.c b/gst/gstbuffer.c
index 7eb3472..5b0da0d 100644
--- a/gst/gstbuffer.c
+++ b/gst/gstbuffer.c
@@ -306,6 +306,71 @@ _replace_memory (GstBuffer * buffer, guint len, guint idx, guint length,
   GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_TAG_MEMORY);
 }
 
+/**
+ * gst_buffer_flags:
+ * @buffer: a #GstBuffer
+ *
+ * A flags word containing #GstBufferFlags flags set on this buffer.
+ *
+ * Returns: (transfer none): the flags on set on this buffer.
+ */
+GstBufferFlags
+gst_buffer_flags (GstBuffer * buffer)
+{
+  return (GstBufferFlags)
+      GST_BUFFER_FLAGS (buffer);
+}
+
+/**
+ * gst_buffer_flag_is_set:
+ * @buffer: a #GstBuffer
+ * @flag: the #GstBufferFlags flag to check.
+ *
+ * Gives the status of a specific flag on a buffer.
+ *
+ * Returns: (transfer none): true if flag is found on buffer.
+ */
+gboolean
+gst_buffer_flag_is_set (GstBuffer * buffer, GstBufferFlags flag)
+{
+  return (gboolean)
+      GST_BUFFER_FLAG_IS_SET (buffer, flag);
+}
+
+/**
+ * gst_buffer_flag_set:
+ * @buffer: a #GstBuffer
+ * @flag: the #GstBufferFlags flag to set.
+ *
+ * Sets a buffer flag on a buffer.
+ *
+ * Returns: (transfer none): true if flags is successfully set on buffer.
+ */
+gboolean
+gst_buffer_flag_set (GstBuffer * buffer, GstBufferFlags flag)
+{
+  return (gboolean)
+      GST_BUFFER_FLAG_SET (buffer, flag);
+}
+
+/**
+ * gst_buffer_flag_unset:
+ * @buffer: a #GstBuffer
+ * @flag: the #GstBufferFlags flag to clear.
+ *
+ * Clears a buffer flag.
+ *
+ * Returns: (transfer none): true if flags is successfully cleared from buffer.
+ */
+gboolean
+gst_buffer_flag_unset (GstBuffer * buffer, GstBufferFlags flag)
+{
+  return (gboolean)
+      GST_BUFFER_FLAG_UNSET (buffer, flag);
+}
+
+
+
 /* transfer full for return and transfer none for @mem */
 static inline GstMemory *
 _memory_get_exclusive_reference (GstMemory * mem)
@@ -2095,7 +2160,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);
diff --git a/gst/gstbuffer.h b/gst/gstbuffer.h
index 4d72471..f38d4f1 100644
--- a/gst/gstbuffer.h
+++ b/gst/gstbuffer.h
@@ -332,6 +332,13 @@ void        gst_buffer_extract_dup         (GstBuffer *buffer, gsize offset,
                                             gsize size, gpointer *dest,
                                             gsize *dest_size);
 
+GstBufferFlags gst_buffer_flags            (GstBuffer * buffer);
+gboolean       gst_buffer_flag_is_set      (GstBuffer * buffer, GstBufferFlags flag);
+gboolean       gst_buffer_flag_set         (GstBuffer * buffer, GstBufferFlags flag);
+gboolean       gst_buffer_flag_unset       (GstBuffer * buffer, GstBufferFlags flag);
+
+
+
 /* refcounting */
 /**
  * gst_buffer_ref:
