|
|
@ -272,6 +272,7 @@ found:; |
|
|
|
|
|
|
|
|
if (rtt <= 0 || rtt > 10000000) { |
|
|
if (rtt <= 0 || rtt > 10000000) { |
|
|
ilog(LOG_DEBUG, "Invalid RTT - discarding"); |
|
|
ilog(LOG_DEBUG, "Invalid RTT - discarding"); |
|
|
|
|
|
obj_put(&e->h); |
|
|
return 0; |
|
|
return 0; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -321,13 +322,13 @@ void ssrc_receiver_report(struct call_media *m, const struct ssrc_receiver_repor |
|
|
// determine the clock rate for jitter values |
|
|
// determine the clock rate for jitter values |
|
|
if (pt < 0) { |
|
|
if (pt < 0) { |
|
|
ilog(LOG_DEBUG, "No payload type known for RTCP RR, discarding"); |
|
|
ilog(LOG_DEBUG, "No payload type known for RTCP RR, discarding"); |
|
|
goto out_nl; |
|
|
|
|
|
|
|
|
goto out_nl_put; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
const struct rtp_payload_type *rpt = rtp_payload_type(pt, m->codecs_send); |
|
|
const struct rtp_payload_type *rpt = rtp_payload_type(pt, m->codecs_send); |
|
|
if (!rpt) { |
|
|
if (!rpt) { |
|
|
ilog(LOG_INFO, "Invalid RTP payload type %i, discarding RTCP RR", pt); |
|
|
ilog(LOG_INFO, "Invalid RTP payload type %i, discarding RTCP RR", pt); |
|
|
goto out_nl; |
|
|
|
|
|
|
|
|
goto out_nl_put; |
|
|
} |
|
|
} |
|
|
unsigned int jitter = rpt->clock_rate ? (rr->jitter * 1000 / rpt->clock_rate) : rr->jitter; |
|
|
unsigned int jitter = rpt->clock_rate ? (rr->jitter * 1000 / rpt->clock_rate) : rr->jitter; |
|
|
ilog(LOG_DEBUG, "Calculated jitter for %x is %u ms", rr->ssrc, jitter); |
|
|
ilog(LOG_DEBUG, "Calculated jitter for %x is %u ms", rr->ssrc, jitter); |
|
|
@ -374,6 +375,8 @@ void ssrc_receiver_report(struct call_media *m, const struct ssrc_receiver_repor |
|
|
|
|
|
|
|
|
out_ul_oe: |
|
|
out_ul_oe: |
|
|
mutex_unlock(&other_e->h.lock); |
|
|
mutex_unlock(&other_e->h.lock); |
|
|
|
|
|
goto out_nl_put; |
|
|
|
|
|
out_nl_put: |
|
|
obj_put(&other_e->h); |
|
|
obj_put(&other_e->h); |
|
|
goto out_nl; |
|
|
goto out_nl; |
|
|
out_nl: |
|
|
out_nl: |
|
|
|