📄 tmfileformat.h
字号:
//=============================================================
//
// TM4000 系列自定义格式文件
//
// QWORD Creation_Date; // 创建日期 2003-07-29 10:46:50
// ( DWROD : WORD 2003 BYTE 07 BYTE 29)
// ( DWORD : WORD 10 BYTE 46 BYTE 50)
//=============================================================
#if !defined(AFX_TMFILE_FORMAT_H__)
#define AFX_TMFILE_FORMAT_H__
#define QWORD __int64
#define XVIDFLAG 0XB2010000
#define DIVXFLAG 0X00000001
#define INDEXFLAG 0XDDDDDDDD
#define TM4KFLAG 0x4b344d54 // TM4K
typedef struct
{
WORD wFormatTag; // = 0x55 MP3
WORD nChannels;
DWORD nSamplesPerSec;
DWORD nAvgBytesPerSec;
WORD nBlockAlign;
WORD wBitsPerSample;
WORD cbSize; // = 12
BYTE CodeData[14]; // Modify
}AUDIOFORMAT,*PAUDIOFORMAT; // Sizeeof(AUDIOFORMAT) = 32 BYTE
typedef struct
{
DWORD Image_Width;
DWORD Image_Height;
DWORD Reserved1;
DWORD Reserved2;
}VIDEOFORMAT,*PVIDEOFORMAT;
typedef struct
{
union
{
struct
{
WORD nYear;
BYTE nMon;
BYTE nDay;
WORD nHour;
BYTE nMin;
BYTE nSec;
}TmDate;
struct
{
QWORD nDate;
}TmQDate;
}Date;
}TMDATE,*PTMDATE;
typedef struct
{
DWORD Object_ID; // TM4K
DWORD File_Version; // 文件版本 XVID DIVX (0x01 0x02)
DWORD File_Size; // 文件长度
DWORD File_Type; // 文件类型 音、视、混合 (0x01 0x02 0x03)
TMDATE Creation_Date; // 创建日期 QWORD
DWORD Play_Duration; // 表演时间
DWORD Seekable_Flag; // 是否可拖运(索引)
DWORD Index_Pos; // 索引位置
AUDIOFORMAT Audio_Format;
VIDEOFORMAT Video_Format;
// 文件描述信息
BYTE Title[20]; //
/*
V1.0
BYTE Description[56]; //
*/
// V2.0
BYTE Description[48]; //
DWORD FirstTimecode;
DWORD EndTimecode;
}TMFILEHEADER,*PTMFILEHEADER; // sizeof() = 160
//=============================================================
//
// 帧结构
//
//=============================================================
typedef struct
{
DWORD nFlag; // = XVIDFLAG
DWORD nVideoSize;
DWORD nTimeTick;
WORD nAudioSize;
BYTE bKeyFrame;
BYTE Reserved; // VolHeader
}TMFRAMEHEADER,*PTMFRAMEHEADER;
#define PACK_SIZE 1024
typedef struct packdata
{
BYTE IsSampleHead; // 是否为一帧的开始 因为一帧可能>1024
DWORD BufSize; // Buf 中有多少可用
TMFRAMEHEADER m_FrameHeader;
DWORD nChannel;
BYTE PackData[PACK_SIZE];
} DATA_PACK, *PDATA_PACK;
//=============================================================
//
// 索引结构
//
//=============================================================
typedef struct
{
DWORD nIndexFlag;
DWORD IndexCount;
DWORD Reserved;
}IndexObject;
typedef struct
{
DWORD nTimeTick;
DWORD Offset;
}Index_Entries_TM;
#endif // !defined(AFX_TMFILE_FORMAT_H__)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -