diff options
Diffstat (limited to 'media/audio')
-rw-r--r-- | media/audio/audio_output_controller.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/media/audio/audio_output_controller.cc b/media/audio/audio_output_controller.cc index 3331701..7118eaa 100644 --- a/media/audio/audio_output_controller.cc +++ b/media/audio/audio_output_controller.cc @@ -323,6 +323,14 @@ uint32 AudioOutputController::OnMoreData( } // Low latency mode. + { + // Check state and do nothing if we are not playing. + // We are on the hardware audio thread, so lock is needed. + base::AutoLock auto_lock(lock_); + if (state_ != kPlaying) { + return 0; + } + } uint32 size = sync_reader_->Read(dest, max_size); sync_reader_->UpdatePendingBytes(buffers_state.total_bytes() + size); return size; |