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

For #307, support reload rtc_server section

This commit is contained in:
winlin 2020-04-10 18:14:33 +08:00
parent 928d863e50
commit d6a5651a30
6 changed files with 73 additions and 6 deletions

View file

@ -1098,10 +1098,14 @@ SrsRtcServer::SrsRtcServer()
trd = new SrsDummyCoroutine();
cache_pos = 0;
_srs_config->subscribe(this);
}
SrsRtcServer::~SrsRtcServer()
{
_srs_config->unsubscribe(this);
srs_freep(listener);
srs_freep(timer);
@ -1133,6 +1137,9 @@ srs_error_t SrsRtcServer::initialize()
return srs_error_wrap(err, "start coroutine");
}
max_sendmmsg = _srs_config->get_rtc_server_sendmmsg();
srs_trace("RTC server init ok, max_sendmmsg=%d", max_sendmmsg);
return err;
}
@ -1351,6 +1358,17 @@ srs_error_t SrsRtcServer::notify(int type, srs_utime_t interval, srs_utime_t tic
return srs_success;
}
srs_error_t SrsRtcServer::on_reload_rtc_server()
{
int v = _srs_config->get_rtc_server_sendmmsg();
if (max_sendmmsg != v) {
max_sendmmsg = v;
srs_trace("Reload max_sendmmsg=%d", max_sendmmsg);
}
return srs_success;
}
mmsghdr* SrsRtcServer::fetch()
{
// TODO: FIXME: Maybe need to shrink?
@ -1404,9 +1422,6 @@ srs_error_t SrsRtcServer::cycle()
SrsPithyPrint* pprint = SrsPithyPrint::create_rtc_send();
SrsAutoFree(SrsPithyPrint, pprint);
// TODO: FIXME: Support reload.
int max_sendmmsg = _srs_config->get_rtc_server_sendmmsg();
while (true) {
if ((err = trd->pull()) != srs_success) {
return err;
@ -1441,8 +1456,6 @@ srs_error_t SrsRtcServer::cycle()
pprint->elapse();
if (pprint->can_print()) {
// TODO: FIXME: Support reload.
max_sendmmsg = _srs_config->get_rtc_server_sendmmsg();
srs_trace("-> RTC SEND %d by sendmmsg %d, total %" PRId64 " msgs", pos, max_sendmmsg, nn_msgs);
}
}