webrtc/common_audio/resampler/push_resampler_unittest.cc
Tommi d6ef33e59b Remove PushResampler<T>::InitializeIfNeeded
This switches from accepting a sample rate and convert to channel
size over to accepting the channel size.

Instead of InitializeIfNeeded:

* Offer a way to explicitly initialize PushResampler via the ctor
  (needed for VoiceActivityDetectorWrapper)
* Implicitly check for the right configuration from within Resample().
  (All calls to Resample() were preceded by a call to Initialize)

As part of this, refactor VoiceActivityDetectorWrapper (VADW):
* VADW is now initialized in the constructor and more const.
* Remove VADW::Initialize() and instead reconstruct VADW if needed.

Add constants for max sample rate and num channels to audio_util.h
In many cases the numbers for these values are embedded in the code
which has led to some inconsistency.

Bug: chromium:335805780
Change-Id: Iead0d52eb1b261a8d64e93f51401147c8fba32f0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/353360
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42587}
2024-07-04 10:33:21 +00:00

43 lines
1.4 KiB
C++

/*
* Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#include "common_audio/resampler/include/push_resampler.h"
#include "rtc_base/checks.h" // RTC_DCHECK_IS_ON
#include "test/gtest.h"
#include "test/testsupport/rtc_expect_death.h"
// Quality testing of PushResampler is done in audio/remix_resample_unittest.cc.
namespace webrtc {
TEST(PushResamplerTest, VerifiesInputParameters) {
PushResampler<int16_t> resampler1(160, 160, 1);
PushResampler<int16_t> resampler2(160, 160, 2);
PushResampler<int16_t> resampler3(160, 160, 8);
}
#if RTC_DCHECK_IS_ON && GTEST_HAS_DEATH_TEST && !defined(WEBRTC_ANDROID)
TEST(PushResamplerDeathTest, VerifiesBadInputParameters1) {
RTC_EXPECT_DEATH(PushResampler<int16_t>(-1, 160, 1),
"src_samples_per_channel");
}
TEST(PushResamplerDeathTest, VerifiesBadInputParameters2) {
RTC_EXPECT_DEATH(PushResampler<int16_t>(160, -1, 1),
"dst_samples_per_channel");
}
TEST(PushResamplerDeathTest, VerifiesBadInputParameters3) {
RTC_EXPECT_DEATH(PushResampler<int16_t>(160, 16000, 0), "num_channels");
}
#endif
} // namespace webrtc