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 |