HCEHomeStream.h 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. #ifndef _HC_EHOME_STREAM_H_
  2. #define _HC_EHOME_STREAM_H_
  3. #include "HCEHomePublic.h"
  4. typedef struct tagNET_EHOME_NEWLINK_CB_MSG
  5. {
  6. BYTE szDeviceID[MAX_DEVICE_ID_LEN]; //设备标示符
  7. LONG iSessionID; //设备分配给该取流会话的ID
  8. DWORD dwChannelNo; //设备通道号
  9. BYTE byStreamType; //0-主码流,1-子码流
  10. BYTE byRes1[3];
  11. char sDeviceSerial[NET_EHOME_SERIAL_LEN]; //设备序列号,数字序列号
  12. BYTE byRes[112];
  13. }NET_EHOME_NEWLINK_CB_MSG, *LPNET_EHOME_NEWLINK_CB_MSG;
  14. typedef BOOL (CALLBACK *PREVIEW_NEWLINK_CB)(LONG lLinkHandle, NET_EHOME_NEWLINK_CB_MSG *pNewLinkCBMsg, void *pUserData);
  15. typedef struct tagNET_EHOME_LISTEN_PREVIEW_CFG
  16. {
  17. NET_EHOME_IPADDRESS struIPAdress; //本地监听信息,IP为0.0.0.0的情况下,默认为本地地址,多个网卡的情况下,默认为从操作系统获取到的第一个
  18. PREVIEW_NEWLINK_CB fnNewLinkCB; //预览请求回调函数,当收到预览连接请求后,SDK会回调该回调函数。
  19. void* pUser; // 用户参数,在fnNewLinkCB中返回出来
  20. BYTE byLinkMode; //0:TCP,1:UDP 2: HRUDP方式
  21. BYTE byRes[127];
  22. }NET_EHOME_LISTEN_PREVIEW_CFG, *LPNET_EHOME_LISTEN_PREVIEW_CFG;
  23. typedef struct tagNET_EHOME_PREVIEW_CB_MSG
  24. {
  25. BYTE byDataType; //NET_DVR_SYSHEAD(1)-码流头,NET_DVR_STREAMDATA(2)-码流数据
  26. BYTE byRes1[3];
  27. void *pRecvdata; //码流头或者数据
  28. DWORD dwDataLen; //数据长度
  29. BYTE byRes2[128];
  30. }NET_EHOME_PREVIEW_CB_MSG, *LPNET_EHOME_PREVIEW_CB_MSG;
  31. typedef void(CALLBACK *PREVIEW_DATA_CB)( LONG iPreviewHandle, NET_EHOME_PREVIEW_CB_MSG *pPreviewCBMsg, void *pUserData);
  32. typedef struct tagNET_EHOME_PREVIEW_DATA_CB_PARAM
  33. {
  34. PREVIEW_DATA_CB fnPreviewDataCB; //数据回调函数
  35. void *pUserData; //用户参数, 在fnPreviewDataCB回调出来
  36. BYTE byStreamFormat; //封装格式:0- PS
  37. BYTE byRes[127]; //保留
  38. }NET_EHOME_PREVIEW_DATA_CB_PARAM, *LPNET_EHOME_PREVIEW_DATA_CB_PARAM;
  39. NET_DVR_API BOOL CALLBACK NET_ESTREAM_Init();
  40. NET_DVR_API BOOL CALLBACK NET_ESTREAM_Fini();
  41. NET_DVR_API BOOL CALLBACK NET_ESTREAM_GetLastError();
  42. 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 );
  43. NET_DVR_API BOOL CALLBACK NET_ESTREAM_SetLogToFile( LONG iLogLevel, char *strLogDir, BOOL bAutoDel );
  44. //获取版本号
  45. NET_DVR_API DWORD CALLBACK NET_ESTREAM_GetBuildVersion();
  46. NET_DVR_API LONG CALLBACK NET_ESTREAM_StartListenPreview(LPNET_EHOME_LISTEN_PREVIEW_CFG pListenParam);
  47. NET_DVR_API BOOL CALLBACK NET_ESTREAM_StopListenPreview(LONG iListenHandle);
  48. NET_DVR_API BOOL CALLBACK NET_ESTREAM_StopPreview(LONG iPreviewHandle);
  49. NET_DVR_API BOOL CALLBACK NET_ESTREAM_SetPreviewDataCB(LONG iHandle, LPNET_EHOME_PREVIEW_DATA_CB_PARAM pStruCBParam);
  50. NET_DVR_API BOOL CALLBACK NET_ESTREAM_SetStandardPreviewDataCB(LONG iHandle, LPNET_EHOME_PREVIEW_DATA_CB_PARAM pStruCBParam);
  51. #define NET_EHOME_DEVICEID_LEN 256 //设备ID长度
  52. typedef struct tagNET_EHOME_PLAYBACK_NEWLINK_CB_INFO
  53. {
  54. char szDeviceID[NET_EHOME_DEVICEID_LEN]; //设备标示符
  55. LONG lSessionID; //设备分配给该回放会话的ID,0表示无效
  56. DWORD dwChannelNo; //设备通道号,0表示无效
  57. char sDeviceSerial[NET_EHOME_SERIAL_LEN/*12*/]; //设备序列号,数字序列号
  58. BYTE byRes[108];
  59. }NET_EHOME_PLAYBACK_NEWLINK_CB_INFO, *LPNET_EHOME_PLAYBACK_NEWLINK_CB_INFO;
  60. typedef BOOL (CALLBACK *PLAYBACK_NEWLINK_CB)(LONG lPlayBackLinkHandle, NET_EHOME_PLAYBACK_NEWLINK_CB_INFO *pNewLinkCBInfo, void* pUserData);
  61. typedef struct tagNET_EHOME_PLAYBACK_LISTEN_PARAM
  62. {
  63. NET_EHOME_IPADDRESS struIPAdress; //本地监听信息,IP为0.0.0.0的情况下,默认为本地地址,
  64. //多个网卡的情况下,默认为从操作系统获取到的第一个
  65. PLAYBACK_NEWLINK_CB fnNewLinkCB; //回放新连接回调函数
  66. void* pUserData; //用户参数,在fnNewLinkCB中返回出来
  67. BYTE byLinkMode; //0:TCP,1:UDP (UDP保留)
  68. BYTE byRes[127];
  69. }NET_EHOME_PLAYBACK_LISTEN_PARAM, *LPNET_EHOME_PLAYBACK_LISTEN_PARAM;
  70. typedef struct tagNET_EHOME_PLAYBACK_DATA_CB_INFO
  71. {
  72. DWORD dwType; //类型 0-头信息 1-码流数据
  73. BYTE *pData; //数据指针
  74. DWORD dwDataLen; //数据长度
  75. BYTE byRes[128]; //保留
  76. }NET_EHOME_PLAYBACK_DATA_CB_INFO, *LPNET_EHOME_PLAYBACK_DATA_CB_INFO;
  77. typedef BOOL (CALLBACK *PLAYBACK_DATA_CB)(LONG iPlayBackLinkHandle, NET_EHOME_PLAYBACK_DATA_CB_INFO *pDataCBInfo, void* pUserData);
  78. typedef struct tagNET_EHOME_PLAYBACK_DATA_CB_PARAM
  79. {
  80. PLAYBACK_DATA_CB fnPlayBackDataCB; //数据回调函数
  81. void* pUserData; //用户参数, 在fnPlayBackDataCB回调出来
  82. BYTE byStreamFormat; //码流封装格式:0-PS 1-RTP
  83. BYTE byRes[127]; //保留
  84. }NET_EHOME_PLAYBACK_DATA_CB_PARAM, *LPNET_EHOME_PLAYBACK_DATA_CB_PARAM;
  85. #define EHOME_PREVIEW_EXCEPTION 0x102 //预览取流异常
  86. #define EHOME_PLAYBACK_EXCEPTION 0x103 //回放取流异常
  87. #define EHOME_AUDIOTALK_EXCEPTION 0x104 //语音对讲取流异常
  88. #define NET_EHOME_SYSHEAD 1 //系统头数据
  89. #define NET_EHOME_STREAMDATA 2 //视频流数据
  90. NET_DVR_API LONG CALLBACK NET_ESTREAM_StartListenPlayBack(LPNET_EHOME_PLAYBACK_LISTEN_PARAM pListenParam);
  91. NET_DVR_API BOOL CALLBACK NET_ESTREAM_SetPlayBackDataCB(LONG iPlayBackLinkHandle, NET_EHOME_PLAYBACK_DATA_CB_PARAM *pDataCBParam);
  92. NET_DVR_API BOOL CALLBACK NET_ESTREAM_StopPlayBack(LONG iPlayBackLinkHandle);
  93. NET_DVR_API BOOL CALLBACK NET_ESTREAM_StopListenPlayBack(LONG iPlaybackListenHandle);
  94. //--------------------------------------------------------------------------------------------------------------
  95. #define NET_EHOME_DEVICEID_LEN 256 //设备ID长度
  96. #define NET_EHOME_SERIAL_LEN 12
  97. typedef struct tagNET_EHOME_VOICETALK_NEWLINK_CB_INFO
  98. {
  99. BYTE szDeviceID[NET_EHOME_DEVICEID_LEN/*256*/]; //设备标示符
  100. DWORD dwEncodeType; // //SDK赋值,当前对讲设备的语音编码类型,0- OggVorbis,1-G711U,2-G711A,3-G726,4-AAC,5-MP2L2,6-PCM
  101. char sDeviceSerial[NET_EHOME_SERIAL_LEN/*12*/]; //设备序列号,数字序列号
  102. DWORD dwAudioChan; //对讲通道
  103. LONG lSessionID; //设备分配给该回放会话的ID,0表示无效
  104. BYTE byToken[64];
  105. BYTE byRes[64];
  106. } NET_EHOME_VOICETALK_NEWLINK_CB_INFO, *LPNET_EHOME_VOICETALK_NEWLINK_CB_INFO;
  107. typedef BOOL (CALLBACK *VOICETALK_NEWLINK_CB)(LONG lHandle, NET_EHOME_VOICETALK_NEWLINK_CB_INFO *pNewLinkCBInfo, void* pUserData);
  108. typedef struct tagNET_EHOME_LISTEN_VOICETALK_CFG
  109. {
  110. NET_EHOME_IPADDRESS struIPAdress; //本地监听信息,IP为0.0.0.0的情况下,默认为本地地址,
  111. //多个网卡的情况下,默认为从操作系统获取到的第一个
  112. VOICETALK_NEWLINK_CB fnNewLinkCB; //新连接回调函数
  113. void* pUser; //用户参数,在fnNewLinkCB中返回出来
  114. BYTE byRes[128];
  115. }NET_EHOME_LISTEN_VOICETALK_CFG, *LPNET_EHOME_LISTEN_VOICETALK_CFG;
  116. typedef struct tagNET_EHOME_VOICETALK_DATA_CB_INFO
  117. {
  118. BYTE *pData; //数据指针
  119. DWORD dwDataLen; //数据长度
  120. BYTE byRes[128]; //保留
  121. }NET_EHOME_VOICETALK_DATA_CB_INFO, *LPNET_EHOME_VOICETALK_DATA_CB_INFO;
  122. typedef BOOL (CALLBACK *VOICETALK_DATA_CB)(LONG lHandle, NET_EHOME_VOICETALK_DATA_CB_INFO *pDataCBInfo, void* pUserData);
  123. typedef struct tagNET_EHOME_VOICETALK_DATA_CB_PARAM
  124. {
  125. VOICETALK_DATA_CB fnVoiceTalkDataCB; //数据回调函数
  126. void *pUserData; //用户参数, 在fnVoiceTalkDataCB回调出来
  127. BYTE byRes[128]; //保留
  128. }NET_EHOME_VOICETALK_DATA_CB_PARAM, *LPNET_EHOME_VOICETALK_DATA_CB_PARAM;
  129. typedef struct tagNET_EHOME_VOICETALK_DATA
  130. {
  131. BYTE *pSendBuf; //音频数据缓冲区
  132. DWORD dwDataLen; //音频数据长度
  133. BYTE byRes[128]; //保留
  134. }NET_EHOME_VOICETALK_DATA, *LPNET_EHOME_VOICETALK_DATA;
  135. NET_DVR_API LONG CALLBACK NET_ESTREAM_StartListenVoiceTalk(LPNET_EHOME_LISTEN_VOICETALK_CFG pListenParam);
  136. NET_DVR_API BOOL CALLBACK NET_ESTREAM_StopListenVoiceTalk(LONG lListenHandle);
  137. NET_DVR_API BOOL CALLBACK NET_ESTREAM_SetVoiceTalkDataCB(LONG lHandle, LPNET_EHOME_VOICETALK_DATA_CB_PARAM pStruCBParam);
  138. NET_DVR_API LONG CALLBACK NET_ESTREAM_SendVoiceTalkData (LONG lHandle, LPNET_EHOME_VOICETALK_DATA pVoicTalkData);
  139. NET_DVR_API BOOL CALLBACK NET_ESTREAM_StopVoiceTalk(LONG lHandle);
  140. NET_DVR_API BOOL CALLBACK NET_ESTREAM_SetSDKLocalCfg(NET_EHOME_LOCAL_CFG_TYPE enumType, void* const lpInBuff);
  141. NET_DVR_API BOOL CALLBACK NET_ESTREAM_GetSDKLocalCfg(NET_EHOME_LOCAL_CFG_TYPE enumType, void *lpOutBuff);
  142. #endif //_HC_EHOME_STREAM_H_