Add support for sub-sample accurate start for AudioBufferSourceNode.
Created attachment 407344 [details] Patch
Created attachment 407350 [details] Patch
Created attachment 407354 [details] Patch
Comment on attachment 407354 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=407354&action=review Crash looks like it is related? ASSERTION FAILED: m_finishedNodes.isEmpty() ./Modules/webaudio/BaseAudioContext.cpp(188) : virtual WebCore::BaseAudioContext::~BaseAudioContext() > Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.cpp:82 > + size_t endFrame = 0; Stray space after the "=" here. > Source/WebCore/platform/audio/AudioUtilities.cpp:85 > + double frame = round(time * sampleRate * oversampleFactor) / oversampleFactor; > + > + switch (rounding) { > + case SampleFrameRounding::Nearest: > + frame = round(frame); > + break; > + case SampleFrameRounding::Down: > + frame = floor(frame); > + break; > + case SampleFrameRounding::Up: > + frame = ceil(frame); > + break; > + } std::round/floor/ceil? Should not matter here since it’s all double.
Committed r266221: <https://trac.webkit.org/changeset/266221> All reviewed patches have been landed. Closing bug and clearing flags on attachment 407354 [details].
<rdar://problem/67849532>
(In reply to Darin Adler from comment #4) > Comment on attachment 407354 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=407354&action=review > > Crash looks like it is related? > > ASSERTION FAILED: m_finishedNodes.isEmpty() > ./Modules/webaudio/BaseAudioContext.cpp(188) : virtual > WebCore::BaseAudioContext::~BaseAudioContext() > > > Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.cpp:82 > > + size_t endFrame = 0; > > Stray space after the "=" here. > > > Source/WebCore/platform/audio/AudioUtilities.cpp:85 > > + double frame = round(time * sampleRate * oversampleFactor) / oversampleFactor; > > + > > + switch (rounding) { > > + case SampleFrameRounding::Nearest: > > + frame = round(frame); > > + break; > > + case SampleFrameRounding::Down: > > + frame = floor(frame); > > + break; > > + case SampleFrameRounding::Up: > > + frame = ceil(frame); > > + break; > > + } > > std::round/floor/ceil? Should not matter here since it’s all double. Sorry, I missed those comments before landing. I applied those fixes in <https://trac.webkit.org/changeset/266234>.