Incorrect jitter buffer level?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I have been looking at the jitter buffer for a few days now and I notice
something strange about the way the burst level is handle.

Lets take an example with a few frames coming in and out of the buffer:

...
PUT -> framelist size = 7 ,  jb_level = 2
PUT -> framelist size = 8 ,  jb_level = 3
GET -> framelist size = 7 ,  jb_level = 4

jbuf_calculate_jitter(...) is called

GET -> framelist size = 6 ,  jb_level = 1
GET -> framelist size = 5 ,  jb_level = 2
GET -> framelist size = 4 ,  jb_level = 3
PUT -> framelist size = 5 ,  jb_level = 4

PUT -> framelist size = 6 ,  jb_level = 1
PUT -> framelist size = 7 ,  jb_level = 2
PUT -> framelist size = 8 ,  jb_level = 3
GET -> framelist size = 7 ,  jb_level = 4

jbuf_calculate_jitter(...) is called

...

As I see it, the first GET of a series is counted in the PUT burst level
and the first PUT of a series is counted in the GET burst level.
But what if the level suddenly rise on the first PUT?
We get something like this:

...

jbuf_calculate_jitter(...) is called

GET -> framelist size = 6 ,  jb_level = 1
GET -> framelist size = 5 ,  jb_level = 2
GET -> framelist size = 4 ,  jb_level = 3
PUT -> framelist size = 22 ,  jb_level = 21

PUT -> framelist size = 22 ,  jb_level = 1   (frame arriving out of order)
PUT -> framelist size = 22 ,  jb_level = 2   (frame arriving out of order)
PUT -> framelist size = 22 ,  jb_level = 3   (frame arriving out of order)
GET -> framelist size = 21 ,  jb_level = 4

jbuf_calculate_jitter(...) is called

...

Here, the rise in level is not taken into account when
jbuf_calculate_jitter(...) is called.

So my question is:
Do we not take the first PUT of a series into account on purpose? (and
why?)
Or is this a bug?

Best regards,

Alexandre Devos
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20130708/30a49b37/attachment-0001.html>


[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux