From 518b75dfe4ac6ba154d31ccfed375d9562fb0b97 Mon Sep 17 00:00:00 2001 From: "commit-queue@webkit.org" Date: Fri, 17 Feb 2012 04:36:50 +0000 Subject: [PATCH] Lazy init for DefaultAudioDestinationNode and OfflineAudioDestinationNode https://bugs.webkit.org/show_bug.cgi?id=76509 Patch by Raymond Liu on 2012-02-16 Reviewed by Eric Seidel. No new tests required. * webaudio/AudioDestinationNode.h: * webaudio/AudioNode.h: (WebCore::AudioNode::sampleRate): * webaudio/DefaultAudioDestinationNode.cpp: (WebCore::DefaultAudioDestinationNode::DefaultAudioDestinationNode): * webaudio/DefaultAudioDestinationNode.h: * webaudio/OfflineAudioDestinationNode.cpp: (WebCore::OfflineAudioDestinationNode::OfflineAudioDestinationNode): * webaudio/OfflineAudioDestinationNode.h: (WebCore::OfflineAudioDestinationNode::sampleRate): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@108022 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- Source/WebCore/ChangeLog | 20 ++++++++++++++++++++ Source/WebCore/webaudio/AudioDestinationNode.h | 2 -- Source/WebCore/webaudio/AudioNode.h | 2 +- .../WebCore/webaudio/DefaultAudioDestinationNode.cpp | 1 - .../WebCore/webaudio/DefaultAudioDestinationNode.h | 3 --- .../WebCore/webaudio/OfflineAudioDestinationNode.cpp | 2 -- .../WebCore/webaudio/OfflineAudioDestinationNode.h | 3 +-- 7 files changed, 22 insertions(+), 11 deletions(-) diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog index 6b0f28f..7662dd7 100644 --- a/Source/WebCore/ChangeLog +++ b/Source/WebCore/ChangeLog @@ -1,3 +1,23 @@ +2012-02-16 Raymond Liu + + Lazy init for DefaultAudioDestinationNode and OfflineAudioDestinationNode + https://bugs.webkit.org/show_bug.cgi?id=76509 + + Reviewed by Eric Seidel. + + No new tests required. + + * webaudio/AudioDestinationNode.h: + * webaudio/AudioNode.h: + (WebCore::AudioNode::sampleRate): + * webaudio/DefaultAudioDestinationNode.cpp: + (WebCore::DefaultAudioDestinationNode::DefaultAudioDestinationNode): + * webaudio/DefaultAudioDestinationNode.h: + * webaudio/OfflineAudioDestinationNode.cpp: + (WebCore::OfflineAudioDestinationNode::OfflineAudioDestinationNode): + * webaudio/OfflineAudioDestinationNode.h: + (WebCore::OfflineAudioDestinationNode::sampleRate): + 2012-02-16 Shinya Kawanaka [Refactoring] Remove location from NodeRenderingContext. diff --git a/Source/WebCore/webaudio/AudioDestinationNode.h b/Source/WebCore/webaudio/AudioDestinationNode.h index 581edd8..d07833d 100644 --- a/Source/WebCore/webaudio/AudioDestinationNode.h +++ b/Source/WebCore/webaudio/AudioDestinationNode.h @@ -49,8 +49,6 @@ public: size_t currentSampleFrame() { return m_currentSampleFrame; } double currentTime() { return currentSampleFrame() / static_cast(sampleRate()); } - virtual float sampleRate() const = 0; - virtual unsigned numberOfChannels() const { return 2; } // FIXME: update when multi-channel (more than stereo) is supported virtual void startRendering() = 0; diff --git a/Source/WebCore/webaudio/AudioNode.h b/Source/WebCore/webaudio/AudioNode.h index 1aeb54b..dffd711 100644 --- a/Source/WebCore/webaudio/AudioNode.h +++ b/Source/WebCore/webaudio/AudioNode.h @@ -118,7 +118,7 @@ public: void connect(AudioNode*, unsigned outputIndex, unsigned inputIndex, ExceptionCode&); void disconnect(unsigned outputIndex, ExceptionCode&); - float sampleRate() const { return m_sampleRate; } + virtual float sampleRate() const { return m_sampleRate; } // processIfNecessary() is called by our output(s) when the rendering graph needs this AudioNode to process. // This method ensures that the AudioNode will only process once per rendering time quantum even if it's called repeatedly. diff --git a/Source/WebCore/webaudio/DefaultAudioDestinationNode.cpp b/Source/WebCore/webaudio/DefaultAudioDestinationNode.cpp index e264563..fe47acc 100644 --- a/Source/WebCore/webaudio/DefaultAudioDestinationNode.cpp +++ b/Source/WebCore/webaudio/DefaultAudioDestinationNode.cpp @@ -35,7 +35,6 @@ namespace WebCore { DefaultAudioDestinationNode::DefaultAudioDestinationNode(AudioContext* context) : AudioDestinationNode(context, AudioDestination::hardwareSampleRate()) { - initialize(); } DefaultAudioDestinationNode::~DefaultAudioDestinationNode() diff --git a/Source/WebCore/webaudio/DefaultAudioDestinationNode.h b/Source/WebCore/webaudio/DefaultAudioDestinationNode.h index 630bdc3..e7ac1cd 100644 --- a/Source/WebCore/webaudio/DefaultAudioDestinationNode.h +++ b/Source/WebCore/webaudio/DefaultAudioDestinationNode.h @@ -45,9 +45,6 @@ public: // AudioNode virtual void initialize(); virtual void uninitialize(); - - float sampleRate() const { return m_destination->sampleRate(); } - virtual void startRendering(); private: diff --git a/Source/WebCore/webaudio/OfflineAudioDestinationNode.cpp b/Source/WebCore/webaudio/OfflineAudioDestinationNode.cpp index 198a502..7ea22dc 100644 --- a/Source/WebCore/webaudio/OfflineAudioDestinationNode.cpp +++ b/Source/WebCore/webaudio/OfflineAudioDestinationNode.cpp @@ -47,8 +47,6 @@ OfflineAudioDestinationNode::OfflineAudioDestinationNode(AudioContext* context, , m_startedRendering(false) { m_renderBus = adoptPtr(new AudioBus(renderTarget->numberOfChannels(), renderQuantumSize)); - - initialize(); } OfflineAudioDestinationNode::~OfflineAudioDestinationNode() diff --git a/Source/WebCore/webaudio/OfflineAudioDestinationNode.h b/Source/WebCore/webaudio/OfflineAudioDestinationNode.h index c4d567a..1fb7300 100644 --- a/Source/WebCore/webaudio/OfflineAudioDestinationNode.h +++ b/Source/WebCore/webaudio/OfflineAudioDestinationNode.h @@ -48,8 +48,7 @@ public: // AudioNode virtual void initialize(); virtual void uninitialize(); - - float sampleRate() const { return m_renderTarget->sampleRate(); } + virtual float sampleRate() const { return m_renderTarget->sampleRate(); } void startRendering(); -- 2.7.4