📄 mp4_common.h
字号:
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 + -