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 acdfc8cc03b90d5a16fa2af6e83592e3e163613a..134a8fd81122906d888b7268601e40c20ffa689e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+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),
index 2c9e43e8101c036d0359343d28c49fd2a0c96ec9..83a95e683c8350e5848e9322addcf02ddaad88ae 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;
 }