//MRComm.h
#ifndef __MRCOMM_H__
#define __MRCOMM_H__

#if defined(WIN32)
#include <windows.h>
#ifndef UINT64
#define UINT64	unsigned __int64
#if !defined(int64_t)
#	define int64_t	__int64
#   define uint64_t	unsigned __int64
#endif//int64_t
#endif//LONG

#define uint8_t		unsigned char
#define int8_t		char
#define uint16_t	unsigned short
#define int16_t		short
#define uint32_t	unsigned int
#define int32_t		int

#else
#ifndef WORD
#define WORD	unsigned short
#endif//WORD

#ifndef USHORT
#define USHORT	unsigned short
#endif//USHORT

#ifndef DWORD
#define DWORD	unsigned long
#endif//DWORD

#ifndef BOOL
#define BOOL	int
#endif//BOOL

#ifndef TRUE
#define TRUE	1
#endif//TRUE

#ifndef FALSE
#define FALSE	0
#endif//FALSE

#ifndef BYTE
#define BYTE	unsigned char
#endif//BYTE

#ifndef LONG
#define LONG	long
#endif//LONG

#ifndef UINT64
#define UINT64	uint64_t//unsigned long long
#endif//LONG

#ifndef LPVOID
#define LPVOID	void*
#endif//LPVOID

#ifndef LPDWORD
#define LPDWORD	DWORD*
#endif//LPDWORD

#endif//WIN32

#define MRPARAM_IN		// 输入参数
#define MRPARAM_OUT		// 输出参数
#define MRPARAM_IO		// 输入/输出参数

#define MR_SLEN_DEVNAME				64			// 设备名称最大字符长度
#define MR_SLEN_URLADDR				64			// URL字符串长度
#define MR_SLEN_USERNAME			64			// 用户名最大长度
#define MR_SLEN_PASSWORD			64			// 密码最大长度
#define MR_SLEN_OSDSTRING			255			// OSD最大字符数
#define MR_SLEN_MACADDR				32			// MAC地址长度
#define MR_SLEN_IPADDR				32			// IP地址字符串长度
#define MR_SLEN_MAILTITLE			256			// 邮件标题
#define MR_SLEN_DIRECTORY			256			// 路径名最大长度
#define MR_SLEN_SERIALNO			32			// 设备序列号长度
#define MR_SLEN_DEVICEID			32			// 设备ID长度
#define MR_SLEN_GB28181ID			30			// GB28181 ID长度
#define MR_SLEN_GB28181AREA			50			// GB28181 设备所在区域地址长度
#define MR_SLEN_GB28181ADDR			100			// GB28181 设备安装地址长度
#define MR_SLEN_STREAMNAME			64			// 流名称长度

#define MR_NMAX_OSDUSERS			4			// 最大自定义OSD总数
#define MR_NMAX_COVERS				4			// 遮挡区域个数
#define MR_NAMX_VFORMATS			8			// 最大视频格式支持总数
#define MR_NMAX_SHUTTERS			32			// 最多快门总数
#define MR_NMAX_DDNSPROVIDER		16			// 支持的最大DDNS服务商
#define MR_NAMX_PTZCRUISE_POINTS	32			// 预置点巡航最多预置点数
#define MR_NAMX_PTZCRUISE_NUM		8			// 最多预置点巡航数
#define MR_NMAX_WEEKDAYS			7			// 一周的天数
#define MR_NMAX_TIMESECT			32			// 每天时间段个数
#define MR_NMAX_IRIS				15			// 最多光圈总数
#define MR_NMAX_AEMODE				12			// 最多AE模式总数
#define MR_NMAX_WBMODE				6			// 最多白平衡模式总数
#define MR_NMAX_FOUCEMODE			5			// 最多聚焦模式总数

//---------ONVIF ---------------------------------------------------
#define MAX_ONVIF_PROFILES_NUM		4			// 支持的最PROFILES的个数
#define MAX_ONVIF_NAME_LEN		    64			// 支持的最大ONVIF PROFILE名字长度
#define MAX_ONVIF_TOKENLEN			64			// 
#define MAX_ONVIF_ADDRESS_LEN		100			// 地址长度
#define MAX_ONVIF_SPACE_LEN		    100			// 命名空间长度
#define MAX_ONVIF_RELAY_NUM		    3			// 支持的最RELAY的个数
//------------------------------------------------------------------

// 云台控制命令
#define MR_PTZCMD_LEFT_START		"left_start"			// 左启动
#define MR_PTZCMD_LEFT_STOP			"left_stop"				// 左停止
#define MR_PTZCMD_LEFTUP_START		"leftup_start"			// 左上启动
#define MR_PTZCMD_LEFTUP_STOP		"leftup_stop"			// 左上停止
#define MR_PTZCMD_LEFTDOWN_START	"leftdown_start"		// 左下启动
#define MR_PTZCMD_LEFTDOWN_STOP		"leftdown_stop"			// 左下停止
#define MR_PTZCMD_RIGHT_START		"right_start"			// 右启动
#define MR_PTZCMD_RIGHT_STOP		"right_stop"			// 右停止
#define MR_PTZCMD_RIGHTUP_START		"rightup_start"			// 右上启动
#define MR_PTZCMD_RIGHTUP_STOP		"rightup_stop"			// 右上停止
#define MR_PTZCMD_RIGHTDOWN_START	"rightdown_start"		// 右下启动
#define MR_PTZCMD_RIGHTDOWN_STOP	"rightdown_stop"		// 右下停止
#define MR_PTZCMD_UP_START			"up_start"				// 上启动
#define MR_PTZCMD_UP_STOP			"up_stop"				// 上停止
#define MR_PTZCMD_DOWN_START		"down_start"			// 下启动
#define MR_PTZCMD_DOWN_STOP			"down_stop"				// 下停止
#define MR_PTZCMD_IRIS_ADD_START	"irisadd_start"			// 光圈+启动
#define MR_PTZCMD_IRIS_ADD_STOP		"irisadd_stop"			// 光圈+停止
#define MR_PTZCMD_IRIS_DEC_START	"irisdec_start"			// 光圈-启动
#define MR_PTZCMD_IRIS_DEC_STOP		"irisdec_stop"			// 光圈-停止
#define MR_PTZCMD_FOCUS_ADD_START	"focusadd_start"		// 聚焦+启动
#define MR_PTZCMD_FOCUS_ADD_STOP	"focusadd_stop"			// 聚焦+停止
#define MR_PTZCMD_FOCUS_DEC_START	"focusdec_start"		// 聚焦-启动
#define MR_PTZCMD_FOCUS_DEC_STOP	"focusdec_stop"			// 聚焦-停止
#define MR_PTZCMD_ZOOM_ADD_START	"zoomadd_start"			// 变倍+启动
#define MR_PTZCMD_ZOOM_ADD_STOP		"zoomadd_stop"			// 变倍+停止
#define MR_PTZCMD_ZOOM_DEC_START	"zoomdec_start"			// 变倍-启动
#define MR_PTZCMD_ZOOM_DEC_STOP		"zoomdec_stop"			// 变倍-停止
#define MR_PTZCMD_PRESET_SET		"preset_set"			// 设置预置点
#define MR_PTZCMD_PRESET_CALL		"preset_call"			// 调用预置点
#define MR_PTZCMD_PRESET_CLEAN		"preset_clean"			// 清除预置点
#define MR_PTZCMD_LIGHT_ON			"light_on"				// 打开灯光
#define MR_PTZCMD_LIGHT_OFF			"light_off"				// 关闭灯光
#define MR_PTZCMD_LIGHT_AUTO		"light_auto"			// 灯光自动
#define MR_PTZCMD_RAINO_ON			"raino_on"				// 打开雨刮
#define MR_PTZCMD_RAINO_OFF			"raino_off"				// 关闭雨刮
#define MR_PTZCMD_AUX_ON			"aux_on"				// 打开辅助开关
#define MR_PTZCMD_AUX_OFF			"aux_off"				// 关闭辅助开关
#define MR_PTZCMD_MENU_OPEN			"menu_open"				// 打开菜单
#define MR_PTZCMD_MENU_CLOSE		"menu_close"			// 关闭菜单
#define MR_PTZCMD_MENU_OK			"menu_ok"				// 菜单确定
#define MR_PTZCMD_MENU_CANCEL		"menu_cancel"			// 菜单取消
#define MR_PTZCMD_MENU_UP			"menu_up"				// 菜单上
#define MR_PTZCMD_MENU_DOWN			"menu_down"				// 菜单下
#define MR_PTZCMD_MENU_LEFT			"menu_left"				// 菜单左
#define MR_PTZCMD_MENU_RIGHT		"menu_right"			// 菜单右
#define MR_PTZCMD_PATERN_CFG_START	"patern_cfg_start"		// 花样扫描配置开始
#define MR_PTZCMD_PATERN_CFG_STOP	"patern_cfg_stop"		// 花样扫描配置停止
#define MR_PTZCMD_PATERN_CFG_CLEAN	"patern_cfg_clean"		// 花样扫描配置清除
#define MR_PTZCMD_PATERN_START		"patern_start"			// 开始花样扫描
#define MR_PTZCMD_PATERN_STOP		"patern_stop"			// 停止花样扫描
#define MR_PTZCMD_AUTOSCAN_START	"autoscan_start"		// 启动自动扫描
#define MR_PTZCMD_AUTOSCAN_STOP		"autoscan_stop"			// 停止自动扫描
#define MR_PTZCMD_PTSCAN_START		"ptscan_start"			// 启动削苹果扫描
#define MR_PTZCMD_PTSCAN_STOP		"ptscan_stop"			// 停止削苹果扫描
#define MR_PTZCMD_SCAN_SPEED_PAN	"scan_speed_pan"		// 设置扫描水平速度
#define MR_PTZCMD_SCAN_SPEED_TILT	"scan_speed_tilt"		// 设置扫描垂直速度
#define MR_PTZCMD_3DLOCATE			"3dlocate"				// 3D定位
#define MR_PTZCMD_PARK_SET			"park_set"				// 设置看守位
#define MR_PTZCMD_PARK_EN			"park_en"				// 使能看守位
#define MR_PTZCMD_VIRTULZERO_SET	"virtualzero_set"		// 设置虚拟零位
#define MR_PTZCMD_VIRTULZERO_CLEAN	"virtualzero_clean"		// 清除虚拟零位
#define MR_PTZCMD_PRESETTOUR_SET	"presettour_set"		// 设置预置位巡航
#define MR_PTZCMD_PRESETTOUR_CLEAN	"presettour_clean"		// 清除预置位巡航
#define MR_PTZCMD_PRESETTOUR_START	"presettour_start"		// 启动预置位巡航
#define MR_PTZCMD_PRESETTOUR_STOP	"presettour_stop"		// 停止预置位巡航
#define MR_PTZCMD_POSI_DETECT		"posi_dectet"			// 零位自检
#define MR_PTZCMD_LEFTLIMIT_SET		"leftlimit_set"			// 左限位设置
#define MR_PTZCMD_LEFTLIMIT_CLEAN	"leftlimit_clean"		// 左限位清除
#define MR_PTZCMD_RIGHTLIMIT_SET	"rightlimit_set"		// 右限位设置
#define MR_PTZCMD_RIGHTLIMIT_CLEAN	"rightlimit_clean"		// 右限位清除
#define MR_PTZCMD_UPLIMIT_SET		"uplimit_set"			// 上限位设置
#define MR_PTZCMD_UPLIMIT_CLEAN		"uplimit_clean"			// 上限位清除
#define MR_PTZCMD_DOWNLIMIT_SET		"downlimit_set"			// 下限位设置
#define MR_PTZCMD_DOWNLIMIT_CLEAN	"downlimit_clean"		// 下限位清除
#define MR_PTZCMD_LIMITMANUAL_EN	"limitmanual_en"		// 手动限位使能
#define MR_PTZCMD_LIMITSCAN_EN		"limitscan_en"			// 自动限位使能
#define MR_PTZCMD_PROPORTION_EN		"proportion_en"			// 景深比例使能
#define MR_PTZCMD_PT_RESET			"pt_reset"				// 云台复位
#define MR_PTZCMD_PWRUP_ACTION		"pwrup_action"			// 设置上电动作
#define MR_PTZCMD_PWRUP_EN			"pwrup_en"				// 上电动作使能
#define MR_PTZCMD_ADDR_SET			"addr_set"				// 设置云台地址
#define MR_PTZCMD_AUTOFLIP_EN		"autoflip_en"			// 自动翻转使能
#define MR_PTZCMD_PTZPOS_DIRECT		"ptzpos_direct"			// 直接位置控制
#define MR_PTZCMD_QUERY_POS			"query_pos"				// 查询当前位置
#define MR_PTZCMD_QUERY_TYPE		"query_type"			// 查询PTZ型号
#define MR_PTZCMD_QUERY_VERSION		"query_version"			// 查询PTZ版本
#define MR_PTZCMD_CALL_POWEROFF		"call_poweroff"			// 掉电模式
#define MR_PTZCMD_GO_HOME		    "go_home"			    // 走 Home 位置

// 音频采样频率、采样深度, 高16位为采用频率，低16位为采样深度
typedef enum{
	MRAUDIO_SMST_8K  = 0x00000001,		// 8000
	MRAUDIO_SMST_11K = 0x00000002,		// 11025
	MRAUDIO_SMST_12K = 0x00000004,		// 12000
	MRAUDIO_SMST_16K = 0x00000008,		// 16000
	MRAUDIO_SMST_22K = 0x00000010,		// 22050
	MRAUDIO_SMST_24K = 0x00000020,		// 24000
	MRAUDIO_SMST_32K = 0x00000040,		// 32000
	MRAUDIO_SMST_44K = 0x00000080,		// 44100
	MRAUDIO_SMST_48K = 0x00000100,		// 48000
	MRAUDIO_SMST_96K = 0x00000200,		// 96000
	
	MRAUDIO_BTST_8   = 0x01000000,		// 8 bits
	MRAUDIO_BTST_16  = 0x02000000,		// 16 bits
	MRAUDIO_BTST_24  = 0x04000000,		// 24 bits
	MRAUDIO_BTST_32  = 0x08000000,		// 32 bits
}MRAUDIO_SMST_MASK;

// 音频编码格式支持
typedef enum{
	MRACODEC_ST_PCM	  = 0x00000001,		// 线性PCM
	MRACODEC_ST_G711A = 0x00000002,		// G711A
	MRACODEC_ST_G711U = 0x00000004,		// G722U
	MRACODEC_ST_G722  = 0x00000008,		// G722
	MRACODEC_ST_G726  = 0x00000010,		// G726
	MRACODEC_ST_MP3   = 0x00000020,		// MP3
	MRACODEC_ST_AAC   = 0x00000040,		// AAC
}MRACODEC_ST_MASK;

// 网络有效掩码
typedef enum{
	MR_ETHVALID_ENABLE	= 0X01,		//	网口始能
	MR_ETHVALID_DHCP    = 0X02,		//	DHCP启动
	MR_ETHVALID_ENDHCP  = 0X04,		//	DHCP支持
}MR_ETHVALID_MASK;

// 录像类型掩码
typedef enum{
	MR_RECORDTYPE_MANUAL	= 0X01,		// 手动录像
	MR_RECORDTYPE_TIMER		= 0X02,		// 定时
	MR_RECORDTYPE_ALARM		= 0X04,		// 报警
	MR_RECORDTYPE_MOTION	= 0X08,		// 移动侦测
}MR_RECORDTYPE_MASK;

// 文件状态标志掩码
typedef enum{
	MR_RECFILESTATUS_LOCKED = 0X01,	// 文件锁定
	MR_RECFILESTATUS_WRITE  = 0X02,	// 正在写
}MR_RECFILESTATUS_MASK;

// 语言类型
typedef enum{
	MR_LANGUAGE_CHINESE_SIMPLIFIED = 0,			// 简体中文
	MR_LANGUAGE_CHINESE_TRADITIONAL,			// 繁体中文
	MR_LANGUAGE_ENGLISH,						// 英语
	MR_LANGUAGE_RUSSIAN,						// 俄语
	MR_LANGUAGE_ARABIC,							// 阿拉伯语
	MR_LANGUAGE_PORTUGUESE,						// 葡萄牙语
	MR_LANGUAGE_SPANISH,						// 西班牙语
	MR_LANGUAGE_TURKEY,							// 土尔其语
	MR_LANGUAGE_JAPANESE,						// 日语
	MR_LANGUAGE_KOREAN,							// 韩语
	MR_LANGUAGE_ITALIAN,						// 意大利语
	MR_LANGUAGE_FRENCH,							// 法语
	MR_LANGUAGE_GERMAN, 						// 德语
	MR_LANGUAGE_POLISH,							// 波兰语	
	MR_LANGUAGE_ROMANIAN,						// 罗马尼亚语	
	MR_LANGUAGE_HUNGARIAN,						// 匈牙利语
	MR_LANGUAGE_FINNISH,						// 芬兰语	
	MR_LANGUAGE_ESTONIAN,						// 爱沙尼亚语	
	MR_LANGUAGE_FARSI,							// 波斯语 	
	MR_LANGUAGE_DANSK,							// 丹麦语
	MR_LANGUAGE_CZECHISH,						// 捷克语
	MR_LANGUAGE_BULGARIA,						// 保加利亚语
	MR_LANGUAGE_SLOVAKIAN,						// 斯洛伐克语
	MR_LANGUAGE_SLOVENIA,						// 斯洛文尼亚语
	MR_LANGUAGE_CROATIAN,						// 克罗地亚语
	MR_LANGUAGE_DUTCH,							// 荷兰语
	MR_LANGUAGE_GREEK,							// 希腊语
	MR_LANGUAGE_UKRAINIAN,						// 乌克兰语
	MR_LANGUAGE_SWEDISH,						// 瑞典语
	MR_LANGUAGE_SERBIAN,						// 塞尔维亚语
	MR_LANGUAGE_VIETNAMESE,						// 越南语
	MR_LANGUAGE_LITHUANIAN,						// 立陶宛语
	MR_LANGUAGE_FILIPINO,						// 菲律宾语
	MR_LANGUAGE_CATALAN,						// 加泰罗尼亚语
	MR_LANGUAGE_LATVIAN,						// 拉脱维亚语
}MR_LANGUAGE_TYPE;

// 图像尺寸大小
typedef enum{
	MR_VIDEOSIZE_QCIF = 0,					// 176*144(PAL)  176*120(NTSC)
	MR_VIDEOSIZE_CIF,						// 352*288(PAL)  352*240(NTSC)
	MR_VIDEOSIZE_2CIF,						// 704*288(PAL)  704*240(NTSC)
	MR_VIDEOSIZE_4CIF,						// 704*576(PAL)  704*480(NTSC)
	MR_VIDEOSIZE_720,						// 1280*720
	MR_VIDEOSIZE_1080,						// 1920*1080
	MR_VIDEOSIZE_QQVGA,						// 160*128
	MR_VIDEOSIZE_QVGA,						// 320*240
	MR_VIDEOSIZE_SVCD,						// 480*480
	MR_VIDEOSIZE_VGA,						// 640*480
	MR_VIDEOSIZE_SVGA,						// 800*600
	MR_VIDEOSIZE_XVGA,						// 1024*768
	MR_VIDEOSIZE_WXGA,						// 1280*800
	MR_VIDEOSIZE_SXGA,						// 1280*1024
	MR_VIDEOSIZE_WSXGA,						// 1600*1024
	MR_VIDEOSIZE_UXGA,						// 1600*1200
	MR_VIDEOSIZE_WUXGA,						// 1920*1200
	MR_VIDEOSIZE_1280_960,					// 1280*960  1.3M
	MR_VIDEOSIZE_1872_1408,					// 1872*1408 2M
	MR_VIDEOSIZE_2048_1536,					// 2048*1536 3M
	MR_VIDEOSIZE_2560_1600,					// 2560*1600 4M
	MR_VIDEOSIZE_3744_1408,					// 3744*1408 5M
	MR_VIDEOSIZE_3296_2472,					// 3296*2472 8M
	MR_VIDEOSIZE_1440_900,
	MR_VIDEOSIZE_1366_768,
	MR_VIDEOSIZE_960H,						// 960*576 960*480
	MR_VIDEOSIZE_640_360,
	MR_VIDEOSIZE_320_180,
	MR_VIDEOSIZE_960_540,
	MR_VIDEOSIZE_1920_1440,
	MR_VIDEOSIZE_2560_1440,
	MR_VIDEOSIZE_NUMS,
}MR_VIDEOSIZE_TYPE;

typedef enum{
    MR_VO_OUTPUT_PAL = 0,
	MR_VO_OUTPUT_NTSC,
		
	MR_VO_OUTPUT_1080P24,
	MR_VO_OUTPUT_1080P25,
	MR_VO_OUTPUT_1080P30,
	MR_VO_OUTPUT_720P50, 
	MR_VO_OUTPUT_720P60,   
	MR_VO_OUTPUT_1080I50,
	MR_VO_OUTPUT_1080I60,    
	MR_VO_OUTPUT_1080P50,
	MR_VO_OUTPUT_1080P60,    //10        

	MR_VO_OUTPUT_576P50,
	MR_VO_OUTPUT_480P60,

	MR_VO_OUTPUT_800x600_60,            /* VESA 800 x 600 at 60 Hz (non-interlaced) */
	MR_VO_OUTPUT_1024x768_60,           /* VESA 1024 x 768 at 60 Hz (non-interlaced) */
	MR_VO_OUTPUT_1280x1024_60,          /* VESA 1280 x 1024 at 60 Hz (non-interlaced) */
	MR_VO_OUTPUT_1366x768_60,           /* VESA 1366 x 768 at 60 Hz (non-interlaced) */
	MR_VO_OUTPUT_1440x900_60,           /* VESA 1440 x 900 at 60 Hz (non-interlaced) CVT Compliant */
	MR_VO_OUTPUT_1280x800_60,           /* 1280*800@60Hz VGA@60Hz*/
	MR_VO_OUTPUT_640x480_60,			/* VESA 640 x 480 at 60 Hz (non-interlaced) CVT */

	MR_VO_OUTPUT_1080P59,				// 1080P59.94
	MR_VO_OUTPUT_1080I59,				// 1080I59.94
	MR_VO_OUTPUT_1080P29,				// 1080P29.97	
	MR_VO_OUTPUT_720P59,				// 720P59.94
	MR_VO_OUTPUT_720P29,				// 720O29.97
	MR_VO_OUTPUT_720P25,
	MR_VO_OUTPUT_720P30,
	MR_VO_OUTPUT_720P15,				// 1280 x 720 @ 15
	MR_VO_OUTPUT_720P10,				// 1280 x 720 @ 10
	MR_VO_OUTPUT_960x540P30,			// 960 x 540 @ 30
	MR_VO_OUTPUT_640x360P30,			// 640 x 360 @ 30
}MR_VOOUTPUT_SYNC_TYPE;

// 帧率
typedef enum{
	MR_VIDEOFILED_I = 0,	// 隔行
	MR_VIDEOFILED_P,		// 逐行
}MR_VIDEOFILED_TYPE;

// 码流控制类型
typedef enum{
	MR_BITRATE_CBR = 0,			//	定码流控制
	MR_BITRATE_VBR = 1,			//	定质量控制
}MR_BITRATE_TYPE;

enum AVMediaType{
    AVMEDIA_TYPE_UNKNOWN = 0,  ///< Usually treated as AVMEDIA_TYPE_DATA
	AVMEDIA_TYPE_VIDEO,
	AVMEDIA_TYPE_AUDIO,
	AVMEDIA_TYPE_DATA,          ///< Opaque data information usually continuous
	AVMEDIA_TYPE_SUBTITLE,
    AVMEDIA_TYPE_ATTACHMENT,    ///< Opaque data information usually sparse
	AVMEDIA_TYPE_NB
};

// 视频编码类型
typedef enum{
	MR_VCODEC_JPEG	= 0,
	MR_VCODEC_MJPEG,
	MR_VCODEC_MPEG1,
	MR_VCODEC_MPEG2,
	MR_VCODEC_MPEG4,
	MR_VCODEC_H264,
	MR_VCODEC_H263,
	MR_VCODEC_H265,
	MR_VCODEC_NUMS,
}MR_VIDEOCODEC_TYPE;

// 音频编码类型
typedef enum{
	MR_ACODEC_PCM	= 0,		// 线性PCM
	MR_ACODEC_ADPCM,			// ADPCM
	MR_ACODEC_G711A,			// G711A
	MR_ACODEC_G711U,			// G722U
	MR_ACODEC_G722,				// G722
	MR_ACODEC_G726,				// G726
	MR_ACODEC_MP3,				// MP3
	MR_ACODEC_AAC,				// AAC
	MR_ACODEC_AMR,
	MR_ACODEC_AMR_WB,
	MR_ACODEC_G723,
	MR_ACODEC_G729,
	MR_ACODEC_NUMS,
}MR_AUDIOCODEC_TYPE;

// 帧类型
typedef enum{
	MR_FRAMETYPE_VIDEO_P = 0,  // 视频类型,p帧
	MR_FRAMETYPE_VIDEO_B = 1,  // 视频类型,b帧
	MR_FRAMETYPE_VIDEO_I = 2,  // 视频类型,i帧
	MR_FRAMETYPE_AUDIO   = 3,  // 音频类型
	MR_FRAMETYPE_DATA    = 4,
	MR_FRAMETYPE_HEAD	 = 10, // 头信息
}MR_FRAME_TYPE;

// 文件打包格式类型
typedef enum{
	MR_PACKTYPE_MINR = 0,	// 明日私有文件格式
	MR_PACKTYPE_FLV,		// FLV文件格式
	MR_PACKTYPE_TS,			// TS文件格式
	MR_PACKTYPE_AVI,		// AVI文件格式
	MR_PACKTYPE_ASF,		// ASF文件格式
	MR_PACKTYPE_MP4,		// MP4文件格式
	MR_PACKTYPE_HDAV,		// HDAV文件格式
}MR_PACKTYPE_TYPE;

// 文件类型
typedef enum{
	MR_FILETYPE_VIDEO = 0,		// 视频数据
	MR_FILETYPE_JPEG,			// JPEG图片
}MR_FILETYPE_TYPE;

// 视频输出口类型
typedef enum{
	MR_VIDEOIO_CVBS = 0,
	MR_VIDEOIO_VGA,
	MR_VIDEOIO_YPBPR,
	MR_VIDEOIO_HDMI,
	MR_VIDEOIO_HDSDI,
	MR_VIDEOIO_AUTO,		// 自动获得
	MR_VIDEOIO_DVI,
	MR_VIDEOIO_NUMS,
}MR_VIDEOIO_TYPE;


// 白平衡模式
typedef enum{
	MR_WHITEBALANCE_AUTO = 0,		//自动
	MR_WHITEBALANCE_MANUAL,			//手动
	MR_WHITEBALANCE_INDOOR,			//室内
	MR_WHITEBALANCE_OUTDOOR,		//室外
	MR_WHITEBALANCE_OUTDOORAUTO,	//室外自动
	MR_WHITEBALANCE_ONEPUSH,		//一键白平衡模式
	MR_WHITEBALANCE_AUTOTRACK,		//自动跟踪模式
	MR_WHITEBALANCE_SUNNY,			//晴天模式
	MR_WHITEBALANCE_CLOUDY,			//阴天模式
	MR_WHITEBALANCE_GLITTER,		//闪光模式
	MR_WHITEBALANCE_FLUORE,			//银光模式
	MR_WHITEBALANCE_FLUOREH,		//银光（H）模式
	MR_WHITEBALANCE_UNDERWATER,		//水下模式
	MR_WHITEBALANCE_FLUOREAUTO,		//银光自动模式
	MR_WHITEBALANCE_SODIUMLAMPSAUTO,//钠灯光自动模式
	MR_WHITEBALANCE_SODIUMLAMPS,	//钠灯模式
	MR_WHITEBALANCE_LIGHT,			//白炽光模式
	MR_WHITEBALANCE_D4000K,			//D4000K
	MR_WHITEBALANCE_D5000K,			//D5000K
	MR_WHITEBALANCE_CUSTOM,			//自定义模式

}MR_VIDEOWHITEBALANCE_TYPE;


//聚焦模式
typedef enum{
	MR_FOUCEMODE_AUTO = 0,		// 自动
	MR_FOUCEMODE_MANUAL,    	// 手动
	MR_FOUCEMODE_PUSHTRIGGER, 	// 触发聚焦模式
	MR_FOUCEMODE_INFINITY,   	// 聚焦无限制模式
	MR_FOUCEMODE_NEARLIMIT,  	// 近距离聚焦限制模式
}MR_VIDEOFOUCEMODE_TYPE;


//自动曝光模式
typedef enum{
	MR_AEMODE_AUTO = 0,		// 自动
	MR_AEMODE_AUTO_AER1,    // 自动+彩转黑+高灵敏度/AER1
	MR_AEMODE_AUTO_AER2,    // 自动+彩转黑+中灵敏度/AER2
	MR_AEMODE_AUTO_AEDDS,   // 自动+慢曝光/(AE+DSS)
	MR_AEMODE_AUTO_AE1DDS,  // 自动+慢曝光+彩转黑+高灵敏度/((AER+1) + DSS)
	MR_AEMODE_AUTO_AE2DDS,  // 自动+慢曝光+彩转黑+中灵敏度/((AER+2) + DSS)
	MR_AEMODE_AUTO_AE3DDS,  // 自动+慢曝光+彩转黑+低灵敏度/((AER+3) + DSS)
	MR_AEMODE_SHUTPRIO,		// 快门优先
	MR_AEMODE_IRISPRIO,		// 光圈优先
	MR_AEMODE_AGCPRIO,		// 增益优先
	MR_AEMODE_BRIGHTPRIO,	// 亮度优先
	MR_AEMODE_MANUAL,		// 手动

}MR_VIDEOAEMODE_TYPE;

//快门速度
typedef enum{
	MR_SHUTTERTIME_AUTO = 0,	// 自动
	MR_SHUTTERTIME_2 = 1,		// 2
	MR_SHUTTERTIME_1_1	,		// 1/1
	MR_SHUTTERTIME_1_2,			// 1/2
	MR_SHUTTERTIME_1_3,			// 1/3
	MR_SHUTTERTIME_1_3_125,		// 1/3.125
	MR_SHUTTERTIME_1_4,			// 1/4
	MR_SHUTTERTIME_1_5,			// 1/5
	MR_SHUTTERTIME_1_6,			// 1/6
	MR_SHUTTERTIME_1_6_25,		// 1/6.25
	MR_SHUTTERTIME_1_7_5,		// 1/7.5
	MR_SHUTTERTIME_1_8,			// 1/8
	MR_SHUTTERTIME_1_10,		// 1/10
	MR_SHUTTERTIME_1_12_5,		// 1/12.5
	MR_SHUTTERTIME_1_15,		// 1/15
	MR_SHUTTERTIME_1_20,		// 1/20
	MR_SHUTTERTIME_1_24,		// 1/24
	MR_SHUTTERTIME_1_25,		// 1/25
	MR_SHUTTERTIME_1_30,		// 1/30
	MR_SHUTTERTIME_1_50,		// 1/50
	MR_SHUTTERTIME_1_60,		// 1/60
	MR_SHUTTERTIME_1_75,		// 1/75
	MR_SHUTTERTIME_1_90,		// 1/90
	MR_SHUTTERTIME_1_100,		// 1/100
	MR_SHUTTERTIME_1_120,		// 1/120
	MR_SHUTTERTIME_1_125,		// 1/125
	MR_SHUTTERTIME_1_150,		// 1/150
	MR_SHUTTERTIME_1_180,		// 1/180
	MR_SHUTTERTIME_1_215,		// 1/215
	MR_SHUTTERTIME_1_240,		// 1/240
	MR_SHUTTERTIME_1_250,		// 1/250
	MR_SHUTTERTIME_1_300,		// 1/300
	MR_SHUTTERTIME_1_350,		// 1/350
	MR_SHUTTERTIME_1_425,		// 1/425
	MR_SHUTTERTIME_1_480,		// 1/480
	MR_SHUTTERTIME_1_500,		// 1/500
	MR_SHUTTERTIME_1_600,		// 1/600
	MR_SHUTTERTIME_1_725,		// 1/750
	MR_SHUTTERTIME_1_960,		// 1/960
	MR_SHUTTERTIME_1_1000,		// 1/1000
	MR_SHUTTERTIME_1_1024,		// 1/1024
	MR_SHUTTERTIME_1_1250,		// 1/1250
	MR_SHUTTERTIME_1_1500,		// 1/1500
	MR_SHUTTERTIME_1_1750,		// 1/1750
	MR_SHUTTERTIME_1_2000,		// 1/2000
	MR_SHUTTERTIME_1_3000,		// 1/3000
	MR_SHUTTERTIME_1_3500,		// 1/3500
	MR_SHUTTERTIME_1_4000,		// 1/4000
	MR_SHUTTERTIME_1_6000,		// 1/6000
	MR_SHUTTERTIME_1_8000,		// 1/8000
	MR_SHUTTERTIME_1_10000,		// 1/10000
}MR_VIDEOSHUTTERTIME_TYPE;

//光圈
typedef enum{
	MR_IRISLEVEL_1 = 1,		// F1.0
	MR_IRISLEVEL_1_2,		// F1.2
	MR_IRISLEVEL_1_4,		// F1.4
	MR_IRISLEVEL_1_6,		// F1.6
	MR_IRISLEVEL_2_0,		// F2.0
	MR_IRISLEVEL_2_2,		// F2.2
	MR_IRISLEVEL_2_4,		// F2.4
	MR_IRISLEVEL_2_8,		// F2.8
	MR_IRISLEVEL_3_2,		// F3.2
	MR_IRISLEVEL_3_4,		// F3.4
	MR_IRISLEVEL_4_0,		// F4.0
	MR_IRISLEVEL_4_4,		// F4.4
	MR_IRISLEVEL_4_8,		// F4.8
	MR_IRISLEVEL_5_6,		// F5.6
	MR_IRISLEVEL_6_4,		// F6.4
	MR_IRISLEVEL_6_8,		// F6.8
	MR_IRISLEVEL_8_0,		// F8.0
	MR_IRISLEVEL_8_8,		// F8.8
	MR_IRISLEVEL_9_6,		// F9.6
	MR_IRISLEVEL_11,		// F11
	MR_IRISLEVEL_12,		// F12
	MR_IRISLEVEL_14,		// F14
	MR_IRISLEVEL_16,		// F16
	MR_IRISLEVEL_17,		// F17
	MR_IRISLEVEL_19,		// F19
	MR_IRISLEVEL_22,		// F22
	MR_IRISLEVEL_24,		// F24
	MR_IRISLEVEL_32,		// F32
	MR_IRISLEVEL_34,		// F34
	MR_IRISLEVEL_45,		// F45
	MR_IRISLEVEL_64,		// F64

}MR_VIDEOIRISLEVEL_TYPE;


// 网络流协议
typedef enum{
	MR_NETSTMPRO_MRMS = 0,	// 明日协议
	MR_NETSTMPRO_RTSP,		// rtsp
	MR_NETSTMPRO_RTMP,		// rtmp
}MR_NETSTMPRO_TYPE;

//	串口数据位
typedef enum{
	MR_COMM_DATATBIT5 = 5,	// 5位
	MR_COMM_DATATBIT6 = 6,	// 6位
	MR_COMM_DATATBIT7 = 7,	// 7位
	MR_COMM_DATATBIT8 = 8,	// 8位
}MR_COMM_DATABIT_TYPE;

//	串口停止位
typedef enum{
	MR_COMM_STOPBIT1  = 1,	// 1位
	MR_COMM_STOPBIT2  = 2,	// 2位
}MR_COMM_STOPBIT_TYPE;

//	串口校验位
typedef enum{
	MR_COMM_PARITY_NONE = 0,	//	无校验
	MR_COMM_PARITY_ODD,			//	奇校验
	MR_COMM_PARITY_EVEN,		//	偶校验
}MR_COMM_PARITY_TYPE;

//	串口波特率
typedef enum{
	MR_COMM_BITRATE_300 = 0,	//	300
	MR_COMM_BITRATE_600,		//	600
	MR_COMM_BITRATE_1200,		//	1200
	MR_COMM_BITRATE_2400,		//	2400
	MR_COMM_BITRATE_4800,		//	4800
	MR_COMM_BITRATE_9600,		//	9600
	MR_COMM_BITRATE_19200,		//	19200
	MR_COMM_BITRATE_38400,		//	38400
	MR_COMM_BITRATE_57600,		//	57600
	MR_COMM_BITRATE_115200,		//	115200
	MR_COMM_BITRATE_NUMS,
}MR_COMM_BITRATE_TYPE;

// 串口通信协议定义
typedef enum{
	MR_UART_PROCOL_INVALID = 0,	// 无效
	MR_UART_PROCOL_AUTO,		// 自动
	MR_UART_PROCOL_PLC_D,		// PLC-D
	MR_UART_PROCOL_PLC_P,		// PLC-P
	MR_UART_PROCOL_VISCA,		// visca
	MR_UART_PROCOL_NUMS,
}MR_UART_PROCOL_TYPE;

// 时区
typedef enum{
	MR_TIMEZONE_0,					// {0, 0*3600,"GMT+00:00"}
	MR_TIMEZONE_1,					// {1, 1*3600,"GMT+01:00"}
	MR_TIMEZONE_2,					// {2, 2*3600,"GMT+02:00"}
	MR_TIMEZONE_3,					// {3, 3*3600,"GMT+03:00"}
	MR_TIMEZONE_4,					// {4, 3*3600+1800,"GMT+03:30"}
	MR_TIMEZONE_5,					// {5, 4*3600,"GMT+04:00"}
	MR_TIMEZONE_6,					// {6, 4*3600+1800,"GMT+04:30"}
	MR_TIMEZONE_7,					// {7, 5*3600,"GMT+05:00"}
	MR_TIMEZONE_8,					// {8, 5*3600+1800,"GMT+05:30"}
	MR_TIMEZONE_9,					// {9, 5*3600+1800+900,"GMT+05:45"}
	MR_TIMEZONE_10,					// {10, 6*3600,"GMT+06:00"}
	MR_TIMEZONE_11,					// {11, 6*3600+1800,"GMT+06:30"}
	MR_TIMEZONE_12,					// {12, 7*3600,"GMT+07:00"}
	MR_TIMEZONE_13,					// {13, 8*3600,"GMT+08:00"}
	MR_TIMEZONE_14,					// {14, 9*3600,"GMT+09:00"}
	MR_TIMEZONE_15,					// {15, 9*3600+1800,"GMT+09:30"}
	MR_TIMEZONE_16,					// {16, 10*3600,"GMT+10:00"}
	MR_TIMEZONE_17,					// {17, 11*3600,"GMT+11:00"}
	MR_TIMEZONE_18,					// {18, 12*3600,"GMT+12:00"}
	MR_TIMEZONE_19,					// {19, 13*3600,"GMT+13:00"}
	MR_TIMEZONE_20,					// {20, -1*3600,"GMT-01:00"}
	MR_TIMEZONE_21,					// {21, -2*3600,"GMT-02:00"}
	MR_TIMEZONE_22,					// {22, -3*3600,"GMT-03:00"}
	MR_TIMEZONE_23,					// {23, -3*3600-1800,"GMT-03:30"}
	MR_TIMEZONE_24,					// {24, -4*3600,"GMT-04:00"}
	MR_TIMEZONE_25,					// {25, -5*3600,"GMT-05:00"}
	MR_TIMEZONE_26,					// {26, -6*3600,"GMT-06:00"}
	MR_TIMEZONE_27,					// {27, -7*3600,"GMT-07:00"}
	MR_TIMEZONE_28,					// {28, -8*3600,"GMT-08:00"}
	MR_TIMEZONE_29,					// {29, -9*3600,"GMT-09:00"}
	MR_TIMEZONE_30,					// {30, -10*3600,"GMT-10:00"}
	MR_TIMEZONE_31,					// {31, -11*3600,"GMT-11:00"}
	MR_TIMEZONE_32,					// {32, -12*3600,"GMT-12:00"}
	MR_TIMEZONE_NUMS,
}MR_TIMEZONE_TYPE;

// 云台看守位定义
typedef	enum{
	MR_PTZPARK_NONE     = 0,		//无看守位
	MR_PTZPARK_PRESET1  = 1,		//预置位1
									//预置位2~7
	MR_PTZPARK_PRESET8  = 8,		//预置位8

	MR_PTZPARK_AUTOSCAN = 12,		//自动扫描
	MR_PTZPARK_PTSCAN   = 13,		//削苹果扫描

	MR_PTZPARK_CRUISE1  = 16,		//预置位巡视1
									//预置位巡视2~3
	MR_PTZPARK_CRUISE4  = 19,		//预置位巡视4

	MR_PTZPARK_PATTEN1  = 24,		//花样扫描1
									//花样扫描2~3
	MR_PTZPARK_PATTEN4  = 27,		//花样扫描4

	MR_PTZPARK_END,
}MR_PTZPARK_TYPE;

//	报警输入类型
typedef enum{
	MR_ALARMIN_TYPE_CLOSE = 0,	//	常闭(低电平触发)
	MR_ALARMIN_TYPE_OPEN  = 1,	//	常开(高电平触发)
}MR_ALARMIN_TYPE;

// 硬盘类型
typedef enum{
	MR_HDDDEV_LOCALSATA = 0,	// 本地SATA硬盘
	MR_HDDDEV_LOCALIDE,			// 本地IDE硬盘
	MR_HDDDEV_MOBILEHDD,		// USB移动硬盘
	MR_HDDDEV_SD,				// SD卡
	MR_HDDDEV_NAS,				// NAS网络硬盘
	MR_HDDDEV_ESATA,			// esata硬盘
	MR_HDDDEV_ISCSI,			// iSCSI硬盘
	MR_HDDDEV_ARRAY,			// array虚拟硬盘
	MR_HDDDEV_NUMS,
}MR_HDDDEV_TYPE;

// 视频制式
typedef enum{
	MR_VIDEOSTAND_NTSC = 0,			// NTSC
	MR_VIDEOSTAND_PAL  = 1,			// PAL
}MR_VIDEOSTANDARD_TYPE;

// 报警输出控制类型
typedef enum{
	MR_IOCTRL_CLOSE = 0,	// 手动关闭
	MR_IOCTRL_OPEN,			// 手动开启
	MR_IOCTRL_AUTO,			// 自动控制
}MR_IOCTRL_TYPE;

// NAS协议类型
typedef enum{
	MR_NASPROTOCL_NFS = 0,		// nfs协议
	MR_NASPROTOCL_SMB,			// samba协议
	MR_NASPROTOCL_FTP,			// ftp协议
}MR_NASPROTOCL_TYPE;

// 云台联动类型
typedef enum{
	MR_PTZLINK_TYPE_NONE = 0,	// 关闭
	MR_PTZLINK_TYPE_PRENO,		// 预置点
	MR_PTZLINK_TYPE_TRACK,		// 轨迹
	MR_PTZLINK_TYPE_CRUISE,		// 巡航
}MR_PTZLINK_TYPE;

// 硬盘状态类型
typedef enum{
	MR_HDDSTAT_OK =	0,			// 正常
	MR_HDDSTAT_UNFORMATTED,		// 未格式化
	MR_HDDSTAT_ERROR,			// 错误
	MR_HDDSTAT_SMART_FAILED,	// SMART状态
	MR_HDDSTAT_MISMATCH,		// 不匹配
	MR_HDDSTAT_IDLE,			// 休眠
	MR_HDDSTAT_OFFLINE,			// 网络盘处于未连接状态
}MR_HDDSTAT_TYPE;

// 本地备份设备类型
typedef enum{
	MR_BACKUPDEV_USBDISK = 0,	// U盘/USB硬盘
	MR_BACKUPDEV_SDCARD,		// SD卡
	MR_BACKUPDEV_USBDVD,		// USB光驱
	MR_BACKUPDEV_SATADVD,		// SATA光驱
	MR_BACKUPDEV_ESATAHDD,		// eSATA硬盘
}MR_BACKUPDEV_TYPE;

// 扩展报警类型
typedef enum{
	MR_EXALARM_STORAGEFAILURE = 1,	// 存储设备访问出错
	MR_EXALARM_STORAGELOWSAPCE,		// 存储设备空间不足
	MR_EXALARM_NETSHUTDOWN,			// 网络断开
	MR_EXALARM_IPCONFLICT,			// IP冲突
	MR_EXALARM_DEVABORT,			// 设备异常
	MR_EXALARM_NUMS,
}MR_EXALARM_TYPE;

// 设备类型
typedef enum{
	MR_DEVICE_IPC,			// 网络摄像机
	MR_DEVICE_ENC,			// 网络编码器
	MR_DEVICE_DEC,			// 网络解码器
	MR_DEVICE_ASK,			// 审讯终端
	MR_DEVICE_CONFCAM,		// 会议摄像机
}MR_DEVICE_TYPE;

// 用户类型
typedef enum{
	MR_USER_ADMIN = 1,			// 管理员
	MR_USER_ADVANCED,			// 操作员
	MR_USER_NORMAL,				// 普通用户
}MR_USER_TYPE;

/****************************** 结构定义 ******************************************/
typedef struct{
	long left;
    long top;
    long right;
    long bottom;
}MR_RECT;

typedef struct{
	int nPosX;		// X 位置
	int nPosY;		// Y 位置
}MR_POINT;

typedef struct{
    int cx;			// 宽度
    int cy;			// 高度
}MR_SIZE;

typedef struct{
	BYTE byRed;
    BYTE byGreen;
    BYTE byBlue;
    BYTE byAlpha;
}MR_RGBA;

typedef struct{
	DWORD				dwYear;					// 年
	BYTE				byMonth;				// 月
	BYTE				byDay;					// 日
	BYTE				byHour;					// 时
	BYTE				byMinute;				// 分
	BYTE				bySecond;				// 秒
}MR_TIME_T;

typedef struct{
	DWORD				dwYear;					// 年
	BYTE				byMonth;				// 月
	BYTE				byDay;					// 日
	BYTE				byHour;					// 时
	BYTE				byMinute;				// 分
	BYTE				bySecond;				// 秒
	DWORD               dwMillisecond;          // 毫秒
}MR_TIMEMS_T;

// 时间段结构
typedef struct{
	BYTE				bEnable;
	BYTE				byBeginHour;
	BYTE				byBeginMin;
	BYTE				byBeginSec;
	BYTE				byEndHour;
	BYTE				byEndMin;
	BYTE				byEndSec;
	BYTE				byReserved;
}MR_TIMESECT_T;

// 设置时间结构
typedef struct{
	int					nZone;		// 时区
	BOOL				bTimeType;	// 0:UTC时间 1：本地时间
	MR_TIME_T			stDateTime;	// 日期时间
}MR_TIMESET_T;


// 流信息
typedef struct{
	int		id;					// id，未使用
	int64_t duration;			// 时间长度(毫秒)
	int     codec_type;			// 媒体类型, AVMediaType
	int		codec_id;			// 压缩类型, MR_AUDIOCODEC_TYPE or MR_VIDEOCODEC_TYPE
	
	int nWidth;					// 宽度
	int nHeight;				// 高度
	int nFrameRate;				// 帧率
	int nBitRate;				// 码率 kbps
	int nSampleRate;			// 音频采样频率(eg: 8000, 16000)
	int nSampleBits;			// 音频采样精度(eg: 8, 16)
	int nChannel;				// 音频通道数(eg: 1, 2)
	unsigned int framenum;		// 帧总数
	
	unsigned char *extradata;	// 扩展数据
    int extradata_size;			// 扩展数据长度
}MRAVSTREAM_T;

// 压缩帧信息
typedef struct{
	unsigned char *data;	// 数据
	int is_dyn_buff;		// 1 - 内部动态分配, 使用完成后需free(data)
	int nInSize;			// 输入内存长度
	int nOutSize;			// 输出长度
}MRAVEncFrame;

// 流扩展数据
typedef struct{
	unsigned char extradata[256];	// 扩展数据
    int extradata_size;				// 扩展数据长度
}MRSTREAM_EXTDATA_T;

// 帧信息
typedef struct{
	int			  stream_index;		// 流编号(0 - n)
	int			  media_type;		// 媒体类型, AVMediaType
	int			  nFrameType;		// 帧类型MR_FRAME_TYPE
	unsigned int  pts;				// 时间戳(单位毫秒，从0开始递增)
	unsigned int  frameno;			// 帧编号(从0开始递增)
	unsigned char *data;			// 帧数据
	int			  size;				// 帧长度
	int			  is_dyn_buff;		// 1 - 内部动态分配, 使用完成后需free(data)
	int64_t		  pos;				// 帧位置(内部使用)
}MRAVFrame;

typedef struct{
	int			  nMaxCount;		// stTime最大数(只读)
	int			  nTimeCount;		// stTime的总数
	MR_TIMESECT_T stTime[MR_NMAX_TIMESECT];
}MR_TIESECTWEEK_T;


// 串口基本属性
typedef struct{
	MR_COMM_DATABIT_TYPE	emDataBit;					// 数据位
	MR_COMM_STOPBIT_TYPE	emStopBit;					// 停止位
	MR_COMM_PARITY_TYPE		emParity;					// 校验位
	MR_COMM_BITRATE_TYPE	emBaudRate;					// 波特率
}MR_COMMATTR_T;

// 云台
typedef struct{
	BYTE			byAddress;
	MR_COMMATTR_T	stComAttr;
}MR_PTZATTR_T;

typedef struct{
	int		imgSrcWidth;	// 源图像宽
	int		imgSrcHeight;	// 源图像高
	int		cWidth;			// 当前框宽
	int		cHeight;		// 当前框高
	int		cx;				// 当前框x坐标
	int		cy;				// 当前框y坐标
	BOOL	bZoomIn;		// TRUE - 放大， FALSE - 缩小
}MR_PTZ3DLOCAL_T;

typedef struct{
	MR_AUDIOCODEC_TYPE	emCodecType;	// 压缩类型
	int					nSampleBits;	// 采样位数, 8 or 16 
	int					nSampleRate;	// 采样频率  8000, 16000 eg
	int					nChannels;		// 通道数
	int					nBitRate;		// 压缩码率
}MR_AUDIOPARAM_T;


//云台PTZ位置
typedef struct{
	USHORT				nPanAngle;		// 水平角度  最大值36000
	USHORT				nTileAngle;		// 俯仰角度  最大值36000
	USHORT				nZoom;			// 变倍倍率  1X 2X.......
}MR_PTZPOS_T;

// 系统时间
typedef struct{
	BOOL					bEnable;					//	使能
	int						nHostPort;					//	NTP服务器端口,默认端口为123
	int						nUpdateInterval;			//	更新间隔(天, 1 - 10)
	char					szHostUrl[MR_SLEN_URLADDR];	//	NTP服务器地址或域名
}MR_NTP_T;

// 云台控制
typedef struct{
	int			nChannel;
	const char *szPtzCmd;
	BYTE		byValue;
}MR_PTZCTRL_T;

#endif//__MRCOMM_H__
