Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(60)

Issue 2839063003: Implement tail processing for AudioNodes (Closed)

Created:
3 years, 8 months ago by Raymond Toy
Modified:
3 years, 5 months ago
Reviewers:
CC:
Raymond Toy, blink-reviews, chromium-reviews, haraken, hongchan
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

Implement tail processing for AudioNodes Keep nodes alive when there are no input connections so that the node has time to flush out any internal memory. When 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 not, nothing is done. If so, the output is disabled, and the node is removed from the list. This allows the node to be collected, if possible. BUG=357843 TEST=

Patch Set 1 #

Patch Set 2 : Rebase #

Patch Set 3 : Add RequiresTailProcessing method #

Patch Set 4 : WIP #

Patch Set 5 : WIP: update last non-silent time after processing; add tests #

Patch Set 6 : Rebase #

Patch Set 7 : Rebase #

Patch Set 8 : Rebase #

Patch Set 9 : Rebase #

Patch Set 10 : Rebase #

Patch Set 11 : Fix tests #

Patch Set 12 : Use gain node in cycle instead of delay #

Patch Set 13 : Disable debugging. #

Patch Set 14 : RequiresTailProcessing is abstract virtual #

Patch Set 15 : Add tail time for compressor #

Patch Set 16 : Remove commented-out code #

Patch Set 17 : More cleanups #

Patch Set 18 : More cleanups #

Patch Set 19 : Rebase #

Patch Set 20 : Make declaration order consistent #

Unified diffs Side-by-side diffs Delta from patch set Stats (+614 lines, -82 lines) Patch
A third_party/WebKit/LayoutTests/webaudio/AudioNode/tail-processing.html View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +328 lines, -0 lines 0 comments Download
M third_party/WebKit/LayoutTests/webaudio/DynamicsCompressor/dynamicscompressor-clear-internal-state.html View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +10 lines, -4 lines 0 comments Download
M third_party/WebKit/LayoutTests/webaudio/internals/cycle-connection-gc.html View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +6 lines, -6 lines 0 comments Download
M third_party/WebKit/LayoutTests/webaudio/resources/note-grain-on-testing.js View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 4 chunks +8 lines, -17 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/AnalyserNode.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +3 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/AnalyserNode.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +9 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/AudioBasicProcessorHandler.h View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/AudioBasicProcessorHandler.cpp View 1 2 3 1 chunk +4 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/AudioBasicProcessorHandlerTest.cpp View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/AudioBufferSourceNode.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +0 lines, -6 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/AudioNode.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 4 chunks +14 lines, -8 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/AudioNode.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 7 chunks +60 lines, -31 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/AudioScheduledSourceNode.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +4 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/BiquadDSPKernel.h View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/BiquadDSPKernel.cpp View 1 2 3 4 5 6 7 8 9 1 chunk +6 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/ChannelMergerNode.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/modules/webaudio/ChannelSplitterNode.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/modules/webaudio/ConvolverNode.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/ConvolverNode.cpp View 1 2 1 chunk +6 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/DefaultAudioDestinationNode.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/modules/webaudio/DeferredTaskHandler.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 3 chunks +15 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/DeferredTaskHandler.cpp View 1 2 3 4 5 6 2 chunks +41 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/DynamicsCompressorNode.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/modules/webaudio/DynamicsCompressorNode.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +4 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/GainNode.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/modules/webaudio/IIRDSPKernel.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/IIRDSPKernel.cpp View 1 2 3 4 5 6 7 8 1 chunk +6 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/MediaElementAudioSourceNode.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +2 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/MediaStreamAudioDestinationNode.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +2 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/MediaStreamAudioSourceNode.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +2 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/OfflineAudioDestinationNode.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +2 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/PannerNode.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/PannerNode.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2 chunks +9 lines, -1 line 0 comments Download
M third_party/WebKit/Source/modules/webaudio/ScriptProcessorNode.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/ScriptProcessorNode.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +5 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/StereoPannerNode.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/modules/webaudio/WaveShaperDSPKernel.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/WaveShaperDSPKernel.cpp View 1 2 1 chunk +6 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/audio/AudioDSPKernel.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/audio/AudioDSPKernelProcessor.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/audio/AudioDSPKernelProcessor.cpp View 1 2 1 chunk +6 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/audio/AudioDelayDSPKernel.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/audio/AudioDelayDSPKernel.cpp View 1 2 1 chunk +6 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/audio/AudioProcessor.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/audio/DynamicsCompressor.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +6 lines, -1 line 0 comments Download
M third_party/WebKit/Source/platform/audio/DynamicsCompressor.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +4 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/audio/DynamicsCompressorKernel.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +2 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/audio/DynamicsCompressorKernel.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +12 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/audio/EqualPowerPanner.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/audio/HRTFPanner.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/audio/HRTFPanner.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +5 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/audio/Panner.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 1 (0 generated)
Raymond Toy
3 years, 5 months ago (2017-07-24 17:36:20 UTC) #1

Powered by Google App Engine
This is Rietveld 408576698