diff --git a/inc/rk_mpi_cmd.h b/inc/rk_mpi_cmd.h index 195595d3..861c91ae 100644 --- a/inc/rk_mpi_cmd.h +++ b/inc/rk_mpi_cmd.h @@ -47,7 +47,8 @@ /* encoder control command */ #define CMD_ENC_CFG_ALL (0x00000000) -#define CMD_ENC_CFG_RC_API (0x00000100) +#define CMD_ENC_QUERY (0x00000100) +#define CMD_ENC_CFG_RC_API (0x00000200) #define CMD_ENC_CFG_MISC (0x00008000) #define CMD_ENC_CFG_SPLIT (0x00008100) @@ -136,6 +137,10 @@ typedef enum { MPP_ENC_SET_ROI_CFG, /* set MppEncROICfg structure */ MPP_ENC_SET_CTU_QP, /* for H265 Encoder,set CTU's size and QP */ + MPP_ENC_CMD_QUERY = CMD_MODULE_CODEC | CMD_CTX_ID_ENC | CMD_ENC_QUERY, + /* query encoder runtime information for encode stage */ + MPP_ENC_QUERY, /* set and get MppEncQueryCfg structure */ + /* User define rate control stategy API control */ MPP_ENC_CFG_RC_API = CMD_MODULE_CODEC | CMD_CTX_ID_ENC | CMD_ENC_CFG_RC_API, /* diff --git a/inc/rk_venc_cmd.h b/inc/rk_venc_cmd.h index c389cd2c..c7dd6fef 100644 --- a/inc/rk_venc_cmd.h +++ b/inc/rk_venc_cmd.h @@ -149,6 +149,49 @@ * + + + + */ +/* + * encoder query interface is only for debug usage + */ +#define MPP_ENC_QUERY_STATUS (0x00000001) +#define MPP_ENC_QUERY_WAIT (0x00000002) +#define MPP_ENC_QUERY_FPS (0x00000004) +#define MPP_ENC_QUERY_BPS (0x00000008) +#define MPP_ENC_QUERY_ENC_IN_FRM (0x00000010) +#define MPP_ENC_QUERY_ENC_WORK (0x00000020) +#define MPP_ENC_QUERY_ENC_OUT_PKT (0x00000040) + +#define MPP_ENC_QUERY_ALL (MPP_ENC_QUERY_STATUS | \ + MPP_ENC_QUERY_WAIT | \ + MPP_ENC_QUERY_FPS | \ + MPP_ENC_QUERY_BPS | \ + MPP_ENC_QUERY_ENC_IN_FRM | \ + MPP_ENC_QUERY_ENC_WORK | \ + MPP_ENC_QUERY_ENC_OUT_PKT) + +typedef struct MppEncQueryCfg_t { + /* + * 32 bit query flag for query data check + * Each bit represent a query data switch. + * bit 0 - for querying encoder runtime status + * bit 1 - for querying encoder runtime waiting status + * bit 2 - for querying encoder realtime encode fps + * bit 3 - for querying encoder realtime output bps + * bit 4 - for querying encoder input frame count + * bit 5 - for querying encoder start hardware times + * bit 6 - for querying encoder output packet count + */ + RK_U32 query_flag; + + /* 64 bit query data output */ + RK_U32 rt_status; + RK_U32 rt_wait; + RK_U32 rt_fps; + RK_U32 rt_bps; + RK_U32 enc_in_frm_cnt; + RK_U32 enc_hw_run_cnt; + RK_U32 enc_out_pkt_cnt; +} MppEncQueryCfg; + /* * base working mode parameter */