2026-03-28 10:49:55 +08:00
# 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_