• Dale Curtis's avatar
    Convert <audio> pipeline to use async device info requests. · 41607b54
    Dale Curtis authored
    This is part 4/4 CLs to move the <audio>/<video> elements off of
    a synchronous API that can lead to renderer hangs and premature
    audio renderer errors.
    
    This changes the AudioRendererMixerPool API to require an
    AudioRendererSink and OutputDeviceInfo when providing a mixer.
    AudioRendererMixerInputs are subsequently changed to use the new
    API.
    
    Likewise AudioRendererImpl also now uses the asynchronous API. To
    simplify the async process, AudioRendererMixerInputs will only setup
    correctly when OutputDeviceInfo has been requested ahead of time,
    since that's the pattern that AudioRendererImpl will use.
    
    This also moves the NullAudioSink setup from WebAudioSourceProvider
    over to the AudioRendererImpl. This causes WebAudio to be disconnected
    from the element, but if audio isn't work anyways, it shouldn't matter.
    
    BUG=905506
    TEST=updated tests, compiles, runs.
    R=olka
    
    Change-Id: I4edf89bb1e20cc91191a6eb97a0e38b6aeba68f8
    Reviewed-on: https://chromium-review.googlesource.com/c/1347795
    Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
    Reviewed-by: default avatarJesse Doherty <jwd@chromium.org>
    Reviewed-by: default avatarOlga Sharonova <olka@chromium.org>
    Reviewed-by: default avatarChrome Cunningham <chcunningham@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#612526}
    41607b54
audio_renderer_mixer_manager.h 6.2 KB