From b6d650cdb40824cbde00273e986d3c4ac5adb4c0 Mon Sep 17 00:00:00 2001 From: tufang14 Date: Sat, 25 Apr 2015 14:59:12 +0800 Subject: [PATCH] m3u8 mount bug --- trunk/src/app/srs_app_http_conn.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/trunk/src/app/srs_app_http_conn.cpp b/trunk/src/app/srs_app_http_conn.cpp index 1e8121584..3a93eb347 100644 --- a/trunk/src/app/srs_app_http_conn.cpp +++ b/trunk/src/app/srs_app_http_conn.cpp @@ -965,7 +965,7 @@ int SrsHttpServer::hls_update_m3u8(SrsRequest* r, string m3u8) { int ret = ERROR_SUCCESS; - std::string mount = m3u8; + std::string mount; std::string sid = r->get_stream_url(); SrsHlsEntry* entry = NULL; @@ -980,8 +980,17 @@ int SrsHttpServer::hls_update_m3u8(SrsRequest* r, string m3u8) SrsHlsEntry* tmpl = thls[r->vhost]; entry = new SrsHlsEntry(); - entry->mount = tmpl->mount; + mount = tmpl->mount; + // replace the vhost variable + mount = srs_string_replace(mount, "[vhost]", r->vhost); + mount = srs_string_replace(mount, "[app]", r->app); + mount = srs_string_replace(mount, "[stream]", r->stream); + + // remove the default vhost mount + mount = srs_string_replace(mount, SRS_CONSTS_RTMP_DEFAULT_VHOST"/", "/"); + + entry->mount = mount; shls[sid] = entry; if (entry->streams.find(mount) == entry->streams.end()) { @@ -997,6 +1006,8 @@ int SrsHttpServer::hls_update_m3u8(SrsRequest* r, string m3u8) entry = shls[sid]; } + mount = entry->mount; + // update the m3u8 stream. SrsHlsM3u8Stream* hms = dynamic_cast(entry->streams[mount]); if (hms) {