11bd4fe43Sopenharmony_ci/* 21bd4fe43Sopenharmony_ci * Copyright (c) 2022 HiSilicon (Shanghai) Technologies CO., LIMITED. 31bd4fe43Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 41bd4fe43Sopenharmony_ci * you may not use this file except in compliance with the License. 51bd4fe43Sopenharmony_ci * You may obtain a copy of the License at 61bd4fe43Sopenharmony_ci * 71bd4fe43Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 81bd4fe43Sopenharmony_ci * 91bd4fe43Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 101bd4fe43Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 111bd4fe43Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 121bd4fe43Sopenharmony_ci * See the License for the specific language governing permissions and 131bd4fe43Sopenharmony_ci * limitations under the License. 141bd4fe43Sopenharmony_ci */ 151bd4fe43Sopenharmony_ci#ifndef __MPI_GDC_H__ 161bd4fe43Sopenharmony_ci#define __MPI_GDC_H__ 171bd4fe43Sopenharmony_ci 181bd4fe43Sopenharmony_ci#include "hi_common.h" 191bd4fe43Sopenharmony_ci#include "hi_comm_video.h" 201bd4fe43Sopenharmony_ci#include "hi_comm_gdc.h" 211bd4fe43Sopenharmony_ci 221bd4fe43Sopenharmony_ci#ifdef __cplusplus 231bd4fe43Sopenharmony_ci#if __cplusplus 241bd4fe43Sopenharmony_ciextern "C" { 251bd4fe43Sopenharmony_ci#endif 261bd4fe43Sopenharmony_ci#endif /* __cplusplus */ 271bd4fe43Sopenharmony_ci 281bd4fe43Sopenharmony_ci/* 291bd4fe43Sopenharmony_ci * Description : Begin a gdc job,then add task into the job,gdc will finish all the task in the job. 301bd4fe43Sopenharmony_ci * Input : GDC_HANDLE *phHandle 311bd4fe43Sopenharmony_ci * Output : None 321bd4fe43Sopenharmony_ci */ 331bd4fe43Sopenharmony_ciHI_S32 HI_MPI_GDC_BeginJob(GDC_HANDLE *phHandle); 341bd4fe43Sopenharmony_ci 351bd4fe43Sopenharmony_ci/* 361bd4fe43Sopenharmony_ci * Description : End a job,all tasks in the job will be submmitted to gdc 371bd4fe43Sopenharmony_ci * Input : GDC_HANDLE hHandle 381bd4fe43Sopenharmony_ci * Output : None 391bd4fe43Sopenharmony_ci */ 401bd4fe43Sopenharmony_ciHI_S32 HI_MPI_GDC_EndJob(GDC_HANDLE hHandle); 411bd4fe43Sopenharmony_ci 421bd4fe43Sopenharmony_ci/* 431bd4fe43Sopenharmony_ci * Description : Cancel a job ,then all tasks in the job will not be submmitted to gdc 441bd4fe43Sopenharmony_ci * Input : GDC_HANDLE hHandle 451bd4fe43Sopenharmony_ci * Output : None 461bd4fe43Sopenharmony_ci */ 471bd4fe43Sopenharmony_ciHI_S32 HI_MPI_GDC_CancelJob(GDC_HANDLE hHandle); 481bd4fe43Sopenharmony_ci 491bd4fe43Sopenharmony_ci/* 501bd4fe43Sopenharmony_ci * Description : Add a task to a gdc job 511bd4fe43Sopenharmony_ci * Input : GDC_HANDLE hHandle 521bd4fe43Sopenharmony_ci * const GDC_TASK_ATTR_S *pstTask 531bd4fe43Sopenharmony_ci * const FISHEYE_ATTR_S *pstFisheyeAttr 541bd4fe43Sopenharmony_ci * Output : None 551bd4fe43Sopenharmony_ci */ 561bd4fe43Sopenharmony_ciHI_S32 HI_MPI_GDC_AddCorrectionTask(GDC_HANDLE hHandle, const GDC_TASK_ATTR_S *pstTask, 571bd4fe43Sopenharmony_ci const FISHEYE_ATTR_S *pstFisheyeAttr); 581bd4fe43Sopenharmony_ci 591bd4fe43Sopenharmony_ci/* 601bd4fe43Sopenharmony_ci * Description : Add a task to a gdc job 611bd4fe43Sopenharmony_ci * Input : GDC_HANDLE hHandle 621bd4fe43Sopenharmony_ci * const GDC_TASK_ATTR_S *pstTask 631bd4fe43Sopenharmony_ci * const FISHEYE_ATTR_EX_S *pstFishEyeAttrEx 641bd4fe43Sopenharmony_ci * HI_BOOL bCheckMode 651bd4fe43Sopenharmony_ci * Output : None 661bd4fe43Sopenharmony_ci */ 671bd4fe43Sopenharmony_ciHI_S32 HI_MPI_GDC_AddCorrectionExTask(GDC_HANDLE hHandle, const GDC_TASK_ATTR_S *pstTask, 681bd4fe43Sopenharmony_ci const FISHEYE_ATTR_EX_S *pstFishEyeAttrEx, HI_BOOL bCheckMode); 691bd4fe43Sopenharmony_ci 701bd4fe43Sopenharmony_ci/* 711bd4fe43Sopenharmony_ci * Description : Set Config 721bd4fe43Sopenharmony_ci * Input : GDC_HANDLE hHandle 731bd4fe43Sopenharmony_ci * const FISHEYE_JOB_CONFIG_S *stJobConfig 741bd4fe43Sopenharmony_ci * Output : None 751bd4fe43Sopenharmony_ci */ 761bd4fe43Sopenharmony_ciHI_S32 HI_MPI_GDC_SetConfig(GDC_HANDLE hHandle, const FISHEYE_JOB_CONFIG_S *pstJobConfig); 771bd4fe43Sopenharmony_ci 781bd4fe43Sopenharmony_ci/* 791bd4fe43Sopenharmony_ci * Description : Set Config 801bd4fe43Sopenharmony_ci * Input : GDC_HANDLE hHandle 811bd4fe43Sopenharmony_ci * const GDC_TASK_ATTR_S* pstTask 821bd4fe43Sopenharmony_ci * const GDC_PMF_ATTR_S* pstGdcPmfAttr 831bd4fe43Sopenharmony_ci * Output : None 841bd4fe43Sopenharmony_ci */ 851bd4fe43Sopenharmony_ciHI_S32 HI_MPI_GDC_AddPMFTask(GDC_HANDLE hHandle, const GDC_TASK_ATTR_S *pstTask, const GDC_PMF_ATTR_S *pstGdcPmfAttr); 861bd4fe43Sopenharmony_ci 871bd4fe43Sopenharmony_ci/* 881bd4fe43Sopenharmony_ci * Description : Query source point from correction point 891bd4fe43Sopenharmony_ci * Input : const GDC_FISHEYE_POINT_QUERY_ATTR_S *pstFisheyePointQueryAttr 901bd4fe43Sopenharmony_ci * const VIDEO_FRAME_INFO_S *pstVideoInfo 911bd4fe43Sopenharmony_ci * const POINT_S *pstDstPoint 921bd4fe43Sopenharmony_ci * POINT_S *pstSrcPoint 931bd4fe43Sopenharmony_ci * Output : None 941bd4fe43Sopenharmony_ci */ 951bd4fe43Sopenharmony_ciHI_S32 HI_MPI_GDC_FisheyePosQueryDst2Src(const GDC_FISHEYE_POINT_QUERY_ATTR_S *pstFisheyePointQueryAttr, 961bd4fe43Sopenharmony_ci const VIDEO_FRAME_INFO_S *pstVideoInfo, const POINT_S *pstDstPoint, POINT_S *pstSrcPoint); 971bd4fe43Sopenharmony_ci#ifdef __cplusplus 981bd4fe43Sopenharmony_ci#if __cplusplus 991bd4fe43Sopenharmony_ci} 1001bd4fe43Sopenharmony_ci#endif 1011bd4fe43Sopenharmony_ci#endif /* __cplusplus */ 1021bd4fe43Sopenharmony_ci 1031bd4fe43Sopenharmony_ci#endif /* __MPI_GDC_H__ */ 1041bd4fe43Sopenharmony_ci 105