資源簡介
包括了GB28181的服務端源碼,稍做修改,可用于商用,有SPI和RTP包封包等功能,支持2011版本。2016稍做修改,即可支持
代碼片段和文件信息
#include?“GB28181Sdk.h“
#include?
#include?
#include?“LogDef.h“
#ifdef?_MSC_VER
#define?strcasecmp??_stricmp
#define?strncasecmp??_strnicmp?
#endif
void?ShowUsage()
{
printf(“Command?Usage:\n“);
printf(“\thelp\n“);
printf(“\tadddevice?[DevID]?[Password]\n“);
printf(“\tshowdevice\n“);
printf(“\tshowcall\n“);
printf(“\tplay?[DevID]?[SubID]\n“);
printf(“\tstopplay?[PlayHandle]\n“);
printf(“\texit\n“);
}
#include?
typedef?struct?Device
{
char?szDeviceID[21];
std::list?lstSubDevices;
}Device;
std::list?lstDevice;
std::list?lstCall;
void?GB28181_MsgCallbackFunc(int?iMsgType?void?*?pData?void?*?pUserData)
{
printf(“GB28181_MsgCallbackFunc?type?==?%d?\n“?iMsgType);
switch?(iMsgType)
{
case?GB28181SDK_MSG_TYPE_REGISTER_SUCCEED:
{
Device?tDev;
RegisterInfo?*?pRegisterInfo?=?(RegisterInfo?*)pData;
memset(&tDev.szDeviceID?0?sizeof(tDev.szDeviceID));
strncpy(tDev.szDeviceID?pRegisterInfo->szDeviceID?sizeof(tDev.szDeviceID)?-?1);
lstDevice.push_back(tDev);
}
break;
case?GB28181SDK_MSG_TYPE_GET_CATALOG:
{
Catalog?*?pCatalog?=?(Catalog*)pData;
std::list::iterator?it?=?lstDevice.begin();
for?(;?it?!=?lstDevice.end();?it++)
{
if?(strcmp(pCatalog->szDeviceID?(*it).szDeviceID)?==?0)
{
break;
}
}
????????????
for?(int?i?=?0;?i?iItemNum;?i++)
{
Device?tDev;
????????????????bool?bID;
????????????????bID?=?false;
????????????
memset(&tDev.szDeviceID?0?sizeof(tDev.szDeviceID));
strncpy(tDev.szDeviceID?pCatalog->tCatalogItems[i].szDeviceID?sizeof(tDev.szDeviceID)?-?1);
std::list::iterator?it1=(*it).lstSubDevices.begin();
for?(;?it1?!=?(*it).lstSubDevices.end();?it1++)
{
????????????????????if?(strcmp(tDev.szDeviceID?(*it1).szDeviceID)?==?0)
????????????????????{
????????????????????????bID?=?true;
????????????????????????break;
????????????????????}
}
????????????????if(!bID)
{
???(*it).lstSubDevices.push_back(tDev);
????????????????}
}
}
break;
case?GB28181SDK_MSG_TYPE_GET_DEVICEINFO:
{
}
break;
case?GB28181SDK_MSG_TYPE_GET_DEVICESTATUS:
{
}
break;
case?GB28181SDK_MSG_TYPE_PLAY_SUCCEED:
{
PlaySucceedParam?*?pPlaySucceedParam?=?(PlaySucceedParam*)pData;
}
break;
default:
break;
}
}
void?GB28181_VideoStreamCallbackFunc(int?iHandle?int?iStreamCode?char?*streamIP?int?isKeyframe?int64_t?pts?char?*?pframeData?int?iframeLength?void?*?pUserData)
{
//printf(“GB28181_VideoStreamCallbackFunc?Length=%d\n“?iframeLength);
//if(!isKeyframe)
do{
int?keyframe?=?-1;
????????unsigned?char?type=0;
????????if?(!pframeData[0]?&&?!pframeData[1])
????????{
????????????if?(0x1?==?pframeData[2])
????????????{
????????????????type?=?pframeData[3];
????????????}
????????????else?if?(!pframeData[2]?&&?0x1
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????72960??2017-10-19?17:24??gb28181sdk\Demo\audio_1.g711
?????文件????1611818??2020-07-28?15:01??gb28181sdk\Demo\Demo
?????文件???????4929??2017-10-19?17:02??gb28181sdk\Demo\Demo.vcxproj
?????文件????????945??2017-10-19?17:02??gb28181sdk\Demo\Demo.vcxproj.filters
?????文件????????165??2017-10-19?17:02??gb28181sdk\Demo\Demo.vcxproj.user
?????文件???????7835??2020-07-28?15:01??gb28181sdk\Demo\main.cpp
?????文件??????53160??2020-07-28?15:01??gb28181sdk\Demo\main.o
?????文件???????2451??2017-10-23?14:34??gb28181sdk\Demo\Makefile
?????文件???14075961??2020-07-28?15:03??gb28181sdk\Demo\video_1.h264
?????文件???????2581??2017-09-27?13:43??gb28181sdk\GB28181Sdk\CheckHeartBeatThread.cpp
?????文件????????984??2017-09-27?13:43??gb28181sdk\GB28181Sdk\CheckHeartBeatThread.h
?????文件????????299??2017-09-27?13:43??gb28181sdk\GB28181Sdk\DEMUX\AUDEC_CodecID.h
?????文件????????524??2017-10-23?14:22??gb28181sdk\GB28181Sdk\DEMUX\demux.h
?????文件??????20433??2017-10-23?16:26??gb28181sdk\GB28181Sdk\DEMUX\demux_ps.cpp
?????文件???????6658??2017-10-23?16:24??gb28181sdk\GB28181Sdk\DEMUX\demux_ps.h
?????文件???????1907??2017-09-27?13:43??gb28181sdk\GB28181Sdk\DEMUX\mpeg.h
?????文件????????182??2017-09-27?13:43??gb28181sdk\GB28181Sdk\DEMUX\VIDEC_CodecDef.h
?????文件???????8596??2017-10-30?13:43??gb28181sdk\GB28181Sdk\digcalc.cpp
?????文件???????1667??2017-09-27?13:43??gb28181sdk\GB28181Sdk\digcalc.h
?????文件????????163??2017-10-19?16:42??gb28181sdk\GB28181Sdk\DLibrary\DAutoLock.cpp
?????文件????????164??2017-10-19?16:42??gb28181sdk\GB28181Sdk\DLibrary\DAutoLock.h
?????文件?????????78??2017-10-19?16:42??gb28181sdk\GB28181Sdk\DLibrary\DEvent.cpp
?????文件?????????79??2017-10-19?16:42??gb28181sdk\GB28181Sdk\DLibrary\DEvent.h
?????文件????????248??2017-10-19?16:42??gb28181sdk\GB28181Sdk\DLibrary\DExport.cpp
?????文件????????390??2017-10-19?16:42??gb28181sdk\GB28181Sdk\DLibrary\DExport.h
?????文件????????860??2017-10-19?16:42??gb28181sdk\GB28181Sdk\DLibrary\DMutex.cpp
?????文件????????368??2017-10-19?16:42??gb28181sdk\GB28181Sdk\DLibrary\DMutex.h
?????文件???????1066??2017-10-19?16:42??gb28181sdk\GB28181Sdk\DLibrary\DThread.cpp
?????文件????????571??2017-10-19?16:42??gb28181sdk\GB28181Sdk\DLibrary\DThread.h
?????文件???????3531??2017-10-19?16:42??gb28181sdk\GB28181Sdk\DLibrary\DThreadPool.cpp
............此處省略146個文件信息
評論
共有 條評論