mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +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());
|
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…
Add table
Add a link
Reference in a new issue