After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 768649 - queue2: Force final average input rate calculation on EOS
queue2: Force final average input rate calculation on EOS
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
unspecified
Other All
: Normal normal
: 1.8.3
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-07-11 08:05 UTC by Edward Hervey
Modified: 2016-08-16 13:50 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
queue2: Force final average input rate calculation on EOS (3.71 KB, patch)
2016-07-11 08:05 UTC, Edward Hervey
committed Details | Review

Description Edward Hervey 2016-07-11 08:05:38 UTC
See commit message
Comment 1 Edward Hervey 2016-07-11 08:05:43 UTC
Created attachment 331184 [details] [review]
queue2: Force final average input rate calculation on EOS

When dealing with small-ish input data coming into queue2, such as
adaptivedemux fragments, we would never take into account the last
<200ms of data coming in.

The problem is that usually on TCP connection the download rate
gradually increases (i.e. the rate is lower at the beginning of a
download than it is later on). Combined with small download time (less
than a second) we would end up with a computed average input rate
which was sometimes up to 30-50% off from the *actual* average input
rate for that fragment.

In order to fix this, force the average input rate calculation when
we receive an EOS so that we take into account that final window
of data.
Comment 2 Edward Hervey 2016-07-11 08:22:27 UTC
commit 1ff80fbf525a56ba0b79031ad49341caa2820abf
Author: Edward Hervey <edward@centricular.com>
Date:   Mon Jul 11 09:58:47 2016 +0200

    queue2: Fix average input rate calculation on small input range
    
    When dealing with small-ish input data coming into queue2, such as
    adaptivedemux fragments, we would never take into account the last
    <200ms of data coming in.
    
    The problem is that usually on TCP connection the download rate
    gradually increases (i.e. the rate is lower at the beginning of a
    download than it is later on). Combined with small download time (less
    than a second) we would end up with a computed average input rate
    which was sometimes up to 30-50% off from the *actual* average input
    rate for that fragment.
    
    In order to fix this, force the average input rate calculation when
    we receive an EOS so that we take into account that final window
    of data.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=768649