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