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