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