1 /* SPDX-License-Identifier: Apache-2.0 OR MIT */ 2 /* 3 * Copyright (c) 2024 Rockchip Electronics Co., Ltd. 4 */ 5 6 #ifndef __RK_VENC_KCFG_H__ 7 #define __RK_VENC_KCFG_H__ 8 9 #include "rk_type.h" 10 #include "mpp_err.h" 11 12 typedef void* MppVencKcfg; 13 14 #ifdef __cplusplus 15 extern "C" { 16 #endif 17 18 typedef enum { 19 MPP_VENC_KCFG_TYPE_INIT, 20 MPP_VENC_KCFG_TYPE_DEINIT, 21 MPP_VENC_KCFG_TYPE_RESET, 22 MPP_VENC_KCFG_TYPE_START, 23 MPP_VENC_KCFG_TYPE_STOP, 24 MPP_VENC_KCFG_TYPE_ST_CFG, 25 MPP_VENC_KCFG_TYPE_BUTT, 26 } MppVencKcfgType; 27 28 MPP_RET mpp_venc_kcfg_init(MppVencKcfg *cfg, MppVencKcfgType type); 29 MPP_RET mpp_venc_kcfg_init_by_name(MppVencKcfg *cfg, const char *name); 30 MPP_RET mpp_venc_kcfg_deinit(MppVencKcfg cfg); 31 32 MPP_RET mpp_venc_kcfg_set_s32(MppVencKcfg cfg, const char *name, RK_S32 val); 33 MPP_RET mpp_venc_kcfg_set_u32(MppVencKcfg cfg, const char *name, RK_U32 val); 34 MPP_RET mpp_venc_kcfg_set_s64(MppVencKcfg cfg, const char *name, RK_S64 val); 35 MPP_RET mpp_venc_kcfg_set_u64(MppVencKcfg cfg, const char *name, RK_U64 val); 36 MPP_RET mpp_venc_kcfg_set_ptr(MppVencKcfg cfg, const char *name, void *val); 37 MPP_RET mpp_venc_kcfg_set_st(MppVencKcfg cfg, const char *name, void *val); 38 39 MPP_RET mpp_venc_kcfg_get_s32(MppVencKcfg cfg, const char *name, RK_S32 *val); 40 MPP_RET mpp_venc_kcfg_get_u32(MppVencKcfg cfg, const char *name, RK_U32 *val); 41 MPP_RET mpp_venc_kcfg_get_s64(MppVencKcfg cfg, const char *name, RK_S64 *val); 42 MPP_RET mpp_venc_kcfg_get_u64(MppVencKcfg cfg, const char *name, RK_U64 *val); 43 MPP_RET mpp_venc_kcfg_get_ptr(MppVencKcfg cfg, const char *name, void **val); 44 MPP_RET mpp_venc_kcfg_get_st(MppVencKcfg cfg, const char *name, void *val); 45 46 void mpp_venc_kcfg_show(MppVencKcfg cfg); 47 48 #ifdef __cplusplus 49 } 50 #endif 51 52 #endif /*__RK_VENC_KCFG_H__*/ 53