You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
142 lines
4.6 KiB
142 lines
4.6 KiB
3 years ago
|
/******************************************************************************
|
||
|
|
||
|
Copyright (C), 2013-2033, Hisilicon Tech. Co., Ltd.
|
||
|
|
||
|
******************************************************************************
|
||
|
File Name : hi_comm_vgs.h
|
||
|
Version :
|
||
|
Author : Hisilicon Hi35xx MPP Team
|
||
|
Created : 2013/07/24
|
||
|
Last Modified :
|
||
|
Description : common struct definition for VGS
|
||
|
Function List :
|
||
|
History :
|
||
|
******************************************************************************/
|
||
|
#ifndef __HI_COMM_VGS_H__
|
||
|
#define __HI_COMM_VGS_H__
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
#if __cplusplus
|
||
|
extern "C"{
|
||
|
#endif
|
||
|
#endif /* __cplusplus */
|
||
|
|
||
|
#include "hi_type.h"
|
||
|
#include "hi_common.h"
|
||
|
#include "hi_errno.h"
|
||
|
#include "hi_comm_video.h"
|
||
|
|
||
|
/* failure caused by malloc buffer */
|
||
|
#define HI_ERR_VGS_NOBUF HI_DEF_ERR(HI_ID_VGS, EN_ERR_LEVEL_ERROR, EN_ERR_NOBUF)
|
||
|
#define HI_ERR_VGS_BUF_EMPTY HI_DEF_ERR(HI_ID_VGS, EN_ERR_LEVEL_ERROR, EN_ERR_BUF_EMPTY)
|
||
|
#define HI_ERR_VGS_NULL_PTR HI_DEF_ERR(HI_ID_VGS, EN_ERR_LEVEL_ERROR, EN_ERR_NULL_PTR)
|
||
|
#define HI_ERR_VGS_ILLEGAL_PARAM HI_DEF_ERR(HI_ID_VGS, EN_ERR_LEVEL_ERROR, EN_ERR_ILLEGAL_PARAM)
|
||
|
#define HI_ERR_VGS_BUF_FULL HI_DEF_ERR(HI_ID_VGS, EN_ERR_LEVEL_ERROR, EN_ERR_BUF_FULL)
|
||
|
#define HI_ERR_VGS_SYS_NOTREADY HI_DEF_ERR(HI_ID_VGS, EN_ERR_LEVEL_ERROR, EN_ERR_SYS_NOTREADY)
|
||
|
#define HI_ERR_VGS_NOT_SUPPORT HI_DEF_ERR(HI_ID_VGS, EN_ERR_LEVEL_ERROR, EN_ERR_NOT_SUPPORT)
|
||
|
#define HI_ERR_VGS_NOT_PERMITTED HI_DEF_ERR(HI_ID_VGS, EN_ERR_LEVEL_ERROR, EN_ERR_NOT_PERM)
|
||
|
|
||
|
typedef HI_S32 VGS_HANDLE;
|
||
|
|
||
|
typedef struct hiVGS_TASK_ATTR_S
|
||
|
{
|
||
|
VIDEO_FRAME_INFO_S stImgIn; /* input picture */
|
||
|
VIDEO_FRAME_INFO_S stImgOut; /* output picture */
|
||
|
HI_U32 au32privateData[4]; /* task's private data */
|
||
|
HI_U32 reserved; /* save current picture's state while debug */
|
||
|
}VGS_TASK_ATTR_S;
|
||
|
|
||
|
typedef struct hiVGS_LINE_S
|
||
|
{
|
||
|
POINT_S stStartPoint; /* line start point [-8191, 8191] */
|
||
|
POINT_S stEndPoint; /* line end point [-8191, 8191] */
|
||
|
|
||
|
HI_U32 u32Thick; /* width of line [0, 14] */
|
||
|
HI_U32 u32Color; /* color of line */
|
||
|
}VGS_LINE_S;
|
||
|
|
||
|
typedef enum hiVGS_COVER_TYPE_E
|
||
|
{
|
||
|
COVER_RECT = 0,
|
||
|
COVER_QUAD_RANGLE,
|
||
|
COVER_BUTT
|
||
|
} VGS_COVER_TYPE_E;
|
||
|
|
||
|
typedef struct hiVGS_QUADRANGLE_COVER_S
|
||
|
{
|
||
|
HI_BOOL bSolid; /* solid or hollow cover */
|
||
|
HI_U32 u32Thick; /* width of hollow cover */
|
||
|
POINT_S stPoint[4]; /* four coordinate of quadrangle */
|
||
|
} VGS_QUADRANGLE_COVER_S;
|
||
|
|
||
|
typedef struct hiVGS_COVER_S
|
||
|
{
|
||
|
VGS_COVER_TYPE_E enCoverType;
|
||
|
union
|
||
|
{
|
||
|
RECT_S stDstRect; /* config of rectrangle */
|
||
|
VGS_QUADRANGLE_COVER_S stQuadRangle; /* config of quadrangle */
|
||
|
};
|
||
|
|
||
|
HI_U32 u32Color; /* color of cover */
|
||
|
}VGS_COVER_S;
|
||
|
|
||
|
typedef struct hiVGS_OSD_S
|
||
|
{
|
||
|
RECT_S stRect; /* start point, width and height of osd [0, 8192] */
|
||
|
HI_U32 u32BgColor; /* background color of osd */
|
||
|
PIXEL_FORMAT_E enPixelFmt; /* pixel format of osd */
|
||
|
HI_U32 u32PhyAddr;
|
||
|
HI_U32 u32Stride;
|
||
|
HI_U32 u32BgAlpha;
|
||
|
HI_U32 u32FgAlpha;
|
||
|
}VGS_OSD_S;
|
||
|
|
||
|
typedef enum hiVGS_ROTATE_E
|
||
|
{
|
||
|
VGS_ROTATE_NONE = 0, /* no rotate */
|
||
|
VGS_ROTATE_90 = 1, /* 90 degrees clockwise */
|
||
|
VGS_ROTATE_180 = 2, /* 180 degrees clockwise */
|
||
|
VGS_ROTATE_270 = 3, /* 270 degrees clockwise */
|
||
|
VGS_ROTATE_BUTT
|
||
|
} VGS_ROTATE_E;
|
||
|
|
||
|
typedef struct HI_VGS_BORDER_S
|
||
|
{
|
||
|
HI_U32 u32Width[4]; /* width of 4 frames,0:L,1:R,2:B,3:T */
|
||
|
HI_U32 u32Color; /* color of 4 frames,R/G/B */
|
||
|
}VGS_BORDER_S;
|
||
|
|
||
|
typedef struct hiVGS_ASPECTRATIO_S
|
||
|
{
|
||
|
RECT_S stVideoRect;
|
||
|
HI_U32 u32CoverData;
|
||
|
}VGS_ASPECTRATIO_S;
|
||
|
|
||
|
|
||
|
typedef struct hiVGS_ONLINE_S
|
||
|
{
|
||
|
HI_BOOL bCrop; /* if enable crop */
|
||
|
RECT_S stCropRect;
|
||
|
HI_BOOL bHSharpen; /* if enable sharpen */
|
||
|
HI_U32 u32LumaGain;
|
||
|
HI_BOOL bBorder; /* if enable Border */
|
||
|
VGS_BORDER_S stBorderOpt;
|
||
|
HI_BOOL bAspectRatio; /* if enable aspect ratio */
|
||
|
VGS_ASPECTRATIO_S stAspectRatioOpt;
|
||
|
|
||
|
HI_BOOL bForceHFilt; /* if enable horizontal filter */
|
||
|
HI_BOOL bForceVFilt; /* if enable vertical filter */
|
||
|
HI_BOOL bDeflicker; /* if enable deflicker */
|
||
|
}VGS_ONLINE_S;
|
||
|
|
||
|
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
#if __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
#endif /* __cplusplus */
|
||
|
|
||
|
#endif /* __HI_COMM_VGS_H__ */
|