1/* 2 * Copyright (c) 2022 HiSilicon (Shanghai) Technologies CO., LIMITED. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15#ifndef __MPI_GDC_H__ 16#define __MPI_GDC_H__ 17 18#include "hi_common.h" 19#include "hi_comm_video.h" 20#include "hi_comm_gdc.h" 21 22#ifdef __cplusplus 23#if __cplusplus 24extern "C" { 25#endif 26#endif /* __cplusplus */ 27 28/* 29 * Description : Begin a gdc job,then add task into the job,gdc will finish all the task in the job. 30 * Input : GDC_HANDLE *phHandle 31 * Output : None 32 */ 33HI_S32 HI_MPI_GDC_BeginJob(GDC_HANDLE *phHandle); 34 35/* 36 * Description : End a job,all tasks in the job will be submmitted to gdc 37 * Input : GDC_HANDLE hHandle 38 * Output : None 39 */ 40HI_S32 HI_MPI_GDC_EndJob(GDC_HANDLE hHandle); 41 42/* 43 * Description : Cancel a job ,then all tasks in the job will not be submmitted to gdc 44 * Input : GDC_HANDLE hHandle 45 * Output : None 46 */ 47HI_S32 HI_MPI_GDC_CancelJob(GDC_HANDLE hHandle); 48 49/* 50 * Description : Add a task to a gdc job 51 * Input : GDC_HANDLE hHandle 52 * const GDC_TASK_ATTR_S *pstTask 53 * const FISHEYE_ATTR_S *pstFisheyeAttr 54 * Output : None 55 */ 56HI_S32 HI_MPI_GDC_AddCorrectionTask(GDC_HANDLE hHandle, const GDC_TASK_ATTR_S *pstTask, 57 const FISHEYE_ATTR_S *pstFisheyeAttr); 58 59/* 60 * Description : Add a task to a gdc job 61 * Input : GDC_HANDLE hHandle 62 * const GDC_TASK_ATTR_S *pstTask 63 * const FISHEYE_ATTR_EX_S *pstFishEyeAttrEx 64 * HI_BOOL bCheckMode 65 * Output : None 66 */ 67HI_S32 HI_MPI_GDC_AddCorrectionExTask(GDC_HANDLE hHandle, const GDC_TASK_ATTR_S *pstTask, 68 const FISHEYE_ATTR_EX_S *pstFishEyeAttrEx, HI_BOOL bCheckMode); 69 70/* 71 * Description : Set Config 72 * Input : GDC_HANDLE hHandle 73 * const FISHEYE_JOB_CONFIG_S *stJobConfig 74 * Output : None 75 */ 76HI_S32 HI_MPI_GDC_SetConfig(GDC_HANDLE hHandle, const FISHEYE_JOB_CONFIG_S *pstJobConfig); 77 78/* 79 * Description : Set Config 80 * Input : GDC_HANDLE hHandle 81 * const GDC_TASK_ATTR_S* pstTask 82 * const GDC_PMF_ATTR_S* pstGdcPmfAttr 83 * Output : None 84 */ 85HI_S32 HI_MPI_GDC_AddPMFTask(GDC_HANDLE hHandle, const GDC_TASK_ATTR_S *pstTask, const GDC_PMF_ATTR_S *pstGdcPmfAttr); 86 87/* 88 * Description : Query source point from correction point 89 * Input : const GDC_FISHEYE_POINT_QUERY_ATTR_S *pstFisheyePointQueryAttr 90 * const VIDEO_FRAME_INFO_S *pstVideoInfo 91 * const POINT_S *pstDstPoint 92 * POINT_S *pstSrcPoint 93 * Output : None 94 */ 95HI_S32 HI_MPI_GDC_FisheyePosQueryDst2Src(const GDC_FISHEYE_POINT_QUERY_ATTR_S *pstFisheyePointQueryAttr, 96 const VIDEO_FRAME_INFO_S *pstVideoInfo, const POINT_S *pstDstPoint, POINT_S *pstSrcPoint); 97#ifdef __cplusplus 98#if __cplusplus 99} 100#endif 101#endif /* __cplusplus */ 102 103#endif /* __MPI_GDC_H__ */ 104 105