xref: /rockchip-linux_mpp/inc/rk_venc_kcfg.h (revision 437bfbeb9567cca9cd9080e3f6954aa9d6a94f18)
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