libs/gst/base/gstbasetransform.c: If the element is configured in passthrough mode...
authorWim Taymans <wim.taymans@gmail.com>
Mon, 18 Aug 2008 09:59:18 +0000 (09:59 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Mon, 18 Aug 2008 09:59:18 +0000 (09:59 +0000)
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_prepare_output_buffer):
If the element is configured in passthrough mode but the
prepare_output_buffer gave us a new output buffer, discard that buffer
and reuse the input buffer.

ChangeLog
libs/gst/base/gstbasetransform.c

index 44483806be29cefe834829aac23540b0bafaafe4..b8fa4d0aa92ff7ad3667a8b969ea2668631b4667 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2008-08-18  Wim Taymans  <wim.taymans@collabora.co.uk>
+
+       * libs/gst/base/gstbasetransform.c:
+       (gst_base_transform_prepare_output_buffer):
+       If the element is configured in passthrough mode but the
+       prepare_output_buffer gave us a new output buffer, discard that buffer
+       and reuse the input buffer.
+
 2008-08-15  Wim Taymans  <wim.taymans@collabora.co.uk>
 
        Patch by: Ole André Vadla Ravnås  <ole.andre.ravnas at tandberg com>
index ae21d1081a2ca03f1502faf26de2defb252504ba..59576147b9a31f57dcba3138d054bb3fd7aae050 100644 (file)
@@ -1236,6 +1236,13 @@ gst_base_transform_prepare_output_buffer (GstBaseTransform * trans,
       *out_buf = in_buf;
     }
   } else {
+    if (trans->passthrough && in_buf != *out_buf) {
+      /* we are asked to perform a passthrough transform but the input and
+       * output buffers are different. We have to discard the output buffer and
+       * reuse the input buffer. */
+      GST_DEBUG_OBJECT (trans, "passthrough but different buffers");
+      discard = TRUE;
+    }
     if (discard) {
       GST_DEBUG_OBJECT (trans, "discard buffer, reuse input buffer");
       gst_buffer_unref (*out_buf);