lkml.org 
[lkml]   [2022]   [Aug]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.19 0402/1157] media: mediatek: vcodec: Skip SOURCE_CHANGE & EOS events for stateless
    Date
    From: Chen-Yu Tsai <wenst@chromium.org>

    [ Upstream commit e13ca460e20ed42fe57a3845b0bb9a82f81f05cd ]

    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@chromium.org>
    Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    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 50cfb18f85ae..01836a1c7d3f 100644
    --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c
    +++ b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c
    @@ -196,6 +196,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);
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-08-16 01:44    [W:2.466 / U:0.276 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site