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

📄 tmfileformat.h

📁 TM8000硬盘录像机客户端编程文档和Demo源代码
💻 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 + -