Index: content/renderer/media/audio_renderer_mixer_manager.cc |
diff --git a/content/renderer/media/audio_renderer_mixer_manager.cc b/content/renderer/media/audio_renderer_mixer_manager.cc |
index c96b83f60b316a42f8806c9869cc40d37e1d8739..b10a1129d0008e35fb160b66787efbf2c9237893 100644 |
--- a/content/renderer/media/audio_renderer_mixer_manager.cc |
+++ b/content/renderer/media/audio_renderer_mixer_manager.cc |
@@ -49,8 +49,9 @@ media::AudioRendererMixer* AudioRendererMixerManager::GetMixer( |
const std::string& device_id, |
const url::Origin& security_origin, |
media::OutputDeviceStatus* device_status) { |
- // Effects are not passed through to output creation, so ensure none are set. |
- DCHECK_EQ(params.effects(), media::AudioParameters::NO_EFFECTS); |
+ // Only the focusable effect is passed through, so ensure no others are set. |
+ DCHECK(params.effects() == media::AudioParameters::NO_EFFECTS || |
+ params.effects() == media::AudioParameters::FOCUSABLE); |
const MixerKey key(source_render_frame_id, params, device_id, |
security_origin); |
@@ -108,6 +109,10 @@ media::AudioRendererMixer* AudioRendererMixerManager::GetMixer( |
media::AudioParameters output_params( |
media::AudioParameters::AUDIO_PCM_LOW_LATENCY, params.channel_layout(), |
sample_rate, 16, buffer_size); |
+ |
+ // Pass through the focusable effect to the output device. |
+ if (params.effects() == media::AudioParameters::FOCUSABLE) |
+ output_params.set_effects(media::AudioParameters::FOCUSABLE); |
DCHECK(output_params.IsValid()); |
media::AudioRendererMixer* mixer = |