From 161345e67f31afddeb0509e8ecfc257c603fb123 Mon Sep 17 00:00:00 2001 From: Hongjin Li Date: Thu, 15 May 2025 15:42:04 +0800 Subject: [PATCH] fix[mpp_sys_cfg]: Fix ver_stride calc issue Platform: General Spec: vp8/vp9/mpeg2 Error case: Ver_stride is set externally, causing sys_cfg to use the external ver_stride directly Solution: If it is not necessary, do not set ver/hor_stride externally. To minimize the impact, currently only modify the specs that encounters problems Source: vp9 3840x2026 in rk3576 vp8 1920x1080 in rk3588 m2v 1920x1080 in rk3588 Reported-by: redmine #550255 Change-Id: Ie1e73e17fa2db1740d36821a5bb26fb1487e81cb Signed-off-by: Hongjin Li --- mpp/codec/dec/m2v/m2vd_parser.c | 2 -- mpp/codec/dec/vp8/vp8d_parser.c | 2 -- mpp/codec/dec/vp9/vp9d_parser.c | 2 -- 3 files changed, 6 deletions(-) diff --git a/mpp/codec/dec/m2v/m2vd_parser.c b/mpp/codec/dec/m2v/m2vd_parser.c index c11e28f5..427b94d3 100644 --- a/mpp/codec/dec/m2v/m2vd_parser.c +++ b/mpp/codec/dec/m2v/m2vd_parser.c @@ -1283,8 +1283,6 @@ static MPP_RET m2vd_alloc_frame(M2VDParserContext *ctx) mpp_frame_set_width(ctx->frame_cur->f, ctx->display_width); mpp_frame_set_height(ctx->frame_cur->f, ctx->display_height); - mpp_frame_set_hor_stride(ctx->frame_cur->f, ctx->display_width); - mpp_frame_set_ver_stride(ctx->frame_cur->f, ctx->display_height); mpp_frame_set_errinfo(ctx->frame_cur->f, 0); mpp_frame_set_pts(ctx->frame_cur->f, frm_pts); ctx->frame_cur->flags = M2V_OUT_FLAG; diff --git a/mpp/codec/dec/vp8/vp8d_parser.c b/mpp/codec/dec/vp8/vp8d_parser.c index b2806170..9fa4e051 100644 --- a/mpp/codec/dec/vp8/vp8d_parser.c +++ b/mpp/codec/dec/vp8/vp8d_parser.c @@ -626,8 +626,6 @@ static MPP_RET vp8d_alloc_frame(VP8DParserContext_t *p) if (p->frame_out->slot_index == 0xff) { mpp_frame_set_width(p->frame_out->f, p->width); mpp_frame_set_height(p->frame_out->f, p->height); - mpp_frame_set_hor_stride(p->frame_out->f, p->width); - mpp_frame_set_ver_stride(p->frame_out->f, p->height); mpp_frame_set_errinfo(p->frame_out->f, 0); mpp_frame_set_pts(p->frame_out->f, p->pts); ret = mpp_buf_slot_get_unused(p->frame_slots, diff --git a/mpp/codec/dec/vp9/vp9d_parser.c b/mpp/codec/dec/vp9/vp9d_parser.c index baa8a895..6f1ac656 100644 --- a/mpp/codec/dec/vp9/vp9d_parser.c +++ b/mpp/codec/dec/vp9/vp9d_parser.c @@ -387,8 +387,6 @@ static RK_S32 vp9_alloc_frame(Vp9CodecContext *ctx, VP9Frame *frame) mpp_frame_set_width(frame->f, ctx->width); mpp_frame_set_height(frame->f, ctx->height); - mpp_frame_set_hor_stride(frame->f, ctx->width * s->bpp / 8); - mpp_frame_set_ver_stride(frame->f, ctx->height); mpp_frame_set_errinfo(frame->f, 0); mpp_frame_set_discard(frame->f, 0); mpp_frame_set_pts(frame->f, s->pts);