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