| OLD | NEW | 
|    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  Loading... | 
|  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 | 
| OLD | NEW |