diff --git a/inc/rk_mpi.h b/inc/rk_mpi.h index 76ace259..ee7ad538 100644 --- a/inc/rk_mpi.h +++ b/inc/rk_mpi.h @@ -79,6 +79,7 @@ typedef enum { MPP_DEC_SET_VC1_EXTRA_DATA, MPP_DEC_SET_VP6_ID, MPP_DEC_USE_FAST_MODE, + MPP_DEC_GET_STREAM_COUNT, MPP_ENC_CMD_BASE = 0x50000, MPP_ENC_SETCFG, diff --git a/inc/vpu_api.h b/inc/vpu_api.h index 6a3f8f45..f6bce856 100644 --- a/inc/vpu_api.h +++ b/inc/vpu_api.h @@ -49,12 +49,14 @@ typedef enum VPU_API_CMD { VPU_API_ENC_GETCFG, VPU_API_ENC_SETFORMAT, VPU_API_ENC_SETIDRFRAME, + VPU_API_ENABLE_DEINTERLACE, VPU_API_SET_VPUMEM_CONTEXT, VPU_API_USE_PRESENT_TIME_ORDER, VPU_API_SET_DEFAULT_WIDTH_HEIGH, VPU_API_SET_INFO_CHANGE, VPU_API_USE_FAST_MODE, + VPU_API_DEC_GET_STREAM_COUNT, } VPU_API_CMD; typedef struct { diff --git a/mpp/legacy/vpu_api_legacy.cpp b/mpp/legacy/vpu_api_legacy.cpp index a245e7fc..90dc3970 100644 --- a/mpp/legacy/vpu_api_legacy.cpp +++ b/mpp/legacy/vpu_api_legacy.cpp @@ -296,6 +296,10 @@ RK_S32 VpuApi::control(VpuCodecContext *ctx, VPU_API_CMD cmd, void *param) mpicmd = MPP_DEC_USE_FAST_MODE; break; } + case VPU_API_DEC_GET_STREAM_COUNT: { + mpicmd = MPP_DEC_GET_STREAM_COUNT; + break; + } default: { break; } diff --git a/mpp/mpp.cpp b/mpp/mpp.cpp index 0fff03c5..c1a76d25 100644 --- a/mpp/mpp.cpp +++ b/mpp/mpp.cpp @@ -299,6 +299,12 @@ MPP_RET Mpp::control(MpiCmd cmd, MppParam param) mFastMode = mode; break; } + case MPP_DEC_GET_STREAM_COUNT:{ + AutoMutex autoLock(mPackets->mutex()); + mpp_assert(mType == MPP_CTX_DEC); + *((RK_S32 *)param) = mPackets->list_size(); + break; + } default : { } break; }