| Index: third_party/WebKit/Source/platform/audio/AudioPullFIFO.cpp
|
| diff --git a/third_party/WebKit/Source/platform/audio/AudioPullFIFO.cpp b/third_party/WebKit/Source/platform/audio/AudioPullFIFO.cpp
|
| index 33a48d3e1620650d305aeea3e546b203ac13c4bf..a8cbf8d0298a91b45eb8f14a18d6352f490114f7 100644
|
| --- a/third_party/WebKit/Source/platform/audio/AudioPullFIFO.cpp
|
| +++ b/third_party/WebKit/Source/platform/audio/AudioPullFIFO.cpp
|
| @@ -30,11 +30,11 @@
|
|
|
| namespace blink {
|
|
|
| -AudioPullFIFO::AudioPullFIFO(AudioSourceProvider& audioProvider, unsigned numberOfChannels, size_t fifoLength, size_t providerSize)
|
| - : m_provider(audioProvider)
|
| - , m_fifo(numberOfChannels, fifoLength)
|
| - , m_providerSize(providerSize)
|
| - , m_tempBus(AudioBus::create(numberOfChannels, providerSize))
|
| +AudioPullFIFO::AudioPullFIFO(unsigned numberOfChannels, size_t fifoBufferLength, AudioSourceProvider& provider, size_t providerRenderBlockSize)
|
| + : m_providerRenderBlockSize(providerRenderBlockSize)
|
| + , m_provider(provider)
|
| + , m_tempBus(AudioBus::create(numberOfChannels, providerRenderBlockSize))
|
| + , m_fifo(numberOfChannels, fifoBufferLength)
|
| {
|
| }
|
|
|
| @@ -43,26 +43,23 @@ void AudioPullFIFO::consume(AudioBus* destination, size_t framesToConsume)
|
| if (!destination)
|
| return;
|
|
|
| - if (framesToConsume > m_fifo.framesInFifo()) {
|
| - // We don't have enough data in the FIFO to fulfill the request. Ask for more data.
|
| - fillBuffer(framesToConsume - m_fifo.framesInFifo());
|
| - }
|
| + // Not enough data in the FIFO to fulfill the request. Ask for more data.
|
| + if (framesToConsume > m_fifo.framesInFifo())
|
| + requestDataFromProvider(framesToConsume - m_fifo.framesInFifo());
|
|
|
| m_fifo.consume(destination, framesToConsume);
|
| }
|
|
|
| -void AudioPullFIFO::fillBuffer(size_t numberOfFrames)
|
| +void AudioPullFIFO::requestDataFromProvider(size_t numberOfFrames)
|
| {
|
| - // Keep asking the provider to give us data until we have received at least |numberOfFrames| of
|
| - // data. Stuff the data into the FIFO.
|
| + // Keep pulling the provider for more data until we have received at least
|
| + // |numberOfFrames| of data. Fill the data into the FIFO.
|
| size_t framesProvided = 0;
|
|
|
| while (framesProvided < numberOfFrames) {
|
| - m_provider.provideInput(m_tempBus.get(), m_providerSize);
|
| -
|
| + m_provider.provideInput(m_tempBus.get(), m_providerRenderBlockSize);
|
| m_fifo.push(m_tempBus.get());
|
| -
|
| - framesProvided += m_providerSize;
|
| + framesProvided += m_providerRenderBlockSize;
|
| }
|
| }
|
|
|
|
|