Index: content/renderer/media/renderer_webaudiodevice_impl.h |
diff --git a/content/renderer/media/renderer_webaudiodevice_impl.h b/content/renderer/media/renderer_webaudiodevice_impl.h |
index 2e747c948ecc375e068519e50f5cc6aad7944299..fb58a2c7c453824a8024ba486d2c3cb6177013c1 100644 |
--- a/content/renderer/media/renderer_webaudiodevice_impl.h |
+++ b/content/renderer/media/renderer_webaudiodevice_impl.h |
@@ -6,12 +6,16 @@ |
#define CONTENT_RENDERER_MEDIA_MEDIA_RENDERER_WEBAUDIODEVICE_IMPL_H_ |
#include "base/memory/ref_counted.h" |
+#include "base/threading/thread_checker.h" |
+#include "media/audio/audio_parameters.h" |
#include "media/base/audio_renderer_sink.h" |
#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebAudioDevice.h" |
#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebVector.h" |
namespace content { |
+class RendererAudioOutputDevice; |
+ |
class RendererWebAudioDeviceImpl |
: public WebKit::WebAudioDevice, |
public media::AudioRendererSink::RenderCallback { |
@@ -36,11 +40,17 @@ class RendererWebAudioDeviceImpl |
virtual void OnRenderError() OVERRIDE; |
private: |
- scoped_refptr<media::AudioRendererSink> audio_device_; |
- bool is_running_; |
+ const media::AudioParameters params_; |
// Weak reference to the callback into WebKit code. |
- WebKit::WebAudioDevice::RenderCallback* client_callback_; |
+ WebKit::WebAudioDevice::RenderCallback* const client_callback_; |
+ |
+ // To avoid the need for locking, ensure the control methods of the |
+ // WebKit::WebAudioDevice implementation are called on the same thread. |
+ base::ThreadChecker thread_checker_; |
+ |
+ // When non-NULL, we are started. When NULL, we are stopped. |
+ scoped_refptr<RendererAudioOutputDevice> output_device_; |
DISALLOW_COPY_AND_ASSIGN(RendererWebAudioDeviceImpl); |
}; |