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
161bd4fe43Sopenharmony_ci#ifndef __MPI_VGS_H__
171bd4fe43Sopenharmony_ci#define __MPI_VGS_H__
181bd4fe43Sopenharmony_ci
191bd4fe43Sopenharmony_ci#include "hi_common.h"
201bd4fe43Sopenharmony_ci#include "hi_comm_video.h"
211bd4fe43Sopenharmony_ci#include "hi_comm_vgs.h"
221bd4fe43Sopenharmony_ci
231bd4fe43Sopenharmony_ci#ifdef __cplusplus
241bd4fe43Sopenharmony_ci#if __cplusplus
251bd4fe43Sopenharmony_ciextern "C" {
261bd4fe43Sopenharmony_ci#endif
271bd4fe43Sopenharmony_ci#endif /* __cplusplus */
281bd4fe43Sopenharmony_ci
291bd4fe43Sopenharmony_ciHI_S32 HI_MPI_VGS_BeginJob(VGS_HANDLE *phHandle);
301bd4fe43Sopenharmony_ci
311bd4fe43Sopenharmony_ciHI_S32 HI_MPI_VGS_EndJob(VGS_HANDLE hHandle);
321bd4fe43Sopenharmony_ci
331bd4fe43Sopenharmony_ciHI_S32 HI_MPI_VGS_CancelJob(VGS_HANDLE hHandle);
341bd4fe43Sopenharmony_ci
351bd4fe43Sopenharmony_ciHI_S32 HI_MPI_VGS_AddScaleTask(VGS_HANDLE hHandle, const VGS_TASK_ATTR_S *pstTask,
361bd4fe43Sopenharmony_ci                               VGS_SCLCOEF_MODE_E enScaleCoefMode);
371bd4fe43Sopenharmony_ci
381bd4fe43Sopenharmony_ciHI_S32 HI_MPI_VGS_AddDrawLineTask(VGS_HANDLE hHandle, const VGS_TASK_ATTR_S *pstTask,
391bd4fe43Sopenharmony_ci                                  const VGS_DRAW_LINE_S *pstVgsDrawLine);
401bd4fe43Sopenharmony_ci
411bd4fe43Sopenharmony_ciHI_S32 HI_MPI_VGS_AddCoverTask(VGS_HANDLE hHandle, const VGS_TASK_ATTR_S *pstTask,
421bd4fe43Sopenharmony_ci                               const VGS_ADD_COVER_S *pstVgsAddCover);
431bd4fe43Sopenharmony_ci
441bd4fe43Sopenharmony_ciHI_S32 HI_MPI_VGS_AddOsdTask(VGS_HANDLE hHandle, const VGS_TASK_ATTR_S *pstTask,
451bd4fe43Sopenharmony_ci                             const VGS_ADD_OSD_S *pstVgsAddOsd);
461bd4fe43Sopenharmony_ci
471bd4fe43Sopenharmony_ciHI_S32 HI_MPI_VGS_AddDrawLineTaskArray(VGS_HANDLE hHandle, const VGS_TASK_ATTR_S *pstTask,
481bd4fe43Sopenharmony_ci                                       const VGS_DRAW_LINE_S astVgsDrawLine[], HI_U32 u32ArraySize);
491bd4fe43Sopenharmony_ci
501bd4fe43Sopenharmony_ciHI_S32 HI_MPI_VGS_AddCoverTaskArray(VGS_HANDLE hHandle, const VGS_TASK_ATTR_S *pstTask,
511bd4fe43Sopenharmony_ci                                    const VGS_ADD_COVER_S astVgsAddCover[], HI_U32 u32ArraySize);
521bd4fe43Sopenharmony_ci
531bd4fe43Sopenharmony_ciHI_S32 HI_MPI_VGS_AddOsdTaskArray(VGS_HANDLE hHandle, const VGS_TASK_ATTR_S *pstTask,
541bd4fe43Sopenharmony_ci                                  const VGS_ADD_OSD_S astVgsAddOsd[], HI_U32 u32ArraySize);
551bd4fe43Sopenharmony_ci
561bd4fe43Sopenharmony_ciHI_S32 HI_MPI_VGS_AddRotationTask(VGS_HANDLE hHandle, const VGS_TASK_ATTR_S *pstTask, ROTATION_E enRotationAngle);
571bd4fe43Sopenharmony_ci
581bd4fe43Sopenharmony_ciHI_S32 HI_MPI_VGS_AddLumaTaskArray(VGS_HANDLE hHandle, VGS_TASK_ATTR_S *pstTask, const RECT_S astVgsLumaRect[],
591bd4fe43Sopenharmony_ci                                   HI_U32 u32ArraySize, HI_U64 au64LumaData[]);
601bd4fe43Sopenharmony_ci
611bd4fe43Sopenharmony_ci#ifdef __cplusplus
621bd4fe43Sopenharmony_ci#if __cplusplus
631bd4fe43Sopenharmony_ci}
641bd4fe43Sopenharmony_ci#endif
651bd4fe43Sopenharmony_ci#endif /* __cplusplus */
661bd4fe43Sopenharmony_ci
671bd4fe43Sopenharmony_ci#endif /* end of __MPI_VGS_H__ */
681bd4fe43Sopenharmony_ci
69