1 /* GPL-2.0 WITH Linux-syscall-note OR Apache 2.0 */ 2 /* Copyright (c) 2021 Fuzhou Rockchip Electronics Co., Ltd */ 3 4 #ifndef INCLUDE_RT_MPI_VGS_H_ 5 #define INCLUDE_RT_MPI_VGS_H_ 6 7 #include "rk_common.h" 8 #include "rk_comm_video.h" 9 #include "rk_comm_vgs.h" 10 11 #ifdef __cplusplus 12 #if __cplusplus 13 extern "C" { 14 #endif 15 #endif /*__cplusplus*/ 16 17 /***************************************************************************** 18 Prototype : RK_MPI_VGS_BeginJob 19 Description : Begin a vgs job,then add task into the job,vgs will finish all the task in the job. 20 Input : VGS_HANDLE *phHandle 21 Output : None 22 Return Value : 23 Calls : 24 Called By : 25 *****************************************************************************/ 26 RK_S32 RK_MPI_VGS_BeginJob(VGS_HANDLE *phHandle); 27 28 /***************************************************************************** 29 Prototype : RK_MPI_VGS_EndJob 30 Description : End a job,all tasks in the job will be submmitted to vgs 31 Input : VGS_HANDLE hHandle 32 Output : None 33 Return Value : 34 Calls : 35 Called By : 36 *****************************************************************************/ 37 RK_S32 RK_MPI_VGS_EndJob(VGS_HANDLE hHandle); 38 39 /***************************************************************************** 40 Prototype : RK_MPI_VGS_CancelJob 41 Description : Cancel a job,then all tasks in the job will not be submmitted to vgs 42 Input : VGS_HANDLE hHandle 43 Output : None 44 Return Value : 45 Calls : 46 Called By : 47 *****************************************************************************/ 48 RK_S32 RK_MPI_VGS_CancelJob(VGS_HANDLE hHandle); 49 50 /***************************************************************************** 51 Prototype : RK_MPI_VGS_AddScaleTask 52 Description : Add a Scale task to a vgs job 53 Input : VGS_HANDLE hHandle 54 Output : None 55 Return Value : 56 Calls : 57 Called By : 58 *****************************************************************************/ 59 RK_S32 RK_MPI_VGS_AddScaleTask(VGS_HANDLE hHandle, const VGS_TASK_ATTR_S *pstTask, VGS_SCLCOEF_MODE_E enScaleCoefMode); 60 61 /***************************************************************************** 62 Prototype : RK_MPI_VGS_AddRotationTask 63 Description : add a Rotation task into a job 64 Input : VGS_HANDLE hHandle 65 Output : None 66 Return Value : 67 Calls : 68 Called By : 69 *****************************************************************************/ 70 RK_S32 RK_MPI_VGS_AddRotationTask(VGS_HANDLE hHandle, const VGS_TASK_ATTR_S *pstTask, ROTATION_E enRotationAngle); 71 72 /***************************************************************************** 73 Prototype : RK_MPI_VGS_AddCropTask 74 Description : add crop task into a job 75 Input : VGS_HANDLE hHandle 76 Output : None 77 Return Value : 78 Calls : 79 Called By : 80 *****************************************************************************/ 81 RK_S32 RK_MPI_VGS_AddCropTask( 82 VGS_HANDLE hHandle, const VGS_TASK_ATTR_S *pstTask, const VGS_CROP_INFO_S *pstVgsCrop); 83 84 /***************************************************************************** 85 Prototype : RK_MPI_VGS_AddDrawLineTask 86 Description : add a draw line task into a job 87 Input : VGS_HANDLE hHandle 88 Output : None 89 Return Value : 90 Calls : 91 Called By : 92 *****************************************************************************/ 93 RK_S32 RK_MPI_VGS_AddDrawLineTask( 94 VGS_HANDLE hHandle, const VGS_TASK_ATTR_S *pstTask, const VGS_DRAW_LINE_S *pstVgsDrawLine); 95 96 /***************************************************************************** 97 Prototype : RK_MPI_VGS_AddCoverTask 98 Description : add a Cover task into a job 99 Input : VGS_HANDLE hHandle 100 Output : None 101 Return Value : 102 Calls : 103 Called By : 104 *****************************************************************************/ 105 RK_S32 RK_MPI_VGS_AddCoverTask( 106 VGS_HANDLE hHandle, const VGS_TASK_ATTR_S *pstTask, const VGS_ADD_COVER_S *pstVgsAddCover); 107 108 /***************************************************************************** 109 Prototype : RK_MPI_VGS_AddOsdTask 110 Description : add a Osd task into a job 111 Input : VGS_HANDLE hHandle 112 Output : None 113 Return Value : 114 Calls : 115 Called By : 116 *****************************************************************************/ 117 RK_S32 RK_MPI_VGS_AddOsdTask(VGS_HANDLE hHandle, const VGS_TASK_ATTR_S *pstTask, const VGS_ADD_OSD_S *pstVgsAddOsd); 118 119 /**************************************** 120 Prototype : RK_MPI_VGS_AddMosaicTask 121 Description : add mosaic task into a job 122 Input : VGS_HANDLE hHandle 123 Output : None 124 Return Value : 125 Calls : 126 Called By : 127 *****************************************************************************/ 128 RK_S32 RK_MPI_VGS_AddMosaicTask( 129 VGS_HANDLE hHandle, const VGS_TASK_ATTR_S *pstTask, const VGS_MOSAIC_S* pstVgsMosaic); 130 131 /***************************************************************************** 132 Prototype : RK_MPI_VGS_AddDrawLineTaskArray 133 Description : add draw line tasks into a job 134 Input : VGS_HANDLE hHandle 135 Output : None 136 Return Value : 137 Calls : 138 Called By : 139 *****************************************************************************/ 140 RK_S32 RK_MPI_VGS_AddDrawLineTaskArray( 141 VGS_HANDLE hHandle, const VGS_TASK_ATTR_S *pstTask, 142 const VGS_DRAW_LINE_S astVgsDrawLine[], RK_U32 u32ArraySize); 143 144 /***************************************************************************** 145 Prototype : RK_MPI_VGS_AddCoverTaskArray 146 Description : add cover tasks into a job 147 Input : VGS_HANDLE hHandle 148 Output : None 149 Return Value : 150 Calls : 151 Called By : 152 *****************************************************************************/ 153 RK_S32 RK_MPI_VGS_AddCoverTaskArray( 154 VGS_HANDLE hHandle, const VGS_TASK_ATTR_S *pstTask, 155 const VGS_ADD_COVER_S astVgsAddCover[], RK_U32 u32ArraySize); 156 157 /***************************************************************************** 158 Prototype : RK_MPI_VGS_AddOsdTaskArray 159 Description : add osd tasks into a job 160 Input : VGS_HANDLE hHandle 161 Output : None 162 Return Value : 163 Calls : 164 Called By : 165 *****************************************************************************/ 166 RK_S32 RK_MPI_VGS_AddOsdTaskArray( 167 VGS_HANDLE hHandle, const VGS_TASK_ATTR_S *pstTask, const VGS_ADD_OSD_S astVgsAddOsd[], RK_U32 u32ArraySize); 168 169 /**************************************** 170 Prototype : RK_MPI_VGS_AddMosaicTask 171 Description : add mosaic tasks into a job 172 Input : VGS_HANDLE hHandle 173 Output : None 174 Return Value : 175 Calls : 176 Called By : 177 *****************************************************************************/ 178 RK_S32 RK_MPI_VGS_AddMosaicTaskArray( 179 VGS_HANDLE hHandle, const VGS_TASK_ATTR_S *pstTask, const VGS_MOSAIC_S astVgsMosaic[], RK_U32 u32ArraySize); 180 181 182 #ifdef __cplusplus 183 #if __cplusplus 184 } 185 #endif 186 #endif /*__cplusplus*/ 187 188 #endif /*end of __MPI_VGS_H__*/ 189 190