Blob Blame History Raw
From 6f707fcbca2c60aed565247567bafdd168980161 Mon Sep 17 00:00:00 2001
From: Tim-Philipp Müller <tim.muller@collabora.co.uk>
Date: Sat, 03 Mar 2012 13:04:48 +0000
Subject: v4l2: clear DISCONT flag when recycling buffers into the buffer pool

The base class may have set the DISCONT flag on the first buffer pushed
out. We need to clear that when recycling buffers back into the buffer
pool, otherwise we constantly push out buffers with the discont flag
set, which might upset downstream elements, esp. for compressed
formats like mpeg-ts.
---
(limited to 'sys/v4l2')

diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c
index 51419ff..a0b4c84 100644
--- a/sys/v4l2/gstv4l2bufferpool.c
+++ b/sys/v4l2/gstv4l2bufferpool.c
@@ -98,6 +98,7 @@ gst_v4l2_buffer_finalize (GstV4l2Buffer * buffer)
     GST_LOG_OBJECT (pool->v4l2elem, "reviving buffer %p, %d", buffer, index);
     gst_buffer_ref (GST_BUFFER (buffer));
     GST_BUFFER_SIZE (buffer) = 0;
+    GST_BUFFER_FLAG_UNSET (buffer, GST_BUFFER_FLAG_DISCONT);
     pool->buffers[index] = buffer;
   }
 
--
cgit v0.9.0.2-2-gbebe