Inherit some of parent's buffer flags.
authorDavid Schleef <ds@schleef.org>
Sun, 11 Jan 2004 22:37:03 +0000 (22:37 +0000)
committerDavid Schleef <ds@schleef.org>
Sun, 11 Jan 2004 22:37:03 +0000 (22:37 +0000)
Original commit message from CVS:
Inherit some of parent's buffer flags.

ChangeLog
gst/gstbuffer.c

index acdfc8c..134a8fd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2004-01-11  David Schleef  <ds@schleef.org>
 
+       * gst/gstbuffer.c: (gst_buffer_create_sub): Subbuffers should
+       inherit correct flags (READONLY and DONTKEEP).
+
+2004-01-11  David Schleef  <ds@schleef.org>
+
        * gst/elements/gstfilesrc.c: (gst_filesrc_free_parent_mmap),
        (gst_filesrc_map_region):
        * gst/gstbuffer.c: (_gst_buffer_initialize),
index 2c9e43e..83a95e6 100644 (file)
@@ -295,9 +295,13 @@ gst_buffer_create_sub (GstBuffer *parent, guint offset, guint size)
 
   GST_BUFFER_DURATION (buffer)     = GST_CLOCK_TIME_NONE;
   GST_BUFFER_OFFSET_END (buffer)   = GST_BUFFER_OFFSET_NONE;
-  /* make sure nobody overwrites data as it would overwrite in the parent.
-   * data in parent cannot be overwritten because we hold a ref */
-  GST_DATA_FLAG_SET (parent, GST_DATA_READONLY);
+
+  if (GST_BUFFER_FLAG_IS_SET (parent, GST_BUFFER_DONTKEEP)) {
+    GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_DONTKEEP);
+  }
+  if (GST_BUFFER_FLAG_IS_SET (parent, GST_BUFFER_READONLY)) {
+    GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_READONLY);
+  }
 
   return buffer;
 }