956 lines
		
	
	
		
			40 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			956 lines
		
	
	
		
			40 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef __LINUX_PLAYM4_H__
 | ||
| #define __LINUX_PLAYM4_H__
 | ||
| 
 | ||
| #ifdef __cplusplus
 | ||
| 	extern "C" 
 | ||
| 	{
 | ||
| #endif
 | ||
| 
 | ||
| typedef unsigned int PLAYM4_HWND;
 | ||
| typedef void * PLAYM4_HWNDEX;
 | ||
| typedef void * PLAYM4_HDC;
 | ||
| 
 | ||
| #define PLAYM4_API 
 | ||
| 
 | ||
| #define __stdcall
 | ||
| 
 | ||
| #ifndef CALLBACK
 | ||
| #define CALLBACK
 | ||
| #endif
 | ||
| 
 | ||
| //Max channel numbers
 | ||
| #define PLAYM4_MAX_SUPPORTS 500
 | ||
| 
 | ||
| //Wave coef range;
 | ||
| #define MIN_WAVE_COEF -100
 | ||
| #define MAX_WAVE_COEF 100
 | ||
| 
 | ||
| //Timer type
 | ||
| #define TIMER_1 1 //Only 16 timers for every process.Default TIMER;
 | ||
| #define TIMER_2 2 //Not limit;But the precision less than TIMER_1; 
 | ||
| 
 | ||
| //BUFFER AND DATA TYPE
 | ||
| #define BUF_VIDEO_SRC               (1) //mixed input,total src buffer size;splited input,video src buffer size 
 | ||
| #define BUF_AUDIO_SRC               (2) //mixed input,not defined;splited input,audio src buffer size
 | ||
| #define BUF_VIDEO_RENDER            (3) //video render node count or node cout for decoded data
 | ||
| #define BUF_AUDIO_RENDER            (4) //audio render node count 
 | ||
| #define BUF_VIDEO_DECODED           (5) //video decoded node count to render
 | ||
| #define BUF_AUDIO_DECODED           (6) //audio decoded node count to render
 | ||
| 
 | ||
| //Error code
 | ||
| #define  PLAYM4_NOERROR					0	//no error
 | ||
| #define	 PLAYM4_PARA_OVER				1	//input parameter is invalid;
 | ||
| #define  PLAYM4_ORDER_ERROR				2	//The order of the function to be called is error.
 | ||
| #define	 PLAYM4_TIMER_ERROR				3	//Create multimedia clock failed;
 | ||
| #define  PLAYM4_DEC_VIDEO_ERROR			4	//Decode video data failed.
 | ||
| #define  PLAYM4_DEC_AUDIO_ERROR			5	//Decode audio data failed.
 | ||
| #define	 PLAYM4_ALLOC_MEMORY_ERROR		6	//Allocate memory failed.
 | ||
| #define  PLAYM4_OPEN_FILE_ERROR			7	//Open the file failed.
 | ||
| #define  PLAYM4_CREATE_OBJ_ERROR		8	//Create thread or event failed
 | ||
| //#define  PLAYM4_CREATE_DDRAW_ERROR		9	//Create DirectDraw object failed.
 | ||
| //#define  PLAYM4_CREATE_OFFSCREEN_ERROR 10	//failed when creating off-screen surface.
 | ||
| #define  PLAYM4_BUF_OVER			   11	//buffer is overflow
 | ||
| #define  PLAYM4_CREATE_SOUND_ERROR	   12	//failed when creating audio device.	
 | ||
| #define	 PLAYM4_SET_VOLUME_ERROR	   13	//Set volume failed
 | ||
| #define  PLAYM4_SUPPORT_FILE_ONLY	   14	//The function only support play file.
 | ||
| #define  PLAYM4_SUPPORT_STREAM_ONLY	   15	//The function only support play stream.
 | ||
| #define  PLAYM4_SYS_NOT_SUPPORT		   16	//System not support.
 | ||
| #define  PLAYM4_FILEHEADER_UNKNOWN     17	//No file header.
 | ||
| #define  PLAYM4_VERSION_INCORRECT	   18	//The version of decoder and encoder is not adapted.  
 | ||
| #define  PLAYM4_INIT_DECODER_ERROR     19	//Initialize decoder failed.
 | ||
| #define  PLAYM4_CHECK_FILE_ERROR	   20	//The file data is unknown.
 | ||
| #define  PLAYM4_INIT_TIMER_ERROR	   21	//Initialize multimedia clock failed.
 | ||
| #define	 PLAYM4_BLT_ERROR		       22	//Display failed.
 | ||
| //#define  PLAYM4_UPDATE_ERROR		   23	//Update failed.
 | ||
| #define  PLAYM4_OPEN_FILE_ERROR_MULTI  24   //openfile error, streamtype is multi
 | ||
| #define  PLAYM4_OPEN_FILE_ERROR_VIDEO  25   //openfile error, streamtype is video
 | ||
| #define  PLAYM4_JPEG_COMPRESS_ERROR    26   //JPEG compress error
 | ||
| #define  PLAYM4_EXTRACT_NOT_SUPPORT    27	//Don't support the version of this file.
 | ||
| #define  PLAYM4_EXTRACT_DATA_ERROR     28	//extract video data failed.
 | ||
| #define  PLAYM4_SECRET_KEY_ERROR       29	//Secret key is error //add 20071218
 | ||
| #define  PLAYM4_DECODE_KEYFRAME_ERROR  30   //add by hy 20090318
 | ||
| #define  PLAYM4_NEED_MORE_DATA         31   //add by hy 20100617
 | ||
| #define  PLAYM4_INVALID_PORT		   32	//add by cj 20100913
 | ||
| #define  PLAYM4_NOT_FIND               33	//add by cj 20110428
 | ||
| #define  PLAYM4_NEED_LARGER_BUFFER     34  //add by pzj 20130528
 | ||
| #define  PLAYM4_FAIL_UNKNOWN		   99   //Fail, but the reason is unknown;	
 | ||
| 
 | ||
| //<2F><><EFBFBD>۹<EFBFBD><DBB9>ܴ<EFBFBD><DCB4><EFBFBD><EFBFBD><EFBFBD>
 | ||
| #define PLAYM4_FEC_ERR_ENABLEFAIL				100 // <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
 | ||
| #define PLAYM4_FEC_ERR_NOTENABLE				101 // <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>û<EFBFBD>м<EFBFBD><D0BC><EFBFBD>
 | ||
| #define PLAYM4_FEC_ERR_NOSUBPORT				102 // <20>Ӷ˿<D3B6>û<EFBFBD>з<EFBFBD><D0B7><EFBFBD>
 | ||
| #define PLAYM4_FEC_ERR_PARAMNOTINIT				103 // û<>г<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>Ӧ<EFBFBD>˿ڵIJ<DAB5><C4B2><EFBFBD>
 | ||
| #define PLAYM4_FEC_ERR_SUBPORTOVER				104 // <20>Ӷ˿<D3B6><CBBF>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD>
 | ||
| #define PLAYM4_FEC_ERR_EFFECTNOTSUPPORT			105 // <20>ð<EFBFBD>װ<EFBFBD><D7B0>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>֧<EFBFBD><D6A7>
 | ||
| #define PLAYM4_FEC_ERR_INVALIDWND				106 // <20>Ƿ<EFBFBD><C7B7>Ĵ<EFBFBD><C4B4><EFBFBD>
 | ||
| #define PLAYM4_FEC_ERR_PTZOVERFLOW				107 // PTZλ<5A><CEBB>Խ<EFBFBD><D4BD>
 | ||
| #define PLAYM4_FEC_ERR_RADIUSINVALID			108 // Բ<>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD>Ƿ<EFBFBD>
 | ||
| #define PLAYM4_FEC_ERR_UPDATENOTSUPPORT			109 // ָ<><D6B8><EFBFBD>İ<EFBFBD>װ<EFBFBD><D7B0>ʽ<EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>²<EFBFBD>֧<EFBFBD><D6A7>
 | ||
| #define PLAYM4_FEC_ERR_NOPLAYPORT				110 // <20><><EFBFBD>ſ<EFBFBD><C5BF>˿<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| #define PLAYM4_FEC_ERR_PARAMVALID				111 // <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>
 | ||
| #define PLAYM4_FEC_ERR_INVALIDPORT				112 // <20>Ƿ<EFBFBD><C7B7>Ӷ˿<D3B6>
 | ||
| #define PLAYM4_FEC_ERR_PTZZOOMOVER				113 // PTZ<54><5A><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΧԽ<CEA7><D4BD>
 | ||
| #define PLAYM4_FEC_ERR_OVERMAXPORT				114  // <20><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD>ֵĽ<D6B5><C4BD><EFBFBD>ͨ<EFBFBD><CDA8>Ϊ<EFBFBD>ĸ<EFBFBD>
 | ||
| #define PLAYM4_FEC_ERR_ENABLED                  115  //<2F>ö˿<C3B6><CBBF>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
 | ||
| #define PLAYM4_FEC_ERR_D3DACCENOTENABLE			116 // D3D<33><44><EFBFBD><EFBFBD>û<EFBFBD>п<EFBFBD><D0BF><EFBFBD>
 | ||
| #define PLAYM4_FEC_ERR_PLACETYPE                117 // <20><>װ<EFBFBD><D7B0>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>.һ<><D2BB><EFBFBD><EFBFBD><EFBFBD>ſ<EFBFBD>port<72><74><EFBFBD><EFBFBD>Ӧһ<D3A6>ְ<EFBFBD>װ<EFBFBD><D7B0>ʽ
 | ||
| #define PLAYM4_FEC_ERR_CorrectType              118 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD><DCBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ſ<EFBFBD>port,<2C>趨<EFBFBD><E8B6A8><EFBFBD><EFBFBD>PTZ<54><5A><EFBFBD><EFBFBD><EFBFBD>۰<EFBFBD><DBB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>,<2C><><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>ֻ<EFBFBD>ܿ<EFBFBD>һ·;<3B><><EFBFBD><EFBFBD>180<38>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܺ<EFBFBD>ptz<74><7A><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><F0BFAAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DEB9><EFBFBD><EFBFBD>ԡ<EFBFBD>
 | ||
| #define PLAYM4_FEC_ERR_NULLWND                  119 // <20><><EFBFBD>۴<EFBFBD><DBB4><EFBFBD>Ϊ<EFBFBD><CEAA>
 | ||
| #define PLAYM4_FEC_ERR_PARA                     120 // <20><><EFBFBD>۲<EFBFBD><DBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| 
 | ||
| //Max display regions.
 | ||
| #define MAX_DISPLAY_WND 4
 | ||
| 
 | ||
| //Display type
 | ||
| #define DISPLAY_NORMAL            0x00000001
 | ||
| #define DISPLAY_QUARTER           0x00000002
 | ||
| #define DISPLAY_YC_SCALE          0x00000004	//add by gb 20091116
 | ||
| #define DISPLAY_NOTEARING         0x00000008
 | ||
| //Display buffers
 | ||
| #define MAX_DIS_FRAMES 50
 | ||
| #define MIN_DIS_FRAMES 1
 | ||
| 
 | ||
| //Locate by
 | ||
| #define BY_FRAMENUM  1
 | ||
| #define BY_FRAMETIME 2
 | ||
| 
 | ||
| //Source buffer
 | ||
| #define SOURCE_BUF_MAX	1024*100000
 | ||
| #define SOURCE_BUF_MIN	1024*50
 | ||
| 
 | ||
| //Stream type
 | ||
| #define STREAME_REALTIME 0
 | ||
| #define STREAME_FILE	 1
 | ||
| 
 | ||
| //frame type
 | ||
| #define T_AUDIO16	101
 | ||
| #define T_AUDIO8	100
 | ||
| #define T_UYVY		1
 | ||
| #define T_YV12		3
 | ||
| #define T_RGB32		7
 | ||
| 
 | ||
| //capability
 | ||
| #define SUPPORT_DDRAW		1 
 | ||
| #define SUPPORT_BLT         2 
 | ||
| #define SUPPORT_BLTFOURCC   4 
 | ||
| #define SUPPORT_BLTSHRINKX  8 
 | ||
| #define SUPPORT_BLTSHRINKY  16
 | ||
| #define SUPPORT_BLTSTRETCHX 32
 | ||
| #define SUPPORT_BLTSTRETCHY 64
 | ||
| #define SUPPORT_SSE         128
 | ||
| #define SUPPORT_MMX			256 
 | ||
| 
 | ||
| // <20><><EFBFBD>º궨<C2BA><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>HIK_MEDIAINFO<46>ṹ
 | ||
| #define FOURCC_HKMI			0x484B4D49	// "HKMI" HIK_MEDIAINFO<46>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD>
 | ||
| // ϵͳ<CFB5><CDB3>װ<EFBFBD><D7B0>ʽ	
 | ||
| #define SYSTEM_NULL			0x0				// û<><C3BB>ϵͳ<CFB5>㣬<EFBFBD><E3A3AC><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>	
 | ||
| #define SYSTEM_HIK          0x1				// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
 | ||
| #define SYSTEM_MPEG2_PS     0x2				// PS<50><53>װ
 | ||
| #define SYSTEM_MPEG2_TS     0x3				// TS<54><53>װ
 | ||
| #define SYSTEM_RTP          0x4				// rtp<74><70>װ
 | ||
| #define SYSTEM_RTPHIK       0x401				// rtp<74><70>װ
 | ||
| 
 | ||
| // <20><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| #define VIDEO_NULL          0x0 // û<><C3BB><EFBFBD><EFBFBD>Ƶ
 | ||
| #define VIDEO_H264          0x1 // <20><>H.264<EFBFBD>ͺ<EFBFBD><EFBFBD><EFBFBD>H.264<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| #define VIDEO_MPEG2			0x2	// <20><>MPEG2
 | ||
| #define VIDEO_MPEG4         0x3 // <20><>MPEG4
 | ||
| #define VIDEO_MJPEG			0x4
 | ||
| #define VIDEO_AVC264        0x0100
 | ||
| 
 | ||
| // <20><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| #define AUDIO_NULL          0x0000 // û<><C3BB><EFBFBD><EFBFBD>Ƶ
 | ||
| #define AUDIO_ADPCM         0x1000 // ADPCM 
 | ||
| #define AUDIO_MPEG          0x2000 // MPEG ϵ<><CFB5><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>MPEG<45><47>Ƶ
 | ||
| #define AUDIO_AAC           0x2001
 | ||
| // Gϵ<47><CFB5><EFBFBD><EFBFBD>Ƶ
 | ||
| #define AUDIO_RAW_DATA8		0x7000      //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ8k<38><6B>ԭʼ<D4AD><CABC><EFBFBD><EFBFBD>
 | ||
| #define AUDIO_RAW_UDATA16	0x7001      //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ16k<36><6B>ԭʼ<D4AD><CABC><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>L16
 | ||
| #define AUDIO_G711_U		0x7110
 | ||
| #define AUDIO_G711_A		0x7111
 | ||
| #define AUDIO_G722_1		0x7221
 | ||
| #define AUDIO_G723_1        0x7231
 | ||
| #define AUDIO_G726_U        0x7260
 | ||
| #define AUDIO_G726_A        0x7261
 | ||
| #define AUDIO_G726_16       0x7262
 | ||
| #define AUDIO_G729          0x7290
 | ||
| #define AUDIO_AMR_NB		0x3000
 | ||
| 
 | ||
| #define SYNCDATA_VEH	    1 //ͬ<><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ	
 | ||
| #define SYNCDATA_IVS	    2 //ͬ<><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
 | ||
| 
 | ||
| //motion flow type
 | ||
| #define	MOTION_FLOW_NONE			0
 | ||
| #define MOTION_FLOW_CPU				1
 | ||
| #define MOTION_FLOW_GPU				2
 | ||
| 
 | ||
| //<2F><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| #define ENCRYPT_AES_3R_VIDEO     1
 | ||
| #define ENCRYPT_AES_10R_VIDEO    2
 | ||
| #define ENCRYPT_AES_3R_AUDIO     1
 | ||
| #define ENCRYPT_AES_10R_AUDIO    2
 | ||
| 
 | ||
| typedef struct tagSystemTime
 | ||
| {
 | ||
|     short wYear;
 | ||
|     short wMonth;
 | ||
|     short wDayOfWeek;
 | ||
|     short wDay;
 | ||
|     short wHour;
 | ||
|     short wMinute;
 | ||
|     short wSecond;
 | ||
|     short wMilliseconds;
 | ||
| }SYSTEMTIME;
 | ||
| 
 | ||
| typedef struct tagHKRect
 | ||
| {
 | ||
|     unsigned long left;
 | ||
|     unsigned long top;
 | ||
|     unsigned long right;
 | ||
|     unsigned long bottom;
 | ||
| }HKRECT;
 | ||
| 
 | ||
| //Frame position
 | ||
| typedef struct
 | ||
| {
 | ||
| 	long long nFilePos;
 | ||
|     int nFrameNum;
 | ||
|     int nFrameTime;
 | ||
|     int nErrorFrameNum;
 | ||
|     SYSTEMTIME *pErrorTime;
 | ||
|     int nErrorLostFrameNum;
 | ||
|     int nErrorFrameSize;
 | ||
| }FRAME_POS,*PFRAME_POS;
 | ||
| 
 | ||
| //Frame Info
 | ||
| typedef struct
 | ||
| {
 | ||
|     int nWidth;
 | ||
|     int nHeight;
 | ||
|     int nStamp;
 | ||
|     int nType;
 | ||
|     int nFrameRate;
 | ||
|     unsigned int dwFrameNum;
 | ||
| }FRAME_INFO;
 | ||
| 
 | ||
| //Frame 
 | ||
| typedef struct
 | ||
| {
 | ||
|     char *pDataBuf;
 | ||
|     int  nSize;
 | ||
|     int  nFrameNum;
 | ||
|     int  bIsAudio;
 | ||
|     int  nReserved;
 | ||
| }FRAME_TYPE;
 | ||
| 
 | ||
| //Watermark Info	//add by gb 080119
 | ||
| typedef struct
 | ||
| {
 | ||
|     char *pDataBuf;
 | ||
|     int  nSize;
 | ||
|     int  nFrameNum;
 | ||
|     int  bRsaRight;
 | ||
|     int  nReserved;
 | ||
| }WATERMARK_INFO;
 | ||
| 
 | ||
| typedef struct SYNCDATA_INFO 
 | ||
| {
 | ||
|     unsigned int dwDataType;        //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>ͣ<EFBFBD>Ŀǰ<C4BF>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
 | ||
|     unsigned int dwDataLen;         //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
 | ||
|     unsigned char* pData;           //ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>ݽṹ<DDBD><E1B9B9>ָ<EFBFBD><D6B8>,<2C><><EFBFBD><EFBFBD>IVS_INFO<46>ṹ
 | ||
| } SYNCDATA_INFO;
 | ||
| 
 | ||
| #ifndef _HIK_MEDIAINFO_FLAG_
 | ||
| #define _HIK_MEDIAINFO_FLAG_
 | ||
| typedef struct _HIK_MEDIAINFO_				// modified by gb 080425
 | ||
| {
 | ||
|     unsigned int    media_fourcc;			// "HKMI": 0x484B4D49 Hikvision Media Information
 | ||
|     unsigned short  media_version;			// <20>汾<EFBFBD>ţ<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>Ϣ<EFBFBD>ṹ<EFBFBD>汾<EFBFBD>ţ<EFBFBD>ĿǰΪ0x0101,<2C><>1.01<EFBFBD>汾<EFBFBD><EFBFBD>01<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>汾<EFBFBD>ţ<EFBFBD>01<EFBFBD><EFBFBD><EFBFBD>Ӱ汾<EFBFBD>š<EFBFBD>
 | ||
|     unsigned short  device_id;				// <20>豸ID<49><44><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD>/<2F><><EFBFBD><EFBFBD>			
 | ||
| 
 | ||
|     unsigned short  system_format;          // ϵͳ<CFB5><CDB3>װ<EFBFBD><D7B0>
 | ||
|     unsigned short  video_format;           // <20><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| 
 | ||
|     unsigned short  audio_format;           // <20><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
|     unsigned char   audio_channels;         // ͨ<><CDA8><EFBFBD><EFBFBD>  
 | ||
|     unsigned char   audio_bits_per_sample;  // <20><>λ<EFBFBD><CEBB>
 | ||
|     unsigned int    audio_samplesrate;      // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 
 | ||
|     unsigned int    audio_bitrate;          // ѹ<><D1B9><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>,<2C><>λ<EFBFBD><CEBB>bit
 | ||
|     unsigned char   flag; //8bit,0x81<38><31>ʾ<EFBFBD><CABE> smart<72><74><EFBFBD>ǣ<EFBFBD><C7A3><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>smart,<2C><><EFBFBD><EFBFBD>ʶ<EFBFBD><CAB6>intra<72>ķ<EFBFBD>ʽ<EFBFBD><CABD> media_version >= 0x0103&& video_fortmat = (H.264 or H.265) && ((flag & 0x02) ==0x2) 
 | ||
|     unsigned char   stream_tag; //8bit,0x81<38><31>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD><D0BA><EFBFBD>SDP<44><50>Ϣ 
 | ||
|     unsigned char   reserved[14]; // <20><><EFBFBD><EFBFBD> 
 | ||
| }HIK_MEDIAINFO;
 | ||
| #endif
 | ||
| 
 | ||
| typedef struct  
 | ||
| {
 | ||
|     int nPort;
 | ||
|     char* pBuf;
 | ||
|     int nBufLen;
 | ||
|     int nWidth;
 | ||
|     int nHeight;
 | ||
|     int nStamp;
 | ||
|     int nType;
 | ||
|     void* nUser;
 | ||
| }DISPLAY_INFO;
 | ||
| 
 | ||
| typedef struct
 | ||
| {
 | ||
|     int nPort;
 | ||
|     char *pVideoBuf;
 | ||
|     int nVideoBufLen;
 | ||
|     char *pPriBuf;
 | ||
|     int nPriBufLen;
 | ||
|     int nWidth;
 | ||
|     int nHeight;
 | ||
|     int nStamp;
 | ||
|     int nType;
 | ||
|     void* nUser;
 | ||
| }DISPLAY_INFOEX;
 | ||
| 
 | ||
| typedef struct PLAYM4_SYSTEM_TIME //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> 
 | ||
| {
 | ||
|     unsigned int dwYear; //<2F><>
 | ||
|     unsigned int dwMon;  //<2F><>
 | ||
|     unsigned int dwDay;  //<2F><>
 | ||
|     unsigned int dwHour; //ʱ
 | ||
|     unsigned int dwMin;  //<2F><>
 | ||
|     unsigned int dwSec;  //<2F><>
 | ||
|     unsigned int dwMs;   //<2F><><EFBFBD><EFBFBD>
 | ||
| } PLAYM4_SYSTEM_TIME;
 | ||
| 
 | ||
| #ifndef CROP_PIC_INFO_TAG
 | ||
| #define CROP_PIC_INFO_TAG
 | ||
| typedef struct
 | ||
| {
 | ||
|     unsigned char* pDataBuf;      //ץͼ<D7A5><CDBC><EFBFBD><EFBFBD>buffer
 | ||
|     unsigned int   dwPicSize;	  //ʵ<><CAB5>ͼƬ<CDBC><C6AC>С
 | ||
|     unsigned int   dwBufSize;      //<2F><><EFBFBD><EFBFBD>buffer<65><72>С
 | ||
|     unsigned int   dwPicWidth;	  //<2F><>ͼ<EFBFBD><CDBC>
 | ||
|     unsigned int   dwPicHeight;    //<2F><>ͼ<EFBFBD><CDBC>
 | ||
|     unsigned int   dwReserve;      //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>reserve<76>ֶ<EFBFBD>
 | ||
|     HKRECT*        pCropRect;     //ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>NULL, ͬ<>ϵ<EFBFBD>ץͼ<D7A5>ӿ<EFBFBD>
 | ||
| }CROP_PIC_INFO;
 | ||
| #endif
 | ||
| 
 | ||
| //////////////////////////////////////////////////////////////////////////////
 | ||
| //API
 | ||
| //////////////////////////////////////////////////////////////////////////////
 | ||
| int  PlayM4_GetPort(int* nPort);
 | ||
| int  PlayM4_FreePort(int nPort);
 | ||
| 
 | ||
| int  PlayM4_OpenFile(int nPort,char * sFileName);
 | ||
| int  PlayM4_CloseFile(int nPort);
 | ||
| int  PlayM4_SetStreamOpenMode(int nPort,unsigned int nMode);
 | ||
| int  PlayM4_GetStreamOpenMode(int nPort);
 | ||
| int  PlayM4_OpenStream(int nPort,unsigned char * pFileHeadBuf,unsigned int nSize,unsigned int nBufPoolSize);
 | ||
| int  PlayM4_CloseStream(int nPort);
 | ||
| 
 | ||
| int  PlayM4_Play(int nPort, PLAYM4_HWND hWnd);
 | ||
| int  PlayM4_PlayEx(int nPort, PLAYM4_HWNDEX hWnd);
 | ||
| int  PlayM4_Stop(int nPort);
 | ||
| int  PlayM4_Pause(int nPort,unsigned int nPause);
 | ||
| int  PlayM4_Fast(int nPort);
 | ||
| int  PlayM4_Slow(int nPort);
 | ||
| int  PlayM4_RefreshPlay(int nPort);
 | ||
| int  PlayM4_InputData(int nPort,unsigned char * pBuf,unsigned int nSize);
 | ||
| 
 | ||
| int  PlayM4_PlaySound(int nPort);
 | ||
| int  PlayM4_StopSound();
 | ||
| int  PlayM4_PlaySoundShare(int nPort);
 | ||
| int  PlayM4_StopSoundShare(int nPort);
 | ||
| int  PlayM4_SetVolume(int nPort,unsigned short nVolume);
 | ||
| unsigned short  PlayM4_GetVolume(int nPort);
 | ||
| 
 | ||
| int  PlayM4_OneByOne(int nPort);
 | ||
| int  PlayM4_OneByOneBack(int nPort);
 | ||
| 
 | ||
| int  PlayM4_SetPlayPos(int nPort,float fRelativePos);
 | ||
| float  PlayM4_GetPlayPos(int nPort);
 | ||
| 
 | ||
| unsigned int  PlayM4_GetFileTime(int nPort);
 | ||
| unsigned int  PlayM4_GetPlayedTime(int nPort);
 | ||
| unsigned int  PlayM4_GetPlayedFrames(int nPort);
 | ||
| unsigned int  PlayM4_GetFileTotalFrames(int nPort);
 | ||
| unsigned int  PlayM4_GetCurrentFrameRate(int nPort);
 | ||
| unsigned int  PlayM4_GetCurrentFrameNum(int nPort);
 | ||
| unsigned int  PlayM4_GetSpecialData(int nPort);
 | ||
| unsigned int  PlayM4_GetAbsFrameNum(int nPort); 
 | ||
| unsigned int  PlayM4_GetFileHeadLength();
 | ||
| unsigned int  PlayM4_GetSdkVersion();
 | ||
| unsigned int  PlayM4_GetLastError(int nPort);
 | ||
| unsigned int  PlayM4_GetPlayedTimeEx(int nPort);
 | ||
| 
 | ||
| int  PlayM4_GetSystemTime(int nPort, PLAYM4_SYSTEM_TIME *pstSystemTime);
 | ||
| int  PlayM4_GetFileTimeEx(int nPort, unsigned int* pStart, unsigned int* pStop, unsigned int* pRev);
 | ||
| int  PlayM4_GetCurrentFrameRateEx(int nPort, float* pfFrameRate);
 | ||
| int  PlayM4_GetPictureSize(int nPort,int *pWidth,int *pHeight);
 | ||
| int  PlayM4_GetKeyFramePos(int nPort,unsigned int nValue, unsigned int nType, PFRAME_POS pFramePos);
 | ||
| int  PlayM4_GetNextKeyFramePos(int nPort,unsigned int nValue, unsigned int nType, PFRAME_POS pFramePos);
 | ||
| 
 | ||
| int  PlayM4_ConvertToBmpFile(char * pBuf,int nSize,int nWidth,int nHeight,int nType,char *sFileName);
 | ||
| int  PlayM4_ConvertToJpegFile(char * pBuf,int nSize,int nWidth,int nHeight,int nType,char *sFileName);
 | ||
| int  PlayM4_SetJpegQuality(int nQuality);
 | ||
| int  PlayM4_GetBMP(int nPort,unsigned char * pBitmap,unsigned int nBufSize,unsigned int* pBmpSize);
 | ||
| int  PlayM4_GetJPEG(int nPort,unsigned char * pJpeg,unsigned int nBufSize,unsigned int* pJpegSize);
 | ||
| 
 | ||
| int  PlayM4_SetPlayedTimeEx(int nPort,unsigned int nTime);
 | ||
| int  PlayM4_SetCurrentFrameNum(int nPort,unsigned int nFrameNum);
 | ||
| int  PlayM4_SetDisplayRegion(int nPort,unsigned int nRegionNum, HKRECT *pSrcRect, PLAYM4_HWND hDestWnd, int bEnable);
 | ||
| int  PlayM4_SetDisplayRegionOnWnd(int nPort,unsigned int nRegionNum, HKRECT *pSrcRect, int bEnable);///<<3C>ര<EFBFBD>ڷָ<DAB7><D6B8>ӿ<EFBFBD>
 | ||
| int  PlayM4_SetDecodeFrameType(int nPort,unsigned int nFrameType);
 | ||
| int  PlayM4_SetSecretKey(int nPort, int lKeyType, char *pSecretKey, int lKeyLen);
 | ||
| 
 | ||
| int  PlayM4_SetDecCBStream(int nPort,unsigned int nStream);
 | ||
| int  PlayM4_SetDecCallBackMend(int nPort,void (CALLBACK* DecCBFun)(int nPort,char * pBuf,int nSize,FRAME_INFO * pFrameInfo, void* nUser,int nReserved2), void* nUser);
 | ||
| int  PlayM4_SetDecCallBackExMend(int nPort, void (CALLBACK* DecCBFun)(int nPort, char* pBuf, int nSize, FRAME_INFO* pFrameInfo, void* nUser, int nReserved2), char* pDest, int nDestSize, void* nUser);
 | ||
| 
 | ||
| int  PlayM4_SetDisplayCallBack(int nPort,void (CALLBACK* DisplayCBFun)(int nPort,char * pBuf,int nSize,int nWidth,int nHeight,int nStamp,int nType,int nReserved));
 | ||
| int  PlayM4_SetDisplayCallBackEx(int nPort,void (CALLBACK* DisplayCBFun)(DISPLAY_INFO *pstDisplayInfo), void* nUser);
 | ||
| int  PlayM4_SetFileRefCallBack(int nPort, void (CALLBACK *pFileRefDone)(unsigned int nPort,void* nUser),void* nUser);
 | ||
| int  PlayM4_SetEncTypeChangeCallBack(int nPort, void(CALLBACK *funEncChange)(int nPort, void* nUser), void* nUser);
 | ||
| int  PlayM4_SetCheckWatermarkCallBack(int nPort, void(CALLBACK* funCheckWatermark)(int nPort, WATERMARK_INFO* pWatermarkInfo, void* nUser), void* nUser);
 | ||
| int  PlayM4_SetFileEndCallback(int nPort, void(CALLBACK*FileEndCallback)(int nPort, void *pUser), void *pUser);
 | ||
| 
 | ||
| int  PlayM4_ResetSourceBuffer(int nPort);
 | ||
| int  PlayM4_SetDisplayBuf(int nPort, unsigned int nNum);
 | ||
| int  PlayM4_ResetBuffer(int nPort,unsigned int nBufType);
 | ||
| unsigned int  PlayM4_GetSourceBufferRemain(int nPort);
 | ||
| unsigned int  PlayM4_GetDisplayBuf(int nPort);
 | ||
| unsigned int  PlayM4_GetBufferValue(int nPort,unsigned int nBufType);
 | ||
| 
 | ||
| int  PlayM4_GetRefValue(int nPort,unsigned char  *pBuffer, unsigned int *pSize);
 | ||
| int  PlayM4_SetRefValue(int nPort,unsigned char  *pBuffer, unsigned int nSize);
 | ||
| int  PlayM4_GetRefValueEx(int nPort,unsigned char *pBuffer, unsigned int *pSize);///< <20><><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD>ͻص<CDBB>
 | ||
| 
 | ||
| int  PlayM4_RegisterDrawFun(int nPort,void (CALLBACK* DrawFun)(int nPort,PLAYM4_HDC hDc,void* nUser),void* nUser);
 | ||
| 
 | ||
| int  PlayM4_ThrowBFrameNum(int nPort,unsigned int nNum);
 | ||
| int  PlayM4_SkipErrorData(int nPort, int bSkip);
 | ||
| 
 | ||
| int  PlayM4_ReversePlay(int nPort);
 | ||
| 
 | ||
| 
 | ||
| #ifndef PLAYM4_SESSION_INFO_TAG
 | ||
| #define PLAYM4_SESSION_INFO_TAG
 | ||
| //nProtocolType
 | ||
| #define PLAYM4_PROTOCOL_RTSP    1
 | ||
| //nSessionInfoType
 | ||
| #define PLAYM4_SESSION_INFO_SDP 1
 | ||
| 
 | ||
| typedef struct _PLAYM4_SESSION_INFO_     //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ṹ
 | ||
| {
 | ||
|     int            nSessionInfoType;   //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD>SDP<44><50><EFBFBD><EFBFBD><EFBFBD>纣<EFBFBD><E7BAA3>˽<EFBFBD><CBBD><EFBFBD><EFBFBD>Ϣͷ
 | ||
|     int            nSessionInfoLen;    //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
 | ||
|     unsigned char* pSessionInfoData;   //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
 | ||
| 
 | ||
| } PLAYM4_SESSION_INFO;
 | ||
| #endif
 | ||
| 
 | ||
| PLAYM4_API int __stdcall PlayM4_OpenStreamAdvanced(int nPort, int nProtocolType, PLAYM4_SESSION_INFO* pstSessionInfo, unsigned int nBufPoolSize);
 | ||
| 
 | ||
| #define R_ANGLE_0   -1  //<2F><><EFBFBD><EFBFBD>ת
 | ||
| #define R_ANGLE_L90  0  //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת90<39><30>
 | ||
| #define R_ANGLE_R90  1  //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת90<39><30>
 | ||
| #define R_ANGLE_180  2  //<2F><>ת180<38><30>
 | ||
| 
 | ||
| PLAYM4_API int __stdcall PlayM4_SetRotateAngle(int nPort, unsigned int nRegionNum, unsigned int dwType);
 | ||
| 
 | ||
| #ifndef PLAYM4_ADDITION_INFO_TAG
 | ||
| #define PLAYM4_ADDITION_INFO_TAG
 | ||
| typedef struct _PLAYM4_ADDITION_INFO_     //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ṹ
 | ||
| {
 | ||
|     unsigned char*  pData;			//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
|     unsigned int    dwDatalen;		//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
 | ||
|     unsigned int	dwDataType;		//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
|     unsigned int	dwTimeStamp;	//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
 | ||
| } PLAYM4_ADDITION_INFO;
 | ||
| #endif
 | ||
| 
 | ||
| //dwGroupIndex <20><>Լ<EFBFBD><D4BC>ȡֵ0~3<><33><EFBFBD><EFBFBD>һ<EFBFBD>汾ȡ<E6B1BE><C8A1>ͬ<EFBFBD><CDAC>ֻ<EFBFBD><D6BB>ͬ<EFBFBD><CDAC>closestream<61><6D><EFBFBD><EFBFBD>
 | ||
| PLAYM4_API int __stdcall PlayM4_SetSycGroup(int nPort, unsigned int dwGroupIndex);
 | ||
| //<2F>ݲ<EFBFBD>ʵ<EFBFBD>ִ˺<D6B4><CBBA><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>ʼʱ<CABC>䲻һ<E4B2BB>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㣬ͬһ<CDAC><D2BB><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>һ·
 | ||
| PLAYM4_API int __stdcall PlayM4_SetSycStartTime(int nPort, PLAYM4_SYSTEM_TIME *pstSystemTime);
 | ||
| 
 | ||
| // <20><><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>صĽӿ<C4BD>
 | ||
| #ifndef FISH_EYE_TAG
 | ||
| #define FISH_EYE_TAG
 | ||
| 
 | ||
| // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| typedef enum tagFECPlaceType
 | ||
| {
 | ||
|     FEC_PLACE_WALL = 0x1,			// <20><>װ<EFBFBD><D7B0>ʽ		(<28><><EFBFBD><EFBFBD>ˮƽ)
 | ||
|     FEC_PLACE_FLOOR = 0x2,			// <20><><EFBFBD>氲װ		(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
 | ||
|     FEC_PLACE_CEILING = 0x3,		// <20><>װ<EFBFBD><D7B0>ʽ		(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
 | ||
| 
 | ||
| }FECPLACETYPE;
 | ||
| 
 | ||
| typedef enum tagFECCorrectType
 | ||
| {
 | ||
| 	FEC_CORRECT_NULL       = 0x0,       // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(ԭͼ)
 | ||
| 	FEC_CORRECT_PTZ        = 0x100,		// PTZ
 | ||
| 	FEC_CORRECT_180        = 0x200,		// 180<38>Ƚ<EFBFBD><C8BD><EFBFBD>  <20><><EFBFBD><EFBFBD>Ӧ2P<32><50>
 | ||
| 	FEC_CORRECT_360        = 0x300,		// 360ȫ<30><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ӧ1P<31><50>
 | ||
|     FEC_CORRECT_LAT        = 0x400,     // γ<><CEB3>չ<EFBFBD><D5B9>
 | ||
| 	FEC_CORRECT_SEMISPHERE = 0x500,     // 3D<33><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
|     FEC_CORRECT_CYLINDER                = 0x0600, // <20><><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD>ʾ - <20><>װ/<2F><>װ
 | ||
|     FEC_CORRECT_CYLINDER_SPLIT          = 0x0700, // <20><><EFBFBD><EFBFBD><EFBFBD>п<EFBFBD><D0BF><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD>ʾ - <20><>װ/<2F><>װ
 | ||
|     FEC_CORRECT_PLANET                  = 0x0800, // <20><><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
 | ||
|     FEC_CORRECT_ARCSPHERE_HORIZONTAL    = 0x0900, // <20><><EFBFBD><EFBFBD>ˮƽ<CBAE><C6BD><EFBFBD><EFBFBD> - <20><>װ
 | ||
|     FEC_CORRECT_ARCSPHERE_VERTICAL      = 0x0A00, // <20><><EFBFBD>۴<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD> - <20><>װ
 | ||
| 
 | ||
| }FECCORRECTTYPE;
 | ||
| 
 | ||
| typedef enum tagFECCorrectEffect
 | ||
| {
 | ||
|     FEC_CORRECT_EFFECT_BACK_FACE_CULLING    = 0x100,        // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DEB3><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30>ʾ<EFBFBD><CABE><EFBFBD>ã<EFBFBD>Ϊ0<CEAA><30>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿת<C7BF><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| 
 | ||
| }FECCORRECTEFFECT;
 | ||
| 
 | ||
| 
 | ||
| typedef struct tagCycleParam
 | ||
| {
 | ||
|     float	fRadiusLeft;	// Բ<><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>X<EFBFBD><58><EFBFBD><EFBFBD>
 | ||
|     float	fRadiusRight;	// Բ<><D4B2><EFBFBD><EFBFBD><EFBFBD>ұ<EFBFBD>X<EFBFBD><58><EFBFBD><EFBFBD>
 | ||
|     float   fRadiusTop;		// Բ<><D4B2><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>Y<EFBFBD><59><EFBFBD><EFBFBD>
 | ||
|     float   fRadiusBottom;	// Բ<><D4B2><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>Y<EFBFBD><59><EFBFBD><EFBFBD>
 | ||
| 
 | ||
| }CYCLEPARAM;
 | ||
| 
 | ||
| typedef struct tagPTZParam
 | ||
| {
 | ||
|     float fPTZPositionX;		// PTZ <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB> X<><58><EFBFBD><EFBFBD>
 | ||
|     float fPTZPositionY;		// PTZ <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB> Y<><59><EFBFBD><EFBFBD>	
 | ||
| 
 | ||
| }PTZPARAM;
 | ||
| 
 | ||
| // PTZ<54><5A>ԭʼ<D4AD><CABC><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾģʽ
 | ||
| typedef enum tagFECShowMode
 | ||
| {
 | ||
|     FEC_PTZ_OUTLINE_NULL,   // <20><><EFBFBD><EFBFBD>ʾ
 | ||
|     FEC_PTZ_OUTLINE_RECT,   // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
 | ||
|     FEC_PTZ_OUTLINE_RANGE,  // <20><>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
 | ||
| }FECSHOWMODE; 
 | ||
| 
 | ||
| // <20><><EFBFBD>±<EFBFBD><C2B1>DZ<EFBFBD><C7B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| 
 | ||
| #define 		FEC_UPDATE_RADIUS			 0x1
 | ||
| #define 		FEC_UPDATE_PTZZOOM			 0x2
 | ||
| #define 		FEC_UPDATE_WIDESCANOFFSET	 0x4
 | ||
| #define 		FEC_UPDATE_PTZPARAM			 0x8
 | ||
| #define         FEC_UPDATT_PTZCOLOR          0x10
 | ||
| 
 | ||
| // ɫ<>ʽṹ<CABD><E1B9B9>
 | ||
| typedef struct tagFECColor
 | ||
| {
 | ||
|     unsigned char nR;     // R<><52><EFBFBD><EFBFBD>
 | ||
|     unsigned char nG;	  // G<><47><EFBFBD><EFBFBD>
 | ||
|     unsigned char nB;     // B<><42><EFBFBD><EFBFBD>
 | ||
|     unsigned char nAlpha; // Alpha<68><61><EFBFBD><EFBFBD>
 | ||
| }FECCOLOR;
 | ||
| 
 | ||
| typedef struct tagFECParam
 | ||
| {
 | ||
| 	unsigned int 	nUpDateType;			// <20><><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>
 | ||
| 	unsigned int	nPlaceAndCorrect;		// <20><>װ<EFBFBD><D7B0>ʽ<EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD>ڻ<EFBFBD>ȡ<EFBFBD><C8A1>SetParam<61><6D>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ч,<2C><>ֵ<EFBFBD><D6B5>ʾ<EFBFBD><CABE>װ<EFBFBD><D7B0>ʽ<EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD>ĺ<EFBFBD>
 | ||
| 	PTZPARAM		stPTZParam;				// PTZ У<><D0A3><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>
 | ||
| 	CYCLEPARAM		stCycleParam;			// <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>Բ<EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>
 | ||
| 	float			fZoom;					// PTZ <20><>ʾ<EFBFBD>ķ<EFBFBD>Χ<EFBFBD><CEA7><EFBFBD><EFBFBD>
 | ||
| 	float			fWideScanOffset;		// 180<38><30><EFBFBD><EFBFBD>360<36><30>У<EFBFBD><D0A3><EFBFBD><EFBFBD>ƫ<EFBFBD>ƽǶ<C6BD>
 | ||
|     FECCOLOR        stPTZColor;             // PTZ<54><5A>ɫ
 | ||
| 	int				nResver[15];			// <20><><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>
 | ||
| 
 | ||
| }FISHEYEPARAM;
 | ||
| 
 | ||
| #define         FEC_JPEG   0  // JPEGץͼ
 | ||
| #define         FEC_BMP    1  // BMP ץͼ
 | ||
| 
 | ||
| ///<<3C>µ<EFBFBD>3d<33><64><EFBFBD>۰<EFBFBD><DBB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӽDZ仯<C7B1><E4BBAF><EFBFBD><EFBFBD>(<28><><EFBFBD>ź<EFBFBD><C5BA><EFBFBD>ת)
 | ||
| typedef enum tagPLAYM4HRViewParamType
 | ||
| {
 | ||
|     PLAYM4_HR_VPT_ROTATION_X       = 0x1,          ///<ˮƽ<CBAE><C6BD>ת
 | ||
|     PLAYM4_HR_VPT_ROTATION_Y       = 0x2,          ///<<3C><>ֱ<EFBFBD><D6B1>ת
 | ||
|     PLAYM4_HR_VPT_SCALE            = 0x3,          ///<<3C><><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵΪ<D6B5><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0ֵʱΪ<CAB1><CEAA><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>)
 | ||
| }PLAYM4HRVIEWPARAMTYPE;	
 | ||
| 
 | ||
| // <20><><EFBFBD><EFBFBD>3Dģ<44>Ͳ<EFBFBD><CDB2><EFBFBD>
 | ||
| typedef enum tagPLAYM4FEC3DModelParam
 | ||
| {
 | ||
|     PLAYM4_FEC_3DMP_CYLINDER_HEIGHT              = 0x1,       ///< Բ<><D4B2>ģ<EFBFBD><EFBFBD>
 | ||
|     PLAYM4_FEC_3DMP_CYLINDER_RADIUS              = 0x2,       ///< Բ<><D4B2>ģ<EFBFBD>Ͱ뾶
 | ||
| }PLAYM4FEC3DMODELPARAM;
 | ||
| 
 | ||
| // <20>ض<EFBFBD><D8B6>ӽ<EFBFBD>״̬
 | ||
| typedef enum tagPLAYM4FECSpecialViewType
 | ||
| {
 | ||
|     PLAYM4_FEC_SVT_EDGE                          = 0x1        ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>봰<EFBFBD><EBB4B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD>
 | ||
| }PLAYM4FECSPECIALVIEWTYPE;
 | ||
| 
 | ||
| 
 | ||
| #endif
 | ||
| 
 | ||
| typedef void (__stdcall * FISHEYE_CallBack )(  void* pUser  , unsigned int  nPort , unsigned int nCBType , void * hDC ,   unsigned int nWidth , unsigned int nHeight); 
 | ||
| 
 | ||
| // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| PLAYM4_API int __stdcall PlayM4_FEC_Enable(int nPort);
 | ||
| 
 | ||
| // <20>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
 | ||
| PLAYM4_API int __stdcall PlayM4_FEC_Disable(int nPort);
 | ||
| 
 | ||
| // <20><>ȡ<EFBFBD><C8A1><EFBFBD>۽<EFBFBD><DBBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӷ˿<D3B6> [1~31] 
 | ||
| PLAYM4_API int  __stdcall PlayM4_FEC_GetPort(int nPort , unsigned int* nSubPort , FECPLACETYPE emPlaceType , FECCORRECTTYPE emCorrectType);
 | ||
| 
 | ||
| // ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD>۽<EFBFBD><DBBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӷ˿<D3B6>
 | ||
| PLAYM4_API int __stdcall PlayM4_FEC_DelPort(int nPort , unsigned int nSubPort);
 | ||
| 
 | ||
| // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۽<EFBFBD><DBBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| PLAYM4_API int __stdcall PlayM4_FEC_SetParam(int nPort , unsigned int nSubPort , FISHEYEPARAM * pPara);
 | ||
| 
 | ||
| // <20><>ȡ<EFBFBD><C8A1><EFBFBD>۽<EFBFBD><DBBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| PLAYM4_API int __stdcall PlayM4_FEC_GetParam(int nPort , unsigned int nSubPort , FISHEYEPARAM * pPara);
 | ||
| 
 | ||
| // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>л<EFBFBD>
 | ||
| PLAYM4_API int __stdcall PlayM4_FEC_SetWnd(int nPort , unsigned int nSubPort , void * hWnd);
 | ||
| 
 | ||
| // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۴<EFBFBD><DBB4>ڵĻ<DAB5>ͼ<EFBFBD>ص<EFBFBD>
 | ||
| PLAYM4_API int __stdcall PlayM4_FEC_SetCallBack(int nPort , unsigned int nSubPort , FISHEYE_CallBack cbFunc , void * pUser);
 | ||
| 
 | ||
| PLAYM4_API int __stdcall PlayM4_FEC_Capture(int nPort, unsigned int nSubPort , unsigned int nType, char *pFileName);
 | ||
| 
 | ||
| PLAYM4_API int __stdcall PlayM4_FEC_GetCurrentPTZPort(int nPort, float fPositionX,float fPositionY, unsigned int *pnPort);
 | ||
| 
 | ||
| PLAYM4_API int __stdcall PlayM4_FEC_SetCurrentPTZPort(int nPort, unsigned int nSubPort);
 | ||
| 
 | ||
| PLAYM4_API int __stdcall PlayM4_FEC_SetPTZOutLineShowMode(int nPort,FECSHOWMODE nPTZShowMode);
 | ||
| 														 									 
 | ||
| //<2F>µ<EFBFBD><C2B5><EFBFBD><EFBFBD>۰<EFBFBD><DBB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӽDZ仯(<28><>ת)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؽӿ<D8BD>
 | ||
| //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӽDz<D3BD><C7B2><EFBFBD>(<28><><EFBFBD><EFBFBD>ǰ<EFBFBD>Ȼ<EFBFBD>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0>ֵ)
 | ||
| PLAYM4_API int __stdcall PlayM4_FEC_GetViewParam(int nPort, unsigned int nSubPort, PLAYM4HRVIEWPARAMTYPE enViewParamType, float* fValue);
 | ||
| //<2F><><EFBFBD>ð<EFBFBD><C3B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӽDZ仯<C7B1><E4BBAF><EFBFBD><EFBFBD>(<28><><EFBFBD>õ<EFBFBD>ֵΪ<D6B5><CEAA>ȡֵ<C8A1><D6B5><EFBFBD><EFBFBD>Ҫƫ<D2AA><C6AB>ֵ)
 | ||
| PLAYM4_API int __stdcall PlayM4_FEC_SetViewParam(int nPort, unsigned int nSubPort, PLAYM4HRVIEWPARAMTYPE enViewParamType, float fValue);
 | ||
| 
 | ||
| //<2F><><EFBFBD>۵<EFBFBD><DBB5>ӷŴ<D3B7> nType = 0<><30>
 | ||
| //<2F><><EFBFBD>۴<EFBFBD><DBB4>ڷָ<DAB7> nType = 1<><31>
 | ||
| //ע<>⣬<EFBFBD><E2A3AC><EFBFBD>ڷָ<DAB7>ʱhDestWnd<6E><64>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪNULL<4C><4C>20180813<31>ݲ<EFBFBD>֧<EFBFBD>֣<EFBFBD>
 | ||
| //Ŀǰ<C4BF><C7B0><EFBFBD>ӷŴ<D3B7><C5B4><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϷŴ<CFB7><C5B4><EFBFBD>nRegionNum<75><6D>Ϊ0<CEAA><30>hDestWnd<6E><64>ΪNULL<4C><4C>bEnable<6C><65>Ϊ0ȡ<30><C8A1><EFBFBD><EFBFBD><EFBFBD>ӷŴ<C5B4>0Ϊ<30><CEAA><EFBFBD>ӷŴ<D3B7>
 | ||
| //pSrcRect<63><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1000<30><30><EFBFBD>Կ<EFBFBD><D4BF><EFBFBD><EFBFBD>߸ߣ<DFB8><DFA3><EFBFBD>ֵ<EFBFBD><D6B5>0-1000֮<30>䣩
 | ||
| //ֻ<>Ƽ<EFBFBD>ԭͼ<D4AD><CDBC>180<38><30>360<36><30>γ<EFBFBD><CEB3>չ<EFBFBD><D5B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PTZ<54><5A>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>ӷŴ<D3B7><C5B4><EFBFBD><EFBFBD>ٿ<EFBFBD>ptz<74>ᵼ<EFBFBD>µ<EFBFBD><C2B5>ӷŴ<D3B7>ʧЧ-3D<33><44><EFBFBD>۲<EFBFBD><DBB2><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ô˽ӿ<CBBD>(<28><><EFBFBD>ӽDZ仯<C7B1>ӿڽ<D3BF><DABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>
 | ||
| PLAYM4_API bool __stdcall PlayM4_FEC_SetDisplayRegion(int nPort, unsigned int nSubPort,unsigned int nType, unsigned int nRegionNum, HKRECT *pSrcRect, PLAYM4_HWND hDestWnd, int bEnable);
 | ||
| //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DEB3><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30>ʾ<EFBFBD><CABE><EFBFBD>ã<EFBFBD>Ϊ0<CEAA><30>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿת<C7BF><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| PLAYM4_API bool __stdcall PlayM4_FEC_SetCorrectEffect(int nPort, unsigned int nSubPort, FECCORRECTEFFECT nCorrectEffect, float fValue);
 | ||
| 
 | ||
| // <20><><EFBFBD><EFBFBD>3Dģ<44>Ͳ<EFBFBD><CDB2><EFBFBD>-<2D><><EFBFBD><EFBFBD>3DԲ<44><D4B2>չ<EFBFBD><D5B9><EFBFBD><EFBFBD>Ч
 | ||
| PLAYM4_API bool __stdcall PlayM4_FEC_Set3DModelParam(int nPort, unsigned int nSubPort, PLAYM4FEC3DMODELPARAM enType, float fValue);
 | ||
| 
 | ||
| // <20><>ȡ<EFBFBD>ض<EFBFBD><D8B6>ӽDz<D3BD><C7B2><EFBFBD> - ֻ<><D6BB><EFBFBD><EFBFBD><EFBFBD>ڻ<EFBFBD><DABB>棬<EFBFBD><E6A3AC>SetViewParam<61>ӿ<EFBFBD><D3BF><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
 | ||
| PLAYM4_API bool __stdcall PlayM4_FEC_GetSpecialViewParam(int nPort, unsigned int nSubPort, PLAYM4FECSPECIALVIEWTYPE enSVType, PLAYM4HRVIEWPARAMTYPE enVPType, float* pValue);
 | ||
| 
 | ||
| 
 | ||
| //ͼ<><CDBC><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF><EFBFBD><EFBFBD>-Linux<75>汾<EFBFBD><E6B1BE>֧<EFBFBD><D6A7>
 | ||
| #ifndef PLAYM4_HIKVIE_TAG
 | ||
| #define PLAYM4_HIKVIE_TAG
 | ||
| 
 | ||
| typedef struct _PLAYM4_VIE_DYNPARAM_
 | ||
| {
 | ||
|     int moduFlag;      //<2F><><EFBFBD>õ<EFBFBD><C3B5>㷨<EFBFBD><E3B7A8><EFBFBD><EFBFBD>ģ<EFBFBD>飬<EFBFBD><E9A3AC>PLAYM4_VIE_MODULES<45>ж<EFBFBD><D0B6><EFBFBD>
 | ||
|     //<2F><> PLAYM4_VIE_MODU_ADJ | PLAYM4_VIE_MODU_EHAN
 | ||
|     //ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD>ú<C3BA><F3A3ACB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD>
 | ||
|     //PLAYM4_VIE_MODU_ADJ
 | ||
|     int brightVal;     //<2F><><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD>ֵ<EFBFBD><D6B5>[-255, 255]
 | ||
|     int contrastVal;   //<2F>Աȶȵ<C8B6><C8B5><EFBFBD>ֵ<EFBFBD><D6B5>[-256, 255]
 | ||
|     int colorVal;      //<2F><><EFBFBD>Ͷȵ<CDB6><C8B5><EFBFBD>ֵ<EFBFBD><D6B5>[-256, 255]
 | ||
|     //PLAYM4_VIE_MODU_EHAN
 | ||
|     int toneScale;     //<2F>˲<EFBFBD><CBB2><EFBFBD>Χ<EFBFBD><CEA7>[0, 100]
 | ||
|     int toneGain;      //<2F>Աȶȵ<C8B6><C8B5>ڣ<EFBFBD>ȫ<EFBFBD>ֶԱȶ<D4B1><C8B6><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>[-256, 255]
 | ||
|     int toneOffset;    //<2F><><EFBFBD>ȵ<EFBFBD><C8B5>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD>ֵƫ<D6B5>ƣ<EFBFBD>[-255, 255]
 | ||
|     int toneColor;     //<2F><>ɫ<EFBFBD><C9AB><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>[-256, 255]
 | ||
|     //PLAYM4_VIE_MODU_DEHAZE
 | ||
|     int dehazeLevel;   //ȥ<><C8A5>ǿ<EFBFBD>ȣ<EFBFBD>[0, 255]
 | ||
|     int dehazeTrans;   //<><CDB8>ֵ<EFBFBD><D6B5>[0, 255]
 | ||
|     int dehazeBright;  //<2F><><EFBFBD>Ȳ<EFBFBD><C8B2><EFBFBD><EFBFBD><EFBFBD>[0, 255]
 | ||
|     //PLAYM4_VIE_MODU_DENOISE
 | ||
|     int denoiseLevel;  //ȥ<><C8A5>ǿ<EFBFBD>ȣ<EFBFBD>[0, 255]
 | ||
|     //PLAYM4_VIE_MODU_SHARPEN
 | ||
|     int usmAmount;     //<2F><><EFBFBD><EFBFBD>ǿ<EFBFBD>ȣ<EFBFBD>[0, 255]
 | ||
|     int usmRadius;     //<2F>뾶<F1BBAFB0><EBBEB6>[1, 15]
 | ||
|     int usmThreshold;  //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>[0, 255]
 | ||
|     //PLAYM4_VIE_MODU_DEBLOCK
 | ||
|     int deblockLevel;  //ȥ<><C8A5>ǿ<EFBFBD>ȣ<EFBFBD>[0, 100]
 | ||
|     //PLAYM4_VIE_MODU_LENS
 | ||
|     int lensWarp;      //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[-256, 255]
 | ||
|     int lensZoom;      //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[-256, 255]
 | ||
|     //PLAYM4_VIE_MODU_CRB
 | ||
|     //<2F><><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>
 | ||
| } PLAYM4_VIE_PARACONFIG;
 | ||
| 
 | ||
| typedef enum _PLAYM4_VIE_MODULES
 | ||
| {
 | ||
|     PLAYM4_VIE_MODU_ADJ      = 0x00000001, //ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
|     PLAYM4_VIE_MODU_EHAN     = 0x00000002, //<2F>ֲ<EFBFBD><D6B2><EFBFBD>ǿģ<C7BF><C4A3>
 | ||
|     PLAYM4_VIE_MODU_DEHAZE   = 0x00000004, //ȥ<><C8A5>ģ<EFBFBD><C4A3>
 | ||
|     PLAYM4_VIE_MODU_DENOISE  = 0x00000008, //ȥ<><C8A5>ģ<EFBFBD><C4A3>
 | ||
|     PLAYM4_VIE_MODU_SHARPEN  = 0x00000010, //<2F><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
 | ||
|     PLAYM4_VIE_MODU_DEBLOCK  = 0x00000020, //ȥ<><C8A5><EFBFBD>˲<EFBFBD>ģ<EFBFBD><C4A3>
 | ||
|     PLAYM4_VIE_MODU_CRB      = 0x00000040, //ɫ<><C9AB>ƽ<EFBFBD><C6BD>ģ<EFBFBD><C4A3>
 | ||
|     PLAYM4_VIE_MODU_LENS     = 0x00000080, //<2F><>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
 | ||
| }PLAYM4_VIE_MODULES;
 | ||
| #endif
 | ||
| 
 | ||
| //<2F><><EFBFBD>ùر<C3B9>/<2F><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> -- NO SUPPORT
 | ||
| //dwModuFlag<61><67>ӦPLAYM4_VIE_MODULES<45><53>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD>鿪<EFBFBD><E9BFAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD><DABC><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD>ϵIJ<CFB5><C4B2><EFBFBD>;
 | ||
| //<2F>ر<EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD>õIJ<C3B5><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| //<2F><><EFBFBD><EFBFBD><EFBFBD>ӿڵ<D3BF><DAB5>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸýӿڿ<D3BF><DABF><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><F3A3BBB7><EFBFBD><F2A3ACB7>ش<EFBFBD><D8B4><EFBFBD>
 | ||
| PLAYM4_API int __stdcall PlayM4_VIE_SetModuConfig(int nPort, int nModuFlag, int bEnable);
 | ||
| 
 | ||
| //<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>NULLȫͼ<C8AB><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫͼ<C8AB><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫͼ<C8AB><CDBC><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>16*16<31><36><EFBFBD><EFBFBD> -- NO SUPPORT
 | ||
| //<2F><>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƚ<EFBFBD>˵4<CBB5><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>汾<EFBFBD><E6B1BE><EFBFBD><EFBFBD>ֻ֧<D6BB><D6A7>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5>ͱ<EFBFBD><CDB1><EFBFBD>
 | ||
| PLAYM4_API int __stdcall PlayM4_VIE_SetRegion(int nPort, int nRegNum, HKRECT* pRect);
 | ||
| 
 | ||
| //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> -- NO SUPPORT
 | ||
| PLAYM4_API int __stdcall PlayM4_VIE_GetModuConfig(int nPort, int* pdwModuFlag);
 | ||
| 
 | ||
| //<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
 | ||
| //δ<><CEB4><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD> -- NO SUPPORT
 | ||
| PLAYM4_API int __stdcall PlayM4_VIE_SetParaConfig(int nPort, PLAYM4_VIE_PARACONFIG* pParaConfig);
 | ||
| 
 | ||
| //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD> -- NO SUPPORT
 | ||
| PLAYM4_API int __stdcall PlayM4_VIE_GetParaConfig(int nPort, PLAYM4_VIE_PARACONFIG* pParaConfig);
 | ||
| 
 | ||
| // ˽<><CBBD><EFBFBD><EFBFBD>Ϣģ<CFA2><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| typedef enum _PLAYM4_PRIDATA_RENDER
 | ||
| {	
 | ||
|     PLAYM4_RENDER_ANA_INTEL_DATA   = 0x00000001, //<2F><><EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD>
 | ||
|     PLAYM4_RENDER_MD               = 0x00000002, //<2F>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>
 | ||
|     PLAYM4_RENDER_ADD_POS          = 0x00000004, //POS<4F><53>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
|     PLAYM4_RENDER_ADD_PIC          = 0x00000008, //ͼƬ<CDBC><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
 | ||
|     PLAYM4_RENDER_FIRE_DETCET      = 0x00000010, //<2F>ȳ<EFBFBD><C8B3><EFBFBD><EFBFBD><EFBFBD>Ϣ
 | ||
|     PLAYM4_RENDER_TEM              = 0x00000020, //<2F>¶<EFBFBD><C2B6><EFBFBD>Ϣ
 | ||
| }PLAYM4_PRIDATA_RENDER;
 | ||
| 
 | ||
| typedef enum _PLAYM4_FIRE_ALARM
 | ||
| {
 | ||
|     PLAYM4_FIRE_FRAME_DIS             = 0x00000001, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
 | ||
|     PLAYM4_FIRE_MAX_TEMP              = 0x00000002, //<2F><><EFBFBD><EFBFBD><EFBFBD>¶<EFBFBD>
 | ||
|     PLAYM4_FIRE_MAX_TEMP_POSITION     = 0x00000004, //<2F><><EFBFBD><EFBFBD><EFBFBD>¶<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>ʾ
 | ||
|     PLAYM4_FIRE_DISTANCE              = 0x00000008, //<2F><><EFBFBD><EFBFBD><EFBFBD>¶Ⱦ<C2B6><C8BE><EFBFBD>
 | ||
| }PLAYM4_FIRE_ALARM;
 | ||
| 
 | ||
| typedef enum _PLAYM4_TEM_FLAG
 | ||
| {
 | ||
|     PLAYM4_TEM_REGION_BOX             = 0x00000001, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
|     PLAYM4_TEM_REGION_LINE            = 0x00000002, //<2F>߲<EFBFBD><DFB2><EFBFBD>
 | ||
|     PLAYM4_TEM_REGION_POINT           = 0x00000004, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| }PLAYM4_TEM_FLAG;
 | ||
| 
 | ||
| // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
 | ||
| PLAYM4_API int __stdcall PlayM4_RenderPrivateData(int nPort, int nIntelType, int bTrue);
 | ||
| ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ӿ<EFBFBD><D3BF><EFBFBD>
 | ||
| PLAYM4_API int __stdcall PlayM4_RenderPrivateDataEx(int nPort, int nIntelType, int nSubType, int bTrue);
 | ||
| 
 | ||
| //ENCRYPT Info
 | ||
| typedef struct{
 | ||
|     long nVideoEncryptType;  //<2F><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
|     long nAudioEncryptType;  //<2F><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
|     long nSetSecretKey;      //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ã<EFBFBD>1<EFBFBD><31>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Կ<EFBFBD><D4BF>0<EFBFBD><30>ʾû<CABE><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Կ
 | ||
| }ENCRYPT_INFO;
 | ||
| 
 | ||
| // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>,nType=0<><30>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD><DCB1><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>仯<EFBFBD>ͻص<CDBB><D8B5><EFBFBD>nType=1<><31>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><D0BC><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>
 | ||
| PLAYM4_API int __stdcall PlayM4_SetEncryptTypeCallBack(int nPort, unsigned int nType, void (CALLBACK* EncryptTypeCBFun)(int nPort, ENCRYPT_INFO* pEncryptInfo, void* nUser, int nReserved2), void* nUser);
 | ||
| 
 | ||
| #define PLAYM4_MEDIA_HEAD     1   //ϵͳͷ<CDB3><CDB7><EFBFBD><EFBFBD>
 | ||
| #define PLAYM4_VIDEO_DATA     2   //<2F><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| #define PLAYM4_AUDIO_DATA     3   //<2F><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| #define PLAYM4_PRIVT_DATA     4   //˽<><CBBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| 
 | ||
| //Ԥ¼<D4A4><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ- NO SUPPORT
 | ||
| typedef struct  
 | ||
| {
 | ||
|     long nType;                     // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>ļ<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>˽<EFBFBD><CBBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>
 | ||
|     long nStamp;                    // ʱ<><CAB1><EFBFBD><EFBFBD>
 | ||
|     long nFrameNum;                 // ֡<><D6A1>
 | ||
|     long nBufLen;                   // <20><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
 | ||
|     char* pBuf;                     // ֡<><D6A1><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>֡Ϊ<D6A1><CEAA>λ<EFBFBD>ص<EFBFBD>
 | ||
|     PLAYM4_SYSTEM_TIME  stSysTime;  // ȫ<><C8AB>ʱ<EFBFBD><CAB1>
 | ||
| }RECORD_DATA_INFO;
 | ||
| 
 | ||
| //<2F><><EFBFBD><EFBFBD>Ԥ¼<D4A4>أ<F1BFAAB9>bFlag=1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bFlag=0<>ر<EFBFBD>-- NO SUPPORT
 | ||
| PLAYM4_API int __stdcall PlayM4_SetPreRecordFlag(int nPort, int bFlag);
 | ||
| 
 | ||
| //Ԥ¼<D4A4><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻص<DDBB>- NO SUPPORT
 | ||
| PLAYM4_API int __stdcall PlayM4_SetPreRecordCallBack(int nPort, void (CALLBACK* PreRecordCBfun)(int nPort, RECORD_DATA_INFO* pRecordDataInfo, void* pUser), void* pUser);
 | ||
| 
 | ||
| typedef struct
 | ||
| {
 | ||
|     long    lDataType;          //˽<><CBBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
|     long    lDataStrVersion;    //<2F><><EFBFBD>ݷ<EFBFBD><DDB7>صĽṹ<C4BD><E1B9B9><EFBFBD>汾<EFBFBD><E6B1BE><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>Ϊ<EFBFBD>˼<EFBFBD><CBBC><EFBFBD><EFBFBD><EFBFBD>
 | ||
|     long    lDataTimeStamp;
 | ||
|     long    lDataLength;
 | ||
|     char*   pData;
 | ||
| }AdditionDataInfo;
 | ||
| 
 | ||
| PLAYM4_API int __stdcall PlayM4_SetAdditionDataCallBack(int nPort, unsigned int nSyncType, void (CALLBACK* AdditionDataCBFun)(int nPort, AdditionDataInfo* pstAddDataInfo, void* pUser), void* pUser);
 | ||
| 
 | ||
| //lType: 1 <20><>ʾ<EFBFBD><CABE>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0>ʾ֡PTZ<54><5A>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD>ʽ<EFBFBD>洢<EFBFBD><E6B4A2>pInfo<66>ڣ<EFBFBD>plLen<65><6E><EFBFBD>س<EFBFBD><D8B3><EFBFBD><EFBFBD><EFBFBD>Ϣ;<3B><><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>pInfo = null<6C><6C><EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ泤<DAB4><E6B3A4>plLen
 | ||
| PLAYM4_API int __stdcall PlayM4_GetStreamAdditionalInfo(int nPort, int lType, unsigned char* pInfo, int* plLen);
 | ||
| 
 | ||
| #define PLAYM4_SOURCE_MODULE             0 // <20><><EFBFBD><EFBFBD>Դģ<D4B4><C4A3>
 | ||
| #define PLAYM4_DEMUX_MODULE              1 // <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
 | ||
| #define PLAYM4_DECODE_MODULE             2 // <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
 | ||
| #define PLAYM4_RENDER_MODULE             3 // <20><>Ⱦģ<C8BE><C4A3>
 | ||
| 
 | ||
| #define PLAYM4_RTINFO_HARDDECODE_ERROR          0 // Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)<29><><EFBFBD><EFBFBD>
 | ||
| #define PLAYM4_RTINFO_SOFTDECODE_ERROR          1 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD>֣<EFBFBD>
 | ||
| #define PLAYM4_RTINFO_MEDIAHEADER_ERROR         2 // ý<><C3BD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>
 | ||
| #define PLAYM4_RTINFO_SWITCH_SOFT_DEC           3 // <20>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
| #define PLAYM4_RTINFO_ALLOC_MEMORY_ERROR        4 // <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
 | ||
| #define PLAYM4_RTINFO_ENCRYPT_ERROR             5 // <20><>Կ<EFBFBD><D4BF><EFBFBD><EFBFBD>
 | ||
| #define PLAYM4_RTINFO_RENDER_OVER               8 // <20><>Ⱦһ֡<D2BB><D6A1><EFBFBD><EFBFBD>
 | ||
| #define PLAYM4_RTINFO_ERR_PRESENT               16 // <20><>Ⱦ<EFBFBD><C8BE>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>[<5B><>ǰ<EFBFBD><C7B0>Ⱦ<EFBFBD><C8BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱦʧ<C8BE><CAA7>,<2C>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD>]
 | ||
| #define PLAYM4_RTINFO_IDMX_DATA_ERROR           32 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
 | ||
| #define PLAYM4_RTINFO_DECODE_PARAM_ERROR        64 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
 | ||
| #define PLAYM4_RTINFO_SOFTDECODE_DATA_ERROR     128 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>
 | ||
| 
 | ||
| typedef struct
 | ||
| {
 | ||
|     int            nRunTimeModule;     //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ģ<EFBFBD>飬<EFBFBD>ݶ<EFBFBD>2Ϊ<32><CEAA><EFBFBD><EFBFBD>ģ<EFBFBD>飬<EFBFBD><E9A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ
 | ||
|     int            nStrVersion;        //<2F><><EFBFBD>ݷ<EFBFBD><DDB7>صĽṹ<C4BD><E1B9B9><EFBFBD>汾<EFBFBD><E6B1BE><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>Ϊ<EFBFBD>˼<EFBFBD><CBBC><EFBFBD><EFBFBD><EFBFBD>,<2C><>һ<EFBFBD><D2BB><EFBFBD>汾<EFBFBD><E6B1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0x0001
 | ||
|     int            nFrameTimeStamp;    //֡<><D6A1>
 | ||
|     int            nFrameNum;          //ʱ<><CAB1><EFBFBD><EFBFBD>
 | ||
|     int            nErrorCode;         //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,0ΪӲ<CEAA><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | ||
|     unsigned char  reserved[12];       //<2F><><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>
 | ||
| }RunTimeInfo;
 | ||
| 
 | ||
| ///<ʵʱ<CAB5><CAB1>Ϣ<EFBFBD>ص<EFBFBD><D8B5>ӿ<EFBFBD>
 | ||
| PLAYM4_API int __stdcall PlayM4_SetRunTimeInfoCallBackEx(int nPort, int nModule, void (CALLBACK* RunTimeInfoCBFun)(int nPort, RunTimeInfo* pstRunTimeInfo, void* pUser), void* pUser);
 | ||
| 
 | ||
| // 1<><31>SetRunTimeInfoCallBackEx<45>ӿڣ<D3BF>nErrorCode<64><65><EFBFBD><EFBFBD>6<EFBFBD><36>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>8<EFBFBD><38><EFBFBD>Ժ<EFBFBD><D4BA><EFBFBD>չ<EFBFBD><D5B9>ʽ 16<31><36>32<33><32>64<36><34><EFBFBD>Ҵ<EFBFBD>8<EFBFBD><38>ʼ<EFBFBD><CABC>ϢĬ<CFA2>Ϲرղ<D8B1><D5B2><EFBFBD><EFBFBD>͡<EFBFBD>
 | ||
| // 2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>ƽӿڣ<D3BF><DAA3><EFBFBD><EFBFBD>ƴ<EFBFBD>8<EFBFBD>Ժ<EFBFBD><D4BA><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>֧<EFBFBD>ִ<EFBFBD>8<EFBFBD><38>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>ƴ<EFBFBD><C6B4>ģʽ 8|16|32 <20><><EFBFBD>ַ<EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͡<EFBFBD>
 | ||
| // 3<><33>nType<70><65><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CDB4>룬nFlag<61><67>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ0<CEAA><30><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD><DFBD>лص<D0BB><D8B5><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>
 | ||
| PLAYM4_API int __stdcall PlayM4_SetRunTimeInfoCallbackType(int nPort, int nModule, unsigned int nType, int nFlag);
 | ||
| 
 | ||
| 
 | ||
| ///<<3C><>Ⱦ<EFBFBD><C8BE>ʾ<EFBFBD><CABE><EFBFBD>ؽӿ<D8BD>
 | ||
| #ifndef PLAYM4_HIKD3D11_TAG
 | ||
| #define PLAYM4_HIKD3D11_TAG
 | ||
| 
 | ||
| ///<<3C><>Ⱦץͼ<D7A5>ṹ<EFBFBD><E1B9B9>
 | ||
| typedef struct _tagD3D11_PIC_INFO_
 | ||
| {
 | ||
|     unsigned int   nPicMode;     //ץͼģʽ<C4A3><CABD>0-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>ʷֱ<CAB7><D6B1><EFBFBD>ץͼ(֮ǰץͼģʽ)<29><>1-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>洫<EFBFBD><E6B4AB><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>ץͼ<D7A5><CDBC>nPicWidth*nPicHeightΪ<74><CEAA>ʾ<EFBFBD><CABE><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD>ʱЧ<CAB1><D0A7><EFBFBD><EFBFBD><EFBFBD>ѣ<EFBFBD>
 | ||
|     unsigned char* pBuf;         //ץͼ<D7A5><CDBC><EFBFBD><EFBFBD>buffer
 | ||
|     unsigned int   nBufSize;     //<2F><><EFBFBD><EFBFBD>buffer<65><72>С-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>nPicModeΪ0<CEAA><30>Ϊ֮ǰ<D6AE>ĸ<EFBFBD><C4B8>ݻ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룻<EFBFBD><EBA3BB><EFBFBD><EFBFBD>nPicModeΪ1<CEAA><31><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õķֱ<C4B7><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뻺<EFBFBD>棩
 | ||
|     unsigned int*  pPicSize;     //ʵ<><CAB5>ͼƬ<CDBC><C6AC>С
 | ||
|     unsigned int   nPicWidth;    //<2F><><EFBFBD><EFBFBD>ץͼ<D7A5><CDBC>-nPicModeΪ1ʱ<31><CAB1>Ч<EFBFBD><D0A7><EFBFBD>ҿ<EFBFBD>>=32,nPicWidth*nPicHeight<5000w<30>ֱ<EFBFBD><D6B1>ʡ<EFBFBD>
 | ||
|     unsigned int   nPicHeight;   //<2F><><EFBFBD><EFBFBD>ץͼ<D7A5><CDBC>-nPicModeΪ1ʱ<31><CAB1>Ч<EFBFBD><D0A7><EFBFBD>Ҹ<EFBFBD>>=32,nPicWidth*nPicHeight<5000w<30>ֱ<EFBFBD><D6B1>ʡ<EFBFBD>
 | ||
|     unsigned char  chReserve[8]; //reserve<76><65><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>
 | ||
| }D3D_PIC_INFO;
 | ||
| 
 | ||
| /*<2A><>Ⱦͼ<C8BE><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
 | ||
| typedef enum tagPLAYM4PostProcType
 | ||
| {
 | ||
|     PLAYM4_PPT_BRIGHTNESS               = 0x1,            ///< <20><><EFBFBD><EFBFBD>   [-1.0, 1.0]
 | ||
|     PLAYM4_PPT_HUE                      = 0x2,            ///< ɫ<><C9AB>   [0.0, 1.0]----0.166<EFBFBD>ۼ<EFBFBD>Ϊһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD>仯<EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>1Ϊͬһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
 | ||
|     PLAYM4_PPT_SATURATION               = 0x3,            ///< <20><><EFBFBD>Ͷ<EFBFBD> [-1.0, 1.0]
 | ||
|     PLAYM4_PPT_CONTRAST                 = 0x4,            ///< <20>Աȶ<D4B1> [-1.0, 1.0]
 | ||
|     PLAYM4_PPT_SHARPNESS                = 0x5,            ///< <20><><EFBFBD><EFBFBD>   [ 0.0, 1.0]
 | ||
| }PLAYM4PostProcType;
 | ||
| 
 | ||
| #endif
 | ||
| 
 | ||
| ///<<3C><>Ⱦ<EFBFBD><C8BE>ץͼ:nType:0-jpeg,1-bmp.
 | ||
| PLAYM4_API int __stdcall PlayM4_GetD3DCapture(int nPort, unsigned int nType, D3D_PIC_INFO* pstPicInfo);
 | ||
| 
 | ||
| ///<<3C><>Ⱦ<EFBFBD><C8BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
 | ||
| PLAYM4_API int __stdcall PlayM4_SetD3DPostProcess(int nPort, PLAYM4PostProcType nPostType, float fValue);
 | ||
| 
 | ||
| ///<<3C><>Ⱦ<EFBFBD><C8BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
 | ||
| PLAYM4_API int __stdcall PlayM4_GetD3DPostProcess(int nPort, PLAYM4PostProcType nPostType, float* fValue);
 | ||
| 
 | ||
| ///<<3C>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⣩-playǰ<79><C7B0><EFBFBD><EFBFBD>
 | ||
| PLAYM4_API int __stdcall PlayM4_SetConfigFontPath(int nPort, char* pFontPath);
 | ||
| 
 | ||
| // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ȡmp4<70><34>װ<EFBFBD><D7B0><EFBFBD>߶<EFBFBD>λƫ<CEBB><C6AB>
 | ||
| PLAYM4_API int __stdcall PlayM4_GetMpOffset(int nPort, int nTime, int* nOffset);
 | ||
| 
 | ||
| ///<ʱ<><CAB1><EFBFBD>ı<EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>-ͬ<><CDAC><EFBFBD>ط<EFBFBD>
 | ||
| PLAYM4_API bool __stdcall PlayM4_SetSupplementaryTimeZone(int nPort, int nTimeZone); 
 | ||
| ///<<3C><><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><F2B7B5BB><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>-ͬ<><CDAC><EFBFBD>ط<EFBFBD>
 | ||
| PLAYM4_API bool __stdcall PlayM4_GetSupplementaryTimeZone(int nPort, int* pTimeZone); 
 | ||
| 
 | ||
| ////////////////////////////////////
 | ||
| 
 | ||
| ///<<3C><><EFBFBD>ڴ<EFBFBD>С<EFBFBD>ı<EFBFBD>֪ͨ<CDA8>ӿ<EFBFBD>
 | ||
| PLAYM4_API int __stdcall PlayM4_WndResolutionChange(int nPort);//new add
 | ||
| 
 | ||
| //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
 | ||
| PLAYM4_API int __stdcall PlayM4_SetRunTimeInfoCallBack(int nPort, void (CALLBACK* RunTimeInfoCBFun)(int nPort, RunTimeInfo* pstRunTimeInfo, void* pUser), void* pUser);
 | ||
| int  PlayM4_RigisterDrawFun(int nPort,void (CALLBACK* DrawFun)(int nPort,PLAYM4_HDC hDc,void* nUser),void* nUser);
 | ||
| int  PlayM4_SetDecCallBack(int nPort,void (CALLBACK* DecCBFun)(int nPort,char* pBuf,int nSize,FRAME_INFO * pFrameInfo, void* nReserved1,int nReserved2));
 | ||
| int  PlayM4_SetDecCallBackEx(int nPort,void (CALLBACK* DecCBFun)(int nPort,char * pBuf,int nSize,FRAME_INFO * pFrameInfo, void* nReserved1,int nReserved2), char* pDest, int nDestSize);
 | ||
| int  PlayM4_SetTimerType(int nPort,unsigned int nTimerType,unsigned int nReserved);
 | ||
| int  PlayM4_GetTimerType(int nPort,unsigned int *pTimerType,unsigned int *pReserved);
 | ||
| 
 | ||
| int  PlayM4_SetDisplayMode(int nPort, unsigned int dwType);
 | ||
| int  PlayM4_SetVideoWindow(int nPort, unsigned int nRegionNum, PLAYM4_HWND hWnd);
 | ||
| /////////////////////////////////////////////////////////////////////////////
 | ||
| 
 | ||
| ////////////////NO SUPPORT///////////////////////////////////////////////////
 | ||
| 
 | ||
| int          PlayM4_InitDDraw(PLAYM4_HWND hWnd);
 | ||
| int          PlayM4_RealeseDDraw();
 | ||
| #if (WINVER >= 0x0400)
 | ||
| //Note: These funtion must be builded under win2000 or above with Microsoft Platform sdk.
 | ||
| //You can download the sdk from "http://www.microsoft.com/msdownload/platformsdk/sdkupdate/";
 | ||
| int          PlayM4_InitDDrawDevice();
 | ||
| void         PlayM4_ReleaseDDrawDevice();
 | ||
| int          PlayM4_SetDDrawDevice(int nPort, unsigned int nDeviceNum);
 | ||
| int          PlayM4_SetDDrawDeviceEx(int nPort,unsigned int nRegionNum,unsigned int nDeviceNum);
 | ||
| int          PlayM4_GetDDrawDeviceInfo(unsigned int nDeviceNum, char* lpDriverDescription, unsigned int nDespLen, char* lpDriverName, unsigned int nNameLen, HMONITOR* hhMonitor);
 | ||
| int          PlayM4_GetCapsEx(unsigned int nDDrawDeviceNum);
 | ||
| unsigned int PlayM4_GetDDrawDeviceTotalNums();
 | ||
| #endif
 | ||
| int          PlayM4_GetCaps();
 | ||
| int          PlayM4_OpenStreamEx(int nPort, unsigned char* pFileHeadBuf, unsigned int nSize, unsigned int nBufPoolSize);
 | ||
| int          PlayM4_CloseStreamEx(int nPort);
 | ||
| int          PlayM4_InputVideoData(int nPort, unsigned char* pBuf, unsigned int nSize);
 | ||
| int          PlayM4_InputAudioData(int nPort, unsigned char* pBuf, unsigned int nSize);
 | ||
| int          PlayM4_GetFileSpecialAttr(int nPort, unsigned int* pTimeStamp, unsigned int* pFileNum, unsigned int* pReserved);
 | ||
| //int          PlayM4_SetOverlayMode(int nPort, int bOverlay, COLORREF colorKey);
 | ||
| int          PlayM4_GetOverlayMode(int nPort);
 | ||
| int          PlayM4_SetOverlayFlipMode(int nPort, int bTrue);
 | ||
| //COLORREF     PlayM4_GetColorKey(int nPort);
 | ||
| int          PlayM4_SetPicQuality(int nPort, int bHighQuality);
 | ||
| int          PlayM4_GetPictureQuality(int nPort, int* bHighQuality);
 | ||
| int          PlayM4_ResetSourceBufFlag(int nPort);
 | ||
| int          PlayM4_SetDisplayType(int nPort, int nType);
 | ||
| int          PlayM4_GetDisplayType(int nPort);
 | ||
| int          PlayM4_SyncToAudio(int nPort, int bSyncToAudio);
 | ||
| int          PlayM4_RefreshPlayEx(int nPort, unsigned int nRegionNum);
 | ||
| int          PlayM4_AdjustWaveAudio(int nPort, int nCoefficient);
 | ||
| int          PlayM4_SetPlayMode(int nPort, int bNormal);
 | ||
| int          PlayM4_SetColor(int nPort, unsigned int nRegionNum, int nBrightness, int nContrast, int nSaturation, int nHue);
 | ||
| int          PlayM4_GetColor(int nPort, unsigned int nRegionNum, int* pBrightness, int* pContrast, int* pSaturation, int* pHue);
 | ||
| int          PlayM4_SetImageSharpen(int nPort, unsigned int nLevel);
 | ||
| int          PlayM4_SetDeflash(int nPort, int bDefalsh);
 | ||
| int          PlayM4_CheckDiscontinuousFrameNum(int nPort, int bCheck);
 | ||
| int          PlayM4_SetFileEndMsg(int nPort, PLAYM4_HWND hWnd, unsigned int nMsg);
 | ||
| int          PlayM4_SetVerifyCallBack(int nPort, unsigned int nBeginTime, unsigned int nEndTime, void (__stdcall* funVerify)(int nPort, FRAME_POS* pFilePos, unsigned int bIsVideo, unsigned int nUser), unsigned int nUser);
 | ||
| int          PlayM4_SetEncChangeMsg(int nPort, PLAYM4_HWND hWnd, unsigned int nMsg);
 | ||
| int          PlayM4_SetGetUserDataCallBack(int nPort, void(CALLBACK* funGetUserData)(int nPort, unsigned char* pUserBuf, unsigned int nBufLen, unsigned int nUser), unsigned int nUser);
 | ||
| int          PlayM4_SetSourceBufCallBack(int nPort, unsigned int nThreShold, void (CALLBACK* SourceBufCallBack)(int nPort, unsigned int nBufSize, unsigned int dwUser, void* pResvered), unsigned int dwUser, void* pReserved);
 | ||
| int          PlayM4_GetOriginalFrameCallBack(int nPort, int bIsChange, int bNormalSpeed, int nStartFrameNum, int nStartStamp, int nFileHeader, void(CALLBACK *funGetOrignalFrame)(int nPort, FRAME_TYPE* frameType, int nUser), int nUser);
 | ||
| int          PlayM4_GetThrowBFrameCallBack(int nPort, void(CALLBACK* funThrowBFrame)(int nPort, unsigned int nBFrame, unsigned int nUser), unsigned int nUser);
 | ||
| int          PlayM4_SetAudioCallBack(int nPort, void (__stdcall* funAudio)(int nPort, char* pAudioBuf, int nSize, int nStamp, int nType, int nUser), int nUser);
 | ||
| //motionflow
 | ||
| PLAYM4_API int __stdcall PlayM4_MotionFlow(int nPort, unsigned int dwAdjustType);
 | ||
| 	
 | ||
| 
 | ||
| ////////////////////////////////////////////////////////////////////////////////
 | ||
| 
 | ||
| #ifdef __cplusplus
 | ||
|     }
 | ||
| #endif
 | ||
| 
 | ||
| #endif //_PLAYM4_H_
 |