Chromium Code Reviews| 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 6bf30f33af2608473c36eb0b59c957efea71d48b..493a319503462498676016b943f6bf2ed05eee26 100644 |
| --- a/third_party/WebKit/Source/platform/audio/AudioDestination.h |
| +++ b/third_party/WebKit/Source/platform/audio/AudioDestination.h |
| @@ -43,6 +43,7 @@ namespace blink { |
| class PushPullFIFO; |
| class SecurityOrigin; |
| class WebAudioLatencyHint; |
| +class WebThread; |
| // 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 |
| @@ -76,7 +77,13 @@ class PLATFORM_EXPORT AudioDestination : public WebAudioDevice::RenderCallback { |
| virtual void Start(); |
| virtual void Stop(); |
| + void RequestRenderOnWebThread(size_t numberOfFrames, |
| + double delay, |
| + double delayTimestamp, |
| + size_t priorFramesSkipped); |
|
o1ka
2017/04/13 08:36:53
Should these params also be renamed with a new sty
hongchan
2017/04/14 16:31:48
Done.
|
| + |
| size_t CallbackBufferSize() const { return callback_buffer_size_; } |
| + |
| bool IsPlaying() { return is_playing_; } |
| double SampleRate() const { return web_audio_device_->SampleRate(); } |
| @@ -85,7 +92,7 @@ class PLATFORM_EXPORT AudioDestination : public WebAudioDevice::RenderCallback { |
| // hardware. |
| int FramesPerBuffer() const { return web_audio_device_->FramesPerBuffer(); } |
| - // The information from the actual audio hardware. (via Platform::current) |
| + // The information from the actual audio hardware. (via Platform::Current()) |
| static float HardwareSampleRate(); |
| static unsigned long MaxChannelCount(); |
| @@ -95,27 +102,24 @@ class PLATFORM_EXPORT AudioDestination : public WebAudioDevice::RenderCallback { |
| size_t callback_buffer_size_; |
| bool is_playing_; |
| - // The render callback function of WebAudio engine. (i.e. DestinationNode) |
| - AudioIOCallback& callback_; |
| + // WebThread for WebAudio rendering. |
| + std::unique_ptr<WebThread> rendering_thread_; |
| // To pass the data from FIFO to the audio device callback. |
| RefPtr<AudioBus> output_bus_; |
| - // To push the rendered result from WebAudio graph into the FIFO. |
| - RefPtr<AudioBus> render_bus_; |
| - |
| // Resolves the buffer size mismatch between the WebAudio engine and |
| // the callback function from the actual audio device. |
| std::unique_ptr<PushPullFIFO> fifo_; |
| - size_t frames_elapsed_; |
| - AudioIOPosition output_position_; |
| - base::TimeTicks output_position_received_timestamp_; |
| - |
| // Check if the buffer size chosen by the WebAudioDevice is too large. |
| bool CheckBufferSize(); |
| size_t HardwareBufferSize(); |
| + |
| + bool IsRenderingThread(); |
| + |
| + size_t frames_elapsed_; |
| }; |
| } // namespace blink |