mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-10-06 17:46:50 +08:00
fix[av1d_parser]: fix fmt error for 10bit HDR source
Signed-off-by: Chandler Chen <chandler.chen@rock-chips.com> Change-Id: I52e09f11ee30eb02fb8f543648ccf8d8483c73f8
This commit is contained in:
@@ -773,9 +773,6 @@ static MPP_RET get_current_frame(Av1CodecContext *ctx)
|
|||||||
mpp_frame_set_discard(frame->f, 0);
|
mpp_frame_set_discard(frame->f, 0);
|
||||||
mpp_frame_set_pts(frame->f, s->pts);
|
mpp_frame_set_pts(frame->f, s->pts);
|
||||||
|
|
||||||
if (s->is_hdr)
|
|
||||||
ctx->pix_fmt |= MPP_FRAME_HDR;
|
|
||||||
|
|
||||||
mpp_frame_set_color_trc(frame->f, ctx->color_trc);
|
mpp_frame_set_color_trc(frame->f, ctx->color_trc);
|
||||||
mpp_frame_set_color_primaries(frame->f, ctx->color_primaries);
|
mpp_frame_set_color_primaries(frame->f, ctx->color_primaries);
|
||||||
mpp_frame_set_colorspace(frame->f, ctx->colorspace);
|
mpp_frame_set_colorspace(frame->f, ctx->colorspace);
|
||||||
@@ -787,19 +784,24 @@ static MPP_RET get_current_frame(Av1CodecContext *ctx)
|
|||||||
if (MPP_FRAME_FMT_IS_FBC(s->cfg->base.out_fmt)) {
|
if (MPP_FRAME_FMT_IS_FBC(s->cfg->base.out_fmt)) {
|
||||||
mpp_slots_set_prop(s->slots, SLOTS_HOR_ALIGN, hor_align_16);
|
mpp_slots_set_prop(s->slots, SLOTS_HOR_ALIGN, hor_align_16);
|
||||||
if (s->bit_depth == 10) {
|
if (s->bit_depth == 10) {
|
||||||
if (ctx->pix_fmt == MPP_FMT_YUV420SP || ctx->pix_fmt == MPP_FMT_YUV420SP_10BIT)
|
if ((ctx->pix_fmt & MPP_FRAME_FMT_MASK) == MPP_FMT_YUV420SP ||
|
||||||
|
(ctx->pix_fmt & MPP_FRAME_FMT_MASK) == MPP_FMT_YUV420SP_10BIT)
|
||||||
ctx->pix_fmt = MPP_FMT_YUV420SP_10BIT;
|
ctx->pix_fmt = MPP_FMT_YUV420SP_10BIT;
|
||||||
else
|
else
|
||||||
mpp_err("422p 10bit no support");
|
mpp_err("422p 10bit no support");
|
||||||
}
|
}
|
||||||
|
|
||||||
mpp_frame_set_fmt(frame->f, ctx->pix_fmt | ((s->cfg->base.out_fmt & (MPP_FRAME_FBC_MASK))));
|
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, 0);
|
mpp_frame_set_offset_y(frame->f, 0);
|
||||||
mpp_frame_set_ver_stride(frame->f, MPP_ALIGN(ctx->height, 8) + 28);
|
mpp_frame_set_ver_stride(frame->f, MPP_ALIGN(ctx->height, 8) + 28);
|
||||||
} else if (MPP_FRAME_FMT_IS_TILE(s->cfg->base.out_fmt)) {
|
} else if (MPP_FRAME_FMT_IS_TILE(s->cfg->base.out_fmt)) {
|
||||||
mpp_frame_set_fmt(frame->f, ctx->pix_fmt | ((s->cfg->base.out_fmt & (MPP_FRAME_TILE_FLAG))));
|
ctx->pix_fmt |= s->cfg->base.out_fmt & (MPP_FRAME_TILE_FLAG);
|
||||||
} else
|
}
|
||||||
|
|
||||||
|
if (s->is_hdr)
|
||||||
|
ctx->pix_fmt |= MPP_FRAME_HDR;
|
||||||
|
|
||||||
mpp_frame_set_fmt(frame->f, ctx->pix_fmt);
|
mpp_frame_set_fmt(frame->f, ctx->pix_fmt);
|
||||||
|
|
||||||
if (s->cfg->base.enable_thumbnail && s->hw_info && s->hw_info->cap_down_scale)
|
if (s->cfg->base.enable_thumbnail && s->hw_info && s->hw_info->cap_down_scale)
|
||||||
|
Reference in New Issue
Block a user