From: Nicolas Dufresne Date: Thu, 19 May 2022 20:33:47 +0000 (-0400) Subject: v4l2videodec: Fix missing handling of resolution-change X-Git-Tag: 1.22.0~1583 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6d6ebbbb3693152b9d84a42ef82754fb43e337fe;p=platform%2Fupstream%2Fgstreamer.git v4l2videodec: Fix missing handling of resolution-change The pool process function may poll and get the resolution-change event whenever it is not possible to share our buffers. This typically happen when downstream does not support GstVideoMeta. Not handling this would cause the decoder thread to exit silently and the pipeline to stall. Part-of: --- diff --git a/subprojects/gst-plugins-good/sys/v4l2/gstv4l2videodec.c b/subprojects/gst-plugins-good/sys/v4l2/gstv4l2videodec.c index 52e641e..b586174 100644 --- a/subprojects/gst-plugins-good/sys/v4l2/gstv4l2videodec.c +++ b/subprojects/gst-plugins-good/sys/v4l2/gstv4l2videodec.c @@ -699,6 +699,12 @@ gst_v4l2_video_dec_loop (GstVideoDecoder * decoder) GST_LOG_OBJECT (decoder, "Process output buffer"); ret = gst_v4l2_buffer_pool_process (v4l2_pool, &buffer, NULL); + + if (ret == GST_V4L2_FLOW_RESOLUTION_CHANGE) { + GST_INFO_OBJECT (decoder, "Received resolution change"); + g_atomic_int_set (&self->capture_configuration_change, TRUE); + return; + } } while (ret == GST_V4L2_FLOW_CORRUPTED_BUFFER); if (ret != GST_FLOW_OK)