diff options
author | dalecurtis <dalecurtis@chromium.org> | 2015-03-20 15:42:58 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-03-20 22:43:55 +0000 |
commit | 19faf60586e58f244371697b49eb61959d9c7be9 (patch) | |
tree | 178427ebeae606266fc2444f34a04f1fd814110e /media | |
parent | 515cc963ff3051065f0b65f07dee39469d947d29 (diff) | |
download | chromium_src-19faf60586e58f244371697b49eb61959d9c7be9.zip chromium_src-19faf60586e58f244371697b49eb61959d9c7be9.tar.gz chromium_src-19faf60586e58f244371697b49eb61959d9c7be9.tar.bz2 |
Remove synchronous AudioHardwareConfig request.
It's okay to default to some invalid parameters during render startup. AHC
users already have to deal with this case. The brower side will inject an
extra resampler if the parameters are not received in time for media startup.
This will allow us to avoid a synchronous IPC which seems linked to renderer
hangs and is never really a good idea in the first place.
BUG=422522
TEST=audio, WebAudio, WebRTC work w/ or w/o parameters ready.
Review URL: https://codereview.chromium.org/1016243002
Cr-Commit-Position: refs/heads/master@{#321657}
Diffstat (limited to 'media')
-rw-r--r-- | media/audio/audio_output_controller.h | 1 | ||||
-rw-r--r-- | media/audio/audio_output_controller_unittest.cc | 1 | ||||
-rw-r--r-- | media/base/audio_hardware_config.cc | 2 | ||||
-rw-r--r-- | media/base/audio_hardware_config.h | 1 | ||||
-rw-r--r-- | media/renderers/audio_renderer_impl.cc | 5 |
5 files changed, 5 insertions, 5 deletions
diff --git a/media/audio/audio_output_controller.h b/media/audio/audio_output_controller.h index 23dc897..298c565 100644 --- a/media/audio/audio_output_controller.h +++ b/media/audio/audio_output_controller.h @@ -67,7 +67,6 @@ class MEDIA_EXPORT AudioOutputController virtual void OnPlaying() = 0; virtual void OnPaused() = 0; virtual void OnError() = 0; - virtual void OnDeviceChange(int new_buffer_size, int new_sample_rate) = 0; protected: virtual ~EventHandler() {} diff --git a/media/audio/audio_output_controller_unittest.cc b/media/audio/audio_output_controller_unittest.cc index d158898..6e98f0a 100644 --- a/media/audio/audio_output_controller_unittest.cc +++ b/media/audio/audio_output_controller_unittest.cc @@ -41,7 +41,6 @@ class MockAudioOutputControllerEventHandler MOCK_METHOD0(OnPlaying, void()); MOCK_METHOD0(OnPaused, void()); MOCK_METHOD0(OnError, void()); - MOCK_METHOD2(OnDeviceChange, void(int new_buffer_size, int new_sample_rate)); private: DISALLOW_COPY_AND_ASSIGN(MockAudioOutputControllerEventHandler); diff --git a/media/base/audio_hardware_config.cc b/media/base/audio_hardware_config.cc index d00e03f..269b313 100644 --- a/media/base/audio_hardware_config.cc +++ b/media/base/audio_hardware_config.cc @@ -30,6 +30,8 @@ static uint32_t RoundUpToPowerOfTwo(uint32_t v) { } #endif +AudioHardwareConfig::AudioHardwareConfig() {} + AudioHardwareConfig::AudioHardwareConfig( const AudioParameters& input_params, const AudioParameters& output_params) diff --git a/media/base/audio_hardware_config.h b/media/base/audio_hardware_config.h index a4baaac..db3c50b 100644 --- a/media/base/audio_hardware_config.h +++ b/media/base/audio_hardware_config.h @@ -16,6 +16,7 @@ namespace media { // Provides thread safe access to the audio hardware configuration. class MEDIA_EXPORT AudioHardwareConfig { public: + AudioHardwareConfig(); AudioHardwareConfig(const media::AudioParameters& input_params, const media::AudioParameters& output_params); virtual ~AudioHardwareConfig(); diff --git a/media/renderers/audio_renderer_impl.cc b/media/renderers/audio_renderer_impl.cc index 74ef1d2..bb6dffa 100644 --- a/media/renderers/audio_renderer_impl.cc +++ b/media/renderers/audio_renderer_impl.cc @@ -281,8 +281,9 @@ void AudioRendererImpl::Initialize( ended_cb_ = ended_cb; error_cb_ = error_cb; + const AudioParameters& hw_params = hardware_config_.GetOutputConfig(); expecting_config_changes_ = stream->SupportsConfigChanges(); - if (!expecting_config_changes_) { + if (!expecting_config_changes_ || !hw_params.IsValid()) { // The actual buffer size is controlled via the size of the AudioBus // provided to Render(), so just choose something reasonable here for looks. int buffer_size = stream->audio_decoder_config().samples_per_second() / 100; @@ -296,8 +297,6 @@ void AudioRendererImpl::Initialize( buffer_size); buffer_converter_.reset(); } else { - // TODO(rileya): Support hardware config changes - const AudioParameters& hw_params = hardware_config_.GetOutputConfig(); audio_parameters_.Reset( hw_params.format(), // Always use the source's channel layout and channel count to avoid |