Index: media/audio/android/opensles_output.cc |
diff --git a/media/audio/android/opensles_output.cc b/media/audio/android/opensles_output.cc |
index 5643f833c3dd98f53eeb578e13e6ff4aaf9c6887..d134f76092501552d4cffc9d9eaa09e6e5926719 100644 |
--- a/media/audio/android/opensles_output.cc |
+++ b/media/audio/android/opensles_output.cc |
@@ -28,6 +28,7 @@ OpenSLESOutputStream::OpenSLESOutputStream(AudioManagerAndroid* manager, |
active_buffer_index_(0), |
buffer_size_bytes_(0), |
started_(false), |
+ muted_(false), |
volume_(1.0) { |
DVLOG(2) << "OpenSLESOutputStream::OpenSLESOutputStream()"; |
format_.formatType = SL_DATAFORMAT_PCM; |
@@ -172,6 +173,12 @@ void OpenSLESOutputStream::GetVolume(double* volume) { |
*volume = static_cast<double>(volume_); |
} |
+void OpenSLESOutputStream::SetMute(bool state) { |
tommi (sloooow) - chröme
2013/12/02 18:36:00
s/state/muted
wjia(left Chromium)
2013/12/02 21:49:49
Done.
|
+ DVLOG(2) << "OpenSLESOutputStream::SetMute(" << state << ")"; |
+ DCHECK(thread_checker_.CalledOnValidThread()); |
+ muted_ = state; |
+} |
+ |
bool OpenSLESOutputStream::CreatePlayer() { |
DCHECK(thread_checker_.CalledOnValidThread()); |
DCHECK(!engine_object_.Get()); |
@@ -324,7 +331,7 @@ void OpenSLESOutputStream::FillBufferQueueNoLock() { |
// Note: If the internal representation ever changes from 16-bit PCM to |
// raw float, the data must be clipped and sanitized since it may come |
// from an untrusted source such as NaCl. |
- audio_bus_->Scale(volume_); |
+ audio_bus_->Scale(muted_ ? 0.0f : volume_); |
audio_bus_->ToInterleaved(frames_filled, |
format_.bitsPerSample / 8, |
audio_data_[active_buffer_index_]); |