Skip to content
  • chcunningham's avatar
    Use double microseconds for tracking back/front timestamp in AudioClock. · 2ed08018
    chcunningham authored
    Back timestamp is computed by summing the new frames_written for every
    call to WroteAudio. The number of microseconds per frame is often not
    a whole number (e.g. 20.833 mu for sample rate of 48Khz). Prior to this
    change, using TimeDelta to do the summing of frames_written meant we
    truncated to the nearest microsecond with every call to WroteAudio. The
    truncation error slowly accumulates in the back timestamp. After 2
    hours of playback this error causes noticeable audio/video sync drift.
    
    Having front_timestamp be a double is less critical. Front timestamp
    is computed using back_timestamp at every call to WroteAudio, so fixing
    back implicitly fixes front. Still, I've changed them both to double
    for the sake of consistency and a slight improvement in accuracy.
    
    BUG=564604
    
    Review URL: https://codereview.chromium.org/1711473002
    
    Cr-Commit-Position: refs/heads/master@{#376287}
    2ed08018