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 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 | 122 |
123 // The reverb can handle a mono impulse response and still do stereo | 123 // The reverb can handle a mono impulse response and still do stereo |
124 // processing | 124 // processing |
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 = 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.append(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. |
(...skipping 122 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 |