Skip to content

Commit

Permalink
media: mediatek: vcodec: Use 4K frame size when supported by stateful…
Browse files Browse the repository at this point in the history
… decoder

After commit b018be0 ("media: mediatek: vcodec: Read max resolution
from dec_capability"), the stateful video decoder driver never really
sets its output frame size to 4K.

Parse the decoder capability reported by the firmware, and update the
output frame size in mtk_init_vdec_params to enable 4K frame size when
available.

Fixes: b018be0 ("media: mediatek: vcodec: Read max resolution from dec_capability")
Signed-off-by: Pin-yen Lin <treapking@chromium.org>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
  • Loading branch information
Pin-yen Lin authored and Mauro Carvalho Chehab committed Apr 10, 2023
1 parent cdc1068 commit e25528e
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_stateful.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
#include "mtk_vcodec_dec_pm.h"
#include "vdec_drv_if.h"

static const struct mtk_video_fmt mtk_video_formats[] = {
static struct mtk_video_fmt mtk_video_formats[] = {
{
.fourcc = V4L2_PIX_FMT_H264,
.type = MTK_FMT_DEC,
Expand Down Expand Up @@ -580,6 +580,16 @@ static int mtk_vcodec_dec_ctrls_setup(struct mtk_vcodec_ctx *ctx)

static void mtk_init_vdec_params(struct mtk_vcodec_ctx *ctx)
{
unsigned int i;

if (!(ctx->dev->dec_capability & VCODEC_CAPABILITY_4K_DISABLED)) {
for (i = 0; i < num_supported_formats; i++) {
mtk_video_formats[i].frmsize.max_width =
VCODEC_DEC_4K_CODED_WIDTH;
mtk_video_formats[i].frmsize.max_height =
VCODEC_DEC_4K_CODED_HEIGHT;
}
}
}

static struct vb2_ops mtk_vdec_frame_vb2_ops = {
Expand Down

0 comments on commit e25528e

Please sign in to comment.