I'm having a problem of audio loss when the sender is
slower than the receiver (negative time slide) on my application that
uses the oRTP library
ver.0.13. I enabled some output log messages in order to
understand the problem, the log shows that the time slide computed with
the jitter_control_new_packet function, starts from 0 and decreases to
-320, the decreasing is with steps and is not linear. After the slide
reaches -320 value, the slide decreases again and the application starts
to discard packets with old timestamp ( rtp_getq: discarding too old
packet with ts=32880160, local_ts=32880398 ). I'm using 10 ms jitter
buffer compensation on a local LAN.
Have you suggestions about this problem? Could you tell me what it
has been changed/fixed in the new versions of oRTP library (from 0.15)
related to the jitter_control_new_packet function? New versions
of the library have fixed
the algorithm behavior related to the late packet arrival? What is the reason of the following difference of sign (plus instead minus) in the operation of slide correction between ortp ver 0.15 and ver 0.13? It was a bug fixing?
function rtp_session_recvm_with_ts (rtpsession.c line=1059):
/* update the packet's timestamp so that it corrected by the adaptive jitter buffer mechanism */ if (session->rtp.jittctl.adaptive){
uint32_t changed_ts; /* only update correction offset between packets of different timestamps*/ if (packet_ts!=session->rtp.rcv_last_ts) jitter_control_update_corrective_slide(&session->rtp.jittctl); changed_ts=packet_ts+session->rtp.jittctl.corrective_slide; rtp->timestamp=changed_ts; /*ortp_debug("Returned packet has timestamp %u, with clock slide compensated it is %u",packet_ts,rtp->timestamp);*/
}
Thank you in advance, L.
[Prev in Thread]
Current Thread
[Next in Thread]
[Linphone-developers] jitter compensation,
Lorenzo Viti<=