diff --git a/test/mpi_dec_mt_test.c b/test/mpi_dec_mt_test.c index 9b0e6d9a..24b2c8ad 100644 --- a/test/mpi_dec_mt_test.c +++ b/test/mpi_dec_mt_test.c @@ -154,6 +154,23 @@ void *thread_output(void *arg) mpp_log_q(quiet, "decoder require buffer w:h [%d:%d] stride [%d:%d] size %d\n", width, height, hor_stride, ver_stride, buf_size); + if (MPP_FRAME_FMT_IS_FBC(cmd->format)) { + MppFrame frm = NULL; + + mpp_frame_init(&frm); + mpp_frame_set_width(frm, width); + mpp_frame_set_height(frm, height); + mpp_frame_set_fmt(frm, cmd->format); + + ret = mpi->control(ctx, MPP_DEC_SET_FRAME_INFO, frm); + mpp_frame_deinit(&frm); + + if (ret) { + mpp_err("set fbc frame info failed\n"); + break; + } + } + grp = dec_buf_mgr_setup(data->buf_mgr, buf_size, 24, cmd->buf_mode); /* Set buffer to mpp decoder */ ret = mpi->control(ctx, MPP_DEC_SET_EXT_BUF_GROUP, grp); diff --git a/test/mpi_dec_multi_test.c b/test/mpi_dec_multi_test.c index 89400058..2d57ee50 100644 --- a/test/mpi_dec_multi_test.c +++ b/test/mpi_dec_multi_test.c @@ -158,6 +158,23 @@ static int multi_dec_simple(MpiDecMultiCtx *data) mpp_log_q(quiet, "decoder require buffer w:h [%d:%d] stride [%d:%d] buf_size %d", width, height, hor_stride, ver_stride, buf_size); + if (MPP_FRAME_FMT_IS_FBC(cmd->format)) { + MppFrame frm = NULL; + + mpp_frame_init(&frm); + mpp_frame_set_width(frm, width); + mpp_frame_set_height(frm, height); + mpp_frame_set_fmt(frm, cmd->format); + + ret = mpi->control(ctx, MPP_DEC_SET_FRAME_INFO, frm); + mpp_frame_deinit(&frm); + + if (ret) { + mpp_err("set fbc frame info failed\n"); + break; + } + } + grp = dec_buf_mgr_setup(data->buf_mgr, buf_size, 24, cmd->buf_mode); /* Set buffer to mpp decoder */ ret = mpi->control(ctx, MPP_DEC_SET_EXT_BUF_GROUP, grp); diff --git a/test/mpi_dec_nt_test.c b/test/mpi_dec_nt_test.c index 75406808..4ec8bba4 100644 --- a/test/mpi_dec_nt_test.c +++ b/test/mpi_dec_nt_test.c @@ -137,6 +137,23 @@ static int dec_loop(MpiDecLoopData *data) mpp_log_q(quiet, "%p decoder require buffer w:h [%d:%d] stride [%d:%d] buf_size %d", ctx, width, height, hor_stride, ver_stride, buf_size); + if (MPP_FRAME_FMT_IS_FBC(cmd->format)) { + MppFrame frm = NULL; + + mpp_frame_init(&frm); + mpp_frame_set_width(frm, width); + mpp_frame_set_height(frm, height); + mpp_frame_set_fmt(frm, cmd->format); + + ret = mpi->control(ctx, MPP_DEC_SET_FRAME_INFO, frm); + mpp_frame_deinit(&frm); + + if (ret) { + mpp_err("set fbc frame info failed\n"); + break; + } + } + grp = dec_buf_mgr_setup(data->buf_mgr, buf_size, 24, cmd->buf_mode); /* Set buffer to mpp decoder */ ret = mpi->control(ctx, MPP_DEC_SET_EXT_BUF_GROUP, grp); diff --git a/test/mpi_dec_test.c b/test/mpi_dec_test.c index 6d711391..58f56fb8 100644 --- a/test/mpi_dec_test.c +++ b/test/mpi_dec_test.c @@ -146,6 +146,23 @@ static int dec_simple(MpiDecLoopData *data) mpp_log_q(quiet, "%p decoder require buffer w:h [%d:%d] stride [%d:%d] buf_size %d", ctx, width, height, hor_stride, ver_stride, buf_size); + if (MPP_FRAME_FMT_IS_FBC(cmd->format)) { + MppFrame frm = NULL; + + mpp_frame_init(&frm); + mpp_frame_set_width(frm, width); + mpp_frame_set_height(frm, height); + mpp_frame_set_fmt(frm, cmd->format); + + ret = mpi->control(ctx, MPP_DEC_SET_FRAME_INFO, frm); + mpp_frame_deinit(&frm); + + if (ret) { + mpp_err("set fbc frame info failed\n"); + break; + } + } + grp = dec_buf_mgr_setup(data->buf_mgr, buf_size, 24, cmd->buf_mode); /* Set buffer to mpp decoder */ ret = mpi->control(ctx, MPP_DEC_SET_EXT_BUF_GROUP, grp);