nt9856x/code/lib/include/vf_gfx.h
2023-03-28 15:07:53 +08:00

93 lines
2.8 KiB
C
Executable File

/**
@brief Header file of vf_gfx module.\n
This file contains the functions which is related to vf_gfx in the chip.
@file vf_gfx.h
@ingroup mhdal
@note Nothing.
Copyright Novatek Microelectronics Corp. 2018. All rights reserved.
*/
#ifndef _VF_GFX_H_
#define _VF_GFX_H_
/********************************************************************
INCLUDE FILES
********************************************************************/
#include "hdal.h"
/********************************************************************
MACRO CONSTANT DEFINITIONS
********************************************************************/
#define VF_GFX_LINEOFFSET_PATTERN 0x80000000
/********************************************************************
MACRO FUNCTION DEFINITIONS
********************************************************************/
/********************************************************************
TYPE DEFINITION
********************************************************************/
typedef struct _VF_GFX_COPY {
HD_VIDEO_FRAME src_img;
HD_VIDEO_FRAME dst_img;
HD_IRECT src_region;
HD_IPOINT dst_pos;
UINT32 colorkey;
UINT32 alpha;
UINT32 engine;
} VF_GFX_COPY;
typedef struct _VF_GFX_SCALE {
HD_VIDEO_FRAME src_img;
HD_VIDEO_FRAME dst_img;
HD_IRECT src_region;
HD_IRECT dst_region;
HD_GFX_SCALE_QUALITY quality;
UINT32 engine;
} VF_GFX_SCALE;
typedef struct _VF_GFX_ROTATE {
HD_VIDEO_FRAME src_img;
HD_VIDEO_FRAME dst_img;
HD_IRECT src_region;
HD_IPOINT dst_pos;
UINT32 angle;
UINT32 engine;
} VF_GFX_ROTATE;
typedef struct _VF_GFX_DRAW_RECT {
HD_VIDEO_FRAME dst_img;
UINT32 color;
HD_IRECT rect;
HD_GFX_RECT_TYPE type;
UINT32 thickness;
UINT32 engine;
} VF_GFX_DRAW_RECT;
/********************************************************************
EXTERN VARIABLES & FUNCTION PROTOTYPES DECLARATIONS
********************************************************************/
HD_RESULT vf_init(HD_VIDEO_FRAME *p_img_buf, UINT32 width, UINT32 height, HD_VIDEO_PXLFMT pxlfmt, UINT32 lineoff, UINT32 addr, UINT32 available_size);
HD_RESULT vf_init_ex(HD_VIDEO_FRAME *p_img_buf, UINT32 width, UINT32 height, HD_VIDEO_PXLFMT pxlfmt, UINT32 lineoff[HD_VIDEO_MAX_PLANE], UINT32 pxladdr[HD_VIDEO_MAX_PLANE]);
HD_RESULT vf_gfx_copy(VF_GFX_COPY *p_param);
HD_RESULT vf_gfx_scale(VF_GFX_SCALE *p_param, int flush);
HD_RESULT vf_gfx_rotate(VF_GFX_ROTATE *p_param);
HD_RESULT vf_gfx_draw_rect(VF_GFX_DRAW_RECT *p_param);
HD_RESULT vf_gfx_I8_colorkey(VF_GFX_COPY *p_param);
#endif //_VF_GFX_H_