Chromium Code Reviews| Index: Source/modules/webaudio/OfflineAudioDestinationNode.h |
| diff --git a/Source/modules/webaudio/OfflineAudioDestinationNode.h b/Source/modules/webaudio/OfflineAudioDestinationNode.h |
| index ca70d96aa1f5974f2f96f337040ff40479475c2d..92150fe826148de9e0261057f0277d85449ae4bf 100644 |
| --- a/Source/modules/webaudio/OfflineAudioDestinationNode.h |
| +++ b/Source/modules/webaudio/OfflineAudioDestinationNode.h |
| @@ -46,16 +46,28 @@ public: |
| virtual void initialize() override; |
| virtual void uninitialize() override; |
| - // AudioDestinationHandler |
| + // Override the one from AudioContext. Create a rendering thread and |
| + // initiate rendering loop or resume rendering if already started and |
| + // suspended. |
| virtual void startRendering() override; |
| + |
| + // There is no support of the explicit stopping in OfflineAudioContext. This |
| + // is just to match the class method signature. |
| virtual void stopRendering() override; |
| - virtual float sampleRate() const override { return m_renderTarget->sampleRate(); } |
| + virtual float sampleRate() const override { return m_renderTarget->sampleRate(); } |
| + |
| + // Return the frame position by quantizing the time (in seconds) and |
| + // rounding it down to the nearest block boundary. |
|
Raymond Toy
2015/06/12 21:11:37
"block" -> "rendering quantum"
hongchan
2015/06/15 18:40:46
Done.
|
| + size_t quantizeTimeToRenderQuantum(double when) const; |
| private: |
| OfflineAudioDestinationHandler(AudioNode&, AudioBuffer* renderTarget); |
| - void offlineRender(); |
| - void offlineRenderInternal(); |
| + |
| + // For start/suspend/resume rendering in the destination node. |
| + void startOfflineRendering(); |
| + void runOfflineRendering(); |
| + void finishOfflineRendering(); |
| // For completion callback on main thread. |
| void notifyComplete(); |
| @@ -69,7 +81,9 @@ private: |
| // Rendering thread. |
| OwnPtr<WebThread> m_renderThread; |
| - bool m_startedRendering; |
| + |
| + size_t m_framesProcessed; |
| + size_t m_framesToProcess; |
| }; |
| class OfflineAudioDestinationNode final : public AudioDestinationNode { |