Refine get_send_min_interval in time unit

pull/1651/head
winlin 6 years ago
parent c1b64ba24f
commit 402e614471

@ -4730,9 +4730,9 @@ bool SrsConfig::get_tcp_nodelay(string vhost)
return SRS_CONF_PERFER_FALSE(conf->arg0()); return SRS_CONF_PERFER_FALSE(conf->arg0());
} }
double SrsConfig::get_send_min_interval(string vhost) srs_utime_t SrsConfig::get_send_min_interval(string vhost)
{ {
static double DEFAULT = 0.0; static srs_utime_t DEFAULT = 0;
SrsConfDirective* conf = get_vhost(vhost); SrsConfDirective* conf = get_vhost(vhost);
if (!conf) { if (!conf) {
@ -4749,7 +4749,7 @@ double SrsConfig::get_send_min_interval(string vhost)
return DEFAULT; return DEFAULT;
} }
return ::atof(conf->arg0().c_str()); return srs_utime_t(::atof(conf->arg0().c_str()) * SRS_UTIME_MILLISECONDS);
} }
bool SrsConfig::get_reduce_sequence_header(string vhost) bool SrsConfig::get_reduce_sequence_header(string vhost)

@ -796,9 +796,9 @@ public:
*/ */
virtual bool get_tcp_nodelay(std::string vhost); virtual bool get_tcp_nodelay(std::string vhost);
/** /**
* the minimal send interval in ms. * the minimal send interval in srs_utime_t.
*/ */
virtual double get_send_min_interval(std::string vhost); virtual srs_utime_t get_send_min_interval(std::string vhost);
/** /**
* whether reduce the sequence header. * whether reduce the sequence header.
*/ */

@ -265,9 +265,9 @@ srs_error_t SrsRtmpConn::on_reload_vhost_play(string vhost)
// send_min_interval // send_min_interval
if (true) { if (true) {
double v = _srs_config->get_send_min_interval(vhost); srs_utime_t v = _srs_config->get_send_min_interval(vhost);
if (v != send_min_interval) { if (v != send_min_interval) {
srs_trace("apply smi %.2f=>%.2f", send_min_interval, v); srs_trace("apply smi %d=>%d ms", srsu2msi(send_min_interval), srsu2msi(v));
send_min_interval = v; send_min_interval = v;
} }
} }
@ -692,8 +692,8 @@ srs_error_t SrsRtmpConn::do_playing(SrsSource* source, SrsConsumer* consumer, Sr
// initialize the send_min_interval // initialize the send_min_interval
send_min_interval = _srs_config->get_send_min_interval(req->vhost); send_min_interval = _srs_config->get_send_min_interval(req->vhost);
srs_trace("start play smi=%.2f, mw_sleep=%d, mw_enabled=%d, realtime=%d, tcp_nodelay=%d", srs_trace("start play smi=%dms, mw_sleep=%d, mw_enabled=%d, realtime=%d, tcp_nodelay=%d",
send_min_interval, srsu2msi(mw_sleep), mw_enabled, realtime, tcp_nodelay); srsu2msi(send_min_interval), srsu2msi(mw_sleep), mw_enabled, realtime, tcp_nodelay);
while (true) { while (true) {
// collect elapse for pithy print. // collect elapse for pithy print.
@ -788,7 +788,7 @@ srs_error_t SrsRtmpConn::do_playing(SrsSource* source, SrsConsumer* consumer, Sr
// apply the minimal interval for delivery stream in ms. // apply the minimal interval for delivery stream in ms.
if (send_min_interval > 0) { if (send_min_interval > 0) {
srs_usleep((int64_t)(send_min_interval * 1000)); srs_usleep(send_min_interval);
} }
} }

@ -116,8 +116,8 @@ private:
// for realtime // for realtime
// @see https://github.com/ossrs/srs/issues/257 // @see https://github.com/ossrs/srs/issues/257
bool realtime; bool realtime;
// the minimal interval in ms for delivery stream. // the minimal interval in srs_utime_t for delivery stream.
double send_min_interval; srs_utime_t send_min_interval;
// publish 1st packet timeout in srs_utime_t // publish 1st packet timeout in srs_utime_t
srs_utime_t publish_1stpkt_timeout; srs_utime_t publish_1stpkt_timeout;
// publish normal packet timeout in srs_utime_t // publish normal packet timeout in srs_utime_t

@ -1878,9 +1878,11 @@ VOID TEST(ConfigUnitTest, CheckDefaultValuesVhost)
if (true) { if (true) {
EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_MIN_OK_CONF)); EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_MIN_OK_CONF));
EXPECT_EQ(30 * SRS_UTIME_SECONDS, conf.get_queue_length("")); EXPECT_EQ(30 * SRS_UTIME_SECONDS, conf.get_queue_length(""));
EXPECT_EQ(0, conf.get_send_min_interval(""));
EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_MIN_OK_CONF"vhost v{play{queue_length 100;}}")); EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_MIN_OK_CONF"vhost v{play{queue_length 100;send_min_interval 10;}}"));
EXPECT_EQ(100 * SRS_UTIME_SECONDS, conf.get_queue_length("v")); EXPECT_EQ(100 * SRS_UTIME_SECONDS, conf.get_queue_length("v"));
EXPECT_EQ(10 * SRS_UTIME_MILLISECONDS, conf.get_send_min_interval("v"));
} }
} }

Loading…
Cancel
Save