xref: /OK3568_Linux_fs/external/rockit/mpi/sdk/include/rk_comm_pvs.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* GPL-2.0 WITH Linux-syscall-note OR Apache 2.0 */
2*4882a593Smuzhiyun /* Copyright (c) 2022 Fuzhou Rockchip Electronics Co., Ltd */
3*4882a593Smuzhiyun 
4*4882a593Smuzhiyun #ifndef INCLUDE_RT_MPI_RK_COMM_PVS_H_
5*4882a593Smuzhiyun 
6*4882a593Smuzhiyun #define INCLUDE_RT_MPI_RK_COMM_PVS_H_
7*4882a593Smuzhiyun #include "rk_type.h"
8*4882a593Smuzhiyun #include "rk_errno.h"
9*4882a593Smuzhiyun #include "rk_common.h"
10*4882a593Smuzhiyun #include "rk_comm_video.h"
11*4882a593Smuzhiyun 
12*4882a593Smuzhiyun #ifdef __cplusplus
13*4882a593Smuzhiyun #if __cplusplus
14*4882a593Smuzhiyun extern "C" {
15*4882a593Smuzhiyun #endif
16*4882a593Smuzhiyun #endif /* End of #ifdef __cplusplus */
17*4882a593Smuzhiyun 
18*4882a593Smuzhiyun typedef RK_S32 PVS_DEV;
19*4882a593Smuzhiyun typedef RK_S32 PVS_CHN;
20*4882a593Smuzhiyun #define PVS_MAX_DEV_NUM  16
21*4882a593Smuzhiyun #define PVS_MAX_CHN_NUM  128
22*4882a593Smuzhiyun 
23*4882a593Smuzhiyun typedef enum rkPVS_STITCH_MODE_E {
24*4882a593Smuzhiyun     STITCH_MODE_PREVIEW = 0,
25*4882a593Smuzhiyun     STITCH_MODE_PLAYBACK,
26*4882a593Smuzhiyun     STITCH_MODE_BUTT
27*4882a593Smuzhiyun } PVS_STITCH_MODE_E;
28*4882a593Smuzhiyun 
29*4882a593Smuzhiyun typedef struct rkPVS_POINT_S {
30*4882a593Smuzhiyun     RK_S32 s32X;
31*4882a593Smuzhiyun     RK_S32 s32Y;
32*4882a593Smuzhiyun } PVS_POINT_S;
33*4882a593Smuzhiyun 
34*4882a593Smuzhiyun typedef struct rkPVS_SIZE_S {
35*4882a593Smuzhiyun     RK_U32 u32Width;
36*4882a593Smuzhiyun     RK_U32 u32Height;
37*4882a593Smuzhiyun } PVS_SIZE_S;
38*4882a593Smuzhiyun 
39*4882a593Smuzhiyun typedef struct rkPVS_RECT_S {
40*4882a593Smuzhiyun     RK_S32 s32X;
41*4882a593Smuzhiyun     RK_S32 s32Y;
42*4882a593Smuzhiyun     RK_U32 u32Width;
43*4882a593Smuzhiyun     RK_U32 u32Height;
44*4882a593Smuzhiyun } PVS_RECT_S;
45*4882a593Smuzhiyun 
46*4882a593Smuzhiyun typedef struct rkPVS_CHN_ATTR_S {
47*4882a593Smuzhiyun     PVS_RECT_S stRect;
48*4882a593Smuzhiyun } PVS_CHN_ATTR_S;
49*4882a593Smuzhiyun 
50*4882a593Smuzhiyun typedef struct rkPVS_CHN_PARAM_S {
51*4882a593Smuzhiyun     RK_S32 s32ChnFrmRate;
52*4882a593Smuzhiyun     RK_S32 s32RecvThreshold;
53*4882a593Smuzhiyun     PVS_STITCH_MODE_E enStitchMod;
54*4882a593Smuzhiyun } PVS_CHN_PARAM_S;
55*4882a593Smuzhiyun 
56*4882a593Smuzhiyun typedef struct rkPVS_DEV_ATTR_S {
57*4882a593Smuzhiyun     PVS_SIZE_S stSize;
58*4882a593Smuzhiyun     PIXEL_FORMAT_E enPixelFormat;
59*4882a593Smuzhiyun     COMPRESS_MODE_E enCompMode;
60*4882a593Smuzhiyun     RK_S32 s32StitchFrmRt;
61*4882a593Smuzhiyun } PVS_DEV_ATTR_S;
62*4882a593Smuzhiyun 
63*4882a593Smuzhiyun /* invalid device ID */
64*4882a593Smuzhiyun #define RK_ERR_PVS_INVALID_DEVID     RK_DEF_ERR(RK_ID_PVS, RK_ERR_LEVEL_ERROR, RK_ERR_INVALID_DEVID)
65*4882a593Smuzhiyun /* invalid channel ID */
66*4882a593Smuzhiyun #define RK_ERR_PVS_INVALID_CHNID     RK_DEF_ERR(RK_ID_PVS, RK_ERR_LEVEL_ERROR, RK_ERR_INVALID_CHNID)
67*4882a593Smuzhiyun /* at lease one parameter is illegal ,eg, an illegal enumeration value  */
68*4882a593Smuzhiyun #define RK_ERR_PVS_ILLEGAL_PARAM     RK_DEF_ERR(RK_ID_PVS, RK_ERR_LEVEL_ERROR, RK_ERR_ILLEGAL_PARAM)
69*4882a593Smuzhiyun /* unexist device or channel */
70*4882a593Smuzhiyun #define RK_ERR_PVS_UNEXIST           RK_DEF_ERR(RK_ID_PVS, RK_ERR_LEVEL_ERROR, RK_ERR_UNEXIST)
71*4882a593Smuzhiyun /* using a NULL point */
72*4882a593Smuzhiyun #define RK_ERR_PVS_NULL_PTR          RK_DEF_ERR(RK_ID_PVS, RK_ERR_LEVEL_ERROR, RK_ERR_NULL_PTR)
73*4882a593Smuzhiyun /* attr or params not config */
74*4882a593Smuzhiyun #define RK_ERR_PVS_NOT_CONFIG        RK_DEF_ERR(RK_ID_PVS, RK_ERR_LEVEL_ERROR, RK_ERR_NOT_CONFIG)
75*4882a593Smuzhiyun /* failure caused by malloc buffer */
76*4882a593Smuzhiyun #define RK_ERR_PVS_NOBUF             RK_DEF_ERR(RK_ID_PVS, RK_ERR_LEVEL_ERROR, RK_ERR_NOBUF)
77*4882a593Smuzhiyun /* no data in buffer */
78*4882a593Smuzhiyun #define RK_ERR_PVS_BUF_EMPTY         RK_DEF_ERR(RK_ID_PVS, RK_ERR_LEVEL_ERROR, RK_ERR_BUF_EMPTY)
79*4882a593Smuzhiyun /* no buffer for new data */
80*4882a593Smuzhiyun #define RK_ERR_PVS_BUF_FULL          RK_DEF_ERR(RK_ID_PVS, RK_ERR_LEVEL_ERROR, RK_ERR_BUF_FULL)
81*4882a593Smuzhiyun 
82*4882a593Smuzhiyun #ifdef __cplusplus
83*4882a593Smuzhiyun #if __cplusplus
84*4882a593Smuzhiyun }
85*4882a593Smuzhiyun #endif
86*4882a593Smuzhiyun #endif /* __cplusplus */
87*4882a593Smuzhiyun 
88*4882a593Smuzhiyun #endif /* INCLUDE_RT_MPI_RK_COMMON_PVS_H_ */
89