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

Side by Side Diff: webrtc/common_audio/resampler/push_resampler.cc

Issue 2014973002: Reland of Adding a some checks and switching out a few assert for RTC_[D]CHECK. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Refine ifdefs to affect the win clang bot only Created 4 years, 6 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
« no previous file with comments | « no previous file | webrtc/common_audio/resampler/push_resampler_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #include "webrtc/common_audio/resampler/include/push_resampler.h" 11 #include "webrtc/common_audio/resampler/include/push_resampler.h"
12 12
13 #include <string.h> 13 #include <string.h>
14 14
15 #include "webrtc/base/checks.h" 15 #include "webrtc/base/checks.h"
16 #include "webrtc/common_audio/include/audio_util.h" 16 #include "webrtc/common_audio/include/audio_util.h"
17 #include "webrtc/common_audio/resampler/include/resampler.h" 17 #include "webrtc/common_audio/resampler/include/resampler.h"
18 #include "webrtc/common_audio/resampler/push_sinc_resampler.h" 18 #include "webrtc/common_audio/resampler/push_sinc_resampler.h"
19 19
20 namespace webrtc { 20 namespace webrtc {
21 namespace { 21 namespace {
22 // These checks were factored out into a non-templatized function 22 // These checks were factored out into a non-templatized function
23 // due to problems with clang on Windows in debug builds. 23 // due to problems with clang on Windows in debug builds.
24 // For some reason having the DCHECKs inline in the template code 24 // For some reason having the DCHECKs inline in the template code
25 // caused the compiler to generate code that threw off the linker. 25 // caused the compiler to generate code that threw off the linker.
26 // TODO(tommi): Re-enable when we've figured out what the problem is.
27 // http://crbug.com/615050
26 void CheckValidInitParams(int src_sample_rate_hz, int dst_sample_rate_hz, 28 void CheckValidInitParams(int src_sample_rate_hz, int dst_sample_rate_hz,
27 size_t num_channels) { 29 size_t num_channels) {
30 // The below checks are temporarily disabled on WEBRTC_WIN due to problems
31 // with clang debug builds.
32 #if !defined(WEBRTC_WIN) && defined(__clang__) && !defined(NDEBUG)
28 RTC_DCHECK_GT(src_sample_rate_hz, 0); 33 RTC_DCHECK_GT(src_sample_rate_hz, 0);
29 RTC_DCHECK_GT(dst_sample_rate_hz, 0); 34 RTC_DCHECK_GT(dst_sample_rate_hz, 0);
30 RTC_DCHECK_GT(num_channels, 0u); 35 RTC_DCHECK_GT(num_channels, 0u);
31 RTC_DCHECK_LE(num_channels, 2u); 36 RTC_DCHECK_LE(num_channels, 2u);
37 #endif
32 } 38 }
33 39
34 void CheckExpectedBufferSizes(size_t src_length, 40 void CheckExpectedBufferSizes(size_t src_length,
35 size_t dst_capacity, 41 size_t dst_capacity,
36 size_t num_channels, 42 size_t num_channels,
37 int src_sample_rate, 43 int src_sample_rate,
38 int dst_sample_rate) { 44 int dst_sample_rate) {
45 // The below checks are temporarily disabled on WEBRTC_WIN due to problems
46 // with clang debug builds.
47 // TODO(tommi): Re-enable when we've figured out what the problem is.
48 // http://crbug.com/615050
49 #if !defined(WEBRTC_WIN) && defined(__clang__) && !defined(NDEBUG)
39 const size_t src_size_10ms = src_sample_rate * num_channels / 100; 50 const size_t src_size_10ms = src_sample_rate * num_channels / 100;
40 const size_t dst_size_10ms = dst_sample_rate * num_channels / 100; 51 const size_t dst_size_10ms = dst_sample_rate * num_channels / 100;
41 RTC_CHECK_EQ(src_length, src_size_10ms); 52 RTC_CHECK_EQ(src_length, src_size_10ms);
42 RTC_CHECK_GE(dst_capacity, dst_size_10ms); 53 RTC_CHECK_GE(dst_capacity, dst_size_10ms);
54 #endif
43 } 55 }
44 } 56 }
45 57
46 template <typename T> 58 template <typename T>
47 PushResampler<T>::PushResampler() 59 PushResampler<T>::PushResampler()
48 : src_sample_rate_hz_(0), 60 : src_sample_rate_hz_(0),
49 dst_sample_rate_hz_(0), 61 dst_sample_rate_hz_(0),
50 num_channels_(0) { 62 num_channels_(0) {
51 } 63 }
52 64
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 return static_cast<int>( 138 return static_cast<int>(
127 sinc_resampler_->Resample(src, src_length, dst, dst_capacity)); 139 sinc_resampler_->Resample(src, src_length, dst, dst_capacity));
128 } 140 }
129 } 141 }
130 142
131 // Explictly generate required instantiations. 143 // Explictly generate required instantiations.
132 template class PushResampler<int16_t>; 144 template class PushResampler<int16_t>;
133 template class PushResampler<float>; 145 template class PushResampler<float>;
134 146
135 } // namespace webrtc 147 } // namespace webrtc
OLDNEW
« no previous file with comments | « no previous file | webrtc/common_audio/resampler/push_resampler_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698