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

📄 avi_def.h

📁 Sunplus 8202S source code.
💻 H
字号:
#ifndef __AVI_DEF_H
#define __AVI_DEF_H

#ifndef mmioFOURCC
	#define mmioFOURCC( ch0, ch1, ch2, ch3 )				\
			( (UINT32)(BYTE)(ch0) | ( (UINT32)(BYTE)(ch1) << 8 ) |	\
			( (UINT32)(BYTE)(ch2) << 16 ) | ( (UINT32)(BYTE)(ch3) << 24 ) )
#endif

#define	RIFF_AVI		1
#define	RIFF_WAVE		2

// file_play_state
#define	AVI_NORMAL_STATE		0
#define	FILE_DROPA_STATE		(1<<0)
#define	FILE_DROPV_STATE			(1<<1)

// file_media_flag
#define AVI_STRM_FLAG_NONE		0
#define AVI_AUDIO				(1<<0)
#define AVI_VIDEO				(1<<1)
#define AVI_SUBPICTURE			(1<<2)
#define AVI_AUDIO_VBR			(1<<4)
#define AVI_AUDIO_UNSUPPORTED	(1<<5)
#define AVI_VIDEO_UNSUPPORTED	(1<<6)
#define AVI_AUDIO_WMA			(1<<7)

// avi_file_flag
#define AVI_FILE_FLAG_NONE		0
#define AVI_HDRL				(1<<0)
#define AVI_MOVI				(1<<1)
#define AVI_IDX1				(1<<2)
#define AVI_DIVX_DRM			(1<<3)
#define AVI_FILE_MAND_MASK		(AVI_HDRL|AVI_MOVI/*|AVI_IDX1*/)

#define AVI_ERR_CNT_THRESHOLD	20
#define AVI_CHK_SIZE_THRESHOLD	(1024*1024)

// FOURCCs
// form types, list types, and chunk types
#define	FCC_RIFF				mmioFOURCC('R', 'I', 'F', 'F')
#define	FCC_AVI					mmioFOURCC('A', 'V', 'I', ' ')
#define	FCC_WAVE				mmioFOURCC('W', 'A', 'V', 'E')
#define	FCC_AVIX				mmioFOURCC('A', 'V', 'I', 'X')
#define	FCC_LIST				mmioFOURCC('L', 'I', 'S', 'T')
#define	FCC_movi				mmioFOURCC('m', 'o', 'v', 'i')
#define	FCC_rec					mmioFOURCC('r', 'e', 'c', ' ')
#define	FCC_CSET				mmioFOURCC('C', 'S', 'E', 'T')

#define	FCC_hdrl				mmioFOURCC('h', 'd', 'r', 'l')
#define	FCC_avih				mmioFOURCC('a', 'v', 'i', 'h')
#define	FCC_strl				mmioFOURCC('s', 't', 'r', 'l')
#define	FCC_strh				mmioFOURCC('s', 't', 'r', 'h')
#define	FCC_strf				mmioFOURCC('s', 't', 'r', 'f')
#define	FCC_strd				mmioFOURCC('s', 't', 'r', 'd')
#define	FCC_strn				mmioFOURCC('s', 't', 'r', 'n')

#define	FCC_indx				mmioFOURCC('i', 'n', 'd', 'x')
#define	FCC_idx1				mmioFOURCC('i', 'd', 'x', '1')

// Stream types for the <fccType> field of the stream header.
#define	FCC_vids				mmioFOURCC('v', 'i', 'd', 's')
#define	FCC_auds				mmioFOURCC('a', 'u', 'd', 's')
#define	FCC_mids				mmioFOURCC('m', 'i', 'd', 's')
#define	FCC_txts				mmioFOURCC('t', 'x', 't', 's')

// codecs
#define	FCC_xxxx				0
#define	FCC_mjpg				mmioFOURCC('m', 'j', 'p', 'g')
#define	FCC_MJPG				mmioFOURCC('M', 'J', 'P', 'G')
#define FCC_MSVC				mmioFOURCC('M', 'S', 'V', 'C')
#define	FCC_divx				mmioFOURCC('d', 'i', 'v', 'x')
#define	FCC_div3				mmioFOURCC('d', 'i', 'v', '3')
#define	FCC_div4				mmioFOURCC('d', 'i', 'v', '4')
#define	FCC_dx50				mmioFOURCC('d', 'x', '5', '0')
#define	FCC_DIVX				mmioFOURCC('D', 'I', 'V', 'X')
#define	FCC_DIV3				mmioFOURCC('D', 'I', 'V', '3')
#define	FCC_DIV4				mmioFOURCC('D', 'I', 'V', '4')
#define	FCC_DX50				mmioFOURCC('D', 'X', '5', '0')	
#define FCC_xvid				mmioFOURCC('x', 'v', 'i', 'd')
#define FCC_XVID				mmioFOURCC('X', 'V', 'I', 'D')
#define	FCC_rmp4				mmioFOURCC('r', 'm', 'p', '4')
#define	FCC_RMP4				mmioFOURCC('R', 'M', 'P', '4')
#define FCC_mp4v				mmioFOURCC('m', 'p', '4', 'v')
#define FCC_3iv0				mmioFOURCC('3', 'i', 'v', '0')
#define FCC_3iv1				mmioFOURCC('3', 'i', 'v', '1')
#define FCC_3iv2				mmioFOURCC('3', 'i', 'v', '2')
#define FCC_3ivx				mmioFOURCC('3', 'i', 'v', 'x')
#define FCC_MP43				mmioFOURCC('M', 'P', '4', '3')

// type of compression
#define	FCC_Comp_divx			mmioFOURCC('d', 'i', 'v', 'x')
#define	FCC_Comp_div3			mmioFOURCC('d', 'i', 'v', '3')
#define	FCC_Comp_div4			mmioFOURCC('d', 'i', 'v', '4')
#define	FCC_Comp_div5			mmioFOURCC('d', 'i', 'v', '5')
#define	FCC_Comp_div6			mmioFOURCC('d', 'i', 'v', '6')
#define	FCC_Comp_dx50			mmioFOURCC('d', 'x', '5', '0')
#define	FCC_Comp_DIVX			mmioFOURCC('D', 'I', 'V', 'X')
#define	FCC_Comp_DIV3			mmioFOURCC('D', 'I', 'V', '3')
#define	FCC_Comp_DIV4			mmioFOURCC('D', 'I', 'V', '4')
#define	FCC_Comp_DIV5			mmioFOURCC('D', 'I', 'V', '5')
#define	FCC_Comp_DIV6			mmioFOURCC('D', 'I', 'V', '6')
#define	FCC_Comp_DX50			mmioFOURCC('D', 'X', '5', '0')
#define	FCC_Comp_xvid			mmioFOURCC('x', 'v', 'i', 'd')
#define	FCC_Comp_XVID			mmioFOURCC('X', 'V', 'I', 'D')
#define	FCC_Comp_rmp4				mmioFOURCC('r', 'm', 'p', '4')
#define	FCC_Comp_RMP4				mmioFOURCC('R', 'M', 'P', '4')
#define	FCC_Comp_3IV0			mmioFOURCC('3', 'I', 'V', '0')
#define	FCC_Comp_3IV1			mmioFOURCC('3', 'I', 'V', '1')
#define	FCC_Comp_3IV2			mmioFOURCC('3', 'I', 'V', '2')
#define	FCC_Comp_3IVX			mmioFOURCC('3', 'I', 'V', 'X')

// Basic data subchunk types
#define	FCC_xxdb				mmioFOURCC('0', '0', 'd', 'b')		// DIB bits
#define	FCC_xxdc				mmioFOURCC('0', '0', 'd', 'c')		// DIB compression
#define	FCC_xxdd				mmioFOURCC('0', '0', 'd', 'd')		// DRM key info for the video frame
#define	FCC_xxpc				mmioFOURCC('0', '0', 'p', 'c')		// palette change
#define	FCC_xxwb				mmioFOURCC('0', '0', 'w', 'b')		// waveform chunk
#define	FCC_xxst				mmioFOURCC('0', '0', 's', 't')		// subtitle (text mode)
#define	FCC_xxsb				mmioFOURCC('0', '0', 's', 'b')		// subtitle (bitmap mode)
#define	FCC_xxch				mmioFOURCC('0', '0', 'c', 'h')		// chapter

// Chunk id to use for extra chunks for padding.
#define	FCC_JUNK				mmioFOURCC('J', 'U', 'N', 'K')

// main AVI header list flags
#define	AVIF_HASINDEX			0x00000010
#define	AVIF_MUSTUSEINDEX		0x00000020
#define	AVIF_ISINTERLEAVED		0x00000100
#define	AVIF_TRUSTCKTYPE		0x00000800
#define	AVIF_WASCAPTUREFILE		0x00010000
#define	AVIF_COPYRIGHTED		0x00020000

// AVI stream header flags
#define	AVISF_DISABLED			0x00000001
#define	AVISF_VIDEO_PALCHANGES	0x00010000

// AVI idx1 flags
#define	AVIIF_LIST				0x00000001L
#define	AVIIF_KEYFRAME			0x00000010L
#define	AVIIF_FIRSTPART
#define	AVIIF_LASTPART
#define	AVIIF_NOTIME			0x00000100L
#define	AVIIF_COMPUSE			0x0FFF0000L

// AVI index type
#define	AVI_INDEX_OF_INDEXES		0x00		// when each entry in aIndex array points to an index chunk
#define	AVI_INDEX_OF_CHUNKS			0x01		// when each entry in aIndex array points to a chunk in the file
#define AVI_INDEX_OF_TIMED_CHUNKS	0x02
#define AVI_INDEX_OF_SUB_2FIELD		0x03
#define	AVI_INDEX_IS_DATA			0x80		// when each entry in aIndex is really the data

// AVI index subtype
#define AVI_INDEX_SUB_DEFAULT	0x00
#define	AVI_INDEX_2FIELD		0x01		// when fields within frames are also indexed

// avi_video_type
#define AVI_VIDEO_UNCOMPRESSED	0
#define AVI_VIDEO_MJPEG			1
#define AVI_VIDEO_DIVX			2

#endif	// __AVI_DEF_H

⌨️ 快捷键说明

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