Changeset 567 for pjproject/trunk/pjmedia/src/pjmedia/rtcp.c
- Timestamp:
- Jun 29, 2006 9:51:09 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjmedia/src/pjmedia/rtcp.c
r537 r567 141 141 sess->avg_jitter = 0; 142 142 143 /* Last RX timestamp in RTP packet */ 144 sess->rtp_last_ts = (unsigned)-1; 145 143 146 /* Name */ 144 147 sess->name = name ? name : THIS_FILE, … … 198 201 unsigned last_seq; 199 202 203 if (sess->stat.rx.pkt == 0) { 204 /* Init sequence for the first time. */ 205 pjmedia_rtp_seq_init(&sess->seq_ctrl, (pj_uint16_t)seq); 206 } 207 200 208 sess->stat.rx.pkt++; 201 209 sess->stat.rx.bytes += payload; 202 210 203 /* Update sequence numbers. */211 /* Process the RTP packet. */ 204 212 last_seq = sess->seq_ctrl.max_seq; 205 213 pjmedia_rtp_seq_update(&sess->seq_ctrl, (pj_uint16_t)seq, &seq_st); 214 206 215 if (seq_st.status.flag.restart) { 207 216 rtcp_init_seq(sess); … … 213 222 } 214 223 215 if (seq_st.status.flag.outorder ) {224 if (seq_st.status.flag.outorder && !seq_st.status.flag.probation) { 216 225 sess->stat.rx.reorder++; 217 226 TRACE_((sess->name, "Out-of-order packet detected")); … … 259 268 260 269 /* 261 * Calculate jitter only when sequence is good (see RFC 3550 section A.8) 270 * Calculate jitter only when sequence is good (see RFC 3550 section A.8), 271 * AND only when the timestamp is different than the last packet 272 * (see RTP FAQ). 262 273 */ 263 if (seq_st.diff == 1 ) {274 if (seq_st.diff == 1 && rtp_ts != sess->rtp_last_ts) { 264 275 /* Get arrival time and convert timestamp to samples */ 265 276 pj_get_timestamp(&ts); … … 310 321 } 311 322 } 323 324 /* Update timestamp of last RX RTP packet */ 325 sess->rtp_last_ts = rtp_ts; 312 326 } 313 327
Note: See TracChangeset
for help on using the changeset viewer.