From 2241ba0e3490d2f17fbe38c2aec67b62a53b3ef1 Mon Sep 17 00:00:00 2001 From: winlin Date: Tue, 17 Mar 2015 07:57:58 +0800 Subject: [PATCH] for #340, #343, add wiki and use srs string function, support hls_entry_prefix(hls base url). 2.0.142 --- trunk/conf/full.conf | 2 +- trunk/src/app/srs_app_config.cpp | 12 +----------- trunk/src/app/srs_app_hls.cpp | 10 ++++++---- trunk/src/app/srs_app_hls.hpp | 4 ++-- trunk/src/core/srs_core.hpp | 4 ++-- 5 files changed, 12 insertions(+), 20 deletions(-) diff --git a/trunk/conf/full.conf b/trunk/conf/full.conf index 16f3804d32..5efd66e4d6 100644 --- a/trunk/conf/full.conf +++ b/trunk/conf/full.conf @@ -532,7 +532,7 @@ vhost with-hls.srs.com { # http://your-server/live/livestream-1.ts # ... # optional, default to empty string. - hls_entry_prefix http://your-server/; + hls_entry_prefix http://your-server; # the hls mount for hls_storage ram, # which use srs embeded http server to delivery HLS, # where the mount specifies the HTTP url to mount. diff --git a/trunk/src/app/srs_app_config.cpp b/trunk/src/app/srs_app_config.cpp index a66a772584..582ef722f7 100644 --- a/trunk/src/app/srs_app_config.cpp +++ b/trunk/src/app/srs_app_config.cpp @@ -3152,17 +3152,7 @@ string SrsConfig::get_hls_entry_prefix(string vhost) return ""; } - std::string prefix = conf->arg0(); - if (prefix.empty()) { - return ""; - } - - const char last = prefix[prefix.length() - 1]; - if (last != '/') { - return prefix.append("/"); - } - - return prefix; + return conf->arg0(); } string SrsConfig::get_hls_path(string vhost) diff --git a/trunk/src/app/srs_app_hls.cpp b/trunk/src/app/srs_app_hls.cpp index 4e24df273f..ee66bf7b2c 100644 --- a/trunk/src/app/srs_app_hls.cpp +++ b/trunk/src/app/srs_app_hls.cpp @@ -203,14 +203,14 @@ int SrsHlsMuxer::sequence_no() return _sequence_no; } -int SrsHlsMuxer::update_config(SrsRequest* r, string hls_entry_prefix, string path, int fragment, int window) +int SrsHlsMuxer::update_config(SrsRequest* r, string entry_prefix, string path, int fragment, int window) { int ret = ERROR_SUCCESS; srs_freep(req); req = r->copy(); - entry_prefix = hls_entry_prefix; + hls_entry_prefix = entry_prefix; hls_path = path; hls_fragment = fragment; hls_window = window; @@ -301,8 +301,10 @@ int SrsHlsMuxer::segment_open(int64_t segment_start_dts) current->full_path += "/"; current->full_path += filename; - // TODO: support base url, and so on. - current->uri += entry_prefix; + current->uri += hls_entry_prefix; + if (!hls_entry_prefix.empty() && !srs_string_ends_with(hls_entry_prefix, "/")) { + current->uri += "/"; + } current->uri += filename; std::string tmp_file = current->full_path + ".tmp"; diff --git a/trunk/src/app/srs_app_hls.hpp b/trunk/src/app/srs_app_hls.hpp index be90b791da..bebba66cef 100644 --- a/trunk/src/app/srs_app_hls.hpp +++ b/trunk/src/app/srs_app_hls.hpp @@ -167,7 +167,7 @@ class SrsHlsMuxer private: SrsRequest* req; private: - std::string entry_prefix; + std::string hls_entry_prefix; std::string hls_path; int hls_fragment; int hls_window; @@ -208,7 +208,7 @@ class SrsHlsMuxer /** * when publish, update the config for muxer. */ - virtual int update_config(SrsRequest* r, std::string hls_entry_prefix, std::string path, int fragment, int window); + virtual int update_config(SrsRequest* r, std::string entry_prefix, std::string path, int fragment, int window); /** * open a new segment(a new ts file), * @param segment_start_dts use to calc the segment duration, diff --git a/trunk/src/core/srs_core.hpp b/trunk/src/core/srs_core.hpp index 7ebf289a67..ccbe0dedb0 100644 --- a/trunk/src/core/srs_core.hpp +++ b/trunk/src/core/srs_core.hpp @@ -29,9 +29,9 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ // current release version -#define VERSION_MAJOR 3 +#define VERSION_MAJOR 2 #define VERSION_MINOR 0 -#define VERSION_REVISION 0 +#define VERSION_REVISION 142 // server info. #define RTMP_SIG_SRS_KEY "SRS"