gstv4l2bufferpool: remove critical error message when process is called on an inactiv...
authorPhilipp Zabel <p.zabel@pengutronix.de>
Thu, 24 Nov 2016 13:25:22 +0000 (14:25 +0100)
committerNicolas Dufresne <nicolas.dufresne@collabora.com>
Thu, 24 Nov 2016 16:47:07 +0000 (11:47 -0500)
If the pool is inactive, it is guaranteed to also be flushing, so the
following check will return GST_FLOW_FLUSHING anyway.
This can happen if a v4l2src is blocking on DQBUF in create and is sent
an EOS event on another thread. In that case the pool is set to
flushing/inactive without locking, the v4l2src is unblocked, and may
call pool_process with a valid buffer on the already inactive pool.

https://bugzilla.gnome.org/show_bug.cgi?id=775014

sys/v4l2/gstv4l2bufferpool.c

index bfcfbaa..9c862d4 100644 (file)
@@ -1703,8 +1703,6 @@ gst_v4l2_buffer_pool_process (GstV4l2BufferPool * pool, GstBuffer ** buf)
 
   GST_DEBUG_OBJECT (pool, "process buffer %p", buf);
 
-  g_return_val_if_fail (gst_buffer_pool_is_active (bpool), GST_FLOW_ERROR);
-
   if (GST_BUFFER_POOL_IS_FLUSHING (pool))
     return GST_FLOW_FLUSHING;