1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

For RTC, always try to read message first, to improve performance

This commit is contained in:
winlin 2020-04-16 18:52:17 +08:00
parent 1a6e055f7f
commit 32f43a9920

View file

@ -694,6 +694,13 @@ srs_error_t SrsRtcSenderThread::cycle()
return srs_error_wrap(err, "rtc sender thread"); return srs_error_wrap(err, "rtc sender thread");
} }
int msg_count = 0;
if ((err = consumer->dump_packets(&msgs, msg_count)) != srs_success) {
continue;
}
// For RTC, we always try to read messages, only wait when no message.
if (msg_count <= 0) {
#ifdef SRS_PERF_QUEUE_COND_WAIT #ifdef SRS_PERF_QUEUE_COND_WAIT
if (realtime) { if (realtime) {
// for realtime, min required msgs is 0, send when got one+ msgs. // for realtime, min required msgs is 0, send when got one+ msgs.
@ -702,18 +709,9 @@ srs_error_t SrsRtcSenderThread::cycle()
// for no-realtime, got some msgs then send. // for no-realtime, got some msgs then send.
consumer->wait(SRS_PERF_MW_MIN_MSGS_FOR_RTC, mw_sleep); consumer->wait(SRS_PERF_MW_MIN_MSGS_FOR_RTC, mw_sleep);
} }
#endif #else
int msg_count = 0;
if ((err = consumer->dump_packets(&msgs, msg_count)) != srs_success) {
continue;
}
if (msg_count <= 0) {
#ifndef SRS_PERF_QUEUE_COND_WAIT
srs_usleep(mw_sleep); srs_usleep(mw_sleep);
#endif #endif
// ignore when nothing got.
continue; continue;
} }