GStreamer: fix video output stopping when the main thread is blocked
When a new frame is ready to be rendered, our gst sink waits until the
frame is actually processed in the GUI thread, but never more than 300
ms. The time limit is there to avoid potential dead locks in specific
situations. Before, if the wait would timeout, the sink would signal
that there was an error rendering the frame, which would in turn put
the pipeline in an error state and would stop processing any further
frame. We now simply skip the frame if the GUI thread is blocked for
too long and signal that everything went fine to the pipeline.
This was already the logic in place for GStreamer 0.10 (see
qvideosurfacegstsink.cpp).
Task-number: QTBUG-60509
Change-Id: I5173a15340c0e2065bb2fb5ca3bc045ac84ba7e1
Reviewed-by:
Christian Stromme <christian.stromme@qt.io>
Showing
Please register or sign in to comment