mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
add packets interval in ms to set the right send_min_interval
This commit is contained in:
parent
de48b477ae
commit
e7714cd445
9 changed files with 48 additions and 22 deletions
|
@ -2518,9 +2518,9 @@ bool SrsConfig::get_tcp_nodelay(string vhost)
|
|||
return SRS_CONF_PERFER_FALSE(conf->arg0());
|
||||
}
|
||||
|
||||
int SrsConfig::get_send_min_interval(string vhost)
|
||||
double SrsConfig::get_send_min_interval(string vhost)
|
||||
{
|
||||
static int DEFAULT = 0;
|
||||
static double DEFAULT = 0.0;
|
||||
|
||||
SrsConfDirective* conf = get_vhost(vhost);
|
||||
if (!conf) {
|
||||
|
@ -2532,7 +2532,7 @@ int SrsConfig::get_send_min_interval(string vhost)
|
|||
return DEFAULT;
|
||||
}
|
||||
|
||||
return ::atoi(conf->arg0().c_str());
|
||||
return ::atof(conf->arg0().c_str());
|
||||
}
|
||||
|
||||
bool SrsConfig::get_reduce_sequence_header(string vhost)
|
||||
|
|
|
@ -529,7 +529,7 @@ public:
|
|||
/**
|
||||
* the minimal send interval in ms.
|
||||
*/
|
||||
virtual int get_send_min_interval(std::string vhost);
|
||||
virtual double get_send_min_interval(std::string vhost);
|
||||
/**
|
||||
* whether reduce the sequence header.
|
||||
*/
|
||||
|
|
|
@ -256,9 +256,9 @@ int SrsRtmpConn::on_reload_vhost_smi(string vhost)
|
|||
return ret;
|
||||
}
|
||||
|
||||
int smi = _srs_config->get_send_min_interval(vhost);
|
||||
double smi = _srs_config->get_send_min_interval(vhost);
|
||||
if (smi != send_min_interval) {
|
||||
srs_trace("apply smi %d=>%d", send_min_interval, smi);
|
||||
srs_trace("apply smi %.2f=>%.2f", send_min_interval, smi);
|
||||
send_min_interval = smi;
|
||||
}
|
||||
|
||||
|
@ -615,7 +615,7 @@ int SrsRtmpConn::do_playing(SrsSource* source, SrsConsumer* consumer, SrsQueueRe
|
|||
// set the sock options.
|
||||
set_sock_options();
|
||||
|
||||
srs_trace("start play smi=%d, mw_sleep=%d, mw_enabled=%d, realtime=%d",
|
||||
srs_trace("start play smi=%.2f, mw_sleep=%d, mw_enabled=%d, realtime=%d",
|
||||
send_min_interval, mw_sleep, mw_enabled, realtime);
|
||||
|
||||
while (!disposed) {
|
||||
|
@ -667,7 +667,7 @@ int SrsRtmpConn::do_playing(SrsSource* source, SrsConsumer* consumer, SrsQueueRe
|
|||
// get messages from consumer.
|
||||
// each msg in msgs.msgs must be free, for the SrsMessageArray never free them.
|
||||
// @remark when enable send_min_interval, only fetch one message a time.
|
||||
int count = send_min_interval? 1 : 0;
|
||||
int count = (send_min_interval > 0)? 1 : 0;
|
||||
if ((ret = consumer->dump_packets(&msgs, count)) != ERROR_SUCCESS) {
|
||||
srs_error("get messages from consumer failed. ret=%d", ret);
|
||||
return ret;
|
||||
|
@ -745,7 +745,7 @@ int SrsRtmpConn::do_playing(SrsSource* source, SrsConsumer* consumer, SrsQueueRe
|
|||
|
||||
// apply the minimal interval for delivery stream in ms.
|
||||
if (send_min_interval > 0) {
|
||||
st_usleep(send_min_interval * 1000);
|
||||
st_usleep((int64_t)(send_min_interval * 1000));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -86,7 +86,7 @@ private:
|
|||
// @see https://github.com/simple-rtmp-server/srs/issues/257
|
||||
bool realtime;
|
||||
// the minimal interval in ms for delivery stream.
|
||||
int send_min_interval;
|
||||
double send_min_interval;
|
||||
public:
|
||||
SrsRtmpConn(SrsServer* svr, st_netfd_t c);
|
||||
virtual ~SrsRtmpConn();
|
||||
|
|
|
@ -1454,6 +1454,7 @@ int SrsSource::on_meta_data(SrsCommonMessage* msg, SrsOnMetaDataPacket* metadata
|
|||
bool drop_for_reduce = false;
|
||||
if (cache_metadata && _srs_config->get_reduce_sequence_header(_req->vhost)) {
|
||||
drop_for_reduce = true;
|
||||
srs_warn("drop for reduce sh metadata, size=%d", msg->size);
|
||||
}
|
||||
|
||||
// create a shared ptr message.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue