| 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 f6f9c48cc2f7924c6f9148ed9c5f8a6dd623b376..b7688739a710442cb8a373cff0bd5bd74bd25d81 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,9 @@ void DefaultAudioDestinationHandler::uninitialize() {
|
| }
|
|
|
| void DefaultAudioDestinationHandler::createDestination() {
|
| - float hardwareSampleRate = AudioDestination::hardwareSampleRate();
|
| - VLOG(1) << ">>>> hardwareSampleRate = " << hardwareSampleRate;
|
| -
|
| m_destination = AudioDestination::create(
|
| *this, m_inputDeviceId, m_numberOfInputChannels, channelCount(),
|
| - hardwareSampleRate, context()->getSecurityOrigin());
|
| + m_latencyHint, context()->getSecurityOrigin());
|
| }
|
|
|
| void DefaultAudioDestinationHandler::startRendering() {
|
| @@ -133,17 +134,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
|
|
|