Chromium Code Reviews| 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()); |
|
tommi (sloooow) - chröme
2016/06/13 14:15:20
nit: The DCHECK() part here isn't needed. Just ca
Henrik Grunell
2016/06/14 11:30:00
Well. There could be a context switch after detach
|
| + } |
| + |
| 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); |