MT#55283 add config rtcp_interval used when generate-RTCP=on

closes #1759

Change-Id: I09722106d42e25f4befa953d374fa96c344322b7
pull/1770/head
Andrii Pogrebennyk 2 years ago committed by Richard Fuchs
parent cfa560c6b4
commit c75cffddcc

@ -920,7 +920,7 @@ static void __codec_rtcp_timer_schedule(struct call_media *media) {
rt->ct.timer_func = __rtcp_timer_run; rt->ct.timer_func = __rtcp_timer_run;
} }
timeval_add_usec(&rt->ct.next, 5000000 + (ssl_random() % 2000000)); timeval_add_usec(&rt->ct.next, rtpe_config.rtcp_interval * 1000 + (ssl_random() % 1000000));
timerthread_obj_schedule_abs(&rt->ct.tt_obj, &rt->ct.next); timerthread_obj_schedule_abs(&rt->ct.tt_obj, &rt->ct.next);
} }
// no lock held // no lock held
@ -939,7 +939,7 @@ static void __rtcp_timer_run(struct codec_timer *ct) {
rwlock_unlock_w(&rt->call->master_lock); rwlock_unlock_w(&rt->call->master_lock);
goto out; goto out;
} }
timeval_add_usec(&ct->next, 5000000 + (ssl_random() % 2000000)); timeval_add_usec(&ct->next, rtpe_config.rtcp_interval * 1000 + (ssl_random() % 1000000));
__codec_rtcp_timer_schedule(media); __codec_rtcp_timer_schedule(media);
// switch locks to be more graceful // switch locks to be more graceful

@ -644,6 +644,7 @@ static void options(int *argc, char ***argv) {
{ "socket-cpu-affinity",0,0,G_OPTION_ARG_INT, &rtpe_config.cpu_affinity,"CPU affinity for media sockets","INT"}, { "socket-cpu-affinity",0,0,G_OPTION_ARG_INT, &rtpe_config.cpu_affinity,"CPU affinity for media sockets","INT"},
#endif #endif
{ "janus-secret", 0,0, G_OPTION_ARG_STRING, &rtpe_config.janus_secret,"Admin secret for Janus protocol","STRING"}, { "janus-secret", 0,0, G_OPTION_ARG_STRING, &rtpe_config.janus_secret,"Admin secret for Janus protocol","STRING"},
{ "rtcp-interval", 0,0, G_OPTION_ARG_INT, &rtpe_config.rtcp_interval,"Delay in milliseconds between RTCP packets when generate-rtcp flag is on, where random dispersion < 1 sec is added on top","INT"},
{ NULL, } { NULL, }
}; };
@ -801,6 +802,9 @@ static void options(int *argc, char ***argv) {
if (rtpe_config.final_timeout <= 0) if (rtpe_config.final_timeout <= 0)
rtpe_config.final_timeout = 0; rtpe_config.final_timeout = 0;
if (rtpe_config.rtcp_interval <= 0)
rtpe_config.rtcp_interval = 5000;
if (redisps) if (redisps)
if (redis_ep_parse(&rtpe_config.redis_ep, &rtpe_config.redis_db, &rtpe_config.redis_auth, "RTPENGINE_REDIS_AUTH_PW", redisps)) if (redis_ep_parse(&rtpe_config.redis_ep, &rtpe_config.redis_db, &rtpe_config.redis_auth, "RTPENGINE_REDIS_AUTH_PW", redisps))
die("Invalid Redis endpoint [IP:PORT/INT] '%s' (--redis)", redisps); die("Invalid Redis endpoint [IP:PORT/INT] '%s' (--redis)", redisps);
@ -1085,6 +1089,7 @@ static void fill_initial_rtpe_cfg(struct rtpengine_config* ini_rtpe_cfg) {
ini_rtpe_cfg->jb_length = rtpe_config.jb_length; ini_rtpe_cfg->jb_length = rtpe_config.jb_length;
ini_rtpe_cfg->jb_clock_drift = rtpe_config.jb_clock_drift; ini_rtpe_cfg->jb_clock_drift = rtpe_config.jb_clock_drift;
ini_rtpe_cfg->rtcp_interval = rtpe_config.rtcp_interval;
rwlock_unlock_w(&rtpe_config.config_lock); rwlock_unlock_w(&rtpe_config.config_lock);
} }

@ -179,6 +179,7 @@ struct rtpengine_config {
MOS_LQ, MOS_LQ,
} mos; } mos;
gboolean measure_rtp; gboolean measure_rtp;
int rtcp_interval;
int cpu_affinity; int cpu_affinity;
char *janus_secret; char *janus_secret;
}; };

Loading…
Cancel
Save