Index: content/renderer/media/media_stream_audio_processor.cc |
diff --git a/content/renderer/media/media_stream_audio_processor.cc b/content/renderer/media/media_stream_audio_processor.cc |
index 68aefcbff88663ebfba25ccac372b0aa999c0f54..272a70fe2f7dc8071d7bb5707da78a2a1fc4663b 100644 |
--- a/content/renderer/media/media_stream_audio_processor.cc |
+++ b/content/renderer/media/media_stream_audio_processor.cc |
@@ -136,6 +136,11 @@ class MediaStreamAudioBus { |
thread_checker_.DetachFromThread(); |
} |
+ void ReattachThreadChecker() { |
+ thread_checker_.DetachFromThread(); |
+ DCHECK(thread_checker_.CalledOnValidThread()); |
+ } |
+ |
media::AudioBus* bus() { |
DCHECK(thread_checker_.CalledOnValidThread()); |
return bus_.get(); |
@@ -194,6 +199,12 @@ class MediaStreamAudioFifo { |
thread_checker_.DetachFromThread(); |
} |
+ void ReattachThreadChecker() { |
+ thread_checker_.DetachFromThread(); |
+ DCHECK(thread_checker_.CalledOnValidThread()); |
+ destination_->ReattachThreadChecker(); |
+ } |
+ |
void Push(const media::AudioBus& source, base::TimeDelta audio_delay) { |
DCHECK(thread_checker_.CalledOnValidThread()); |
DCHECK_EQ(source.channels(), source_channels_); |
@@ -474,6 +485,12 @@ void MediaStreamAudioProcessor::OnPlayoutDataSourceChanged() { |
render_fifo_.reset(); |
} |
+void MediaStreamAudioProcessor::OnRenderThreadChanged() { |
+ render_thread_checker_.DetachFromThread(); |
+ DCHECK(render_thread_checker_.CalledOnValidThread()); |
+ render_fifo_->ReattachThreadChecker(); |
+} |
+ |
void MediaStreamAudioProcessor::GetStats(AudioProcessorStats* stats) { |
stats->typing_noise_detected = |
(base::subtle::Acquire_Load(&typing_detected_) != false); |