Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(520)

Side by Side Diff: webrtc/common_audio/resampler/sinc_resampler.h

Issue 1726043002: Revert of Replace scoped_ptr with unique_ptr in webrtc/common_audio/ (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
11 // Modified from the Chromium original here: 11 // Modified from the Chromium original here:
12 // src/media/base/sinc_resampler.h 12 // src/media/base/sinc_resampler.h
13 13
14 #ifndef WEBRTC_COMMON_AUDIO_RESAMPLER_SINC_RESAMPLER_H_ 14 #ifndef WEBRTC_COMMON_AUDIO_RESAMPLER_SINC_RESAMPLER_H_
15 #define WEBRTC_COMMON_AUDIO_RESAMPLER_SINC_RESAMPLER_H_ 15 #define WEBRTC_COMMON_AUDIO_RESAMPLER_SINC_RESAMPLER_H_
16 16
17 #include <memory>
18
19 #include "webrtc/base/constructormagic.h" 17 #include "webrtc/base/constructormagic.h"
20 #include "webrtc/base/gtest_prod_util.h" 18 #include "webrtc/base/gtest_prod_util.h"
19 #include "webrtc/base/scoped_ptr.h"
21 #include "webrtc/system_wrappers/include/aligned_malloc.h" 20 #include "webrtc/system_wrappers/include/aligned_malloc.h"
22 #include "webrtc/typedefs.h" 21 #include "webrtc/typedefs.h"
23 22
24 namespace webrtc { 23 namespace webrtc {
25 24
26 // Callback class for providing more data into the resampler. Expects |frames| 25 // Callback class for providing more data into the resampler. Expects |frames|
27 // of data to be rendered into |destination|; zero padded if not enough frames 26 // of data to be rendered into |destination|; zero padded if not enough frames
28 // are available to satisfy the request. 27 // are available to satisfy the request.
29 class SincResamplerCallback { 28 class SincResamplerCallback {
30 public: 29 public:
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 130
132 // The number of source frames processed per pass. 131 // The number of source frames processed per pass.
133 size_t block_size_; 132 size_t block_size_;
134 133
135 // The size (in samples) of the internal buffer used by the resampler. 134 // The size (in samples) of the internal buffer used by the resampler.
136 const size_t input_buffer_size_; 135 const size_t input_buffer_size_;
137 136
138 // Contains kKernelOffsetCount kernels back-to-back, each of size kKernelSize. 137 // Contains kKernelOffsetCount kernels back-to-back, each of size kKernelSize.
139 // The kernel offsets are sub-sample shifts of a windowed sinc shifted from 138 // The kernel offsets are sub-sample shifts of a windowed sinc shifted from
140 // 0.0 to 1.0 sample. 139 // 0.0 to 1.0 sample.
141 std::unique_ptr<float[], AlignedFreeDeleter> kernel_storage_; 140 rtc::scoped_ptr<float[], AlignedFreeDeleter> kernel_storage_;
142 std::unique_ptr<float[], AlignedFreeDeleter> kernel_pre_sinc_storage_; 141 rtc::scoped_ptr<float[], AlignedFreeDeleter> kernel_pre_sinc_storage_;
143 std::unique_ptr<float[], AlignedFreeDeleter> kernel_window_storage_; 142 rtc::scoped_ptr<float[], AlignedFreeDeleter> kernel_window_storage_;
144 143
145 // Data from the source is copied into this buffer for each processing pass. 144 // Data from the source is copied into this buffer for each processing pass.
146 std::unique_ptr<float[], AlignedFreeDeleter> input_buffer_; 145 rtc::scoped_ptr<float[], AlignedFreeDeleter> input_buffer_;
147 146
148 // Stores the runtime selection of which Convolve function to use. 147 // Stores the runtime selection of which Convolve function to use.
149 // TODO(ajm): Move to using a global static which must only be initialized 148 // TODO(ajm): Move to using a global static which must only be initialized
150 // once by the user. We're not doing this initially, because we don't have 149 // once by the user. We're not doing this initially, because we don't have
151 // e.g. a LazyInstance helper in webrtc. 150 // e.g. a LazyInstance helper in webrtc.
152 #if defined(WEBRTC_CPU_DETECTION) 151 #if defined(WEBRTC_CPU_DETECTION)
153 typedef float (*ConvolveProc)(const float*, const float*, const float*, 152 typedef float (*ConvolveProc)(const float*, const float*, const float*,
154 double); 153 double);
155 ConvolveProc convolve_proc_; 154 ConvolveProc convolve_proc_;
156 #endif 155 #endif
157 156
158 // Pointers to the various regions inside |input_buffer_|. See the diagram at 157 // Pointers to the various regions inside |input_buffer_|. See the diagram at
159 // the top of the .cc file for more information. 158 // the top of the .cc file for more information.
160 float* r0_; 159 float* r0_;
161 float* const r1_; 160 float* const r1_;
162 float* const r2_; 161 float* const r2_;
163 float* r3_; 162 float* r3_;
164 float* r4_; 163 float* r4_;
165 164
166 RTC_DISALLOW_COPY_AND_ASSIGN(SincResampler); 165 RTC_DISALLOW_COPY_AND_ASSIGN(SincResampler);
167 }; 166 };
168 167
169 } // namespace webrtc 168 } // namespace webrtc
170 169
171 #endif // WEBRTC_COMMON_AUDIO_RESAMPLER_SINC_RESAMPLER_H_ 170 #endif // WEBRTC_COMMON_AUDIO_RESAMPLER_SINC_RESAMPLER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698