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

Unified Diff: third_party/WebKit/Source/modules/webaudio/DefaultAudioDestinationNode.cpp

Issue 1967393002: [DO NOT SUBMIT] AudioWorklet FS2: audio thread (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@FS1-audioworklet-script-importing
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/modules/webaudio/DefaultAudioDestinationNode.cpp
diff --git a/third_party/WebKit/Source/modules/webaudio/DefaultAudioDestinationNode.cpp b/third_party/WebKit/Source/modules/webaudio/DefaultAudioDestinationNode.cpp
index a6fc98218628ce1bcaffe083212e6af20df18e90..7894253c36f9b2773c51d519fff9e9069e90d0e5 100644
--- a/third_party/WebKit/Source/modules/webaudio/DefaultAudioDestinationNode.cpp
+++ b/third_party/WebKit/Source/modules/webaudio/DefaultAudioDestinationNode.cpp
@@ -32,7 +32,7 @@
namespace blink {
DefaultAudioDestinationHandler::DefaultAudioDestinationHandler(AudioNode& node)
- : AudioDestinationHandler(node, AudioDestination::hardwareSampleRate())
+ : AudioDestinationHandler(node, AudioRenderSink::audioHardwareSampleRate())
, m_numberOfInputChannels(0)
{
// Node-specific default mixing rules.
@@ -63,7 +63,7 @@ void DefaultAudioDestinationHandler::initialize()
if (isInitialized())
return;
- createDestination();
+ createRenderSink();
AudioHandler::initialize();
}
@@ -73,66 +73,66 @@ void DefaultAudioDestinationHandler::uninitialize()
if (!isInitialized())
return;
- m_destination->stop();
+ m_audioRenderSink->stop();
m_numberOfInputChannels = 0;
AudioHandler::uninitialize();
}
-void DefaultAudioDestinationHandler::createDestination()
+void DefaultAudioDestinationHandler::createRenderSink()
{
- float hardwareSampleRate = AudioDestination::hardwareSampleRate();
- VLOG(1) << ">>>> hardwareSampleRate = " << hardwareSampleRate;
+ float audioHardwareSampleRate = AudioRenderSink::audioHardwareSampleRate();
+ VLOG(1) << ">>>> hardwareSampleRate = " << audioHardwareSampleRate;
- m_destination = AudioDestination::create(*this, m_inputDeviceId, m_numberOfInputChannels, channelCount(), hardwareSampleRate, context()->getSecurityOrigin());
+ m_audioRenderSink = AudioRenderSink::create(*this,
+ m_inputDeviceId, m_numberOfInputChannels, channelCount(),
+ audioHardwareSampleRate, context()->getSecurityOrigin());
}
void DefaultAudioDestinationHandler::startRendering()
{
ASSERT(isInitialized());
- if (isInitialized()) {
- ASSERT(!m_destination->isPlaying());
- m_destination->start();
- }
+ if (isInitialized())
+ m_audioRenderSink->start();
}
void DefaultAudioDestinationHandler::stopRendering()
{
ASSERT(isInitialized());
- if (isInitialized()) {
- ASSERT(m_destination->isPlaying());
- m_destination->stop();
- }
+ if (isInitialized())
+ m_audioRenderSink->stop();
}
unsigned long DefaultAudioDestinationHandler::maxChannelCount() const
{
- return AudioDestination::maxChannelCount();
+ return AudioRenderSink::audioHardwareChannelCount();
}
-void DefaultAudioDestinationHandler::setChannelCount(unsigned long channelCount, ExceptionState& exceptionState)
+void DefaultAudioDestinationHandler::setChannelCount(unsigned long newChannelCount, ExceptionState& exceptionState)
{
- // The channelCount for the input to this node controls the actual number of channels we
- // send to the audio hardware. It can only be set depending on the maximum number of
- // channels supported by the hardware.
-
+ // The channelCount for the input to this node controls the actual number of
+ // channels we send to the audio hardware. It can only be set depending on
+ // the maximum number of channels supported by the hardware.
ASSERT(isMainThread());
+ ASSERT(isInitialized());
+ if (!isInitialized())
+ return;
- if (!maxChannelCount() || channelCount > maxChannelCount()) {
+ if (!maxChannelCount() || newChannelCount > maxChannelCount()) {
exceptionState.throwDOMException(
IndexSizeError,
- ExceptionMessages::indexOutsideRange<unsigned>("channel count", channelCount, 1, ExceptionMessages::InclusiveBound, maxChannelCount(), ExceptionMessages::InclusiveBound));
+ ExceptionMessages::indexOutsideRange<unsigned>("channel count", newChannelCount, 1, ExceptionMessages::InclusiveBound, maxChannelCount(), ExceptionMessages::InclusiveBound));
return;
}
- unsigned long oldChannelCount = this->channelCount();
- AudioHandler::setChannelCount(channelCount, exceptionState);
+ unsigned long oldChannelCount = channelCount();
+ AudioHandler::setChannelCount(newChannelCount, exceptionState);
- if (!exceptionState.hadException() && this->channelCount() != oldChannelCount && isInitialized()) {
- // Re-create destination.
- m_destination->stop();
- createDestination();
- m_destination->start();
+ // Restart render sink to apply the channel count change.
+ if (!exceptionState.hadException() && channelCount() != oldChannelCount) {
+ m_audioRenderSink->stop();
+ createRenderSink();
+ m_audioRenderSink->start();
}
}

Powered by Google App Engine
This is Rietveld 408576698