Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(38)

Unified Diff: content/renderer/media/webaudio_capturer_source.cc

Issue 1721273002: MediaStream audio object graph untangling and clean-ups. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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();

Powered by Google App Engine
This is Rietveld 408576698