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

📄 mp4_common.h

📁 MP4编码源码
💻 H
📖 第 1 页 / 共 2 页
字号:
	Simple_L1	=								0x03,
	SimpleScalable_L1	=						0x04,
	SimpleScalable_L2	=						0x05,
	Core_L2   = 								0x05,
	Core_L1   = 								0x06,
	Main_L4   = 								0x07,
	Main_L3   = 								0x08,
	Main_L2   = 								0x09,
	N_Bit_L2   =								0x0A,
	Hybrid_L2	=								0x0B,
	Hybrid_L1	=								0x0C,
	BasicAnimatedTexture_L2   = 				0x0D,
	BasicAnimatedTexture_L1   = 				0x0D,
	ScalableTexture_L3	 =						0x0E,
	ScalableTexture_L2	 =						0x0F,
	ScalableTexture_L1	 =						0x10,
	SimpleFaceAnimation_L2	 =					0x11,
	SimpleFaceAnimation_L1	 =					0x12,
	SimpleFBA_L2   =							0x13,
	SimpleFBA_L1   =							0x14,
	AdvancedRealTimeSimple_L4	=				0x15,
	AdvancedRealTimeSimple_L3	=				0x16,
	AdvancedRealTimeSimple_L2	=				0x17,
	AdvancedRealTimeSimple_L1	=				0x18,
	CoreScalable_L3   = 						0x19,
	CoreScalable_L2   = 						0x1A,
	CoreScalable_L1   = 						0x1B,
	AdvancedCodingEfficiency_L4   = 			0x1C,
	AdvancedCodingEfficiency_L3   = 			0x1D,
	AdvancedCodingEfficiency_L2   = 			0x1E,
	AdvancedCodingEfficiency_L1   = 			0x1F,
	AdvancedCore_L2   = 						0x20,
	AdvancedCore_L1   = 						0x21,
	AdvancedScalableTexture_L3	 =				0x22,
	AdvancedScalableTexture_L2	 =				0x23,
	AdvancedScalableTexture_L1	 =				0x24,
	SimpleStudio_L4   = 						0x25,
	SimpleStudio_L3   = 						0x26,
	SimpleStudio_L2   = 						0x27,
	SimpleStudio_L1   = 						0x28,
	CoreStudio_L4	=							0x29,
	CoreStudio_L3	=							0x2A,
	CoreStudio_L2	=							0x2B,
	CoreStudio_L1	=							0x2C,
	Simple_L0	=								0x2D,
	AdvancedSimple_L5	=						0x2E,
	AdvancedSimple_L4	=						0x2F,
	AdvancedSimple_L3b	 =						0x30,
	AdvancedSimple_L3	=						0x31,
	AdvancedSimple_L2	=						0x32,
	AdvancedSimple_L1	=						0x33,
	AdvancedSimple_L0	=						0x34,
	FGS_L5	 =									0x35,
	FGS_L4	 =									0x36,
	FGS_L3	 =									0x37,
	FGS_L2	 =									0x38,
	FGS_L1	 =									0x39,
	FGS_L0	 =									0x3A,
	SimpleScalable_L0	=						0x3B
} MP4_VISUALPROFILELEVEL;

extern char VisualProfileLevelList[][50];

typedef enum enumAudioProfileLevel 
{
	Unspecified				= 			0xFE,
	Main_L1					= 			0x01,
	VISUAL_Main_L2			=			0x02,
	VISUAL_Main_L3			=			0x03,
	VISUAL_Main_L4			=			0x04,
	Scalable_L1				= 			0x05,
	Scalable_L2				= 			0x06,
	Scalable_L3				= 			0x07,
	Scalable_L4				= 			0x08,
	Speech_L1				=			0x09,
	Speech_L2				=			0x0A,
	Synthesis_L1			=			0x0B,
	Synthesis_L2			=			0x0C,
	Synthesis_L3			=			0x0D,
	HighAudioQuality_L1		= 			0x0E,
	HighAudioQuality_L2		= 			0x0F,
	HighAudioQuality_L3		= 			0x10,
	HighAudioQuality_L4		= 			0x11,
	HighAudioQuality_L5		= 			0x12,
	HighAudioQuality_L6		= 			0x13,
	HighAudioQuality_L7		= 			0x14,
	HighAudioQuality_L8		= 			0x15,
	LowDelayAudio_L1		=			0x16,
	LowDelayAudio_L2		=			0x17,
	LowDelayAudio_L3		=			0x18,
	LowDelayAudio_L4		=			0x19,
	LowDelayAudio_L5		=			0x1A,
	LowDelayAudio_L6		=			0x1B,
	LowDelayAudio_L7		=			0x1C,
	LowDelayAudio_L8		=			0x1D,
	NaturalAudio_L1			= 			0x1E,
	NaturalAudio_L2			= 			0x1F,
	NaturalAudio_L3			= 			0x20,
	NaturalAudio_L4			= 			0x21,
	MobileAudioInternetworking_L1	=	0x22,
	MobileAudioInternetworking_L2	=	0x23,
	MobileAudioInternetworking_L3	=	0x24,
	MobileAudioInternetworking_L4	=	0x25,
	MobileAudioInternetworking_L5	=	0x26,
	MobileAudioInternetworking_L6	=	0x27
} MP4_AUDIOPROFILELEVEL;

extern char AudioProfileLevelList[][50];

typedef unsigned int Uint32;
typedef unsigned char Uint8;
typedef __int64 ULONG;
typedef struct Box
{
	double ID;
	unsigned int IDX;
	unsigned int GROUPID;
	unsigned int NSIZE;
	unsigned char TYPE[5];
	unsigned int LARGESIZE;
	unsigned char USERTYPE[17];
	unsigned int OFFSET_IN_FILE;
}Box;

typedef struct MediaHeaderBox
{
	Box BOX;
	unsigned int 	CREATION_TIME;
	unsigned int 	MODIFICATION_TIME;
	unsigned int 	TIMESCALE;
	unsigned int 	DURATION;
	unsigned char	LANGUAGE[4];
}MediaHeaderBox;
typedef struct HandlerBox
{
	Box BOX;
	unsigned char HANDLER_TYPE[5];
	unsigned int m_handlerType;
	unsigned char* NAME;
	unsigned int NAME_LENGTH;
}HandlerBox;
typedef struct AbstractMediaHeaderBox
{
	Box BOX;
}AbstractMediaHeaderBox;

typedef struct DataInformationBox
{
	Box BOX;//	DataEntryBox* DREF;
}DataInformationBox;
typedef struct TimeToSampleBox
{
	Box BOX;
	unsigned int ENTRY_COUNT;
	unsigned int  sample_count[1024 *10];
	unsigned int  sample_delta[1024 *10];
}TimeToSampleBox;

typedef struct SampleSizeBox
{
	Box 	BOX;
	unsigned int SAMPLE_SIZE;
	unsigned int SAMPLE_COUNTS;
	unsigned int  ENTRY_TABLE[1024*15];
}SampleSizeBox;

typedef struct SampleEntry{
	unsigned int DATA_REFERENCE_INDEX;
}SampleEntry;

typedef struct VisualSampleEntry
{
	unsigned int DATA_REFERENCE_INDEX;
	int		width;
	int		height;
	int		horizresolution;
	int		vertresoution;
	unsigned char	compresssionname[33];
	unsigned int 	depth;
}VisualSampleEntry;
   
typedef struct AudioSampleEntry
{
	unsigned int DATA_REFERENCE_INDEX;
	unsigned int CHANNELCOUNT;
	unsigned int SAMPLESIZE;
	unsigned int SAMPLERATEHI;
	unsigned int SAMPLERATELO;
}AudioSampleEntry;

typedef struct SampleDescriptionBox
{
	Box BOX;
	AudioSampleEntry MP4A;
	unsigned int ENTRY_COUNT;
	SampleEntry * ENTRY_TABLE;
	VisualSampleEntry MP4V;
}SampleDescriptionBox;

typedef struct CompactSampleSizeBox
{
	Box BOX;
	unsigned int SAMPLE_SIZE;
	unsigned int FIELD_SIZE;
	unsigned int SAMPLE_COUNTS;
	unsigned int ENTRY_TABLE[1024];
}CompactSampleSizeBox;

typedef struct SampleToChunkBox
{
	Box 	BOX;
	unsigned int ENTRY_COUNT;
	unsigned int						FirstChunk[100];
	unsigned int						SamplesPerChunk[100];
	unsigned int						SampleDescriptionIndex[100];
}SampleToChunkBox;

typedef struct ChunkOffsetBox
{
	Box BOX;
	unsigned int ENTRY_COUNT;
	unsigned int ENTRY_TABLE[1024*15];
}ChunkOffsetBox;

typedef struct ChunkLargeOffsetBox
{
	Box  BOX;
	unsigned int ENTRY_COUNT;
	unsigned int ENTRY_TABLE[1024];
}ChunkLargeOffsetBox;
typedef struct SyncSampleBox
{
	Box  BOX;
	unsigned int ENTRY_COUNT;
	unsigned int sample_number[100];
} SyncSampleBox;

typedef struct SampleTableBox
{ 
	Box BOX;
	TimeToSampleBox 		STTS;
	SampleDescriptionBox		STSD;
	SampleSizeBox				STSZ;
	CompactSampleSizeBox		STZ2;
	SampleToChunkBox			STSC;
	ChunkOffsetBox				STCO;
	ChunkLargeOffsetBox 	CO64;
	SyncSampleBox			   STSS;		
}SampleTableBox;

typedef struct MediaInformationBox
{ 
	Box BOX;
	AbstractMediaHeaderBox XMHD;
	DataInformationBox DINF;
	SampleTableBox STBL;
}MediaInformationBox;

typedef struct MediaBox
{	Box BOX;
	MediaHeaderBox MDHD;
	HandlerBox* HDLR;
	MediaInformationBox MINF;
	int type;
	int Video_Width;
	int Video_Height;
	int Video_depth;
	int audio_channelcount;
	int audio_samplesize;
} MediaBox;

typedef struct TrackHeaderBox
{  
	Box BOX;
	unsigned int CREATION_TIME;
	unsigned int MODIFICATION_TIME;
	unsigned int TRACK_ID;
	unsigned int DURATION;
	int LAYER;
	int VOLUME;
	unsigned char MATRIX[37];
	int _WIDTH;
	int _HEIGHT;
}TrackHeaderBox;


typedef struct TrackSampleTable
{
	unsigned int stsz_offset, stco_offset, stbl_offset, readed_offset;
	unsigned int  m_pSampleSize[MAX_INDEX_LENGTH];
	unsigned int m_pSampleOffset[MAX_INDEX_LENGTH];  
}TrackSampleTable;


typedef struct TrackBox
{
	unsigned char* m_pConfigData;//do not delete in this class
	unsigned int m_nConfigDataSize;
	MediaBox			MDIA;
	TrackHeaderBox		TKHD;
	TrackSampleTable	m_TrackSampleTable;
} TrackBox;

typedef struct MovieBox
{	
	int TotalTraks;
	TrackBox TRAK[2];
}MovieBox;

#endif

⌨️ 快捷键说明

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