fsvalve: Revert "Fix refcounting issues in prepare_output_buffer"
authorOlivier Crête <olivier.crete@collabora.co.uk>
Tue, 19 Aug 2008 22:49:51 +0000 (18:49 -0400)
committerTim-Philipp Müller <tim.muller@collabora.co.uk>
Fri, 31 Dec 2010 00:51:10 +0000 (00:51 +0000)
This reverts commit 65dd460f0a3a9c4882e638c86208f74ef62c3460.

plugins/elements/gstvalve.c

index d70f8ba..c0f4163 100644 (file)
@@ -212,25 +212,18 @@ gst_valve_prepare_output_buffer (GstBaseTransform *trans, GstBuffer * in_buf,
   }
   else
   {
-    /* Always return a reffed buffer, which in case of returning the input
-     * buffer means adding an extra ref to it */
     if (valve->discont)
     {
-      if (gst_buffer_is_metadata_writable (in_buf))
-      {
-        *out_buf = gst_buffer_ref (in_buf);
-      }
-      else
-      {
-        *out_buf = gst_buffer_create_sub (in_buf, 0, GST_BUFFER_SIZE (in_buf));
-      }
+      *out_buf = gst_buffer_make_metadata_writable (in_buf);
       GST_BUFFER_FLAG_SET (*out_buf, GST_BUFFER_FLAG_DISCONT);
       valve->discont = FALSE;
+
     }
     else
     {
-      *out_buf = gst_buffer_ref(in_buf);
+      *out_buf = in_buf;
     }
+    gst_buffer_ref (*out_buf);
   }
   GST_OBJECT_UNLOCK (GST_OBJECT (trans));