xref: /OK3568_Linux_fs/external/rockit/mpi/sdk/include/rk_mpi_vi.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* GPL-2.0 WITH Linux-syscall-note OR Apache 2.0 */
2*4882a593Smuzhiyun /* Copyright (c) 2021 Fuzhou Rockchip Electronics Co., Ltd */
3*4882a593Smuzhiyun 
4*4882a593Smuzhiyun #ifndef INCLUDE_RT_MPI_MPI_VI_H_
5*4882a593Smuzhiyun #define INCLUDE_RT_MPI_MPI_VI_H_
6*4882a593Smuzhiyun 
7*4882a593Smuzhiyun #include "rk_comm_vi.h"
8*4882a593Smuzhiyun 
9*4882a593Smuzhiyun #ifdef __cplusplus
10*4882a593Smuzhiyun #if __cplusplus
11*4882a593Smuzhiyun extern "C" {
12*4882a593Smuzhiyun #endif
13*4882a593Smuzhiyun #endif /* __cplusplus */
14*4882a593Smuzhiyun 
15*4882a593Smuzhiyun /* 1 for vi device */
16*4882a593Smuzhiyun RK_S32 RK_MPI_VI_SetDevAttr(VI_DEV ViDev, const VI_DEV_ATTR_S *pstDevAttr);
17*4882a593Smuzhiyun RK_S32 RK_MPI_VI_GetDevAttr(VI_DEV ViDev, VI_DEV_ATTR_S *pstDevAttr);
18*4882a593Smuzhiyun RK_S32 RK_MPI_VI_EnableDev(VI_DEV ViDev);
19*4882a593Smuzhiyun RK_S32 RK_MPI_VI_DisableDev(VI_DEV ViDev);
20*4882a593Smuzhiyun RK_S32 RK_MPI_VI_SetDevBindPipe(VI_DEV ViDev, const VI_DEV_BIND_PIPE_S *pstDevBindPipe);
21*4882a593Smuzhiyun RK_S32 RK_MPI_VI_GetDevBindPipe(VI_DEV ViDev, VI_DEV_BIND_PIPE_S *pstDevBindPipe);
22*4882a593Smuzhiyun RK_S32 RK_MPI_VI_GetDevIsEnable(VI_DEV ViDev);
23*4882a593Smuzhiyun RK_S32 RK_MPI_VI_QueryDevStatus(VI_DEV Videv, VI_DEV_STATUS_S *pstDevStatus);
24*4882a593Smuzhiyun 
25*4882a593Smuzhiyun RK_S32 RK_MPI_VI_StartPipe(VI_PIPE ViPipe);
26*4882a593Smuzhiyun RK_S32 RK_MPI_VI_StopPipe(VI_PIPE ViPipe);
27*4882a593Smuzhiyun /* 2 for vi chn */
28*4882a593Smuzhiyun RK_S32 RK_MPI_VI_SetChnAttr(VI_PIPE ViPipe, VI_CHN ViChn, const VI_CHN_ATTR_S *pstChnAttr);
29*4882a593Smuzhiyun RK_S32 RK_MPI_VI_GetChnAttr(VI_PIPE ViPipe, VI_CHN ViChn, VI_CHN_ATTR_S *pstChnAttr);
30*4882a593Smuzhiyun 
31*4882a593Smuzhiyun RK_S32 RK_MPI_VI_EnableChn(VI_PIPE ViPipe, VI_CHN ViChn);
32*4882a593Smuzhiyun RK_S32 RK_MPI_VI_EnableChnExt(VI_PIPE ViPipe, VI_CHN ViChn);
33*4882a593Smuzhiyun RK_S32 RK_MPI_VI_DisableChn(VI_PIPE ViPipe, VI_CHN ViChn);
34*4882a593Smuzhiyun RK_S32 RK_MPI_VI_DisableChnExt(VI_PIPE ViPipe, VI_CHN ViChn);
35*4882a593Smuzhiyun RK_S32 RK_MPI_VI_PauseChn(VI_PIPE ViPipe, VI_CHN ViChn);
36*4882a593Smuzhiyun RK_S32 RK_MPI_VI_ResumeChn(VI_PIPE ViPipe, VI_CHN ViChn);
37*4882a593Smuzhiyun RK_S32 RK_MPI_VI_GetChnFrame(VI_PIPE ViPipe, VI_CHN ViChn, VIDEO_FRAME_INFO_S *pstFrameInfo, RK_S32 s32MilliSec);
38*4882a593Smuzhiyun RK_S32 RK_MPI_VI_ReleaseChnFrame(VI_PIPE ViPipe, VI_CHN ViChn, const VIDEO_FRAME_INFO_S *pstFrameInfo);
39*4882a593Smuzhiyun RK_S32 RK_MPI_VI_ChnSaveFile(VI_PIPE ViPipe, VI_CHN ViChn, VI_SAVE_FILE_INFO_S* pstSaveFileInfo);
40*4882a593Smuzhiyun RK_S32 RK_MPI_VI_QueryChnStatus(VI_PIPE ViPipe, VI_CHN ViChn, VI_CHN_STATUS_S *pstChnStatus);
41*4882a593Smuzhiyun RK_S32 RK_MPI_VI_GetChnWrapBufAttr(VI_PIPE ViPipe, VI_CHN ViChn, VI_CHN_BUF_WRAP_S *pstViWrap);
42*4882a593Smuzhiyun RK_S32 RK_MPI_VI_SetChnWrapBufAttr(VI_PIPE ViPipe, VI_CHN ViChn, const VI_CHN_BUF_WRAP_S *pstViWrap);
43*4882a593Smuzhiyun RK_S32 RK_MPI_VI_GetChnFd(VI_PIPE ViPipe, VI_CHN ViChn);
44*4882a593Smuzhiyun RK_S32 RK_MPI_VI_CloseChnFd(VI_PIPE ViPipe, VI_CHN ViChn);
45*4882a593Smuzhiyun 
46*4882a593Smuzhiyun RK_S32 RK_MPI_VI_SetChnFreeze(VI_PIPE ViPipe, VI_CHN ViChn, RK_BOOL bFreeze);
47*4882a593Smuzhiyun RK_S32 RK_MPI_VI_GetChnFreeze(VI_PIPE ViPipe, VI_CHN ViChn, RK_BOOL *pbFreeze);
48*4882a593Smuzhiyun 
49*4882a593Smuzhiyun RK_S32 RK_MPI_VI_AttachMbPool(VI_PIPE ViPipe, VI_CHN ViChn, MB_POOL hMbPool);
50*4882a593Smuzhiyun RK_S32 RK_MPI_VI_DetachMbPool(VI_PIPE ViPipe, VI_CHN ViChn);
51*4882a593Smuzhiyun 
52*4882a593Smuzhiyun RK_S32 RK_MPI_VI_SetUserPic(VI_PIPE ViPipe, VI_CHN ViChn, const VI_USERPIC_ATTR_S *pstUsrPic);
53*4882a593Smuzhiyun RK_S32 RK_MPI_VI_EnableUserPic(VI_PIPE ViPipe, VI_CHN ViChn);
54*4882a593Smuzhiyun RK_S32 RK_MPI_VI_DisableUserPic(VI_PIPE ViPipe, VI_CHN ViChn);
55*4882a593Smuzhiyun 
56*4882a593Smuzhiyun RK_S32 RK_MPI_VI_GetChnConnectInfo(VI_PIPE ViPipe, VI_CHN ViChn, VI_CONNECT_INFO_S *pstConnectInfo);
57*4882a593Smuzhiyun RK_S32 RK_MPI_VI_SetChnEdid(VI_PIPE ViPipe, VI_CHN ViChn, const VI_EDID_S *pstEdid);
58*4882a593Smuzhiyun RK_S32 RK_MPI_VI_GetChnEdid(VI_PIPE ViPipe, VI_CHN ViChn, VI_EDID_S *pstEdid);
59*4882a593Smuzhiyun 
60*4882a593Smuzhiyun RK_S32 RK_MPI_VI_GetChnStreamCodec(VI_PIPE ViPipe, VI_CHN ViChn, RK_CODEC_ID_E *penCodecId);
61*4882a593Smuzhiyun RK_S32 RK_MPI_VI_SetChnStreamCodec(VI_PIPE ViPipe, VI_CHN ViChn, const RK_CODEC_ID_E enCodecId);
62*4882a593Smuzhiyun RK_S32 RK_MPI_VI_GetChnStream(VI_PIPE ViPipe, VI_CHN ViChn, VI_STREAM_S *pstStream, RK_S32 s32MilliSec);
63*4882a593Smuzhiyun RK_S32 RK_MPI_VI_ReleaseChnStream(VI_PIPE ViPipe, VI_CHN ViChn, const VI_STREAM_S *pstStream);
64*4882a593Smuzhiyun RK_S32 RK_MPI_VI_RegChnEventCallback(VI_PIPE ViPipe, VI_CHN ViChn, const VI_EVENT_CALL_BACK_S *pstCallback);
65*4882a593Smuzhiyun 
66*4882a593Smuzhiyun RK_S32 RK_MPI_VI_GetEptz(VI_PIPE ViPipe, VI_CHN ViChn,  VI_CROP_INFO_S *stCropInfo);
67*4882a593Smuzhiyun RK_S32 RK_MPI_VI_SetEptz(VI_PIPE ViPipe, VI_CHN ViChn,  VI_CROP_INFO_S stCropInfo);
68*4882a593Smuzhiyun RK_S32 RK_MPI_VI_GetChnMirrorFlip(VI_PIPE ViPipe, VI_CHN ViChn, VI_ISP_MIRROR_FLIP_S *pstMirrFlip);
69*4882a593Smuzhiyun RK_S32 RK_MPI_VI_SetChnMirrorFlip(VI_PIPE ViPipe, VI_CHN ViChn, VI_ISP_MIRROR_FLIP_S stMirrFlip);
70*4882a593Smuzhiyun #ifdef __cplusplus
71*4882a593Smuzhiyun #if __cplusplus
72*4882a593Smuzhiyun }
73*4882a593Smuzhiyun #endif
74*4882a593Smuzhiyun #endif /* __cplusplus */
75*4882a593Smuzhiyun 
76*4882a593Smuzhiyun #endif /* INCLUDE_RT_MPI_MPI_VI_H_ */
77*4882a593Smuzhiyun 
78*4882a593Smuzhiyun 
79