diff --git a/inc/rk_mpi.h b/inc/rk_mpi.h index 682be05b..c1b344d4 100644 --- a/inc/rk_mpi.h +++ b/inc/rk_mpi.h @@ -66,13 +66,13 @@ typedef enum { MPP_HAL_CMD_BASE = 0x10000, MPP_OSAL_CMD_BASE = 0x20000, - MPP_OSAL_SET_VPUMEM_CONTEXT, MPP_CODEC_CMD_BASE = 0x30000, MPP_CODEC_INFO_CHANGE, MPP_CODEC_SET_DEFAULT_WIDTH_HEIGH, MPP_DEC_CMD_BASE = 0x40000, + MPP_DEC_SET_EXT_BUF_GROUP, /* IMPORTANT: set external buffer group to mpp decoder */ MPP_DEC_USE_PRESENT_TIME_ORDER, MPP_DEC_SET_VC1_EXTRA_DATA, MPP_DEC_SET_VP6_ID, diff --git a/mpp/mpi.cpp b/mpp/mpi.cpp index 8b412e83..832ec00e 100644 --- a/mpp/mpi.cpp +++ b/mpp/mpi.cpp @@ -136,10 +136,18 @@ static MPP_RET mpi_flush(MppCtx ctx) static MPP_RET mpi_control(MppCtx ctx, MpiCmd cmd, MppParam param) { - (void)ctx; - (void)cmd; - (void)param; MPI_FUNCTION_ENTER(); + MpiImpl *p = (MpiImpl *)ctx; + switch (cmd) { + case MPP_DEC_SET_EXT_BUF_GROUP: { + mpp_log("mpi_control group %p", param); + p->ctx->mFrameGroup = (MppBufferGroup)param; + break; + } + default: { + break; + } + } MPI_FUNCTION_LEAVE(); return MPP_OK;