mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
for #319, refine config, collect the mr and publish timeout
This commit is contained in:
parent
bc100c2867
commit
738642073e
11 changed files with 197 additions and 144 deletions
|
@ -21,15 +21,25 @@ http_stream {
|
|||
dir ./objs/nginx/html;
|
||||
}
|
||||
vhost __defaultVhost__ {
|
||||
# for SRS2.
|
||||
refer github.com github.io;
|
||||
refer_publish github.com github.io;
|
||||
refer_play github.com github.io;
|
||||
|
||||
# for SRS1.
|
||||
http {
|
||||
enabled on;
|
||||
mount [vhost]/hls;
|
||||
dir ./objs/nginx/html/hls;
|
||||
}
|
||||
|
||||
# for SRS2.
|
||||
refer github.com github.io;
|
||||
refer_publish github.com github.io;
|
||||
refer_play github.com github.io;
|
||||
|
||||
# for SRS2
|
||||
publish_1stpkt_timeout 20000;
|
||||
publish_normal_timeout 7000;
|
||||
|
||||
# for SRS2
|
||||
mr {
|
||||
enabled off;
|
||||
latency 350;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -334,40 +334,6 @@ vhost security.srs.com {
|
|||
}
|
||||
}
|
||||
|
||||
# the MR(merged-read) setting for publisher.
|
||||
# the MW(merged-write) settings for player.
|
||||
vhost mrw.srs.com {
|
||||
# whether enable min delay mode for vhost.
|
||||
# for min latence mode:
|
||||
# 1. disable the mr for vhost.
|
||||
# 2. use timeout for cond wait for consumer queue.
|
||||
# @see https://github.com/simple-rtmp-server/srs/issues/257
|
||||
# default: off
|
||||
min_latency off;
|
||||
# about MR, read https://github.com/simple-rtmp-server/srs/issues/241
|
||||
mr {
|
||||
# whether enable the MR(merged-read)
|
||||
# default: off
|
||||
enabled on;
|
||||
# the latency in ms for MR(merged-read),
|
||||
# the performance+ when latency+, and memory+,
|
||||
# memory(buffer) = latency * kbps / 8
|
||||
# for example, latency=500ms, kbps=3000kbps, each publish connection will consume
|
||||
# memory = 500 * 3000 / 8 = 187500B = 183KB
|
||||
# when there are 2500 publisher, the total memory of SRS atleast:
|
||||
# 183KB * 2500 = 446MB
|
||||
# the value recomment is [300, 2000]
|
||||
# default: 350
|
||||
latency 350;
|
||||
}
|
||||
# set the MW(merged-write) latency in ms.
|
||||
# SRS always set mw on, so we just set the latency value.
|
||||
# the latency of stream >= mw_latency + mr_latency
|
||||
# the value recomment is [300, 1800]
|
||||
# default: 350
|
||||
mw_latency 350;
|
||||
}
|
||||
|
||||
# vhost for edge, edge and origin is the same vhost
|
||||
vhost same.edge.srs.com {
|
||||
# the mode of vhost, local or remote.
|
||||
|
@ -966,6 +932,58 @@ vhost debug.srs.com {
|
|||
debug_srs_upnode on;
|
||||
}
|
||||
|
||||
# the publish specified configs
|
||||
vhost publish.srs.com {
|
||||
# the config for FMLE/Flash publisher, which push RTMP to SRS.
|
||||
publish {
|
||||
# about MR, read https://github.com/simple-rtmp-server/srs/issues/241
|
||||
# when enabled the mr, SRS will read as large as possible.
|
||||
# default: off
|
||||
mr off;
|
||||
# the latency in ms for MR(merged-read),
|
||||
# the performance+ when latency+, and memory+,
|
||||
# memory(buffer) = latency * kbps / 8
|
||||
# for example, latency=500ms, kbps=3000kbps, each publish connection will consume
|
||||
# memory = 500 * 3000 / 8 = 187500B = 183KB
|
||||
# when there are 2500 publisher, the total memory of SRS atleast:
|
||||
# 183KB * 2500 = 446MB
|
||||
# the value recomment is [300, 2000]
|
||||
# default: 350
|
||||
mr_latency 350;
|
||||
|
||||
# the 1st packet timeout in ms for encoder.
|
||||
# default: 20000
|
||||
firstpkt_timeout 20000;
|
||||
# the normal packet timeout in ms for encoder.
|
||||
# default: 5000
|
||||
normal_timeout 7000;
|
||||
}
|
||||
}
|
||||
|
||||
# the MR(merged-read) setting for publisher.
|
||||
# the MW(merged-write) settings for player.
|
||||
vhost mrw.srs.com {
|
||||
# whether enable min delay mode for vhost.
|
||||
# for min latence mode:
|
||||
# 1. disable the publish.mr for vhost.
|
||||
# 2. use timeout for cond wait for consumer queue.
|
||||
# @see https://github.com/simple-rtmp-server/srs/issues/257
|
||||
# default: off
|
||||
min_latency off;
|
||||
# set the MW(merged-write) latency in ms.
|
||||
# SRS always set mw on, so we just set the latency value.
|
||||
# the latency of stream >= mw_latency + mr_latency
|
||||
# the value recomment is [300, 1800]
|
||||
# default: 350
|
||||
mw_latency 350;
|
||||
|
||||
# @see publish.srs.com
|
||||
publish {
|
||||
mr off;
|
||||
mr_latenct 350;
|
||||
}
|
||||
}
|
||||
|
||||
# the vhost for min delay, donot cache any stream.
|
||||
vhost min.delay.com {
|
||||
# @see vhost mrw.srs.com for detail.
|
||||
|
@ -1019,12 +1037,12 @@ vhost stream.control.com {
|
|||
# while the sequence header is not changed yet.
|
||||
# default: off
|
||||
reduce_sequence_header on;
|
||||
# the 1st packet timeout in ms for encoder.
|
||||
# default: 20000
|
||||
publish_1stpkt_timeout 20000;
|
||||
# the normal packet timeout in ms for encoder.
|
||||
# default: 5000
|
||||
publish_normal_timeout 7000;
|
||||
|
||||
# @see publish.srs.com
|
||||
publish {
|
||||
firstpkt_timeout 20000;
|
||||
normal_timeout 7000;
|
||||
}
|
||||
}
|
||||
|
||||
# the vhost which forward publish streams.
|
||||
|
|
|
@ -66,17 +66,20 @@ vhost vhost.srs.com {
|
|||
atc_auto on;
|
||||
|
||||
min_latency on;
|
||||
mr {
|
||||
enabled off;
|
||||
}
|
||||
mw_latency 100;
|
||||
gop_cache off;
|
||||
queue_length 10;
|
||||
tcp_nodelay on;
|
||||
send_min_interval 10.0;
|
||||
reduce_sequence_header on;
|
||||
publish_1stpkt_timeout 20000;
|
||||
publish_normal_timeout 7000;
|
||||
|
||||
publish {
|
||||
mr off;
|
||||
mr_latency 350;
|
||||
|
||||
firstpkt_timeout 20000;
|
||||
normal_timeout 7000;
|
||||
}
|
||||
|
||||
refer {
|
||||
enabled off;
|
||||
|
|
|
@ -8,9 +8,9 @@ vhost __defaultVhost__ {
|
|||
gop_cache off;
|
||||
queue_length 10;
|
||||
min_latency on;
|
||||
mr {
|
||||
enabled off;
|
||||
}
|
||||
mw_latency 100;
|
||||
tcp_nodelay on;
|
||||
publish {
|
||||
mr off;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -816,16 +816,16 @@ int SrsConfig::reload_vhost(SrsConfDirective* old_root)
|
|||
srs_trace("vhost %s reload exec success.", vhost.c_str());
|
||||
}
|
||||
|
||||
// mr, only one per vhost
|
||||
if (!srs_directive_equals(new_vhost->get("mr"), old_vhost->get("mr"))) {
|
||||
// publish, only one per vhost
|
||||
if (!srs_directive_equals(new_vhost->get("publish"), old_vhost->get("publish"))) {
|
||||
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
|
||||
ISrsReloadHandler* subscribe = *it;
|
||||
if ((ret = subscribe->on_reload_vhost_mr(vhost)) != ERROR_SUCCESS) {
|
||||
srs_error("vhost %s notify subscribes mr failed. ret=%d", vhost.c_str(), ret);
|
||||
if ((ret = subscribe->on_reload_vhost_publish(vhost)) != ERROR_SUCCESS) {
|
||||
srs_error("vhost %s notify subscribes publish failed. ret=%d", vhost.c_str(), ret);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
srs_trace("vhost %s reload mr success.", vhost.c_str());
|
||||
srs_trace("vhost %s reload publish success.", vhost.c_str());
|
||||
}
|
||||
|
||||
// chunk_size, only one per vhost.
|
||||
|
@ -876,30 +876,6 @@ int SrsConfig::reload_vhost(SrsConfDirective* old_root)
|
|||
srs_trace("vhost %s reload tcp_nodelay success.", vhost.c_str());
|
||||
}
|
||||
|
||||
// publish_1stpkt_timeout, only one per vhost
|
||||
if (!srs_directive_equals(new_vhost->get("publish_1stpkt_timeout"), old_vhost->get("publish_1stpkt_timeout"))) {
|
||||
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
|
||||
ISrsReloadHandler* subscribe = *it;
|
||||
if ((ret = subscribe->on_reload_vhost_p1stpt(vhost)) != ERROR_SUCCESS) {
|
||||
srs_error("vhost %s notify subscribes p1stpt failed. ret=%d", vhost.c_str(), ret);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
srs_trace("vhost %s reload p1stpt success.", vhost.c_str());
|
||||
}
|
||||
|
||||
// publish_normal_timeout, only one per vhost
|
||||
if (!srs_directive_equals(new_vhost->get("publish_normal_timeout"), old_vhost->get("publish_normal_timeout"))) {
|
||||
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
|
||||
ISrsReloadHandler* subscribe = *it;
|
||||
if ((ret = subscribe->on_reload_vhost_pnt(vhost)) != ERROR_SUCCESS) {
|
||||
srs_error("vhost %s notify subscribes pnt failed. ret=%d", vhost.c_str(), ret);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
srs_trace("vhost %s reload pnt success.", vhost.c_str());
|
||||
}
|
||||
|
||||
// min_latency, only one per vhost
|
||||
if (!srs_directive_equals(new_vhost->get("min_latency"), old_vhost->get("min_latency"))) {
|
||||
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
|
||||
|
@ -1798,20 +1774,6 @@ int SrsConfig::vhost_to_json(SrsConfDirective* vhost, SrsAmf0Object* obj)
|
|||
if ((dir = vhost->get("min_latency")) != NULL) {
|
||||
obj->set("min_latency", dir->dumps_arg0_to_boolean());
|
||||
}
|
||||
if ((dir = vhost->get("mr")) != NULL) {
|
||||
SrsAmf0Object* mr = SrsAmf0Any::object();
|
||||
obj->set("mr", mr);
|
||||
|
||||
for (int i = 0; i < (int)dir->directives.size(); i++) {
|
||||
SrsConfDirective* sdir = dir->directives.at(i);
|
||||
|
||||
if (sdir->name == "enabled") {
|
||||
mr->set("enabled", sdir->dumps_arg0_to_boolean());
|
||||
} else if (sdir->name == "latency") {
|
||||
mr->set("latency", sdir->dumps_arg0_to_number());
|
||||
}
|
||||
}
|
||||
}
|
||||
if ((dir = vhost->get("mw_latency")) != NULL) {
|
||||
obj->set("mw_latency", dir->dumps_arg0_to_number());
|
||||
}
|
||||
|
@ -1834,11 +1796,25 @@ int SrsConfig::vhost_to_json(SrsConfDirective* vhost, SrsAmf0Object* obj)
|
|||
if ((dir = vhost->get("reduce_sequence_header")) != NULL) {
|
||||
obj->set("reduce_sequence_header", dir->dumps_arg0_to_boolean());
|
||||
}
|
||||
if ((dir = vhost->get("publish_1stpkt_timeout")) != NULL) {
|
||||
obj->set("publish_1stpkt_timeout", dir->dumps_arg0_to_number());
|
||||
}
|
||||
if ((dir = vhost->get("publish_normal_timeout")) != NULL) {
|
||||
obj->set("publish_normal_timeout", dir->dumps_arg0_to_number());
|
||||
|
||||
// publish
|
||||
if ((dir = vhost->get("publish")) != NULL) {
|
||||
SrsAmf0Object* publish = SrsAmf0Any::object();
|
||||
obj->set("publish", publish);
|
||||
|
||||
for (int i = 0; i < (int)dir->directives.size(); i++) {
|
||||
SrsConfDirective* sdir = dir->directives.at(i);
|
||||
|
||||
if (sdir->name == "mr") {
|
||||
publish->set("mr", sdir->dumps_arg0_to_boolean());
|
||||
} else if (sdir->name == "mr_latency") {
|
||||
publish->set("mr_latency", sdir->dumps_arg0_to_number());
|
||||
} else if (sdir->name == "firstpkt_timeout") {
|
||||
publish->set("firstpkt_timeout", sdir->dumps_arg0_to_number());
|
||||
} else if (sdir->name == "normal_timeout") {
|
||||
publish->set("normal_timeout", sdir->dumps_arg0_to_number());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// refer
|
||||
|
@ -2702,9 +2678,8 @@ int SrsConfig::check_config()
|
|||
&& n != "time_jitter" && n != "mix_correct"
|
||||
&& n != "atc" && n != "atc_auto"
|
||||
&& n != "debug_srs_upnode"
|
||||
&& n != "mr" && n != "mw_latency" && n != "min_latency"
|
||||
&& n != "publish" && n != "mw_latency" && n != "min_latency"
|
||||
&& n != "tcp_nodelay" && n != "send_min_interval" && n != "reduce_sequence_header"
|
||||
&& n != "publish_1stpkt_timeout" && n != "publish_normal_timeout"
|
||||
&& n != "security" && n != "http_remux"
|
||||
&& n != "http_static" && n != "hds" && n != "exec"
|
||||
) {
|
||||
|
@ -2742,12 +2717,12 @@ int SrsConfig::check_config()
|
|||
return ret;
|
||||
}
|
||||
}
|
||||
} else if (n == "mr") {
|
||||
} else if (n == "publish") {
|
||||
for (int j = 0; j < (int)conf->directives.size(); j++) {
|
||||
string m = conf->at(j)->name.c_str();
|
||||
if (m != "enabled" && m != "latency") {
|
||||
if (m != "mr" && m != "mr_latency" && m != "firstpkt_timeout" && m != "normal_timeout") {
|
||||
ret = ERROR_SYSTEM_CONFIG_INVALID;
|
||||
srs_error("unsupported vhost mr directive %s, ret=%d", m.c_str(), ret);
|
||||
srs_error("unsupported vhost publish directive %s, ret=%d", m.c_str(), ret);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
@ -3463,12 +3438,12 @@ bool SrsConfig::get_mr_enabled(string vhost)
|
|||
return SRS_PERF_MR_ENABLED;
|
||||
}
|
||||
|
||||
conf = conf->get("mr");
|
||||
conf = conf->get("publish");
|
||||
if (!conf) {
|
||||
return SRS_PERF_MR_ENABLED;
|
||||
}
|
||||
|
||||
conf = conf->get("enabled");
|
||||
conf = conf->get("mr");
|
||||
if (!conf || conf->arg0().empty()) {
|
||||
return SRS_PERF_MR_ENABLED;
|
||||
}
|
||||
|
@ -3483,12 +3458,12 @@ int SrsConfig::get_mr_sleep_ms(string vhost)
|
|||
return SRS_PERF_MR_SLEEP;
|
||||
}
|
||||
|
||||
conf = conf->get("mr");
|
||||
conf = conf->get("publish");
|
||||
if (!conf) {
|
||||
return SRS_PERF_MR_SLEEP;
|
||||
}
|
||||
|
||||
conf = conf->get("latency");
|
||||
conf = conf->get("mr_latency");
|
||||
if (!conf || conf->arg0().empty()) {
|
||||
return SRS_PERF_MR_SLEEP;
|
||||
}
|
||||
|
@ -3587,7 +3562,12 @@ int SrsConfig::get_publish_1stpkt_timeout(string vhost)
|
|||
return DEFAULT;
|
||||
}
|
||||
|
||||
conf = conf->get("publish_1stpkt_timeout");
|
||||
conf = conf->get("publish");
|
||||
if (!conf) {
|
||||
return DEFAULT;
|
||||
}
|
||||
|
||||
conf = conf->get("firstpkt_timeout");
|
||||
if (!conf || conf->arg0().empty()) {
|
||||
return DEFAULT;
|
||||
}
|
||||
|
@ -3607,7 +3587,12 @@ int SrsConfig::get_publish_normal_timeout(string vhost)
|
|||
return DEFAULT;
|
||||
}
|
||||
|
||||
conf = conf->get("publish_normal_timeout");
|
||||
conf = conf->get("publish");
|
||||
if (!conf) {
|
||||
return DEFAULT;
|
||||
}
|
||||
|
||||
conf = conf->get("normal_timeout");
|
||||
if (!conf || conf->arg0().empty()) {
|
||||
return DEFAULT;
|
||||
}
|
||||
|
@ -5677,7 +5662,7 @@ int srs_config_transform_vhost(SrsConfDirective* root)
|
|||
{
|
||||
int ret = ERROR_SUCCESS;
|
||||
|
||||
for (int i = 0; i < root->directives.size(); i++) {
|
||||
for (int i = 0; i < (int)root->directives.size(); i++) {
|
||||
SrsConfDirective* dir = root->directives.at(i);
|
||||
|
||||
// SRS2.0, rename global http_stream to http_server.
|
||||
|
@ -5694,6 +5679,7 @@ int srs_config_transform_vhost(SrsConfDirective* root)
|
|||
continue;
|
||||
}
|
||||
|
||||
// for each directive of vhost.
|
||||
std::vector<SrsConfDirective*>::iterator it;
|
||||
for (it = dir->directives.begin(); it != dir->directives.end();) {
|
||||
SrsConfDirective* conf = *it;
|
||||
|
@ -5736,6 +5722,66 @@ int srs_config_transform_vhost(SrsConfDirective* root)
|
|||
continue;
|
||||
}
|
||||
|
||||
// SRS3.0, change the mr style
|
||||
// SRS2:
|
||||
// vhost { mr { enabled; latency; } }
|
||||
// SRS3+:
|
||||
// vhost { publish { mr; mr_latency; } }
|
||||
if (conf->name == "mr") {
|
||||
it = dir->directives.erase(it);
|
||||
|
||||
SrsConfDirective* publish = dir->get_or_create("publish");
|
||||
|
||||
SrsConfDirective* enabled = conf->get("enabled");
|
||||
if (enabled) {
|
||||
SrsConfDirective* mr = publish->get_or_create("mr");
|
||||
mr->args = enabled->args;
|
||||
}
|
||||
|
||||
SrsConfDirective* latency = conf->get("latency");
|
||||
if (latency) {
|
||||
SrsConfDirective* mr_latency = publish->get_or_create("mr_latency");
|
||||
mr_latency->args = latency->args;
|
||||
}
|
||||
|
||||
srs_freep(conf);
|
||||
continue;
|
||||
}
|
||||
|
||||
// SRS3.0, change the publish_1stpkt_timeout
|
||||
// SRS2:
|
||||
// vhost { publish_1stpkt_timeout; }
|
||||
// SRS3+:
|
||||
// vhost { publish { firstpkt_timeout; } }
|
||||
if (conf->name == "publish_1stpkt_timeout") {
|
||||
it = dir->directives.erase(it);
|
||||
|
||||
SrsConfDirective* publish = dir->get_or_create("publish");
|
||||
|
||||
SrsConfDirective* firstpkt_timeout = publish->get_or_create("firstpkt_timeout");
|
||||
firstpkt_timeout->args = conf->args;
|
||||
|
||||
srs_freep(conf);
|
||||
continue;
|
||||
}
|
||||
|
||||
// SRS3.0, change the publish_normal_timeout
|
||||
// SRS2:
|
||||
// vhost { publish_normal_timeout; }
|
||||
// SRS3+:
|
||||
// vhost { publish { normal_timeout; } }
|
||||
if (conf->name == "publish_normal_timeout") {
|
||||
it = dir->directives.erase(it);
|
||||
|
||||
SrsConfDirective* publish = dir->get_or_create("publish");
|
||||
|
||||
SrsConfDirective* normal_timeout = publish->get_or_create("normal_timeout");
|
||||
normal_timeout->args = conf->args;
|
||||
|
||||
srs_freep(conf);
|
||||
continue;
|
||||
}
|
||||
|
||||
++it;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -424,7 +424,7 @@ void SrsPublishRecvThread::on_read(ssize_t nread)
|
|||
}
|
||||
#endif
|
||||
|
||||
int SrsPublishRecvThread::on_reload_vhost_mr(string vhost)
|
||||
int SrsPublishRecvThread::on_reload_vhost_publish(string vhost)
|
||||
{
|
||||
int ret = ERROR_SUCCESS;
|
||||
|
||||
|
|
|
@ -206,7 +206,7 @@ public:
|
|||
#endif
|
||||
// interface ISrsReloadHandler
|
||||
public:
|
||||
virtual int on_reload_vhost_mr(std::string vhost);
|
||||
virtual int on_reload_vhost_publish(std::string vhost);
|
||||
virtual int on_reload_vhost_realtime(std::string vhost);
|
||||
private:
|
||||
virtual void set_socket_buffer(int sleep_ms);
|
||||
|
|
|
@ -170,7 +170,7 @@ int ISrsReloadHandler::on_reload_vhost_dvr(string /*vhost*/)
|
|||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
||||
int ISrsReloadHandler::on_reload_vhost_mr(string /*vhost*/)
|
||||
int ISrsReloadHandler::on_reload_vhost_publish(string /*vhost*/)
|
||||
{
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
@ -195,16 +195,6 @@ int ISrsReloadHandler::on_reload_vhost_realtime(string /*vhost*/)
|
|||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
||||
int ISrsReloadHandler::on_reload_vhost_p1stpt(string /*vhost*/)
|
||||
{
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
||||
int ISrsReloadHandler::on_reload_vhost_pnt(string /*vhost*/)
|
||||
{
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
||||
int ISrsReloadHandler::on_reload_vhost_chunk_size(string /*vhost*/)
|
||||
{
|
||||
return ERROR_SUCCESS;
|
||||
|
|
|
@ -73,13 +73,11 @@ public:
|
|||
virtual int on_reload_vhost_hls(std::string vhost);
|
||||
virtual int on_reload_vhost_hds(std::string vhost);
|
||||
virtual int on_reload_vhost_dvr(std::string vhost);
|
||||
virtual int on_reload_vhost_mr(std::string vhost);
|
||||
virtual int on_reload_vhost_publish(std::string vhost);
|
||||
virtual int on_reload_vhost_mw(std::string vhost);
|
||||
virtual int on_reload_vhost_smi(std::string vhost);
|
||||
virtual int on_reload_vhost_tcp_nodelay(std::string vhost);
|
||||
virtual int on_reload_vhost_realtime(std::string vhost);
|
||||
virtual int on_reload_vhost_p1stpt(std::string vhost);
|
||||
virtual int on_reload_vhost_pnt(std::string vhost);
|
||||
virtual int on_reload_vhost_chunk_size(std::string vhost);
|
||||
virtual int on_reload_vhost_transcode(std::string vhost);
|
||||
virtual int on_reload_vhost_exec(std::string vhost);
|
||||
|
|
|
@ -294,7 +294,7 @@ int SrsRtmpConn::on_reload_vhost_realtime(string vhost)
|
|||
return ret;
|
||||
}
|
||||
|
||||
int SrsRtmpConn::on_reload_vhost_p1stpt(string vhost)
|
||||
int SrsRtmpConn::on_reload_vhost_publish(string vhost)
|
||||
{
|
||||
int ret = ERROR_SUCCESS;
|
||||
|
||||
|
@ -308,20 +308,9 @@ int SrsRtmpConn::on_reload_vhost_p1stpt(string vhost)
|
|||
publish_1stpkt_timeout = p1stpt;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int SrsRtmpConn::on_reload_vhost_pnt(string vhost)
|
||||
{
|
||||
int ret = ERROR_SUCCESS;
|
||||
|
||||
if (req->vhost != vhost) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
int pnt = _srs_config->get_publish_normal_timeout(req->vhost);
|
||||
if (pnt != publish_normal_timeout) {
|
||||
srs_trace("p1stpt changed %d=>%d", publish_normal_timeout, pnt);
|
||||
srs_trace("pnt changed %d=>%d", publish_normal_timeout, pnt);
|
||||
publish_normal_timeout = pnt;
|
||||
}
|
||||
|
||||
|
|
|
@ -107,8 +107,7 @@ public:
|
|||
virtual int on_reload_vhost_smi(std::string vhost);
|
||||
virtual int on_reload_vhost_tcp_nodelay(std::string vhost);
|
||||
virtual int on_reload_vhost_realtime(std::string vhost);
|
||||
virtual int on_reload_vhost_p1stpt(std::string vhost);
|
||||
virtual int on_reload_vhost_pnt(std::string vhost);
|
||||
virtual int on_reload_vhost_publish(std::string vhost);
|
||||
// interface IKbpsDelta
|
||||
public:
|
||||
virtual void resample();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue