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

Unified Diff: third_party/WebKit/Source/platform/audio/AudioDestination.h

Issue 2549093009: Introduce PushPullFIFO class and remove other FIFOs (Closed)
Patch Set: Death test comparison string dropped after l-g-t-m Created 3 years, 10 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/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;
« no previous file with comments | « third_party/WebKit/Source/platform/BUILD.gn ('k') | third_party/WebKit/Source/platform/audio/AudioDestination.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698