⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hi_video.h

📁 华为 HI3510 BOOTLOADER HIBOOT 源码包
💻 H
字号:
#ifndef __HI_VIDEO_H__#define __HI_VIDEO_H__#define M	0x100000#define K	0x400#define _USE_INTtypedef struct tag_RECT_t{	unsigned long x;	unsigned long y;	unsigned long w;	unsigned long h;}RECT_t, *PRECT_t;typedef RECT_t VIDEO_RECT_t;typedef struct{	unsigned char v;	unsigned char u;	unsigned char y;	unsigned char a;}COLOR_AYUV_t;typedef struct{	unsigned char b;	unsigned char g;	unsigned char r;	unsigned char a;}COLOR_ARGB_t;typedef enum{	VIDEO_ENCODING_MODE_PAL=0,	VIDEO_ENCODING_MODE_NTSC,	VIDEO_ENCODING_MODE_SUPPORT}VIDEO_ENCODING_MODE_t;typedef enum{	VIDEO_INPUT_MODE_BT656=0,				/* ITU-R BT.656 YUV4:2:2视频标准 */	VIDEO_INPUT_MODE_BT601,				/* ITU-R BT.601 YUV4:2:2视频标准 */	VIDEO_INPUT_MODE_DIGITAL_CAMERA,	/* VGA,QVGA等摄像头的直接数据传输,										   数据可以是Bayer的RGB数据或者YCbCr数据 */	VIDEO_INPUT_MODE_RAW_DATA			/* CVBS的数字数据或者其他数字数据,不作任何处理 */}VIDEO_INPUT_MODE_t;typedef enum{	VIDEO_OUTPUT_MODE_BT656=0,			/* ITU-R BT.656 YUV4:2:2视频标准输出 */	VIDEO_OUTPUT_MODE_BT601,			/* ITU-R BT.601 YUV4:2:2视频标准输出 */	VIDEO_OUTPUT_MODE_LCD,				/* TFT LCD 输出 */	VIDEO_OUTPUT_MODE_RAW_DATA,			/* CVBS的数字数据或者其他数字数据,不作任何处理 */	VIDEO_OUTPUT_MODE_SUPPORT}VIDEO_OUTPUT_MODE_t;typedef enum{	VIDEO_CONTROL_MODE_SLAVER=0,	VIDEO_CONTROL_MODE_MASTER}VIDEO_CONTROL_MODE_t;typedef enum{	PIXEL_FORMAT_RGB_1BPP=0,	PIXEL_FORMAT_RGB_2BPP,	PIXEL_FORMAT_RGB_4BPP,	PIXEL_FORMAT_RGB_8BPP,	PIXEL_FORMAT_RGB_444,	PIXEL_FORMAT_RGB_4444,	PIXEL_FORMAT_RGB_555,	PIXEL_FORMAT_RGB_565,	PIXEL_FORMAT_RGB_1555,	/*  9 reserved */	PIXEL_FORMAT_RGB_888=0xA,	PIXEL_FORMAT_RGB_8888,	PIXEL_FORMAT_RGB_PLANAR_888,	/* ??? */	PIXEL_FORMAT_RGB_BAYER,			/* ??? */	PIXEL_FORMAT_YUV_A422,	PIXEL_FORMAT_YUV_A444,	PIXEL_FORMAT_YUV_PLANAR_422,	PIXEL_FORMAT_YUV_PLANAR_420,	PIXEL_FORMAT_YUV_PLANAR_444,	PIXEL_FORMAT_YUV_SEMIPLANAR_422,	PIXEL_FORMAT_YUV_SEMIPLANAR_420,	PIXEL_FORMAT_YUV_SEMIPLANAR_444,	PIXEL_FORMAT_UYVY_PACKAGE_422,	PIXEL_FORMAT_YCbCr_PLANAR,	PIXEL_FORMAT_SUPPORT,	/* for VOU1.0 Main Layer */	PIXEL_FORMAT_YUV_0 = 0,  //yuv422 cosited, no up scaling	PIXEL_FORMAT_YUV_1, 	 //yuv422 interspersed, no up scaling	PIXEL_FORMAT_YUV_2,  	//yuv422 cosited, 1:2 output	PIXEL_FORMAT_YUV_3,  	//yuv422 interspersed, 1:2 output	PIXEL_FORMAT_YUV_4,  	//yuv420 cosited, no up scaling	PIXEL_FORMAT_YUV_5,  	//yuv420 interspersed, no up scaling	PIXEL_FORMAT_YUV_6,  	//yuv420 cosited, 1:2 output	PIXEL_FORMAT_YUV_7,  	//yuv420 interspersed, 1:2 output	PIXEL_FORMAT_YUV_8,  	//yuv444,yuv->rgb	PIXEL_FORMAT_YUV_9,  	//yuv444, 1:2 output, yuv->rgb	PIXEL_FORMAT_YUV_10,	PIXEL_FORMAT_YUV_11,	PIXEL_FORMAT_YUV_12,	PIXEL_FORMAT_YUV_13,	PIXEL_FORMAT_YUV_14,	PIXEL_FORMAT_YUV_15,	/* for HC */	PIXEL_FORMAT_2COLOR = 0,	PIXEL_FORMAT_4COLOR,	PIXEL_FORMAT_3COLOR,	PIXEL_FORMAT_RESERVED,	/* not for user */	PIXEL_FORMAT_YUV422 = 0,	PIXEL_FORMAT_YUV444,	PIXEL_FORMAT_RGB555,	PIXEL_FORMAT_RGB888,	}PIXEL_FORMAT_t;typedef struct{	PIXEL_FORMAT_t  PixelFormat;	/* 输入视频数据格式 */	unsigned long		ulWidth;				/* 输入视频宽度 */	unsigned long		ulHeight;				/* 输入视频高度 */	/* 	** 如果采用RGB或者PackageYUV数据格式,则只有pulMemBase[0]有效	** 如果采用Semi-Planar YUV数据格式,则只有pulMemBase[0~1]有效,	**     分别表示视频Y, C分量存放地址	** 如果采用Planar YUV数据格式,则pulMemBase[0~2]均有效,	**     分别表示视频Y, U, V分量存放地址	*/	unsigned long ulMemBase[3];		/* A/B/C分量地址 */	unsigned long	ulStride[3];			/* A/B/C分量的行距 */}VIDEO_MEM_t;/* video input -----------------------------------------------------------*/typedef struct{	VIDEO_INPUT_MODE_t		InputMode;	/* 视频输入模式 */	VIDEO_ENCODING_MODE_t	InputNorm;	/* 视频输入制式 */	//VIDEO_RECT_t					CapRect;	/* 视频捕获范围 */}VIDEO_VIU_PARAM_t;typedef enum{	VIDEO_INPUT_FROM_VIU=0,	/* 从VIU输入 */	VIDEO_INPUT_FROM_OSD,	/* 从OSD输入 */	VIDEO_INPUT_FROM_ZSP,	/* ZSP解码后输入 */	VIDEO_INPUT_FROM_USER,	/* 用户自定义输入 */	VIDEO_INPUT_FROM_SUPPORT}VIDEO_INPUT_FROM_t;typedef struct{	VIDEO_INPUT_FROM_t InputFrom;	/* 输入方式 */	unsigned char bMemInSystem;				/* 是否使用系统自动管理的帧内存 */	unsigned long  ulMemBufferCount;		/* 内存帧个数。如果为1,则表示使用固定帧内存 */	/* 	** 如果 bMemInSystem=true, 则InputVideoMem->pul(X)MemBase为系统分配的内存起始地址(R),	** 不需要用户指定	** 如果 bMemInSystem=true, 则InputVideoMem->pul(X)MemBase为用户指定的内存起始地址(W)	** (X)可以表示A/B/C	*/	VIDEO_MEM_t * pInputVideoMem;	void* pInParam;}VIDEO_IN_CFG_t;/* video process ---------------------------------------------------------*/#if 0typedef struct{	VIDEO_RECT_t	ZoomTo;	VIDEO_FILTER_t	Filter;}VIDEO_PROCESS_PARAM_t;#endif#if 0/* VIDEO Process Code */typedef enum{	VIDEO_PROCESS_ZOOM,	VIDEO_PROCESS_FILTER,	VIDEO_PROCESS_CSC}VIDEO_PROCESS_t;#endiftypedef enum{	VIDEO_FILTER_NONE=0,	VIDEO_FILTER_DEFAULT,	/* 抗抖动,闪烁 */	/* Anti-flicker filter in order to remove flicker effects which can	** occur inside an OSD when a color difference between pixels	** in top line and pixels in its surrounding bottom lines is too big.	*/	VIDEO_FILTER_ANTI_FLICKER,	/* 抗混淆 */	/* Anti-flutter filter in order to remove flutter effects which can	** occur if the same OSD bitmap is displayed in both fields within	** the same frame.	*/	VIDEO_FILTER_ANTI_FLUTTER,	/* 抗锯齿 */	VIDEO_FILTER_ANTI_ALIASING,	/* 用户自定义滤波效果 */	VIDEO_FILTER_USER			/* not support */}VIDEO_FILTER_t;typedef struct{	VIDEO_FILTER_t		filter;	/* 视频输入模式 */}VIDEO_DSU_PARAM_t;typedef enum{	VIDEO_PROCESS_UNIT_DSU=0,	/* 输出到VOU */	VIDEO_PROCESS_UNIT_USER,	/* 输出到ZSP */	VIDEO_PROCESS_UNIT_SUPPORT}VIDEO_PROCESS_UNIT_t;typedef struct{	VIDEO_PROCESS_UNIT_t	ProcessUnit;	unsigned char bMemInSystem;		/* 是否使用系统自动管理的帧内存 */	unsigned long  ulMemBufferCount;	/* 内存帧个数。如果为1,则表示使用固定帧内存 */	VIDEO_MEM_t * pProcessOutVideoMem;	void* pProcessParam;}VIDEO_PROCESS_CFG_t;/* WMV9协议profile */typedef enum{	VIDEO_PROFILE_ADVANCED=0,	VIDEO_PROFILE_MAIN,	VIDEO_PROFILE_SIMPLE}VIDEO_PROFILE_t;typedef enum{	COLORSPACE_NONE=0,	COLORSPACE_STANDARD,	/* 标准色彩配置 */	COLORSPACE_SOFTNESS,	/* 柔和色彩配置 */	COLORSPACE_VIVID,		/* 鲜艳色彩配置 */	COLORSPACE_USER			/* 用户自定义色彩配置, 暂不支持 */}VIDEO_COLORSPACE_t;typedef COLOR_ARGB_t GAMMA_TABLE_t[256];/* video out ---------------------------------------------------------------*//* TV输出剪裁 */typedef struct{	unsigned char	Luma_H;		/* 亮度信号的最高门限值 */	unsigned char	Luma_L;		/* 亮度信号的最低门限值 */	unsigned char	Chroma_H;	/* 色度信号的最高门限值 */	unsigned char	Chroma_L;	/* 色度信号的最低门限值 */}TV_CLIP_t;typedef enum{	VIDEO_VOU_LAYER_MAIN=0,	VIDEO_VOU_LAYER_OVER1,	VIDEO_VOU_LAYER_OVER2,	VIDEO_VOU_LAYER_HC}VIDEO_VOU_LAYER_t;typedef enum{	PRIORITY_0=0,		/* the lowerest priority, botton layer */	PRIORITY_1,	PRIORITY_2,	PRIORITY_3		/* the highest priority, top layer */}VOU_SHOW_PRIORITY_t;typedef struct{	VIDEO_OUTPUT_MODE_t  	OutputMode;	VIDEO_ENCODING_MODE_t	OutputNorm;	TV_CLIP_t				TVOutClip;	VIDEO_VOU_LAYER_t		VouLayer;	VIDEO_RECT_t			LayerRect;	unsigned long						LayerAlpha;	/* for overlay: 0--100 */	VOU_SHOW_PRIORITY_t		LayerPriority;}VIDEO_VOU_PARAM_t;typedef enum{	VIDEO_OUTPUT_TO_VOU=0,	/* 输出到VOU */	VIDEO_OUTPUT_TO_ZSP,	/* 输出到ZSP */	VIDEO_OUTPUT_TO_USER,	/* 用户自定义输出 */	VIDEO_OUTPUT_TO_SUPPORT}VIDEO_OUTPUT_TO_t;typedef struct{	/* 输出方式: VOU, ZSP, 自定义等 */	VIDEO_OUTPUT_TO_t OutputTo;	unsigned char bMemInSystem;				/* 是否使用系统自动管理的帧内存 */	unsigned long  ulMemBufferCount;			/* 内存帧个数。如果为1,则表示使用固定帧内存 */	/* 	** 如果 bMemInSystem == TRUE 或者 OutputTo == VIDEO_OUTPUT_TO_VOU ,	** 则不需要申请pOutputVideoMem,直接使用sourceHandle的Mem.	**	** 如果 bMemInSystem=true, 则InputVideoMem->pul(X)MemBase为系统分配的内存起始地址(R),	** 不需要用户指定	** 如果 bMemInSystem=true, 则InputVideoMem->pul(X)MemBase为用户指定的内存起始地址(W)	** (X)可以表示A/B/C	*/	VIDEO_MEM_t * pOutputVideoMem;	void* pOutParam;}VIDEO_OUT_CFG_t;#define MAX_HANDLE	256typedef unsigned long VIDEO_HANDLE;/* 0: video_handle not exist */typedef enum{	VIDEO_STEP_INPUT,	VIDEO_STEP_PROCESS,	VIDEO_STEP_OUTPUT}VIDEO_STEP_t;typedef unsigned char(*VIDEO_CALLBACK)(void*);typedef struct {	VIDEO_CALLBACK pCBStart;	VIDEO_CALLBACK pCBDoneCheck;	VIDEO_CALLBACK pCBDoneNotify;	VIDEO_CALLBACK pCBReset;}VIDEO_OPS_t;#define VIDEO_MODE_CCIR656	0#define VIDEO_MODE_CCIR601	1#define VIDEO_MODE_LCD		2#define VIDEO_NORM_PAL		0#define VIDEO_NORM_NTSC		1#define VIDEO_NORM_SUPPORT     	2#define VIDEO_MODE_SECAM	2#define VIDEO_MODE_AUTO		3#define VIDEO_MODE_MASTER	1#define VIDEO_MODE_SLAVER	0#endif /* __HI_VIDEO_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -