1 /* SPDX-License-Identifier: Apache-2.0 OR MIT */ 2 /* 3 * Copyright (c) 2025 Rockchip Electronics Co., Ltd. 4 */ 5 6 #ifndef __RK_VDEC_KCFG_H__ 7 #define __RK_VDEC_KCFG_H__ 8 9 #include "rk_type.h" 10 #include "mpp_err.h" 11 12 typedef void* MppVdecKcfg; 13 14 #ifdef __cplusplus 15 extern "C" { 16 #endif 17 18 typedef enum { 19 MPP_VDEC_KCFG_TYPE_INIT, 20 MPP_VDEC_KCFG_TYPE_DEINIT, 21 MPP_VDEC_KCFG_TYPE_RESET, 22 MPP_VDEC_KCFG_TYPE_START, 23 MPP_VDEC_KCFG_TYPE_STOP, 24 MPP_VDEC_KCFG_TYPE_BUTT, 25 } MppVdecKcfgType; 26 27 MPP_RET mpp_vdec_kcfg_init(MppVdecKcfg *cfg, MppVdecKcfgType type); 28 MPP_RET mpp_vdec_kcfg_init_by_name(MppVdecKcfg *cfg, const char *name); 29 MPP_RET mpp_vdec_kcfg_deinit(MppVdecKcfg cfg); 30 31 MPP_RET mpp_vdec_kcfg_set_s32(MppVdecKcfg cfg, const char *name, RK_S32 val); 32 MPP_RET mpp_vdec_kcfg_set_u32(MppVdecKcfg cfg, const char *name, RK_U32 val); 33 MPP_RET mpp_vdec_kcfg_set_s64(MppVdecKcfg cfg, const char *name, RK_S64 val); 34 MPP_RET mpp_vdec_kcfg_set_u64(MppVdecKcfg cfg, const char *name, RK_U64 val); 35 MPP_RET mpp_vdec_kcfg_set_ptr(MppVdecKcfg cfg, const char *name, void *val); 36 MPP_RET mpp_vdec_kcfg_set_st(MppVdecKcfg cfg, const char *name, void *val); 37 38 MPP_RET mpp_vdec_kcfg_get_s32(MppVdecKcfg cfg, const char *name, RK_S32 *val); 39 MPP_RET mpp_vdec_kcfg_get_u32(MppVdecKcfg cfg, const char *name, RK_U32 *val); 40 MPP_RET mpp_vdec_kcfg_get_s64(MppVdecKcfg cfg, const char *name, RK_S64 *val); 41 MPP_RET mpp_vdec_kcfg_get_u64(MppVdecKcfg cfg, const char *name, RK_U64 *val); 42 MPP_RET mpp_vdec_kcfg_get_ptr(MppVdecKcfg cfg, const char *name, void **val); 43 MPP_RET mpp_vdec_kcfg_get_st(MppVdecKcfg cfg, const char *name, void *val); 44 45 void mpp_vdec_kcfg_show(MppVdecKcfg cfg); 46 47 #ifdef __cplusplus 48 } 49 #endif 50 51 #endif /*__RK_VDEC_KCFG_H__*/ 52