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