diff --git a/test/mpi_rc2_test.c b/test/mpi_rc2_test.c index 1b6b954a..c9b1c694 100644 --- a/test/mpi_rc2_test.c +++ b/test/mpi_rc2_test.c @@ -73,7 +73,6 @@ typedef struct { /* 2. encoder data */ MppBufferGroup pkt_grp; - MppBuffer enc_pkt_buf; MppPacket enc_pkt; MppEncRcCfg rc_cfg; @@ -855,6 +854,19 @@ static MPP_RET mpi_rc_enc(MpiRc2TestCtx *ctx) if (ctx->file.fp_enc_out) fwrite(ptr, 1, len, ctx->file.fp_enc_out); + /* check post packet first */ + if (len > ctx->dec_in_buf_post_size) { + RK_U32 buf_size = MPP_ALIGN(len, SZ_4K); + + ctx->dec_in_buf_post = mpp_realloc(ctx->dec_in_buf_post, RK_U8, buf_size); + ctx->dec_in_buf_post_size = buf_size; + + mpp_packet_set_data(ctx->dec_pkt_post, ctx->dec_in_buf_post); + mpp_packet_set_size(ctx->dec_pkt_post, buf_size); + mpp_packet_set_pos(ctx->dec_pkt_post, ctx->dec_in_buf_post); + mpp_packet_set_length(ctx->dec_pkt_post, 0); + } + /* decode one frame */ // write packet to dec input mpp_packet_write(ctx->dec_pkt_post, 0, ptr, len); @@ -916,12 +928,6 @@ static MPP_RET mpi_rc_buffer_init(MpiRc2TestCtx *ctx) goto RET; } - ret = mpp_buffer_get(ctx->pkt_grp, &ctx->enc_pkt_buf, packet_size); - if (ret) { - mpp_err("failed to get buffer for input frame ret %d\n", ret); - goto RET; - } - ctx->dec_in_buf_post = mpp_calloc(RK_U8, packet_size); if (NULL == ctx->dec_in_buf_post) { mpp_err("mpi_dec_test malloc input stream buffer failed\n"); @@ -940,11 +946,6 @@ RET: ctx->dec_ctx_post = NULL; MPP_FREE(ctx->dec_in_buf_post); - if (ctx->enc_pkt_buf) { - mpp_buffer_put(ctx->enc_pkt_buf); - ctx->enc_pkt_buf = NULL; - } - if (ctx->pkt_grp) { mpp_buffer_group_put(ctx->pkt_grp); ctx->pkt_grp = NULL; @@ -1078,11 +1079,6 @@ MPP_TEST_OUT: ctx->enc_ctx = NULL; } - if (ctx->enc_pkt_buf) { - mpp_buffer_put(ctx->enc_pkt_buf); - ctx->enc_pkt_buf = NULL; - } - if (ctx->pkt_grp) { mpp_buffer_group_put(ctx->pkt_grp); ctx->pkt_grp = NULL;