diff --git a/src/Makefile.am b/src/Makefile.am index a1792363..42b18dfb 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -8,7 +8,7 @@ EXTRA_DIST=server.html server.html.h embed.js.h AM_CPPFLAGS = $(global_CFLAGS) $(MIST_CFLAGS) LDADD = $(MIST_LIBS) SUBDIRS=converters analysers -bin_PROGRAMS=MistBuffer MistController MistConnRAW MistConnRTMP MistConnHTTP MistConnHTTPProgressive MistConnHTTPDynamic MistConnHTTPSmooth MistConnTS MistPlayer +bin_PROGRAMS=MistBuffer MistController MistConnRAW MistConnRTMP MistConnHTTP MistConnHTTPProgressive MistConnHTTPDynamic MistConnHTTPSmooth MistConnHTTPLive MistConnTS MistPlayer MistBuffer_SOURCES=buffer.cpp buffer_user.h buffer_user.cpp buffer_stream.h buffer_stream.cpp tinythread.cpp tinythread.h ../VERSION MistBuffer_LDADD=$(MIST_LIBS) -lpthread MistController_SOURCES=controller.cpp controller_connectors.h controller_connectors.cpp controller_storage.h controller_storage.cpp controller_streams.h controller_streams.cpp controller_capabilities.h controller_capabilities.cpp ../VERSION ./server.html.h @@ -19,6 +19,7 @@ MistConnHTTP_LDADD=$(MIST_LIBS) -lpthread MistConnHTTPProgressive_SOURCES=conn_http_progressive.cpp ../VERSION MistConnHTTPDynamic_SOURCES=conn_http_dynamic.cpp ../VERSION MistConnHTTPSmooth_SOURCES=conn_http_smooth.cpp ../VERSION +MistConnHTTPLive_SOURCES=conn_http_live.cpp ../VERSION MistConnTS_SOURCES=conn_ts.cpp ../VERSION MistPlayer_SOURCES=player.cpp MistPlayer_LDADD=$(MIST_LIBS) diff --git a/src/analysers/Makefile.am b/src/analysers/Makefile.am index fb5f0619..3447ab61 100644 --- a/src/analysers/Makefile.am +++ b/src/analysers/Makefile.am @@ -1,9 +1,10 @@ AM_CPPFLAGS = $(global_CFLAGS) $(MIST_CFLAGS) LDADD = $(MIST_LIBS) -bin_PROGRAMS=MistAnalyserRTMP MistAnalyserFLV MistAnalyserDTSC MistAnalyserAMF MistAnalyserMP4 +bin_PROGRAMS=MistAnalyserRTMP MistAnalyserFLV MistAnalyserDTSC MistAnalyserAMF MistAnalyserMP4 MistAnalyserTS MistAnalyserRTMP_SOURCES=rtmp_analyser.cpp MistAnalyserFLV_SOURCES=flv_analyser.cpp MistAnalyserDTSC_SOURCES=dtsc_analyser.cpp MistAnalyserAMF_SOURCES=amf_analyser.cpp MistAnalyserMP4_SOURCES=mp4_analyser.cpp +MistAnalyserTS_SOURCES=ts_analyser.cpp diff --git a/src/conn_http.cpp b/src/conn_http.cpp index fb335975..e25a726d 100644 --- a/src/conn_http.cpp +++ b/src/conn_http.cpp @@ -334,6 +334,12 @@ namespace Connector_HTTP { H.SetVar("stream", streamname); return "smooth"; } + if (url.find("/hls/") != std::string::npos && (url.find(".m3u") != std::string::npos || url.find(".ts") != std::string::npos)){ + std::string streamname = url.substr(5, url.find("/", 5) - 5); + Util::Stream::sanitizeName(streamname); + H.SetVar("stream", streamname); + return "live"; + } if (url.length() > 4){ std::string ext = url.substr(url.length() - 4, 4); if (ext == ".flv" || ext == ".mp3"){ diff --git a/src/conn_ts.cpp b/src/conn_ts.cpp index 2c320db5..2babf5e0 100644 --- a/src/conn_ts.cpp +++ b/src/conn_ts.cpp @@ -163,7 +163,7 @@ int TS_Handler( Socket::Connection conn, std::string streamname ) { AudioCounter ++; if( WritePesHeader ) { PackData.UnitStart( 1 ); - PackData.RandomAccess( 1 ); + PackData.RandomAccess( 0 ); PackData.AddStuffing( 184 - (14 + ToPack.size()) ); PackData.PESAudioLeadIn( ToPack.size(), TimeStamp ); WritePesHeader = false;