Skip to content
  • Stian Selnes's avatar
    rtpjitterbuffer: Major improvements for RTX stats · 38a75450
    Stian Selnes authored and Olivier Crête's avatar Olivier Crête committed
    Stats should also be collected for unsuccessful packets.
    
    rtx-rtt is very important for determining the necessary configured
    latency on the jitterbuffer. It's especially important to be able to
    increase the latency when retransmitted packets arrive too late and are
    considered lost. This patch includes these late packets in the
    calculation of the various rtx stats, making them more correct and
    useful.
    
    Also in the case where the original packet arrives after a NACK is sent,
    the received RTX packet should update the stats since it provides useful
    information about RTT.
    
    The RTT is only updated if and only if all requested retranmissions are
    received. That way the RTT is guaranteed to make sense. If not we don't
    know which request the packet is a response to and the RTT may be bogus.
    A consequence of this patch is that RTT is not updated for a request
    when one of the RTX packets for that seqnum is lost, but that since
    measured RTT will be more accurate.
    
    The implementation store the RTX information from the timed out timers
    and use this when the retransmitted packet arrives. For performance
    these timers are stored separately from the "normal" timers in order to
    not impact performance (see attached performance test).
    
    https://bugzilla.gnome.org/show_bug.cgi?id=769768
    38a75450