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

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

Issue 2501863003: Support for AudioContextOptions latencyHint. (Closed)
Patch Set: Fixes to WebAudioDeviceImpl unit test. 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: third_party/WebKit/Source/modules/webaudio/DefaultAudioDestinationNode.cpp
diff --git a/third_party/WebKit/Source/modules/webaudio/DefaultAudioDestinationNode.cpp b/third_party/WebKit/Source/modules/webaudio/DefaultAudioDestinationNode.cpp
index 7cf0fd38a9c9e0959c23a68023b1c9c98b8a5450..4a8f5c485f607d6832ee436a18e447ebfd7019c5 100644
--- a/third_party/WebKit/Source/modules/webaudio/DefaultAudioDestinationNode.cpp
+++ b/third_party/WebKit/Source/modules/webaudio/DefaultAudioDestinationNode.cpp
@@ -31,9 +31,12 @@
namespace blink {
-DefaultAudioDestinationHandler::DefaultAudioDestinationHandler(AudioNode& node)
- : AudioDestinationHandler(node, AudioDestination::hardwareSampleRate()),
- m_numberOfInputChannels(0) {
+DefaultAudioDestinationHandler::DefaultAudioDestinationHandler(
+ AudioNode& node,
+ const WebAudioLatencyHint& latencyHint)
+ : AudioDestinationHandler(node),
+ m_numberOfInputChannels(0),
+ m_latencyHint(latencyHint) {
// Node-specific default mixing rules.
m_channelCount = 2;
setInternalChannelCountMode(Explicit);
@@ -41,8 +44,9 @@ DefaultAudioDestinationHandler::DefaultAudioDestinationHandler(AudioNode& node)
}
PassRefPtr<DefaultAudioDestinationHandler>
-DefaultAudioDestinationHandler::create(AudioNode& node) {
- return adoptRef(new DefaultAudioDestinationHandler(node));
+DefaultAudioDestinationHandler::create(AudioNode& node,
+ const WebAudioLatencyHint& latencyHint) {
+ return adoptRef(new DefaultAudioDestinationHandler(node, latencyHint));
}
DefaultAudioDestinationHandler::~DefaultAudioDestinationHandler() {
@@ -75,12 +79,8 @@ void DefaultAudioDestinationHandler::uninitialize() {
}
void DefaultAudioDestinationHandler::createDestination() {
- float hardwareSampleRate = AudioDestination::hardwareSampleRate();
- VLOG(1) << ">>>> hardwareSampleRate = " << hardwareSampleRate;
-
- m_destination =
- AudioDestination::create(*this, channelCount(), hardwareSampleRate,
- context()->getSecurityOrigin());
+ m_destination = AudioDestination::create(*this, channelCount(), m_latencyHint,
+ context()->getSecurityOrigin());
}
void DefaultAudioDestinationHandler::startRendering() {
@@ -137,17 +137,27 @@ void DefaultAudioDestinationHandler::setChannelCount(
}
}
+double DefaultAudioDestinationHandler::sampleRate() const {
+ return m_destination ? m_destination->sampleRate() : 0;
+}
+
+int DefaultAudioDestinationHandler::framesPerBuffer() const {
+ return m_destination ? m_destination->framesPerBuffer() : 0;
+}
+
// ----------------------------------------------------------------
DefaultAudioDestinationNode::DefaultAudioDestinationNode(
- BaseAudioContext& context)
+ BaseAudioContext& context,
+ const WebAudioLatencyHint& latencyHint)
: AudioDestinationNode(context) {
- setHandler(DefaultAudioDestinationHandler::create(*this));
+ setHandler(DefaultAudioDestinationHandler::create(*this, latencyHint));
}
DefaultAudioDestinationNode* DefaultAudioDestinationNode::create(
- BaseAudioContext* context) {
- return new DefaultAudioDestinationNode(*context);
+ BaseAudioContext* context,
+ const WebAudioLatencyHint& latencyHint) {
+ return new DefaultAudioDestinationNode(*context, latencyHint);
}
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698