for #340, refine ts prefix code.

pull/133/head
wenjie.zhao 10 years ago
parent 10da182853
commit 5969f72354

@ -526,6 +526,13 @@ vhost with-hls.srs.com {
# in a word, the hls_path is for vhost. # in a word, the hls_path is for vhost.
# default: ./objs/nginx/html # default: ./objs/nginx/html
hls_path ./objs/nginx/html; hls_path ./objs/nginx/html;
# the hls entry prefix, which is base url of ts url.
# if specified, the ts path in m3u8 will be like:
# http://your-server/live/livestream-0.ts
# http://your-server/live/livestream-1.ts
# ...
# optional, default to empty string.
hls_entry_prefix http://your-server/;
# the hls mount for hls_storage ram, # the hls mount for hls_storage ram,
# which use srs embeded http server to delivery HLS, # which use srs embeded http server to delivery HLS,
# where the mount specifies the HTTP url to mount. # where the mount specifies the HTTP url to mount.

@ -9,7 +9,7 @@ vhost __defaultVhost__ {
enabled on; enabled on;
hls_fragment 10; hls_fragment 10;
hls_window 60; hls_window 60;
# hls_entry_prefix http://127.0.0.1/; # hls_entry_prefix http://127.0.0.1/;
hls_path ./objs/nginx/html; hls_path ./objs/nginx/html;
} }
} }

@ -3152,7 +3152,17 @@ string SrsConfig::get_hls_entry_prefix(string vhost)
return ""; return "";
} }
return conf->arg0(); std::string hls_entry_prefix = conf->arg0();
if (hls_entry_prefix.empty()) {
return "";
}
char last_char = hls_entry_prefix[hls_entry_prefix.length() - 1];
if (last_char != '/') {
hls_entry_prefix.append("/");
}
return hls_entry_prefix;
} }
string SrsConfig::get_hls_path(string vhost) string SrsConfig::get_hls_path(string vhost)

@ -203,14 +203,14 @@ int SrsHlsMuxer::sequence_no()
return _sequence_no; return _sequence_no;
} }
int SrsHlsMuxer::update_config(SrsRequest* r, string _entry_prefix, string path, int fragment, int window) int SrsHlsMuxer::update_config(SrsRequest* r, string hls_entry_prefix, string path, int fragment, int window)
{ {
int ret = ERROR_SUCCESS; int ret = ERROR_SUCCESS;
srs_freep(req); srs_freep(req);
req = r->copy(); req = r->copy();
entry_prefix = _entry_prefix; entry_prefix = hls_entry_prefix;
hls_path = path; hls_path = path;
hls_fragment = fragment; hls_fragment = fragment;
hls_window = window; hls_window = window;

@ -208,7 +208,7 @@ public:
/** /**
* when publish, update the config for muxer. * when publish, update the config for muxer.
*/ */
virtual int update_config(SrsRequest* r, std::string _entry_prefix, std::string path, int fragment, int window); virtual int update_config(SrsRequest* r, std::string hls_entry_prefix, std::string path, int fragment, int window);
/** /**
* open a new segment(a new ts file), * open a new segment(a new ts file),
* @param segment_start_dts use to calc the segment duration, * @param segment_start_dts use to calc the segment duration,

Loading…
Cancel
Save