| 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 2d663430e3e13dc1d58d9a1b83f17e25897e12cb..3fca41942df83562b16d38c44f0c6af72069713d 100644
|
| --- a/content/renderer/media/webaudio_capturer_source.cc
|
| +++ b/content/renderer/media/webaudio_capturer_source.cc
|
| @@ -18,16 +18,22 @@ using media::CHANNEL_LAYOUT_STEREO;
|
| namespace content {
|
|
|
| WebAudioCapturerSource::WebAudioCapturerSource(
|
| - const blink::WebMediaStreamSource& blink_source)
|
| + blink::WebMediaStreamSource* blink_source)
|
| : track_(NULL),
|
| audio_format_changed_(false),
|
| fifo_(base::Bind(&WebAudioCapturerSource::DeliverRebufferedAudio,
|
| base::Unretained(this))),
|
| - blink_source_(blink_source) {}
|
| + 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(
|
| @@ -75,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(
|
| @@ -117,15 +123,10 @@ void WebAudioCapturerSource::DeliverRebufferedAudio(
|
| base::TimeDelta::FromMicroseconds(frame_delay *
|
| base::Time::kMicrosecondsPerSecond /
|
| params_.sample_rate());
|
| - track_->Capture(audio_bus, reference_time, false);
|
| + track_->Capture(audio_bus, reference_time);
|
| }
|
|
|
| -// 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();
|
|
|