Displaying 2 results from an estimated 2 matches for "int_margin".
2005 Sep 18
0
How does the jitter buffer "catch up"?
...other possible race (assuming CPU cache coherence).
Weeeeelll.. Actually, now that you mention it, the histogram shifting is a
race as well.
In _put, the lines
jitter->shortterm_margin[i] *= .98;
jitter->longterm_margin[i] *= .995;
jitter->shortterm_margin[int_margin] += .02;
jitter->longterm_margin[int_margin] += .005;
are read-accumulate-write operations.
Let's assume the +40 bin has the shorterm_margin 1.0, and _put just read
it to do a multiply.
At this point, _get shifts the histogram, so the 1.0 value is copied to
the +20ms bin.
_pu...
2005 Sep 18
3
How does the jitter buffer "catch up"?
> Err, unless I'm totally wrong, there are a few race conditions.
>
> Assume the buffer is full of packets newer than the current pointer, and
> one that is at the current pointer.
>
> get and put start at the same time.
>
> get will find the correct buffer index. Now, just after it finds it's
> index, assume we switch to the put thread.
>
> Put needs