Hi, I'm digging into jitter buffer implementation (jbuf.c) and find something frustrated In the method jb_framelist_put_at() in jbuf.c /* too late or sequence restart */ if (index < framelist->origin) { if (framelist->origin - index < MAX_MISORDER) { /* too late */ return PJ_ETOOSMALL; } else { /* sequence restart */ framelist->origin = index - framelist->size; } } When framelist->origin - index >= MAX_MISORDER, there are 3 problems 1. If index < framelist->size, then framelist->orgin < 0 ?? 2. If we don't reset framelist, so frame will stand in the wrong position, frame with higher sequence number will be fetched before the lower one ?? 3. Is this right framelist->origin = index - framelist->size - 1 ?? And last question, is jitter buffer implemented according to any document ? (Particularly, I want to ask about "progressive discard algorithm) Many thanks -- Khoa Pham HCMC University of Science Faculty of Information Technology -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20130131/22765e41/attachment-0001.html>