diff --git a/content/renderer/media/renderer_webaudiodevice_impl.cc b/content/renderer/media/renderer_webaudiodevice_impl.cc index 2f99d5ec39667..82905946d8747 100644 --- a/content/renderer/media/renderer_webaudiodevice_impl.cc +++ b/content/renderer/media/renderer_webaudiodevice_impl.cc @@ -133,15 +133,14 @@ std::unique_ptr<RendererWebAudioDeviceImpl> RendererWebAudioDeviceImpl::Create( return std::unique_ptr<RendererWebAudioDeviceImpl>( new RendererWebAudioDeviceImpl( - sink_descriptor, layout, number_of_output_channels, latency_hint, + sink_descriptor, {layout, number_of_output_channels}, latency_hint, callback, base::BindOnce(&GetOutputDeviceParameters), base::BindRepeating(&GetNullAudioSink))); } RendererWebAudioDeviceImpl::RendererWebAudioDeviceImpl( const WebAudioSinkDescriptor& sink_descriptor, - media::ChannelLayout layout, - int number_of_output_channels, + media::ChannelLayoutConfig layout_config, const blink::WebAudioLatencyHint& latency_hint, media::AudioRendererSink::RenderCallback* callback, OutputDeviceParamsCallback device_params_cb, @@ -197,9 +196,9 @@ RendererWebAudioDeviceImpl::RendererWebAudioDeviceImpl( GetOutputBufferSize(latency_hint_, latency, original_sink_params_); DCHECK_NE(0, output_buffer_size); - current_sink_params_.Reset( - original_sink_params_.format(), {layout, number_of_output_channels}, - original_sink_params_.sample_rate(), output_buffer_size); + current_sink_params_.Reset(original_sink_params_.format(), layout_config, + original_sink_params_.sample_rate(), + output_buffer_size); // Specify the latency info to be passed to the browser side. current_sink_params_.set_latency_tag(latency); diff --git a/content/renderer/media/renderer_webaudiodevice_impl.h b/content/renderer/media/renderer_webaudiodevice_impl.h index e4b897537e49f..2818b873ff8c7 100644 --- a/content/renderer/media/renderer_webaudiodevice_impl.h +++ b/content/renderer/media/renderer_webaudiodevice_impl.h @@ -97,8 +97,7 @@ class CONTENT_EXPORT RendererWebAudioDeviceImpl RendererWebAudioDeviceImpl( const blink::WebAudioSinkDescriptor& sink_descriptor, - media::ChannelLayout layout, - int number_of_output_channels, + media::ChannelLayoutConfig layout_config, const blink::WebAudioLatencyHint& latency_hint, media::AudioRendererSink::RenderCallback* webaudio_callback, OutputDeviceParamsCallback device_params_cb, diff --git a/content/renderer/media/renderer_webaudiodevice_impl_unittest.cc b/content/renderer/media/renderer_webaudiodevice_impl_unittest.cc index e0836ecfe40e5..c88ed00ceb1ef 100644 --- a/content/renderer/media/renderer_webaudiodevice_impl_unittest.cc +++ b/content/renderer/media/renderer_webaudiodevice_impl_unittest.cc @@ -78,15 +78,13 @@ class RendererWebAudioDeviceImplUnderTest : public RendererWebAudioDeviceImpl { public: RendererWebAudioDeviceImplUnderTest( const blink::WebAudioSinkDescriptor& sink_descriptor, - media::ChannelLayout layout, - int number_of_output_channels, + media::ChannelLayoutConfig layout_config, const blink::WebAudioLatencyHint& latency_hint, media::AudioRendererSink::RenderCallback* callback, CreateSilentSinkCallback silent_sink_callback) : RendererWebAudioDeviceImpl( sink_descriptor, - layout, - number_of_output_channels, + layout_config, latency_hint, callback, base::BindOnce(&MockGetOutputDeviceParameters), @@ -124,7 +122,7 @@ class RendererWebAudioDeviceImplTest blink::WebAudioSinkDescriptor sink_descriptor( blink::WebString::FromUTF8(std::string()), kFrameToken); webaudio_device_ = std::make_unique<RendererWebAudioDeviceImplUnderTest>( - sink_descriptor, media::CHANNEL_LAYOUT_MONO, 1, latencyHint, this, + sink_descriptor, media::ChannelLayoutConfig::Mono(), latencyHint, this, base::BindRepeating( &RendererWebAudioDeviceImplTest::CreateMockSilentSink, // Guaranteed to be valid because |this| owns |webaudio_device_| and @@ -134,11 +132,11 @@ class RendererWebAudioDeviceImplTest blink::scheduler::GetSingleThreadTaskRunnerForTesting()); } - void SetupDevice(media::ChannelLayout layout, int channels) { + void SetupDevice(media::ChannelLayoutConfig layout_config) { blink::WebAudioSinkDescriptor sink_descriptor( blink::WebString::FromUTF8(std::string()), kFrameToken); webaudio_device_ = std::make_unique<RendererWebAudioDeviceImplUnderTest>( - sink_descriptor, layout, channels, + sink_descriptor, layout_config, blink::WebAudioLatencyHint( blink::WebAudioLatencyHint::kCategoryInteractive), this, @@ -153,7 +151,7 @@ class RendererWebAudioDeviceImplTest void SetupDevice(blink::WebAudioSinkDescriptor sink_descriptor) { webaudio_device_ = std::make_unique<RendererWebAudioDeviceImplUnderTest>( - sink_descriptor, media::CHANNEL_LAYOUT_MONO, 1, + sink_descriptor, media::ChannelLayoutConfig::Mono(), blink::WebAudioLatencyHint( blink::WebAudioLatencyHint::kCategoryInteractive), this, @@ -188,7 +186,7 @@ TEST_F(RendererWebAudioDeviceImplTest, ChannelLayout) { if (layout == media::CHANNEL_LAYOUT_UNSUPPORTED) layout = media::CHANNEL_LAYOUT_DISCRETE; - SetupDevice(layout, ch); + SetupDevice({layout, ch}); media::AudioParameters sink_params = webaudio_device_->get_sink_params_for_testing(); EXPECT_TRUE(sink_params.IsValid()); @@ -434,8 +432,7 @@ TEST_F(RendererWebAudioDeviceImplTest, EXPECT_CALL(*mock_audio_renderer_sink_, Stop).Times(1); } - media::ChannelLayout layout = media::GuessChannelLayout(2); - SetupDevice(layout, 2); + SetupDevice(media::ChannelLayoutConfig::Stereo()); // `sink_` should be created after OUTPUT_DEVICE_STATUS_OK status return from // `CreateAndGetSinkStatus` call. @@ -464,8 +461,7 @@ TEST_F(RendererWebAudioDeviceImplTest, EXPECT_CALL(*mock_audio_renderer_sink_, Stop).Times(1); } - media::ChannelLayout layout = media::GuessChannelLayout(2); - SetupDevice(layout, 2); + SetupDevice(media::ChannelLayoutConfig::Stereo()); // `sink_` should be remain as nullptr after // OUTPUT_DEVICE_STATUS_ERROR_INTERNAL status return from