Index: content/browser/media/capture/web_contents_audio_muter.cc |
diff --git a/content/browser/media/capture/web_contents_audio_muter.cc b/content/browser/media/capture/web_contents_audio_muter.cc |
index 4d321927a4f9217be710bd0fd7f177e710864e22..6d25d550d1878cbc4bee48b442cc6a345013e538 100644 |
--- a/content/browser/media/capture/web_contents_audio_muter.cc |
+++ b/content/browser/media/capture/web_contents_audio_muter.cc |
@@ -12,7 +12,7 @@ |
#include "content/public/browser/web_contents.h" |
#include "media/audio/audio_io.h" |
#include "media/audio/audio_manager.h" |
-#include "media/audio/fake_audio_consumer.h" |
+#include "media/audio/fake_audio_worker.h" |
#include "media/base/bind_to_current_loop.h" |
namespace content { |
@@ -30,14 +30,17 @@ namespace { |
class AudioDiscarder : public media::AudioOutputStream { |
public: |
explicit AudioDiscarder(const media::AudioParameters& params) |
- : consumer_(media::AudioManager::Get()->GetWorkerTaskRunner(), params) {} |
+ : worker_(media::AudioManager::Get()->GetWorkerTaskRunner(), params), |
+ audio_bus_(media::AudioBus::Create(params)) {} |
// AudioOutputStream implementation. |
bool Open() override { return true; } |
void Start(AudioSourceCallback* callback) override { |
- consumer_.Start(base::Bind(&AudioDiscarder::FetchAudioData, callback)); |
+ worker_.Start(base::Bind(&AudioDiscarder::FetchAudioData, |
+ base::Unretained(this), |
+ callback)); |
} |
- void Stop() override { consumer_.Stop(); } |
+ void Stop() override { worker_.Stop(); } |
void SetVolume(double volume) override {} |
void GetVolume(double* volume) override { *volume = 0; } |
void Close() override { delete this; } |
@@ -45,13 +48,13 @@ class AudioDiscarder : public media::AudioOutputStream { |
private: |
~AudioDiscarder() override {} |
- static void FetchAudioData(AudioSourceCallback* callback, |
- media::AudioBus* audio_bus) { |
- callback->OnMoreData(audio_bus, 0); |
+ void FetchAudioData(AudioSourceCallback* callback) { |
+ callback->OnMoreData(audio_bus_.get(), 0); |
} |
// Calls FetchAudioData() at regular intervals and discards the data. |
- media::FakeAudioConsumer consumer_; |
+ media::FakeAudioWorker worker_; |
+ scoped_ptr<media::AudioBus> audio_bus_; |
DISALLOW_COPY_AND_ASSIGN(AudioDiscarder); |
}; |