summaryrefslogtreecommitdiffstats
path: root/media/audio
diff options
context:
space:
mode:
Diffstat (limited to 'media/audio')
-rw-r--r--media/audio/audio_output_controller.cc8
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;