diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-5.10/950-0500-media-v4l2_m2m-In-buffered-mode-run-jobs-if-either-p.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.10/950-0500-media-v4l2_m2m-In-buffered-mode-run-jobs-if-either-p.patch | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.10/950-0500-media-v4l2_m2m-In-buffered-mode-run-jobs-if-either-p.patch b/target/linux/bcm27xx/patches-5.10/950-0500-media-v4l2_m2m-In-buffered-mode-run-jobs-if-either-p.patch new file mode 100644 index 0000000000..6c13d5e330 --- /dev/null +++ b/target/linux/bcm27xx/patches-5.10/950-0500-media-v4l2_m2m-In-buffered-mode-run-jobs-if-either-p.patch @@ -0,0 +1,33 @@ +From f9ab3e8acbbd27e81a232aa671838ace4263d46a Mon Sep 17 00:00:00 2001 +From: Dave Stevenson <dave.stevenson@raspberrypi.com> +Date: Mon, 1 Feb 2021 18:48:47 +0000 +Subject: [PATCH] media/v4l2_m2m: In buffered mode run jobs if either + port is streaming + +In order to get the intended behaviour of the stateful video +decoder API where only the OUTPUT queue needs to be enabled and fed +buffers in order to get the SOURCE_CHANGED event that configures the +CAPTURE queue, we want the device to run should either queue be +streaming. + +Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com> +--- + drivers/media/v4l2-core/v4l2-mem2mem.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +--- a/drivers/media/v4l2-core/v4l2-mem2mem.c ++++ b/drivers/media/v4l2-core/v4l2-mem2mem.c +@@ -301,9 +301,10 @@ static void __v4l2_m2m_try_queue(struct + + dprintk("Trying to schedule a job for m2m_ctx: %p\n", m2m_ctx); + +- if (!m2m_ctx->out_q_ctx.q.streaming +- || !m2m_ctx->cap_q_ctx.q.streaming) { +- dprintk("Streaming needs to be on for both queues\n"); ++ if (!(m2m_ctx->out_q_ctx.q.streaming && ++ m2m_ctx->cap_q_ctx.q.streaming) && ++ !(m2m_ctx->out_q_ctx.buffered && m2m_ctx->out_q_ctx.q.streaming)) { ++ dprintk("Streaming needs to be on for both queues, or buffered and OUTPUT streaming\n"); + return; + } + |