• Håvard Graff's avatar
    rtpjitterbuffer: don't try and calculate packet-rate if seqnum are jumping · 8ed7ab17
    Håvard Graff authored
    Turns out that the "big-gap"-logic of the jitterbuffer has been horribly
    broken.
    
    For people using lost-events, an RTP-stream with a gap in sequencenumbers,
    would produce exactly that many lost-events immediately.
    So if your sequence-numbers jumped 20000, you would get 20000 lost-events
    in your pipeline...
    
    The test that looks after this logic "test_push_big_gap", basically
    incremented the DTS of the buffer equal to the gap that was introduced,
    so that in fact this would be more of a "large pause" test, than an
    actual gap/discontinuity in the sequencenumbers.
    
    Once the test was modified to not increment DTS (buffer arrival time) with
    a similar gap, all sorts of crazy started happening, including adding
    thousands of timers, and the logic that should have kicked in, the
    "handle_big_gap_buffer"-logic, was not called at all, why?
    
    Because the number max_dropout is calculated using the packet-rate, and
    the packet-rate logic would, in this particular test, report that
    the new packet rate was over 400000 packets per second!!!
    
    I believe the right fix is to don't try and update the packet-rate if
    there is any jumps in the sequence-numbers, and only do these calculations
    for nice, sequential streams.
    8ed7ab17
Name
Last commit
Last update
common @ 59cb6781 Loading commit data...
docs Loading commit data...
ext Loading commit data...
gst Loading commit data...
gst-libs/gst Loading commit data...
hooks Loading commit data...
m4 Loading commit data...
pkgconfig Loading commit data...
po Loading commit data...
sys Loading commit data...
tests Loading commit data...
.gitignore Loading commit data...
.gitlab-ci.yml Loading commit data...
.gitmodules Loading commit data...
AUTHORS Loading commit data...
COPYING Loading commit data...
ChangeLog Loading commit data...
MAINTAINERS Loading commit data...
Makefile.am Loading commit data...
NEWS Loading commit data...
README Loading commit data...
README.static-linking Loading commit data...
RELEASE Loading commit data...
REQUIREMENTS Loading commit data...
autogen.sh Loading commit data...
configure.ac Loading commit data...
gst-plugins-good.doap Loading commit data...
meson.build Loading commit data...
meson_options.txt Loading commit data...