| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 125 size_t numResponseChannels = impulseResponseBuffer->numberOfChannels(); | 125 size_t numResponseChannels = impulseResponseBuffer->numberOfChannels(); |
| 126 m_convolvers.reserveCapacity(numberOfChannels); | 126 m_convolvers.reserveCapacity(numberOfChannels); |
| 127 | 127 |
| 128 int convolverRenderPhase = 0; | 128 int convolverRenderPhase = 0; |
| 129 for (size_t i = 0; i < numResponseChannels; ++i) { | 129 for (size_t i = 0; i < numResponseChannels; ++i) { |
| 130 AudioChannel* channel = impulseResponseBuffer->channel(i); | 130 AudioChannel* channel = impulseResponseBuffer->channel(i); |
| 131 | 131 |
| 132 std::unique_ptr<ReverbConvolver> convolver = WTF::wrapUnique( | 132 std::unique_ptr<ReverbConvolver> convolver = WTF::wrapUnique( |
| 133 new ReverbConvolver(channel, renderSliceSize, maxFFTSize, | 133 new ReverbConvolver(channel, renderSliceSize, maxFFTSize, |
| 134 convolverRenderPhase, useBackgroundThreads)); | 134 convolverRenderPhase, useBackgroundThreads)); |
| 135 m_convolvers.append(std::move(convolver)); | 135 m_convolvers.push_back(std::move(convolver)); |
| 136 | 136 |
| 137 convolverRenderPhase += renderSliceSize; | 137 convolverRenderPhase += renderSliceSize; |
| 138 } | 138 } |
| 139 | 139 |
| 140 // For "True" stereo processing we allocate a temporary buffer to avoid | 140 // For "True" stereo processing we allocate a temporary buffer to avoid |
| 141 // repeatedly allocating it in the process() method. It can be bad to | 141 // repeatedly allocating it in the process() method. It can be bad to |
| 142 // allocate memory in a real-time thread. | 142 // allocate memory in a real-time thread. |
| 143 if (numResponseChannels == 4) | 143 if (numResponseChannels == 4) |
| 144 m_tempBuffer = AudioBus::create(2, MaxFrameSize); | 144 m_tempBuffer = AudioBus::create(2, MaxFrameSize); |
| 145 } | 145 } |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 265 void Reverb::reset() { | 265 void Reverb::reset() { |
| 266 for (size_t i = 0; i < m_convolvers.size(); ++i) | 266 for (size_t i = 0; i < m_convolvers.size(); ++i) |
| 267 m_convolvers[i]->reset(); | 267 m_convolvers[i]->reset(); |
| 268 } | 268 } |
| 269 | 269 |
| 270 size_t Reverb::latencyFrames() const { | 270 size_t Reverb::latencyFrames() const { |
| 271 return !m_convolvers.isEmpty() ? m_convolvers.front()->latencyFrames() : 0; | 271 return !m_convolvers.isEmpty() ? m_convolvers.front()->latencyFrames() : 0; |
| 272 } | 272 } |
| 273 | 273 |
| 274 } // namespace blink | 274 } // namespace blink |
| OLD | NEW |