[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <9f37792d9de58cf88c3b21d6d96fc83ff30768da.camel@ndufresne.ca>
Date: Tue, 21 Jun 2022 10:22:34 -0400
From: Nicolas Dufresne <nicolas@...fresne.ca>
To: Chen-Yu Tsai <wenst@...omium.org>,
Tiffany Lin <tiffany.lin@...iatek.com>,
Andrew-CT Chen <andrew-ct.chen@...iatek.com>,
Mauro Carvalho Chehab <mchehab@...nel.org>,
Hans Verkuil <hverkuil-cisco@...all.nl>
Cc: linux-media@...r.kernel.org, linux-mediatek@...ts.infradead.org,
linux-kernel@...r.kernel.org,
AngeloGioacchino Del Regno
<angelogioacchino.delregno@...labora.com>,
Yunfei Dong <yunfei.dong@...iatek.com>
Subject: Re: [PATCH] media: mediatek: vcodec: Skip SOURCE_CHANGE & EOS
events for stateless
Le lundi 20 juin 2022 à 14:33 +0800, Chen-Yu Tsai a écrit :
> The stateless decoder API does not specify the usage of SOURCE_CHANGE
> and EOF events. These events are used by stateful decoders to signal
> changes in the bitstream. They do not make sense for stateless decoders.
>
> Do not handle subscription for these two types of events for stateless
> decoder instances. This fixes the last v4l2-compliance error:
>
> Control ioctls:
> fail: v4l2-test-controls.cpp(946): have_source_change || have_eos
> test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: FAIL
>
> Fixes: 8cdc3794b2e3 ("media: mtk-vcodec: vdec: support stateless API")
> Signed-off-by: Chen-Yu Tsai <wenst@...omium.org>
Reviewed-by: Nicolas Dufresne <nicolas.dufresne@...labora.com>
> ---
>
> This should apply cleanly on next-20220617. The other media patches I
> have on my branch:
>
> media: mediatek: vcodec: Initialize decoder parameters after getting dec_capability
> media: mediatek: vcodec: Fix non subdev architecture open power fail
>
> should not interfere, though the second is required for proper operation
> of the decoder on MT8183.
>
> drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c
> index 62f29b6fa104..a5fbc0a1c6bc 100644
> --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c
> +++ b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c
> @@ -234,6 +234,11 @@ static int vidioc_vdec_querycap(struct file *file, void *priv,
> static int vidioc_vdec_subscribe_evt(struct v4l2_fh *fh,
> const struct v4l2_event_subscription *sub)
> {
> + struct mtk_vcodec_ctx *ctx = fh_to_ctx(fh);
> +
> + if (ctx->dev->vdec_pdata->uses_stateless_api)
> + return v4l2_ctrl_subscribe_event(fh, sub);
> +
> switch (sub->type) {
> case V4L2_EVENT_EOS:
> return v4l2_event_subscribe(fh, sub, 2, NULL);
Powered by blists - more mailing lists