diff --git a/jitterbuf.c b/jitterbuf.c index 3bdd3b5335..26d58cb6f5 100755 --- a/jitterbuf.c +++ b/jitterbuf.c @@ -310,11 +310,16 @@ static void queue_put(jitterbuf *jb, void *data, int type, long ms, long ts) jb->frames = frame; frame->next = frame; frame->prev = frame; + } else if (ts < jb->frames->ts) { + frame->next = jb->frames; frame->prev = jb->frames->prev; frame->next->prev = frame; frame->prev->next = frame; + /* frame is out of order */ + jb->info.frames_ooo++; + jb->frames = frame; } else { p = jb->frames;