#ifndef __NVEDEF_H__ #define __NVEDEF_H__ #define NVE_MAX_SERVER 16 #define NVE_MAX_CHANNEL 1//4 #define NVE_SHORT_STR_LENGTH 16 #define NVE_MAX_STR_LENGTH 128 //#define NVE_MAX_EXT_CMD_LENGTH 4096 #define NVE_MAX_EXT_CMD_LENGTH (1024*36) #define NVE_SHORT_EXT_CMD_LENGTH 4096 #define NVE_MAX_MULTI_CMD_COUNT 30 #define NVE_MAX_NTSC_FRAME_RATE 30 #define NVE_MAX_PAL_FRAME_RATE 25 #define NVE_MAX_GROUP 16 #define NVE_MAX_VIDEO_LOOPBACK 2 #define NVE_NUM_OF_CODEC 3 // default settings #define NVE_DEFAULT_AUDIO_GAIN 128 #define NVE_DEFAULT_AUDIO_FREQ 16000 #define NVE_DEFAULT_AUDIO_NUM_OF_CH 1 #define NVE_DEFAULT_AUDIO_ENABLE TRUE #define NVE_DEFAULT_VIDEO_FORMAT CMN5_VIDEO_FORMAT_NTSC_M #define NVE_DEFAULT_RESOLUTION ((720 << 16) | 480) #define NVE_DEFAULT_GOP_SIZE 15 #define NVE_DEFAULT_FRAME_RATE 30 #define NVE_DEFAULT_BITRATE_MODE 1 #define NVE_DEFAULT_QUANT 5 #define NVE_DEFAULT_BITRATE 1500000 #define NVE_DEFAULT_BRIGHTNESS 128 #define NVE_DEFAULT_CONTRAST 128 #define NVE_DEFAULT_SATURATION 128 #define NVE_DEFAULT_HUE 128 #define NVE_DEFAULT_HTTP_PORT 80 #define NVE_DEFAULT_RTSP_PORT 554 #define safe_strcpy(dst, src) \ strncpy(dst, src, sizeof(dst)); \ dst[sizeof(dst)-1] = 0; // for pointer #define safe_strncpy(dst, src, size) \ strncpy(dst, src, size); \ (dst)[size-1] = 0; #define safe_strcat(dst, src) \ strncat(dst, src, sizeof(dst)-strlen(dst)); \ dst[sizeof(dst)-1] = 0; #define CHECK_AND_RETURN(func, msg) \ if (!func) { \ m_pMsgMgr->PushErrorCodeF(msg); \ m_pMsgMgr->Show(TRUE); \ return; \ } \ #define CHECK_AND_RETURN_FALSE(func, msg) \ if (!func) { \ m_pMsgMgr->PushErrorCodeF(msg); \ m_pMsgMgr->Show(TRUE); \ return FALSE; \ } \ #define MAKE_MULTI_CMD(cmdset, index, cmd, bd, ch, p0, p1, p2, p3) \ cmdset.uCommand = cmd; \ cmdset.uBoard = bd; \ cmdset.uChannel = ch; \ cmdset.uParam[0] = p0; \ cmdset.uParam[1] = p1; \ cmdset.uParam[2] = p2; \ cmdset.uParam[3] = p3; \ index++; #define MACROBLOCK_SIZE 16 #define CROP_BY_MACROBLOCK(x, add) \ if (x%MACROBLOCK_SIZE) { \ x = (x/MACROBLOCK_SIZE)*MACROBLOCK_SIZE; \ if (add) { \ x += MACROBLOCK_SIZE; \ } \ } enum CommandType { CT_CMD_GET = 1, CT_CMD_SET = 2 }; #define NVE_MAX_RTSP_VALUE 64 #define NVE_RTSP_VALUE_INT 1 #define NVE_RTSP_VALUE_STR 2 typedef struct _NVE_RTSP_VALUE { char szName[NVE_MAX_STR_LENGTH]; char pValue[NVE_MAX_STR_LENGTH]; } NVE_RTSP_VALUE; #define NVE_MAX_INFORMATION_STRING 1024 typedef struct _NVE_GLOBAL_SETTINGS { CMN5_SYSTEM_INFO SystemInfo; COD5_BOARD_INFO BoardInfo; ULONG uVStatus; ULONG uDIStatus; ULONG uDOStatus; char InformationString[NVE_MAX_INFORMATION_STRING]; } NVE_GLOBAL_SETTINGS; typedef struct _NVE_VIDEO_SETTINGS { BOOL bEnable; ULONG uBrightness; ULONG uContrast; ULONG uSaturation; ULONG uHue; ULONG uSharpness; } NVE_VIDEO_SETTINGS; typedef struct _NVE_CODEC_SETTINGS { ULONG uVideoCodec; ULONG uVideoFormat; ULONG uResolution; ULONG uGOPSize; ULONG uFrameRate; ULONG uBitrateMode; ULONG uQuant; ULONG uBitrate; ULONG uNoiseFilter; } NVE_CODEC_SETTINGS; typedef struct _NVE_AUDIO_SETTINGS { BOOL bEnable; ULONG uAudioCodec; ULONG uGain; WAVEFORMATEX Wfx; } NVE_AUDIO_SETTINGS; typedef struct _NVE_MD_SETTINGS { BOOL bEnable; ULONG uSensitivity; } NVE_MD_SETTINGS; #define NVE_NUM_OF_MULTICAST_TYPE 3 #define NVE_IDX_MULTICAST_VIDEO 0 #define NVE_IDX_MULTICAST_AUDIO 1 #define NVE_IDX_MULTICAST_EVENT 2 typedef struct _NVE_MULTICAST_SETTINGS { char szType[NVE_SHORT_STR_LENGTH]; BOOL bEnable; char szAddress[NVE_MAX_STR_LENGTH]; ULONG uPort; ULONG uTTL; } NVE_MULTICAST_SETTINGS; typedef struct _NVE_MEDIA_SETTINGS { NVE_VIDEO_SETTINGS VideoSettings; NVE_CODEC_SETTINGS CodecSettings; NVE_AUDIO_SETTINGS AudioSettings; NVE_AUDIO_SETTINGS AudioOutSettings; NVE_MD_SETTINGS MDSettings; NVE_MULTICAST_SETTINGS MulticastSettings[NVE_NUM_OF_MULTICAST_TYPE]; } NVE_MEDIA_SETTINGS; #define MAX_LAYER_COUNT 3 #define MAX_RECT_COUNT 8 typedef struct _NVE_MD_INFO { COD5_MD_INFO Info; COD5_MD_AREA_RECT Rect[MAX_RECT_COUNT]; BOOL bRect[MAX_RECT_COUNT]; } NVE_MD_INFO; typedef struct _MD_INFO_COUNT { UINT uMDCount; WORD wWidth; WORD wHeight; // bitmap.... } MD_INFO_COUNT; typedef struct _MD_INFO_CONTINUOUS { UINT uMDCount; WORD wWidth, wHeight; WORD wRoiMBCount[MAX_RECT_COUNT+1]; } MD_INFO_CONTINUOUS; #endif // __NVEDEF_H__