Index: content/renderer/media/webrtc_audio_capturer.cc |
diff --git a/content/renderer/media/webrtc_audio_capturer.cc b/content/renderer/media/webrtc_audio_capturer.cc |
index 92951e25ea9b7a75aa6bb8030194ae080afb0e4d..14faf1e351b8f5f38bb0e85329e5f5e58bfc049d 100644 |
--- a/content/renderer/media/webrtc_audio_capturer.cc |
+++ b/content/renderer/media/webrtc_audio_capturer.cc |
@@ -201,12 +201,21 @@ WebRtcAudioCapturer::~WebRtcAudioCapturer() { |
void WebRtcAudioCapturer::AddSink( |
WebRtcAudioCapturerSink* track) { |
DCHECK(thread_checker_.CalledOnValidThread()); |
+ DCHECK(track); |
DVLOG(1) << "WebRtcAudioCapturer::AddSink()"; |
base::AutoLock auto_lock(lock_); |
// Verify that |track| is not already added to the list. |
DCHECK(std::find_if( |
tracks_.begin(), tracks_.end(), |
WebRtcAudioCapturerSinkOwner::WrapsSink(track)) == tracks_.end()); |
+ |
+ if (buffer_.get()) { |
+ track->SetCaptureFormat(buffer_->params()); |
+ } else { |
+ DLOG(WARNING) << "The format of the capturer has not been correctly " |
+ << "initialized"; |
+ } |
+ |
// Create (and add to the list) a new WebRtcAudioCapturerSinkOwner which owns |
// the |track| and delagates all calls to the WebRtcAudioCapturerSink |
// interface. |
@@ -379,7 +388,9 @@ void WebRtcAudioCapturer::OnCaptureError() { |
media::AudioParameters WebRtcAudioCapturer::audio_parameters() const { |
base::AutoLock auto_lock(lock_); |
- return buffer_->params(); |
+ // |buffer_| can be NULL when SetCapturerSource() or Initialize() has not |
+ // been called. |
+ return buffer_.get() ? buffer_->params() : media::AudioParameters(); |
} |
} // namespace content |