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 64797f225cfe21ea6e33bd4cbc787e338fb64ed7..189fab721459b7508dfa287e7413562d9a8f2d1d 100644 |
| --- a/third_party/WebKit/Source/platform/audio/AudioDestination.h |
| +++ b/third_party/WebKit/Source/platform/audio/AudioDestination.h |
| @@ -85,14 +85,16 @@ class PLATFORM_EXPORT AudioDestination : public WebAudioDevice::RenderCallback { |
| virtual void Start(); |
| virtual void Stop(); |
| - size_t CallbackBufferSize() const { return callback_buffer_size_; } |
| - bool IsPlaying() { return is_playing_; } |
| + // Getters must be accessed from the main thread. |
| + size_t CallbackBufferSize() const; |
| + bool IsPlaying(); |
|
nhiroki
2017/05/02 01:42:51
bool IsPlaying() const; ?
|
| + // TODO(hongchan): this should not be accssed from the main thread. |
| double SampleRate() const { return web_audio_device_->SampleRate(); } |
| // Returns the audio buffer size in frames used by the underlying audio |
| - // hardware. |
| - int FramesPerBuffer() const { return web_audio_device_->FramesPerBuffer(); } |
| + // hardware. Must be accssed from the main thread. |
| + int FramesPerBuffer() const; |
| // The information from the actual audio hardware. (via Platform::current) |
| static float HardwareSampleRate(); |
| @@ -106,18 +108,20 @@ class PLATFORM_EXPORT AudioDestination : public WebAudioDevice::RenderCallback { |
| bool IsRenderingThread(); |
| + // Accessed by the main thread. |
| std::unique_ptr<WebAudioDevice> web_audio_device_; |
| const unsigned number_of_output_channels_; |
| size_t callback_buffer_size_; |
| bool is_playing_; |
| - // Rendering thread for WebAudio graph. |
| - std::unique_ptr<WebThread> rendering_thread_; |
| - |
| - // Accessed by both threads: resolves the buffer size mismatch between the |
| - // WebAudio engine and the callback function from the actual audio device. |
| + // Accessed by device and rendering threads: resolves the buffer size mismatch |
| + // between the WebAudio engine and the callback function from the actual audio |
| + // device. |
| std::unique_ptr<PushPullFIFO> fifo_; |
| + // Accessed by the device thread. Rendering thread for WebAudio graph. |
| + std::unique_ptr<WebThread> rendering_thread_; |
| + |
| // Accessed by device thread: to pass the data from FIFO to the device. |
| RefPtr<AudioBus> output_bus_; |