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