• John Koleszar's avatar
    improve average framerate calculation · f7e187d3
    John Koleszar authored
    Change Ice204e86 identified a problem with bitrate undershoot due to
    low precision in the timestamps passed to the library. This patch
    takes a different approach by calculating the duration of this frame
    and passing it to the library, rather than using a fixed duration
    and letting the library average it out with higher precision
    timestamps. This part of the fix only applies to vpxenc.
    
    This patch also attempts to fix the problem for generic applications
    that may have made the same mistake vpxenc did. Instead of
    calculating this frame's duration by the difference of this frame's
    and the last frame's start time, we use the end times instead. This
    allows the framerate calculation to scavenge "unclaimed" time from
    the last frame. For instance:
    
      start |  end  | calculated duration
      ======+=======+====================
        0ms    33ms   33ms
       33ms    66ms   33ms
       66ms    99ms   33ms
      100ms   133ms   34ms
    
    Change-Id: I92be4b3518e0bd530e97f90e69e75330a4c413fc
    f7e187d3
vpxenc.c 52.1 KB