mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-10-24 17:40:21 +08:00
[mpp_dec]: increase fbc ver_stride
Change-Id: Id56ee95567ea869624f783602e0a9e10ec5dc367 Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
This commit is contained in:
@@ -612,6 +612,7 @@ static MPP_RET get_current_frame(Av1CodecContext *ctx)
|
|||||||
mpp_frame_set_fmt(frame->f, ctx->pix_fmt | ((s->cfg->base.out_fmt & (MPP_FRAME_FBC_MASK))));
|
mpp_frame_set_fmt(frame->f, ctx->pix_fmt | ((s->cfg->base.out_fmt & (MPP_FRAME_FBC_MASK))));
|
||||||
mpp_frame_set_offset_x(frame->f, 0);
|
mpp_frame_set_offset_x(frame->f, 0);
|
||||||
mpp_frame_set_offset_y(frame->f, 8);
|
mpp_frame_set_offset_y(frame->f, 8);
|
||||||
|
mpp_frame_set_ver_stride(frame->f, MPP_ALIGN(ctx->height, 8) + 16);
|
||||||
} else
|
} else
|
||||||
mpp_frame_set_fmt(frame->f, ctx->pix_fmt);
|
mpp_frame_set_fmt(frame->f, ctx->pix_fmt);
|
||||||
|
|
||||||
|
|||||||
@@ -438,8 +438,6 @@ static MPP_RET dpb_mark_malloc(H264dVideoCtx_t *p_Vid, H264_StorePic_t *dec_pic)
|
|||||||
*/
|
*/
|
||||||
if (p_Vid->frame_mbs_only_flag || p_Vid->bit_depth_luma == 10) {
|
if (p_Vid->frame_mbs_only_flag || p_Vid->bit_depth_luma == 10) {
|
||||||
mpp_slots_set_prop(p_Dec->frame_slots, SLOTS_HOR_ALIGN, hor_align_64);
|
mpp_slots_set_prop(p_Dec->frame_slots, SLOTS_HOR_ALIGN, hor_align_64);
|
||||||
impl->offset_x = 0;
|
|
||||||
impl->offset_y = 4;
|
|
||||||
fmt |= (out_fmt & MPP_FRAME_FBC_MASK);
|
fmt |= (out_fmt & MPP_FRAME_FBC_MASK);
|
||||||
}
|
}
|
||||||
p_Dec->cfg->base.out_fmt = fmt;
|
p_Dec->cfg->base.out_fmt = fmt;
|
||||||
@@ -451,6 +449,13 @@ static MPP_RET dpb_mark_malloc(H264dVideoCtx_t *p_Vid, H264_StorePic_t *dec_pic)
|
|||||||
/* Before cropping */
|
/* Before cropping */
|
||||||
impl->hor_stride = hor_stride;
|
impl->hor_stride = hor_stride;
|
||||||
impl->ver_stride = ver_stride;
|
impl->ver_stride = ver_stride;
|
||||||
|
|
||||||
|
if (MPP_FRAME_FMT_IS_FBC(out_fmt)) {
|
||||||
|
impl->offset_x = 0;
|
||||||
|
impl->offset_y = 4;
|
||||||
|
impl->ver_stride += 16;
|
||||||
|
}
|
||||||
|
|
||||||
/* After cropped */
|
/* After cropped */
|
||||||
impl->width = p_Vid->width_after_crop;
|
impl->width = p_Vid->width_after_crop;
|
||||||
impl->height = p_Vid->height_after_crop;
|
impl->height = p_Vid->height_after_crop;
|
||||||
|
|||||||
@@ -98,6 +98,7 @@ static HEVCFrame *alloc_frame(HEVCContext *s)
|
|||||||
mpp_slots_set_prop(s->slots, SLOTS_HOR_ALIGN, hor_align_64);
|
mpp_slots_set_prop(s->slots, SLOTS_HOR_ALIGN, hor_align_64);
|
||||||
mpp_frame_set_offset_x(frame->frame, 0);
|
mpp_frame_set_offset_x(frame->frame, 0);
|
||||||
mpp_frame_set_offset_y(frame->frame, 4);
|
mpp_frame_set_offset_y(frame->frame, 4);
|
||||||
|
mpp_frame_set_ver_stride(frame->frame, s->h265dctx->coded_height + 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
mpp_frame_set_errinfo(frame->frame, 0);
|
mpp_frame_set_errinfo(frame->frame, 0);
|
||||||
|
|||||||
Reference in New Issue
Block a user