Index: third_party/WebKit/Source/platform/audio/AudioDestination.h |
diff --git a/third_party/WebKit/Source/platform/audio/AudioDestination.h b/third_party/WebKit/Source/platform/audio/AudioDestination.h |
index d0e35b80c7802e71e809db860a1a609cd40741cc..f5c699a181ffdbc4b13544953f8a64d9e501055e 100644 |
--- a/third_party/WebKit/Source/platform/audio/AudioDestination.h |
+++ b/third_party/WebKit/Source/platform/audio/AudioDestination.h |
@@ -31,7 +31,6 @@ |
#include "platform/audio/AudioBus.h" |
#include "platform/audio/AudioIOCallback.h" |
-#include "platform/audio/AudioSourceProvider.h" |
#include "public/platform/WebAudioDevice.h" |
#include "public/platform/WebVector.h" |
#include "wtf/Allocator.h" |
@@ -41,15 +40,14 @@ |
namespace blink { |
-class AudioPullFIFO; |
+class PushPullFIFO; |
class SecurityOrigin; |
// The AudioDestination class is an audio sink interface between the media |
// renderer and the Blink's WebAudio module. It has a FIFO to adapt the |
// different processing block sizes of WebAudio renderer and actual hardware |
// audio callback. |
-class PLATFORM_EXPORT AudioDestination : public WebAudioDevice::RenderCallback, |
- public AudioSourceProvider { |
+class PLATFORM_EXPORT AudioDestination : public WebAudioDevice::RenderCallback { |
USING_FAST_MALLOC(AudioDestination); |
WTF_MAKE_NONCOPYABLE(AudioDestination); |
@@ -74,9 +72,6 @@ class PLATFORM_EXPORT AudioDestination : public WebAudioDevice::RenderCallback, |
double delayTimestamp, |
size_t priorFramesSkipped) override; |
- // AudioSourceProvider (FIFO) |
- void provideInput(AudioBus* outputBus, size_t framesToProcess) override; |
- |
virtual void start(); |
virtual void stop(); |
@@ -98,8 +93,15 @@ class PLATFORM_EXPORT AudioDestination : public WebAudioDevice::RenderCallback, |
// The render callback function of WebAudio engine. (i.e. DestinationNode) |
AudioIOCallback& m_callback; |
+ // To pass the data from FIFO to the audio device callback. |
RefPtr<AudioBus> m_outputBus; |
- std::unique_ptr<AudioPullFIFO> m_fifo; |
+ |
+ // To push the rendered result from WebAudio graph into the FIFO. |
+ RefPtr<AudioBus> m_renderBus; |
+ |
+ // Resolves the buffer size mismatch between the WebAudio engine and |
+ // the callback function from the actual audio device. |
+ std::unique_ptr<PushPullFIFO> m_fifo; |
size_t m_framesElapsed; |
AudioIOPosition m_outputPosition; |