vidioc_try_fmt() does clamp height and width when called on the OUTPUT
queue, so clamping them prior to calling this function is redundant. Set
the queue's parameters after calling vidioc_try_fmt() so we can use the
values it computed.

Signed-off-by: Alexandre Courbot <acour...@chromium.org>
---
 .../media/platform/mtk-vcodec/mtk_vcodec_enc.c   | 16 ++++------------
 1 file changed, 4 insertions(+), 12 deletions(-)

diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c 
b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c
index 8c917969c2f1..d16e1ec87a49 100644
--- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c
+++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c
@@ -442,7 +442,6 @@ static int vidioc_venc_s_fmt_out(struct file *file, void 
*priv,
        struct mtk_q_data *q_data;
        int ret, i;
        const struct mtk_video_fmt *fmt;
-       struct v4l2_pix_format_mplane *pix_fmt_mp = &f->fmt.pix_mp;
 
        vq = v4l2_m2m_get_vq(ctx->m2m_ctx, f->type);
        if (!vq) {
@@ -467,20 +466,13 @@ static int vidioc_venc_s_fmt_out(struct file *file, void 
*priv,
                f->fmt.pix.pixelformat = fmt->fourcc;
        }
 
-       pix_fmt_mp->height = clamp(pix_fmt_mp->height,
-                               MTK_VENC_MIN_H,
-                               MTK_VENC_MAX_H);
-       pix_fmt_mp->width = clamp(pix_fmt_mp->width,
-                               MTK_VENC_MIN_W,
-                               MTK_VENC_MAX_W);
-
-       q_data->visible_width = f->fmt.pix_mp.width;
-       q_data->visible_height = f->fmt.pix_mp.height;
-       q_data->fmt = fmt;
-       ret = vidioc_try_fmt(f, q_data->fmt);
+       ret = vidioc_try_fmt(f, fmt);
        if (ret)
                return ret;
 
+       q_data->fmt = fmt;
+       q_data->visible_width = f->fmt.pix_mp.width;
+       q_data->visible_height = f->fmt.pix_mp.height;
        q_data->coded_width = f->fmt.pix_mp.width;
        q_data->coded_height = f->fmt.pix_mp.height;
 
-- 
2.30.1.766.gb4fecdf3b7-goog

Reply via email to