From 0355f897e28f92eb38045c1b22df9e1400b5b5a7 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Tue, 1 Dec 2015 18:20:23 +0100 Subject: v4l2bufferpool: don't block when resurecting a buffer When we are resurecting a buffer, don't block. instead let us copy a buffer. --- sys/v4l2/gstv4l2bufferpool.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c index 6c89bd191..fc456218f 100644 --- a/sys/v4l2/gstv4l2bufferpool.c +++ b/sys/v4l2/gstv4l2bufferpool.c @@ -676,7 +676,8 @@ gst_v4l2_buffer_pool_resurect_buffer (GstV4l2BufferPool * pool) GST_DEBUG_OBJECT (pool, "A buffer was lost, reallocating it"); params.flags = - (GstBufferPoolAcquireFlags) GST_V4L2_BUFFER_POOL_ACQUIRE_FLAG_RESURRECT; + (GstBufferPoolAcquireFlags) GST_V4L2_BUFFER_POOL_ACQUIRE_FLAG_RESURRECT | + GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT; ret = gst_buffer_pool_acquire_buffer (GST_BUFFER_POOL (pool), &buffer, ¶ms); @@ -1765,6 +1766,7 @@ gst_v4l2_buffer_pool_process (GstV4l2BufferPool * pool, GstBuffer ** buf) *buf = copy; } + ret = GST_FLOW_OK; /* nothing, data was inside the buffer when we did _acquire() */ goto done; } -- cgit v1.2.1