Index: content/renderer/media/webaudio_capturer_source.cc |
diff --git a/content/renderer/media/webaudio_capturer_source.cc b/content/renderer/media/webaudio_capturer_source.cc |
index bcebcbb3e24e523288827db01d6b740a019a29fd..262cfc2dd438326310dc82f33e74fc48504d4350 100644 |
--- a/content/renderer/media/webaudio_capturer_source.cc |
+++ b/content/renderer/media/webaudio_capturer_source.cc |
@@ -4,6 +4,7 @@ |
#include "content/renderer/media/webaudio_capturer_source.h" |
+#include "base/bind.h" |
#include "base/logging.h" |
#include "base/time/time.h" |
#include "content/renderer/media/webrtc_local_audio_track.h" |
@@ -20,15 +21,18 @@ static const int kMaxNumberOfBuffersInFifo = 5; |
namespace content { |
WebAudioCapturerSource::WebAudioCapturerSource( |
- const blink::WebMediaStreamSource& blink_source) |
- : track_(NULL), |
- audio_format_changed_(false), |
- blink_source_(blink_source) { |
+ blink::WebMediaStreamSource* blink_source) |
+ : track_(NULL), audio_format_changed_(false), blink_source_(*blink_source) { |
+ DCHECK(blink_source); |
+ DCHECK(!blink_source_.isNull()); |
+ DVLOG(1) << "WebAudioCapturerSource::WebAudioCapturerSource()"; |
+ blink_source_.addAudioConsumer(this); |
} |
WebAudioCapturerSource::~WebAudioCapturerSource() { |
DCHECK(thread_checker_.CalledOnValidThread()); |
- removeFromBlinkSource(); |
+ DVLOG(1) << "WebAudioCapturerSource::~WebAudioCapturerSource()"; |
+ DeregisterFromBlinkSource(); |
} |
void WebAudioCapturerSource::setFormat( |
@@ -77,9 +81,9 @@ void WebAudioCapturerSource::Stop() { |
base::AutoLock auto_lock(lock_); |
track_ = NULL; |
} |
- // removeFromBlinkSource() should not be called while |lock_| is acquired, |
+ // DeregisterFromBlinkSource() should not be called while |lock_| is acquired, |
// as it could result in a deadlock. |
- removeFromBlinkSource(); |
+ DeregisterFromBlinkSource(); |
} |
void WebAudioCapturerSource::consumeAudio( |
@@ -119,7 +123,7 @@ void WebAudioCapturerSource::consumeAudio( |
fifo_->Push(wrapper_bus_.get()); |
while (fifo_->frames() >= capture_bus_->frames()) { |
fifo_->Consume(capture_bus_.get(), 0, capture_bus_->frames()); |
- track_->Capture(*capture_bus_, estimated_capture_time, false); |
+ track_->Capture(*capture_bus_, estimated_capture_time); |
// Advance the estimated capture time for the next FIFO consume operation. |
estimated_capture_time += |
@@ -128,12 +132,7 @@ void WebAudioCapturerSource::consumeAudio( |
} |
} |
-// If registered as audio consumer in |blink_source_|, deregister from |
-// |blink_source_| and stop keeping a reference to |blink_source_|. |
-// Failure to call this method when stopping the track might leave an invalid |
-// WebAudioCapturerSource reference still registered as an audio consumer on |
-// the blink side. |
-void WebAudioCapturerSource::removeFromBlinkSource() { |
+void WebAudioCapturerSource::DeregisterFromBlinkSource() { |
if (!blink_source_.isNull()) { |
blink_source_.removeAudioConsumer(this); |
blink_source_.reset(); |