123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- #ifndef _HC_EHOME_STREAM_H_
- #define _HC_EHOME_STREAM_H_
- #include "HCEHomePublic.h"
- typedef struct tagNET_EHOME_NEWLINK_CB_MSG
- {
- BYTE szDeviceID[MAX_DEVICE_ID_LEN]; //设备标示符
- LONG iSessionID; //设备分配给该取流会话的ID
- DWORD dwChannelNo; //设备通道号
- BYTE byStreamType; //0-主码流,1-子码流
- BYTE byRes1[3];
- char sDeviceSerial[NET_EHOME_SERIAL_LEN]; //设备序列号,数字序列号
- BYTE byRes[112];
- }NET_EHOME_NEWLINK_CB_MSG, *LPNET_EHOME_NEWLINK_CB_MSG;
- typedef BOOL (CALLBACK *PREVIEW_NEWLINK_CB)(LONG lLinkHandle, NET_EHOME_NEWLINK_CB_MSG *pNewLinkCBMsg, void *pUserData);
- typedef struct tagNET_EHOME_LISTEN_PREVIEW_CFG
- {
- NET_EHOME_IPADDRESS struIPAdress; //本地监听信息,IP为0.0.0.0的情况下,默认为本地地址,多个网卡的情况下,默认为从操作系统获取到的第一个
- PREVIEW_NEWLINK_CB fnNewLinkCB; //预览请求回调函数,当收到预览连接请求后,SDK会回调该回调函数。
- void* pUser; // 用户参数,在fnNewLinkCB中返回出来
- BYTE byLinkMode; //0:TCP,1:UDP 2: HRUDP方式
- BYTE byRes[127];
- }NET_EHOME_LISTEN_PREVIEW_CFG, *LPNET_EHOME_LISTEN_PREVIEW_CFG;
- typedef struct tagNET_EHOME_PREVIEW_CB_MSG
- {
- BYTE byDataType; //NET_DVR_SYSHEAD(1)-码流头,NET_DVR_STREAMDATA(2)-码流数据
- BYTE byRes1[3];
- void *pRecvdata; //码流头或者数据
- DWORD dwDataLen; //数据长度
- BYTE byRes2[128];
- }NET_EHOME_PREVIEW_CB_MSG, *LPNET_EHOME_PREVIEW_CB_MSG;
- typedef void(CALLBACK *PREVIEW_DATA_CB)( LONG iPreviewHandle, NET_EHOME_PREVIEW_CB_MSG *pPreviewCBMsg, void *pUserData);
- typedef struct tagNET_EHOME_PREVIEW_DATA_CB_PARAM
- {
- PREVIEW_DATA_CB fnPreviewDataCB; //数据回调函数
- void *pUserData; //用户参数, 在fnPreviewDataCB回调出来
- BYTE byStreamFormat; //封装格式:0- PS
- BYTE byRes[127]; //保留
- }NET_EHOME_PREVIEW_DATA_CB_PARAM, *LPNET_EHOME_PREVIEW_DATA_CB_PARAM;
- NET_DVR_API BOOL CALLBACK NET_ESTREAM_Init();
- NET_DVR_API BOOL CALLBACK NET_ESTREAM_Fini();
- NET_DVR_API BOOL CALLBACK NET_ESTREAM_GetLastError();
- NET_DVR_API BOOL CALLBACK NET_ESTREAM_SetExceptionCallBack(DWORD dwMessage, HANDLE hWnd, void (CALLBACK* fExceptionCallBack)(DWORD dwType, LONG iUserID, LONG iHandle, void* pUser), void* pUser );
- NET_DVR_API BOOL CALLBACK NET_ESTREAM_SetLogToFile( LONG iLogLevel, char *strLogDir, BOOL bAutoDel );
- //获取版本号
- NET_DVR_API DWORD CALLBACK NET_ESTREAM_GetBuildVersion();
- NET_DVR_API LONG CALLBACK NET_ESTREAM_StartListenPreview(LPNET_EHOME_LISTEN_PREVIEW_CFG pListenParam);
- NET_DVR_API BOOL CALLBACK NET_ESTREAM_StopListenPreview(LONG iListenHandle);
- NET_DVR_API BOOL CALLBACK NET_ESTREAM_StopPreview(LONG iPreviewHandle);
- NET_DVR_API BOOL CALLBACK NET_ESTREAM_SetPreviewDataCB(LONG iHandle, LPNET_EHOME_PREVIEW_DATA_CB_PARAM pStruCBParam);
- NET_DVR_API BOOL CALLBACK NET_ESTREAM_SetStandardPreviewDataCB(LONG iHandle, LPNET_EHOME_PREVIEW_DATA_CB_PARAM pStruCBParam);
- #define NET_EHOME_DEVICEID_LEN 256 //设备ID长度
- typedef struct tagNET_EHOME_PLAYBACK_NEWLINK_CB_INFO
- {
- char szDeviceID[NET_EHOME_DEVICEID_LEN]; //设备标示符
- LONG lSessionID; //设备分配给该回放会话的ID,0表示无效
- DWORD dwChannelNo; //设备通道号,0表示无效
- char sDeviceSerial[NET_EHOME_SERIAL_LEN/*12*/]; //设备序列号,数字序列号
- BYTE byRes[108];
- }NET_EHOME_PLAYBACK_NEWLINK_CB_INFO, *LPNET_EHOME_PLAYBACK_NEWLINK_CB_INFO;
- typedef BOOL (CALLBACK *PLAYBACK_NEWLINK_CB)(LONG lPlayBackLinkHandle, NET_EHOME_PLAYBACK_NEWLINK_CB_INFO *pNewLinkCBInfo, void* pUserData);
- typedef struct tagNET_EHOME_PLAYBACK_LISTEN_PARAM
- {
- NET_EHOME_IPADDRESS struIPAdress; //本地监听信息,IP为0.0.0.0的情况下,默认为本地地址,
- //多个网卡的情况下,默认为从操作系统获取到的第一个
- PLAYBACK_NEWLINK_CB fnNewLinkCB; //回放新连接回调函数
- void* pUserData; //用户参数,在fnNewLinkCB中返回出来
- BYTE byLinkMode; //0:TCP,1:UDP (UDP保留)
- BYTE byRes[127];
- }NET_EHOME_PLAYBACK_LISTEN_PARAM, *LPNET_EHOME_PLAYBACK_LISTEN_PARAM;
- typedef struct tagNET_EHOME_PLAYBACK_DATA_CB_INFO
- {
- DWORD dwType; //类型 0-头信息 1-码流数据
- BYTE *pData; //数据指针
- DWORD dwDataLen; //数据长度
- BYTE byRes[128]; //保留
- }NET_EHOME_PLAYBACK_DATA_CB_INFO, *LPNET_EHOME_PLAYBACK_DATA_CB_INFO;
- typedef BOOL (CALLBACK *PLAYBACK_DATA_CB)(LONG iPlayBackLinkHandle, NET_EHOME_PLAYBACK_DATA_CB_INFO *pDataCBInfo, void* pUserData);
- typedef struct tagNET_EHOME_PLAYBACK_DATA_CB_PARAM
- {
- PLAYBACK_DATA_CB fnPlayBackDataCB; //数据回调函数
- void* pUserData; //用户参数, 在fnPlayBackDataCB回调出来
- BYTE byStreamFormat; //码流封装格式:0-PS 1-RTP
- BYTE byRes[127]; //保留
- }NET_EHOME_PLAYBACK_DATA_CB_PARAM, *LPNET_EHOME_PLAYBACK_DATA_CB_PARAM;
- #define EHOME_PREVIEW_EXCEPTION 0x102 //预览取流异常
- #define EHOME_PLAYBACK_EXCEPTION 0x103 //回放取流异常
- #define EHOME_AUDIOTALK_EXCEPTION 0x104 //语音对讲取流异常
- #define NET_EHOME_SYSHEAD 1 //系统头数据
- #define NET_EHOME_STREAMDATA 2 //视频流数据
- NET_DVR_API LONG CALLBACK NET_ESTREAM_StartListenPlayBack(LPNET_EHOME_PLAYBACK_LISTEN_PARAM pListenParam);
- NET_DVR_API BOOL CALLBACK NET_ESTREAM_SetPlayBackDataCB(LONG iPlayBackLinkHandle, NET_EHOME_PLAYBACK_DATA_CB_PARAM *pDataCBParam);
- NET_DVR_API BOOL CALLBACK NET_ESTREAM_StopPlayBack(LONG iPlayBackLinkHandle);
- NET_DVR_API BOOL CALLBACK NET_ESTREAM_StopListenPlayBack(LONG iPlaybackListenHandle);
- //--------------------------------------------------------------------------------------------------------------
- #define NET_EHOME_DEVICEID_LEN 256 //设备ID长度
- #define NET_EHOME_SERIAL_LEN 12
- typedef struct tagNET_EHOME_VOICETALK_NEWLINK_CB_INFO
- {
- BYTE szDeviceID[NET_EHOME_DEVICEID_LEN/*256*/]; //设备标示符
- DWORD dwEncodeType; // //SDK赋值,当前对讲设备的语音编码类型,0- OggVorbis,1-G711U,2-G711A,3-G726,4-AAC,5-MP2L2,6-PCM
- char sDeviceSerial[NET_EHOME_SERIAL_LEN/*12*/]; //设备序列号,数字序列号
- DWORD dwAudioChan; //对讲通道
- LONG lSessionID; //设备分配给该回放会话的ID,0表示无效
- BYTE byToken[64];
- BYTE byRes[64];
- } NET_EHOME_VOICETALK_NEWLINK_CB_INFO, *LPNET_EHOME_VOICETALK_NEWLINK_CB_INFO;
- typedef BOOL (CALLBACK *VOICETALK_NEWLINK_CB)(LONG lHandle, NET_EHOME_VOICETALK_NEWLINK_CB_INFO *pNewLinkCBInfo, void* pUserData);
- typedef struct tagNET_EHOME_LISTEN_VOICETALK_CFG
- {
- NET_EHOME_IPADDRESS struIPAdress; //本地监听信息,IP为0.0.0.0的情况下,默认为本地地址,
- //多个网卡的情况下,默认为从操作系统获取到的第一个
- VOICETALK_NEWLINK_CB fnNewLinkCB; //新连接回调函数
- void* pUser; //用户参数,在fnNewLinkCB中返回出来
- BYTE byRes[128];
- }NET_EHOME_LISTEN_VOICETALK_CFG, *LPNET_EHOME_LISTEN_VOICETALK_CFG;
- typedef struct tagNET_EHOME_VOICETALK_DATA_CB_INFO
- {
- BYTE *pData; //数据指针
- DWORD dwDataLen; //数据长度
- BYTE byRes[128]; //保留
- }NET_EHOME_VOICETALK_DATA_CB_INFO, *LPNET_EHOME_VOICETALK_DATA_CB_INFO;
- typedef BOOL (CALLBACK *VOICETALK_DATA_CB)(LONG lHandle, NET_EHOME_VOICETALK_DATA_CB_INFO *pDataCBInfo, void* pUserData);
- typedef struct tagNET_EHOME_VOICETALK_DATA_CB_PARAM
- {
- VOICETALK_DATA_CB fnVoiceTalkDataCB; //数据回调函数
- void *pUserData; //用户参数, 在fnVoiceTalkDataCB回调出来
- BYTE byRes[128]; //保留
- }NET_EHOME_VOICETALK_DATA_CB_PARAM, *LPNET_EHOME_VOICETALK_DATA_CB_PARAM;
- typedef struct tagNET_EHOME_VOICETALK_DATA
- {
- BYTE *pSendBuf; //音频数据缓冲区
- DWORD dwDataLen; //音频数据长度
- BYTE byRes[128]; //保留
- }NET_EHOME_VOICETALK_DATA, *LPNET_EHOME_VOICETALK_DATA;
- NET_DVR_API LONG CALLBACK NET_ESTREAM_StartListenVoiceTalk(LPNET_EHOME_LISTEN_VOICETALK_CFG pListenParam);
- NET_DVR_API BOOL CALLBACK NET_ESTREAM_StopListenVoiceTalk(LONG lListenHandle);
- NET_DVR_API BOOL CALLBACK NET_ESTREAM_SetVoiceTalkDataCB(LONG lHandle, LPNET_EHOME_VOICETALK_DATA_CB_PARAM pStruCBParam);
- NET_DVR_API LONG CALLBACK NET_ESTREAM_SendVoiceTalkData (LONG lHandle, LPNET_EHOME_VOICETALK_DATA pVoicTalkData);
- NET_DVR_API BOOL CALLBACK NET_ESTREAM_StopVoiceTalk(LONG lHandle);
- NET_DVR_API BOOL CALLBACK NET_ESTREAM_SetSDKLocalCfg(NET_EHOME_LOCAL_CFG_TYPE enumType, void* const lpInBuff);
- NET_DVR_API BOOL CALLBACK NET_ESTREAM_GetSDKLocalCfg(NET_EHOME_LOCAL_CFG_TYPE enumType, void *lpOutBuff);
- #endif //_HC_EHOME_STREAM_H_
|