Skip to content
  • olka's avatar
    Mixing audio with different latency requirements. · 6bbdb8b3
    olka authored
    Follow-up is introducing mixing for audio other than media elements (under finch).
    
    ** Helper changes:
    1) AudioDeviceFactory: Added  separate categories for WebAudio source basing on expected output latency. Not used by WebAudio right now, but they give a sense of what to expect in the nearest future regarding output latency requirements. (May be dropped for now).
    
    2) AudioLatency class is introduced; latency-based output buffer size calculation is moved into it.
    
    ** Mixing changes:
    3) AudioRendererMixerPool/AudioRendererMixerManager:
    * latency requirement is introduced as one more ARMInput parameter; now it’s a part of ARM key. The mixing strategy (see ARM key comparison) is that only inputs with the same latency requirements can be mixed together;  LATENCY_EXACT_MS inputs are mixed only with the likewise and only if they have the same buffer duration.
    * ARMM adjusts mixer output buffer siza based on input latency and output sample rate.
    
    BUG=560378,564472
    
    Review-Url: https://codereview.chromium.org/2067863003
    Cr-Commit-Position: refs/heads/master@{#403120}
    6bbdb8b3