Skip to content

Commit e13276f

Browse files
committed
added:webrtc push stream whip protocol support
1 parent 090f269 commit e13276f

9 files changed

Lines changed: 398 additions & 6 deletions

File tree

XEngine_Source/XEngine_ServiceApp/XEngine_StreamMediaApp/Makefile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ LIB = -lXEngine_BaseLib -lXEngine_Algorithm \
1515
-ljsoncpp -lXEngine_InfoReport
1616
LIBEX =
1717
OBJECTS = PullStream_ClientGet.o PullStream_ClientRtsp.o PullStream_ClientWebRtc.o \
18-
PushStream_JT1078Task.o PushStream_RTMPTask.o PushStream_XStreamTask.o PushStream_SrtTask.o \
18+
PushStream_JT1078Task.o PushStream_RTMPTask.o PushStream_XStreamTask.o PushStream_SrtTask.o PushStream_ClientWebRtc.o \
1919
StreamMedia_HTTPApi.o \
2020
XEngine_AVPacket.o XEngine_Configure.o XEngine_HttpTask.o XEngine_Network.o XEngine_StreamMediaApp.o
2121

@@ -72,6 +72,8 @@ PushStream_RTMPTask.o:./StreamMedia_PushStream/PushStream_RTMPTask.cpp
7272
$(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./StreamMedia_PushStream/PushStream_RTMPTask.cpp
7373
PushStream_SrtTask.o:./StreamMedia_PushStream/PushStream_SrtTask.cpp
7474
$(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./StreamMedia_PushStream/PushStream_SrtTask.cpp
75+
PushStream_ClientWebRtc.o:./StreamMedia_PushStream/PushStream_ClientWebRtc.cpp
76+
$(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./StreamMedia_PushStream/PushStream_ClientWebRtc.cpp
7577

7678
StreamMedia_HTTPApi.o:./StreamMedia_HTTPApi/StreamMedia_HTTPApi.cpp
7779
$(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./StreamMedia_HTTPApi/StreamMedia_HTTPApi.cpp

XEngine_Source/XEngine_ServiceApp/XEngine_StreamMediaApp/StreamMedia_PullStream/PullStream_ClientWebRtc.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ bool PullStream_ClientWebRtc_SDKPacket(XNETHANDLE xhPacket, LPCXSTR lpszClientID
223223
BaseLib_Memory_Free((XPPPMEM)&pptszAVList, 1);
224224
return true;
225225
}
226-
bool PullStream_ClientWebRtc_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen)
226+
bool PullStream_ClientWhep_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen)
227227
{
228228
int nRVLen = 0;
229229
int nSDLen = 0;

XEngine_Source/XEngine_ServiceApp/XEngine_StreamMediaApp/StreamMedia_PullStream/PullStream_ClientWebRtc.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@
1111
// History:
1212
*********************************************************************/
1313
bool PullStream_ClientProtocol_Handle(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszMsgBuffer, int nMsgLen);
14-
bool PullStream_ClientWebRtc_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen);
14+
bool PullStream_ClientWhep_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen);

XEngine_Source/XEngine_ServiceApp/XEngine_StreamMediaApp/StreamMedia_PushStream/PushStream_ClientWebRtc.cpp

Lines changed: 357 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#pragma once
2+
/********************************************************************
3+
// Created: 2025/07/25 10:24:09
4+
// File Name: D:\XEngine_StreamMedia\XEngine_Source\XEngine_ServiceApp\XEngine_StreamMediaApp\StreamMedia_PushStream\PushStream_ClientWebRtc.h
5+
// File Path: D:\XEngine_StreamMedia\XEngine_Source\XEngine_ServiceApp\XEngine_StreamMediaApp\StreamMedia_PushStream
6+
// File Base: PushStream_ClientWebRtc
7+
// File Ext: h
8+
// Project: XEngine
9+
// Author: qyt
10+
// Purpose: WEBRTC推流服务
11+
// History:
12+
*********************************************************************/
13+
bool PushStream_ClientProtocol_Handle(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszMsgBuffer, int nMsgLen);
14+
bool PushStream_ClientWebRtc_SDKPacket(XNETHANDLE xhPacket, LPCXSTR lpszClientID, bool bVideo, int nAVIndex, STREAMMEDIA_SDPPROTOCOL_MEDIAINFO* pSt_SDPMediaInfo);
15+
bool PushStream_ClientWhip_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen);

XEngine_Source/XEngine_ServiceApp/XEngine_StreamMediaApp/XEngine_Hdr.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ using namespace std;
9191
#include "./StreamMedia_PushStream/PushStream_JT1078Task.h"
9292
#include "./StreamMedia_PushStream/PushStream_RTMPTask.h"
9393
#include "./StreamMedia_PushStream/PushStream_SrtTask.h"
94+
#include "./StreamMedia_PushStream/PushStream_ClientWebRtc.h"
9495
#include "./StreamMedia_PullStream/PullStream_ClientGet.h"
9596
#include "./StreamMedia_PullStream/PullStream_ClientRtsp.h"
9697
#include "./StreamMedia_PullStream/PullStream_ClientWebRtc.h"

XEngine_Source/XEngine_ServiceApp/XEngine_StreamMediaApp/XEngine_HttpTask.cpp

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,10 @@ bool XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXSTR
7777
st_HDRParam.nHttpCode = 200; //HTTP CODE码
7878
st_HDRParam.bIsClose = true; //收到回复后就关闭
7979

80-
XCHAR tszAPIType[XPATH_MAX] = {};
81-
HttpProtocol_ServerHelp_GetUrlApi(pSt_HTTPParam->tszHttpUri, tszAPIType);
80+
XCHAR tszAPIType[128] = {};
81+
XCHAR tszAPIVer[128] = {};
82+
XCHAR tszAPIName[128] = {};
83+
HttpProtocol_ServerHelp_GetUrlApi(pSt_HTTPParam->tszHttpUri, tszAPIType, tszAPIVer, tszAPIName);
8284
//得到URL参数个数
8385
HttpProtocol_ServerHelp_GetParament(pSt_HTTPParam->tszHttpUri, &pptszList, &nListCount, tszUrlName);
8486
if (nListCount < 1)
@@ -114,7 +116,14 @@ bool XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXSTR
114116
{
115117
if (0 == _tcsxnicmp(lpszFunRtc, tszAPIType, _tcsxlen(lpszFunRtc)))
116118
{
117-
PullStream_ClientWebRtc_Handle(pSt_HTTPParam, lpszClientAddr, lpszMsgBuffer, nMsgLen);
119+
if (0 == _tcsxnicmp(tszAPIName, "whip", 4))
120+
{
121+
PushStream_ClientWhip_Handle(pSt_HTTPParam, lpszClientAddr, lpszMsgBuffer, nMsgLen);
122+
}
123+
else
124+
{
125+
PullStream_ClientWhep_Handle(pSt_HTTPParam, lpszClientAddr, lpszMsgBuffer, nMsgLen);
126+
}
118127
}
119128
}
120129
else if (0 == _tcsxnicmp(lpszMethodGet, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodGet)))

XEngine_Source/XEngine_ServiceApp/XEngine_StreamMediaApp/XEngine_StreamMediaApp.vcxproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,7 @@
228228
<ClCompile Include="StreamMedia_PullStream\PullStream_ClientGet.cpp" />
229229
<ClCompile Include="StreamMedia_PullStream\PullStream_ClientRtsp.cpp" />
230230
<ClCompile Include="StreamMedia_PullStream\PullStream_ClientWebRtc.cpp" />
231+
<ClCompile Include="StreamMedia_PushStream\PushStream_ClientWebRtc.cpp" />
231232
<ClCompile Include="StreamMedia_PushStream\PushStream_SrtTask.cpp" />
232233
<ClCompile Include="StreamMedia_PushStream\PushStream_XStreamTask.cpp" />
233234
<ClCompile Include="StreamMedia_PushStream\PushStream_JT1078Task.cpp" />
@@ -243,6 +244,7 @@
243244
<ClInclude Include="StreamMedia_PullStream\PullStream_ClientGet.h" />
244245
<ClInclude Include="StreamMedia_PullStream\PullStream_ClientRtsp.h" />
245246
<ClInclude Include="StreamMedia_PullStream\PullStream_ClientWebRtc.h" />
247+
<ClInclude Include="StreamMedia_PushStream\PushStream_ClientWebRtc.h" />
246248
<ClInclude Include="StreamMedia_PushStream\PushStream_SrtTask.h" />
247249
<ClInclude Include="StreamMedia_PushStream\PushStream_XStreamTask.h" />
248250
<ClInclude Include="StreamMedia_PushStream\PushStream_JT1078Task.h" />

XEngine_Source/XEngine_ServiceApp/XEngine_StreamMediaApp/XEngine_StreamMediaApp.vcxproj.filters

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,9 @@
7272
<ClCompile Include="StreamMedia_PullStream\PullStream_ClientWebRtc.cpp">
7373
<Filter>源文件\StreamMedia_PullStream</Filter>
7474
</ClCompile>
75+
<ClCompile Include="StreamMedia_PushStream\PushStream_ClientWebRtc.cpp">
76+
<Filter>源文件\StreamMedia_PushStream</Filter>
77+
</ClCompile>
7578
</ItemGroup>
7679
<ItemGroup>
7780
<ClInclude Include="XEngine_Configure.h">
@@ -113,5 +116,8 @@
113116
<ClInclude Include="StreamMedia_PullStream\PullStream_ClientWebRtc.h">
114117
<Filter>头文件\StreamMedia_PullStream</Filter>
115118
</ClInclude>
119+
<ClInclude Include="StreamMedia_PushStream\PushStream_ClientWebRtc.h">
120+
<Filter>头文件\StreamMedia_PushStream</Filter>
121+
</ClInclude>
116122
</ItemGroup>
117123
</Project>

0 commit comments

Comments
 (0)