• Raymond Toy's avatar
    Implement tail processing for AudioNodes · 45a0c949
    Raymond Toy authored
    Enable tail processing by calling the necessary routines.  A
    continuation of https://chromium-review.googlesource.com/c/chromium/src/+/949762
    where tail processing is actually running.
    
    Keep nodes alive when there are no input connections so that the node
    has time to flush out any internal memory. When the output of the node
    is going to be disabled (because there are no inputs), place the node
    on a list, without disabling the output.
    
    The list is processed every rendering quantum to see if the tail time
    of node has passed.  If the tail time has not passed, nothing is done;
    otherwise, the output is disabled, and the node is removed from the
    list.  This allows the node to be collected, if possible.
    
    Bug:357843, 731518
    Test:AudioNode/tail-processing.html,DynamicsCompressor/dynamicscompressor-clear-internal-state.html
    
    Change-Id: I5ba37015787fbbb2342eacb57b4851b99a36b3c5
    Reviewed-on: https://chromium-review.googlesource.com/661165
    Commit-Queue: Raymond Toy <rtoy@chromium.org>
    Reviewed-by: default avatarHongchan Choi <hongchan@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#543881}
    45a0c949
PannerNode.cpp 29.3 KB