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
|