mirror of
https://github.com/ossrs/srs.git
synced 2025-02-13 03:41:55 +00:00
Refine get_send_min_interval in time unit
This commit is contained in:
parent
c1b64ba24f
commit
402e614471
5 changed files with 15 additions and 13 deletions
|
@ -4730,9 +4730,9 @@ bool SrsConfig::get_tcp_nodelay(string vhost)
|
|||
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);
|
||||
if (!conf) {
|
||||
|
@ -4749,7 +4749,7 @@ double SrsConfig::get_send_min_interval(string vhost)
|
|||
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)
|
||||
|
|
|
@ -796,9 +796,9 @@ public:
|
|||
*/
|
||||
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.
|
||||
*/
|
||||
|
|
|
@ -265,9 +265,9 @@ srs_error_t SrsRtmpConn::on_reload_vhost_play(string vhost)
|
|||
|
||||
// send_min_interval
|
||||
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) {
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
@ -692,8 +692,8 @@ srs_error_t SrsRtmpConn::do_playing(SrsSource* source, SrsConsumer* consumer, Sr
|
|||
// initialize the send_min_interval
|
||||
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",
|
||||
send_min_interval, srsu2msi(mw_sleep), mw_enabled, realtime, tcp_nodelay);
|
||||
srs_trace("start play smi=%dms, mw_sleep=%d, mw_enabled=%d, realtime=%d, tcp_nodelay=%d",
|
||||
srsu2msi(send_min_interval), srsu2msi(mw_sleep), mw_enabled, realtime, tcp_nodelay);
|
||||
|
||||
while (true) {
|
||||
// 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.
|
||||
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
|
||||
// @see https://github.com/ossrs/srs/issues/257
|
||||
bool realtime;
|
||||
// the minimal interval in ms for delivery stream.
|
||||
double send_min_interval;
|
||||
// the minimal interval in srs_utime_t for delivery stream.
|
||||
srs_utime_t send_min_interval;
|
||||
// publish 1st packet timeout in srs_utime_t
|
||||
srs_utime_t publish_1stpkt_timeout;
|
||||
// publish normal packet timeout in srs_utime_t
|
||||
|
|
|
@ -1878,9 +1878,11 @@ VOID TEST(ConfigUnitTest, CheckDefaultValuesVhost)
|
|||
if (true) {
|
||||
EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_MIN_OK_CONF));
|
||||
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(10 * SRS_UTIME_MILLISECONDS, conf.get_send_min_interval("v"));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue