diff --git a/mpp/hal/rkenc/h264e/hal_h264e_vepu580.c b/mpp/hal/rkenc/h264e/hal_h264e_vepu580.c index 74680d4b..7c827056 100644 --- a/mpp/hal/rkenc/h264e/hal_h264e_vepu580.c +++ b/mpp/hal/rkenc/h264e/hal_h264e_vepu580.c @@ -725,9 +725,13 @@ static MPP_RET setup_vepu580_prep(HalVepu580RegSet *regs, MppEncPrepCfg *prep, regs->reg_base.src_fmt.src_cfmt = hw_fmt; regs->reg_base.src_fmt.alpha_swap = cfg.alpha_swap; regs->reg_base.src_fmt.rbuv_swap = cfg.rbuv_swap; - regs->reg_base.src_fmt.src_range = (prep->range == MPP_FRAME_RANGE_JPEG) ? 1 : 0; regs->reg_base.src_fmt.out_fmt = (fmt == MPP_FMT_YUV400) ? 0 : 1; + if (MPP_FRAME_FMT_IS_YUV(fmt)) + regs->reg_base.src_fmt.src_range = 1; + else + regs->reg_base.src_fmt.src_range = (prep->range == MPP_FRAME_RANGE_JPEG) ? 1 : 0; + if (MPP_FRAME_FMT_IS_FBC(fmt)) { y_stride = mpp_frame_get_fbc_hdr_stride(task->frame); if (!y_stride) diff --git a/mpp/hal/rkenc/h265e/hal_h265e_vepu580.c b/mpp/hal/rkenc/h265e/hal_h265e_vepu580.c index caeb629f..e2120083 100644 --- a/mpp/hal/rkenc/h265e/hal_h265e_vepu580.c +++ b/mpp/hal/rkenc/h265e/hal_h265e_vepu580.c @@ -1996,11 +1996,15 @@ static MPP_RET vepu580_h265_set_pp_regs(H265eV580RegSet *regs, VepuFmtCfg *fmt, reg_base->reg0198_src_fmt.src_cfmt = fmt->format; reg_base->reg0198_src_fmt.alpha_swap = fmt->alpha_swap; reg_base->reg0198_src_fmt.rbuv_swap = fmt->rbuv_swap; - reg_base->reg0198_src_fmt.src_range = (prep_cfg->range == MPP_FRAME_RANGE_JPEG) ? 1 : 0; reg_base->reg0198_src_fmt.out_fmt = (prep_cfg->format == MPP_FMT_YUV400) ? 0 : 1; reg_base->reg0203_src_proc.src_mirr = prep_cfg->mirroring > 0; reg_base->reg0203_src_proc.src_rot = prep_cfg->rotation; + if (MPP_FRAME_FMT_IS_FBC(prep_cfg->format)) + reg_base->reg0198_src_fmt.src_range = 1; + else + reg_base->reg0198_src_fmt.src_range = (prep_cfg->range == MPP_FRAME_RANGE_JPEG) ? 1 : 0; + if (MPP_FRAME_FMT_IS_FBC(prep_cfg->format)) { stridey = mpp_frame_get_fbc_hdr_stride(task->frame); if (!stridey)