Skip to content

Commit a0c40f0

Browse files
committed
added:custom m3u8 time set
1 parent aaa17b2 commit a0c40f0

File tree

5 files changed

+13
-5
lines changed

5 files changed

+13
-5
lines changed

XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Define.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,9 @@ typedef struct tag_XEngine_ServiceConfig
6666
}st_PullFlv;
6767
struct
6868
{
69-
bool bEnable;
7069
XCHAR tszHLSPath[MAX_PATH];
70+
int nTime;
71+
bool bEnable;
7172
}st_PullHls;
7273
struct
7374
{

XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ bool CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, XE
146146
pSt_ServerConfig->st_XPull.st_PullRtsp.nARTPPort = st_PullRtsp["nARTPPort"].asInt();
147147
pSt_ServerConfig->st_XPull.st_PullRtsp.nARTCPPort = st_PullRtsp["nARTCPPort"].asInt();
148148

149+
pSt_ServerConfig->st_XPull.st_PullHls.nTime = st_PullHls["nTime"].asInt();
149150
_tcsxcpy(pSt_ServerConfig->st_XPull.st_PullHls.tszHLSPath, st_PullHls["tszHLSPath"].asCString());
150151

151152
pSt_ServerConfig->st_XPull.st_PullWebRtc.nSTUNPort = st_PullWebRtc["nSTUNPort"].asInt();

XEngine_Source/XEngine_ServiceApp/XEngine_StreamMediaApp/XEngine_AVPacket.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ bool XEngine_AVPacket_AVCreate(LPCXSTR lpszClientAddr)
4141
_xstprintf(tszFile, _X("%s/%s/%lld.ts"), st_ServiceConfig.st_XPull.st_PullHls.tszHLSPath, tszSMSAddr, time(NULL));
4242

4343
HLSProtocol_M3u8File_AddStream(xhHLSFile, &xhSub, tszHLSFile, false);
44-
HLSProtocol_M3u8File_AddFile(xhHLSFile, xhSub, tszTSFile, 15, false);
44+
HLSProtocol_M3u8File_AddFile(xhHLSFile, xhSub, tszTSFile, st_ServiceConfig.st_XPull.st_PullHls.nTime, false);
4545
ModuleSession_PushStream_HLSInsert(lpszClientAddr, tszFile, xhSub);
4646
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HLS端:%s,媒体文件创建成功,M3U8文件地址:%s,TS文件地址:%s,数据流地址:%s"), lpszClientAddr, tszHLSFile, tszTSFile, tszFile);
4747
}
@@ -424,7 +424,7 @@ bool XEngine_AVPacket_AVFrame(XCHAR* ptszSDBuffer, int* pInt_SDLen, XCHAR* ptszR
424424
ModuleSession_PushStream_HLSTimeGet(lpszClientAddr, &nTimeStart);
425425

426426
__int64u nCalValue = __int64u(nTimeEnd) - nTimeStart;
427-
if (nCalValue >= 15)
427+
if (nCalValue >= st_ServiceConfig.st_XPull.st_PullHls.nTime)
428428
{
429429
XNETHANDLE xhSubFile = 0;
430430
XCHAR tszTSFile[MAX_PATH] = {};
@@ -435,7 +435,7 @@ bool XEngine_AVPacket_AVFrame(XCHAR* ptszSDBuffer, int* pInt_SDLen, XCHAR* ptszR
435435
ModuleSession_PushStream_HLSClose(lpszClientAddr, &xhSubFile);
436436
//在打开
437437
_xstprintf(tszTSFile, _X("%s/%s/%lld.ts"), st_ServiceConfig.st_XPull.st_PullHls.tszHLSPath, tszSMSAddr, time(NULL));
438-
HLSProtocol_M3u8File_AddFile(xhHLSFile, xhSubFile, tszTSFile, nCalValue, false);
438+
HLSProtocol_M3u8File_AddFile(xhHLSFile, xhSubFile, tszTSFile, double(nCalValue), false);
439439
ModuleSession_PushStream_HLSInsert(lpszClientAddr, tszTSFile, xhSubFile);
440440
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HLS端:%s,媒体打包成功,开始处理新的文件:%s,时间:%llu"), lpszClientAddr, tszTSFile, nCalValue);
441441
}

XEngine_Source/XEngine_ServiceApp/XEngine_StreamMediaApp/XEngine_Network.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,12 @@ void XEngine_Network_Close(LPCXSTR lpszClientAddr, XSOCKET hSocket, bool bHeart,
250250
}
251251
if (ModuleSession_PushStream_GetAddrForAddr(lpszClientAddr, tszSMSAddr))
252252
{
253+
XNETHANDLE xhHLSToken = 0;
254+
ModuleSession_PushStream_HLSClose(lpszClientAddr, &xhHLSToken);
255+
if (xhHLSToken > 0)
256+
{
257+
HLSProtocol_M3u8File_Delete(xhHLSFile, xhHLSToken);
258+
}
253259
ModuleSession_PullStream_PublishDelete(tszSMSAddr);
254260
ModuleSession_PushStream_Destroy(lpszClientAddr);
255261
}

XEngine_Source/XEngine_ServiceApp/XEngine_StreamMediaApp/XEngine_StreamMediaApp.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -505,7 +505,7 @@ int main(int argc, char** argv)
505505
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,启动HLS(M3U8)文件流失败,错误:%d"), HLSProtocol_GetLastError());
506506
goto XENGINE_SERVICEAPP_EXIT;
507507
}
508-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,启动HLS(M3U8)文件流成功"));
508+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,启动HLS(M3U8)文件流成功,TS文件流时间:%d"), st_ServiceConfig.st_XPull.st_PullHls.nTime);
509509
}
510510

511511
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("所有服务成功启动,服务运行中,XEngine版本:%s,服务版本:%s,发行次数;%d。。。"), BaseLib_OperatorVer_XNumberStr(), st_ServiceConfig.st_XVer.pStl_ListVer->front().c_str(), st_ServiceConfig.st_XVer.pStl_ListVer->size());

0 commit comments

Comments
 (0)