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