xref: /rockchip-linux_mpp/kmpp/inc/kmpp_vdec.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 __KMPP_VDEC_H__
7 #define __KMPP_VDEC_H__
8 
9 #include "rk_vdec_kcfg.h"
10 
11 typedef void* KmppVdec;
12 
13 #define KMPP_VDEC_IOCTL_TABLE(prefix, IOC_CTX, IOC_IN_, IOC_OUT, IOC_IO_) \
14     IOC_IN_(prefix, init,           MppVdecKcfg)                \
15     IOC_CTX(prefix, deinit)                                     \
16     IOC_CTX(prefix, reset)                                      \
17     IOC_CTX(prefix, start)                                      \
18     IOC_CTX(prefix, stop)                                       \
19     IOC_IN_(prefix, get_cfg,        MppVdecKcfg)                \
20     IOC_IN_(prefix, set_cfg,        MppVdecKcfg)                \
21     IOC_IN_(prefix, get_rt_cfg,     MppVdecKcfg)                \
22     IOC_IN_(prefix, set_rt_cfg,     MppVdecKcfg)                \
23     IOC_IO_(prefix, decode,         KmppPacket,     KmppFrame)  \
24     IOC_IN_(prefix, put_pkt,        KmppPacket)                 \
25     IOC_OUT(prefix, get_frm,        KmppFrame)                  \
26     IOC_IN_(prefix, put_frm,        KmppFrame)
27 
28 #define KMPP_OBJ_NAME               kmpp_vdec
29 #define KMPP_OBJ_INTF_TYPE          KmppVdec
30 #define KMPP_OBJ_FUNC_IOCTL         KMPP_VDEC_IOCTL_TABLE
31 #include "kmpp_obj_func.h"
32 
33 #endif /*__KMPP_VDEC_H__*/
34