Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1250)

Unified Diff: content/renderer/media/renderer_webaudiodevice_impl_unittest.cc

Issue 2708933005: Fix WebAudio support for discrete channel layouts. (Closed)
Patch Set: Zero session_id. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/media/renderer_webaudiodevice_impl_unittest.cc
diff --git a/content/renderer/media/renderer_webaudiodevice_impl_unittest.cc b/content/renderer/media/renderer_webaudiodevice_impl_unittest.cc
index e389c354db5ed07b9654d2fd17330210b190f4c7..1b61740a3459987093064cdbf4a156e118427fee 100644
--- a/content/renderer/media/renderer_webaudiodevice_impl_unittest.cc
+++ b/content/renderer/media/renderer_webaudiodevice_impl_unittest.cc
@@ -6,9 +6,11 @@
#include "base/bind.h"
#include "base/message_loop/message_loop.h"
+#include "base/strings/stringprintf.h"
#include "build/build_config.h"
#include "content/renderer/media/audio_device_factory.h"
#include "media/base/audio_capturer_source.h"
+#include "media/base/limits.h"
#include "media/base/mock_audio_renderer_sink.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -41,11 +43,13 @@ class RendererWebAudioDeviceImplUnderTest : public RendererWebAudioDeviceImpl {
public:
RendererWebAudioDeviceImplUnderTest(
media::ChannelLayout layout,
+ int channels,
const blink::WebAudioLatencyHint& latency_hint,
blink::WebAudioDevice::RenderCallback* callback,
int session_id,
const url::Origin& security_origin)
: RendererWebAudioDeviceImpl(layout,
+ channels,
latency_hint,
callback,
session_id,
@@ -66,7 +70,16 @@ class RendererWebAudioDeviceImplTest
void SetupDevice(blink::WebAudioLatencyHint latencyHint) {
webaudio_device_.reset(new RendererWebAudioDeviceImplUnderTest(
- media::CHANNEL_LAYOUT_MONO, latencyHint, this, 0, url::Origin()));
+ media::CHANNEL_LAYOUT_MONO, 1, latencyHint, this, 0, url::Origin()));
+ webaudio_device_->SetMediaTaskRunnerForTesting(message_loop_.task_runner());
+ }
+
+ void SetupDevice(media::ChannelLayout layout, int channels) {
+ webaudio_device_.reset(new RendererWebAudioDeviceImplUnderTest(
+ layout, channels,
+ blink::WebAudioLatencyHint(
+ blink::WebAudioLatencyHint::kCategoryInteractive),
+ this, 0, url::Origin()));
webaudio_device_->SetMediaTaskRunnerForTesting(message_loop_.task_runner());
}
@@ -110,6 +123,23 @@ class RendererWebAudioDeviceImplTest
base::MessageLoop message_loop_;
};
+TEST_F(RendererWebAudioDeviceImplTest, ChannelLayout) {
+ for (int ch = 1; ch < static_cast<int>(media::limits::kMaxChannels); ++ch) {
+ SCOPED_TRACE(base::StringPrintf("ch == %d", ch));
+
+ media::ChannelLayout layout = media::GuessChannelLayout(ch);
+ if (layout == media::CHANNEL_LAYOUT_UNSUPPORTED)
+ layout = media::CHANNEL_LAYOUT_DISCRETE;
+
+ SetupDevice(layout, ch);
+ media::AudioParameters sink_params =
+ webaudio_device_->get_sink_params_for_testing();
+ EXPECT_TRUE(sink_params.IsValid());
+ EXPECT_EQ(layout, sink_params.channel_layout());
+ EXPECT_EQ(ch, sink_params.channels());
+ }
+}
+
TEST_F(RendererWebAudioDeviceImplTest, TestLatencyHintValues) {
blink::WebAudioLatencyHint interactiveLatencyHint(
blink::WebAudioLatencyHint::kCategoryInteractive);
« no previous file with comments | « content/renderer/media/renderer_webaudiodevice_impl.cc ('k') | content/renderer/renderer_blink_platform_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698