|
|
|
|
@ -221,7 +221,6 @@ static void send_timer_rtcp(struct send_timer *st, struct ssrc_ctx *ssrc_out) {
|
|
|
|
|
|
|
|
|
|
rtcp_send_report(media, ssrc_out);
|
|
|
|
|
|
|
|
|
|
// XXX missing locking?
|
|
|
|
|
ssrc_out->next_rtcp = rtpe_now;
|
|
|
|
|
timeval_add_usec(&ssrc_out->next_rtcp, 5000000 + (ssl_random() % 2000000));
|
|
|
|
|
}
|
|
|
|
|
@ -294,8 +293,10 @@ static void __send_timer_send_common(struct send_timer *st, struct codec_packet
|
|
|
|
|
// do we send RTCP?
|
|
|
|
|
struct ssrc_ctx *ssrc_out = cp->ssrc_out;
|
|
|
|
|
if (ssrc_out && ssrc_out->next_rtcp.tv_sec) {
|
|
|
|
|
mutex_lock(&ssrc_out->parent->h.lock);
|
|
|
|
|
if (timeval_diff(&ssrc_out->next_rtcp, &rtpe_now) < 0)
|
|
|
|
|
send_timer_rtcp(st, ssrc_out);
|
|
|
|
|
mutex_unlock(&ssrc_out->parent->h.lock);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
out:
|
|
|
|
|
@ -309,9 +310,11 @@ static void send_timer_send_lock(struct send_timer *st, struct codec_packet *cp)
|
|
|
|
|
|
|
|
|
|
log_info_call(call);
|
|
|
|
|
rwlock_lock_r(&call->master_lock);
|
|
|
|
|
mutex_lock(&st->sink->out_lock);
|
|
|
|
|
|
|
|
|
|
__send_timer_send_common(st, cp);
|
|
|
|
|
|
|
|
|
|
mutex_unlock(&st->sink->out_lock);
|
|
|
|
|
rwlock_unlock_r(&call->master_lock);
|
|
|
|
|
log_info_pop();
|
|
|
|
|
|
|
|
|
|
|