• Dale Curtis's avatar
    Release sink when AudioSourceProvider::SetClient() is called. · 391671c4
    Dale Curtis authored
    There's currently no way to resume these sinks from html/js so there's
    no point in restoring the sink state after disconnection. Specifically
    you can't call MediaElementAudioSourceNode.disconnect() and expect the
    underlying media element to be able to ever work again. See this demo:
    
    http://storage.googleapis.com/dalecurtis/webaudio-test.html
    
    Once AudioContext.createMediaElementSource(element) has been called on
    an element, that element can never be used standalone again. It must
    always be connected to the AudioContext to be used.
    
    In fact it's actually causing unnecessary work when the elements are
    destructed since removing the client respins the sink and mixer, etc.
    
    BUG=910951
    TEST=passes cq.
    R=hongchan
    
    Change-Id: I5ff7fc532545075d62859a30f96d17c83bff9d21
    Reviewed-on: https://chromium-review.googlesource.com/c/1359092
    Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
    Reviewed-by: default avatarHongchan Choi <hongchan@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#613346}
    391671c4
webaudiosourceprovider_impl_unittest.cc 9 KB