112 lines
5.0 KiB
C
112 lines
5.0 KiB
C
#ifndef DATA_TYPE_H
|
||
#define DATA_TYPE_H
|
||
#define FRAME_HEAD_MAGIC 0x03211546
|
||
#define SYSTEM_SYNC_ID 2
|
||
|
||
#ifdef __LINUX__
|
||
typedef unsigned char UCHAR;
|
||
typedef unsigned char* PBYTE;
|
||
typedef char* LPTSTR;
|
||
typedef unsigned short USHORT;
|
||
typedef int HANDLE;
|
||
typedef unsigned long ULONG;
|
||
typedef unsigned long DWORD;
|
||
#endif //#ifdef __LINUX__
|
||
|
||
typedef struct tagFrameInfo{
|
||
ULONG SyncId; /* 00000000000000000000000000010b */
|
||
ULONG Magic;
|
||
USHORT FrameType; /* I frames , P frames or BBP frames Audio frames or dsp status etc */
|
||
ULONG Length; /*lenth include this header */
|
||
ULONG FrameNumber; /* serial number of this frame */
|
||
UCHAR Breakable; /* indicate if stream breakable, you could restart new file(with PktSysHeader) if true */
|
||
/*ULONG Ack;*/
|
||
ULONG PTS; /* system clock when this frames is processed */
|
||
}TMFRAME_HEADER, *PTMFRAME_HEADER;
|
||
|
||
typedef enum {
|
||
StandardNone = 0x80000000,
|
||
StandardNTSC = 0x00000001,
|
||
StandardPAL = 0x00000002,
|
||
StandardSECAM = 0x00000004,
|
||
} VideoStandard_t;
|
||
|
||
|
||
typedef enum {
|
||
PktError = 0,
|
||
PktIFrames = 0x0001,
|
||
PktPFrames = 0x0002,
|
||
PktBBPFrames = 0x0004,
|
||
PktAudioFrames = 0x0008,
|
||
PktMotionDetection = 0x00010,
|
||
PktDspStatus = 0x00020,
|
||
PktOrigImage = 0x00040,
|
||
PktSysHeader = 0x00080,
|
||
PktBPFrames = 0x00100,
|
||
PktSFrames = 0x00200,
|
||
PktSubIFrames = 0x00400,
|
||
PktSubPFrames = 0x00800,
|
||
PktSubBBPFrames = 0x01000,
|
||
PktSubSysHeader = 0x02000
|
||
}FrameType_t;
|
||
|
||
typedef struct tagVersion{
|
||
ULONG DspVersion, DspBuildNum;
|
||
ULONG DriverVersion, DriverBuildNum;
|
||
ULONG SDKVersion, SDKBuildNum;
|
||
}VERSION_INFO, *PVERSION_INFO;
|
||
|
||
typedef enum {
|
||
ENC_CIF_FORMAT = 0,
|
||
ENC_QCIF_FORMAT = 1,
|
||
ENC_2CIF_FORMAT = 2,
|
||
ENC_4CIF_FORMAT = 3,
|
||
ENC_QQCIF_FORMAT = 4,
|
||
ENC_CIFQCIF_FORMAT =5,
|
||
ENC_CIFQQCIF_FORMAT =6,
|
||
ENC_DCIF_FORMAT =7,
|
||
ENC_VGA_FORMAT=8
|
||
}PictureFormat_t;
|
||
|
||
typedef struct tagMotionData{
|
||
PictureFormat_t PicFormat;
|
||
ULONG HorizeBlocks;
|
||
ULONG VerticalBlocks;
|
||
ULONG BlockSize;
|
||
}MOTION_DATA_HEADER, *PMOTION_DATA_HEADER;
|
||
|
||
|
||
#define _OSD_BASE 0x9000 /*base address of special character*/
|
||
#define _OSD_YEAR4 (_OSD_BASE+0) /*show year time by length of 4 , for example: 2005*/
|
||
#define _OSD_YEAR2 (_OSD_BASE+1) /*show year time by length of 2, for example: 05 */
|
||
#define _OSD_MONTH3 (_OSD_BASE+2) /*show month time in English, for example: Jan*/
|
||
#define _OSD_MONTH2 (_OSD_BASE+3) /*show month time by two Arabic numerals, for example: 07*/
|
||
#define _OSD_DAY (_OSD_BASE+4) /*show day time by two Arabic numerals, for example: 31*/
|
||
#define _OSD_WEEK3 (_OSD_BASE+5) /*show week time in English: MON<4F><4E>SUN*/
|
||
#define _OSD_CWEEK1 (_OSD_BASE+6) /*show week time in Chinese GB code*/
|
||
#define _OSD_HOUR24 (_OSD_BASE+7) /*show 24 hours clock: 00<30><30>23 */
|
||
#define _OSD_HOUR12 (_OSD_BASE+8) /*show 12 hours clock: 00<30><30>12*/
|
||
#define _OSD_MINUTE (_OSD_BASE+9) /*show minute time by length of 2: 00<30><30>59*/
|
||
#define _OSD_SECOND (_OSD_BASE+10) /*show second time by length of 2: 00<30><30>59*/
|
||
#define _OSD_MILISECOND (_OSD_BASE+11) /*show millisecond time by length of 3: 000~999*/
|
||
#define _OSD_APM (_OSD_BASE+14) /*show a.m. or p.m. by length of 2 bit, AM or PM*/
|
||
|
||
//For new added APIs to set OSD: SetEncoderOsdDisplayMode, SetDecoderOsdDisplayMode and SetDisplayOsdDisplayMode in v6.0 SDK, we use new basic address of special character.
|
||
#define _OSD_BASE_EX 0x90000 /*base address of special character*/
|
||
#define _OSD_YEAR4_EX (_OSD_BASE_EX+0) /*the same as _OSD_YEAR4*/
|
||
#define _OSD_YEAR2_EX (_OSD_BASE_EX+1) /*the same as _OSD_YEAR2*/
|
||
#define _OSD_MONTH3_EX (_OSD_BASE_EX+2) /*the same as _OSD_MONTH3*/
|
||
#define _OSD_MONTH2_EX (_OSD_BASE_EX+3) /*the same as _OSD_MONTH2*/
|
||
#define _OSD_DAY_EX (_OSD_BASE_EX+4) /*the same as _OSD_DAY*/
|
||
#define _OSD_WEEK3_EX (_OSD_BASE_EX+5) /*the same as _OSD_WEEK3*/
|
||
#define _OSD_CWEEK1_EX (_OSD_BASE_EX+6) /*the same as _OSD_CWEEK1*/
|
||
#define _OSD_HOUR24_EX (_OSD_BASE_EX+7) /*the same as _OSD_HOUR24*/
|
||
#define _OSD_HOUR12_EX (_OSD_BASE_EX+8) /*the same as _OSD_HOUR12*/
|
||
#define _OSD_MINUTE_EX (_OSD_BASE_EX+9) /*the same as _OSD_MINUTE*/
|
||
#define _OSD_SECOND_EX (_OSD_BASE_EX+10) /*the same as _OSD_SECOND*/
|
||
#define _OSD_MILISECOND_EX (_OSD_BASE_EX+11) /*the same as _OSD_MILISECOND*/
|
||
#define _OSD_APM_EX (_OSD_BASE_EX+14) /*the same as _OSD_APM*/
|
||
|
||
|
||
#endif
|