From c419c4a8736cf257f5610271206eb1d718bcc9e7 Mon Sep 17 00:00:00 2001 From: nyanmisaka Date: Tue, 10 Dec 2024 02:52:20 +0000 Subject: [PATCH] fix[vdpu383]: fix uninitialized fbc_hdr_stride Fixes aaa4c8e for rk3576 av1d rkfbc use case. Signed-off-by: nyanmisaka --- mpp/codec/dec/av1/av1d_parser.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mpp/codec/dec/av1/av1d_parser.c b/mpp/codec/dec/av1/av1d_parser.c index 868629b9e..feec3ce67 100644 --- a/mpp/codec/dec/av1/av1d_parser.c +++ b/mpp/codec/dec/av1/av1d_parser.c @@ -782,6 +782,8 @@ static MPP_RET get_current_frame(Av1CodecContext *ctx) mpp_frame_set_content_light(frame->f, s->content_light); if (MPP_FRAME_FMT_IS_FBC(s->cfg->base.out_fmt)) { + RK_U32 fbc_hdr_stride = MPP_ALIGN(ctx->width, 64); + mpp_slots_set_prop(s->slots, SLOTS_HOR_ALIGN, hor_align_16); if (s->bit_depth == 10) { if ((ctx->pix_fmt & MPP_FRAME_FMT_MASK) == MPP_FMT_YUV420SP || @@ -796,6 +798,11 @@ static MPP_RET get_current_frame(Av1CodecContext *ctx) mpp_frame_set_offset_y(frame->f, 0); if (mpp_get_soc_type() == ROCKCHIP_SOC_RK3588) mpp_frame_set_ver_stride(frame->f, MPP_ALIGN(ctx->height, 8) + 28); + + if (*compat_ext_fbc_hdr_256_odd) + fbc_hdr_stride = MPP_ALIGN(ctx->width, 256) | 256; + + mpp_frame_set_fbc_hdr_stride(frame->f, fbc_hdr_stride); } else if (MPP_FRAME_FMT_IS_TILE(s->cfg->base.out_fmt)) { ctx->pix_fmt |= s->cfg->base.out_fmt & (MPP_FRAME_TILE_FLAG); }