| 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);
|
|
|