• Olga Sharonova's avatar
    Optimization of realtime audio threads on Mac · ae3fb04f
    Olga Sharonova authored
    (Behind a flag)
    
    * Configures renderer-side RT audio threads based on the audio buffer
    duration, the same way CoreAudio does for audio device threads.
    
    * This CL covers only audio playback and capture which use
    base::PlatformThread directly (this is most of the audio paths).
    
    * WebAudio worklet and audio loopback could probably also benefit from
    such changes, but it requires a separate effort of exposing API in
    blink::Thread/SimpleThread (WebAudio) and base::Thread (loopback).
    
    * The change is disabled by default. We'll run a finch experiment
    to evaluate it.
    
    *If we do decide to keep it, as part of cleaning up the experiment,
    we will remove the new virtual from PlatformThread::Delegate and move
    it to be passed along with the ThreadPriority (presumably in some sort
    of struct, but TBD).
    
    Doc: https://docs.google.com/document/d/12grOIZ4ootmJb5RYoe3GuJDCzYTjtNiuGIG6PvCz-78/edit?usp=sharing
    
    ------
    API discussion:
    
    V3 of API (PS10)
    * Removed a data member from Delegate
    
    V2 of API (PS8)
    * Looks a bit better
    
    V1 of API (PS7)
    * I'm not a fan of having |audio_buffer_duration| in the thread API,
    but left it for now, to make it clear what exactly is going on.
    
    
    Bug: 1112952
    Change-Id: I43c0b92d60622c74b9eede4e9feba9142cbca9fd
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2398661
    Commit-Queue: Olga Sharonova <olka@chromium.org>
    Reviewed-by: default avatarDale Curtis <dalecurtis@chromium.org>
    Reviewed-by: default avatarDaniel Cheng <dcheng@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#809308}
    ae3fb04f
threading_features.h 520 Bytes