v4l2bufferpool: don't block when resurecting a buffer

When we are resurecting a buffer, don't block. instead let us copy a
buffer.
This commit is contained in:
Wim Taymans 2015-12-01 18:20:23 +01:00
parent 5e00c012d2
commit b208ae72ee

View file

@ -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, &params);
@ -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;
}