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

Unified Diff: third_party/WebKit/Source/modules/webaudio/AudioContextTest.cpp

Issue 2750543003: Support AudioContextOptions latencyHint as double. (Closed)
Patch Set: Created 3 years, 9 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: third_party/WebKit/Source/modules/webaudio/AudioContextTest.cpp
diff --git a/third_party/WebKit/Source/modules/webaudio/AudioContextTest.cpp b/third_party/WebKit/Source/modules/webaudio/AudioContextTest.cpp
index a76bd7beb6c200d93fd7d62602ea9445a5f9a5b9..fd301035be92e5521791e4bf415076dc6d992533 100644
--- a/third_party/WebKit/Source/modules/webaudio/AudioContextTest.cpp
+++ b/third_party/WebKit/Source/modules/webaudio/AudioContextTest.cpp
@@ -50,6 +50,12 @@ class AudioContextTestPlatform : public TestingPlatformSupport {
case WebAudioLatencyHint::kCategoryPlayback:
bufferSize = audioHardwareBufferSize() * 4;
break;
+ case WebAudioLatencyHint::kCategoryExact:
+ bufferSize = std::max(
+ static_cast<double>(audioHardwareBufferSize()),
+ std::min(latencyHint.seconds() * audioHardwareSampleRate(),
+ static_cast<double>(audioHardwareBufferSize() * 4)));
+ break;
default:
NOTREACHED();
break;
@@ -99,6 +105,29 @@ TEST_F(AudioContextTest, AudioContextOptions_WebAudioLatencyHint) {
AudioContext* playbackContext =
AudioContext::create(document(), playbackOptions, ASSERT_NO_EXCEPTION);
EXPECT_GT(playbackContext->baseLatency(), balancedContext->baseLatency());
+
+ AudioContextOptions exactTooSmallOptions;
+ exactTooSmallOptions.setLatencyHint(
+ AudioContextLatencyCategoryOrDouble::fromDouble(0.000001));
+ AudioContext* exactTooSmallContext = AudioContext::create(
+ document(), exactTooSmallOptions, ASSERT_NO_EXCEPTION);
+ EXPECT_EQ(exactTooSmallContext->baseLatency(),
+ interactiveContext->baseLatency());
+
+ const double exactLatencySec = 0.01;
+ AudioContextOptions exactOkOptions;
+ exactOkOptions.setLatencyHint(
+ AudioContextLatencyCategoryOrDouble::fromDouble(exactLatencySec));
+ AudioContext* exactOkContext =
+ AudioContext::create(document(), exactOkOptions, ASSERT_NO_EXCEPTION);
+ EXPECT_EQ(exactOkContext->baseLatency(), exactLatencySec * 2);
+
+ AudioContextOptions exactTooBigOptions;
+ exactTooBigOptions.setLatencyHint(
+ AudioContextLatencyCategoryOrDouble::fromDouble(1));
+ AudioContext* exactTooBigContext =
+ AudioContext::create(document(), exactTooBigOptions, ASSERT_NO_EXCEPTION);
+ EXPECT_EQ(exactTooBigContext->baseLatency(), playbackContext->baseLatency());
}
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698