1 2 /* 3 * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. 4 * 5 * Use of this source code is governed by a BSD-style license 6 * that can be found in the LICENSE file in the root of the source 7 * tree. An additional intellectual property rights grant can be found 8 * in the file PATENTS. All contributing project authors may 9 * be found in the AUTHORS file in the root of the source tree. 10 */ 11 12 #ifndef MODULES_AUDIO_PROCESSING_TEST_BITEXACTNESS_TOOLS_H_ 13 #define MODULES_AUDIO_PROCESSING_TEST_BITEXACTNESS_TOOLS_H_ 14 15 #include <string> 16 17 #include "api/array_view.h" 18 #include "modules/audio_coding/neteq/tools/input_audio_file.h" 19 #include "test/gtest.h" 20 21 namespace webrtc { 22 namespace test { 23 24 // Returns test vector to use for the render signal in an 25 // APM bitexactness test. 26 std::string GetApmRenderTestVectorFileName(int sample_rate_hz); 27 28 // Returns test vector to use for the capture signal in an 29 // APM bitexactness test. 30 std::string GetApmCaptureTestVectorFileName(int sample_rate_hz); 31 32 // Extract float samples of up to two channels from a pcm file. 33 void ReadFloatSamplesFromStereoFile(size_t samples_per_channel, 34 size_t num_channels, 35 InputAudioFile* stereo_pcm_file, 36 rtc::ArrayView<float> data); 37 38 // Verifies a frame against a reference and returns the results as an 39 // AssertionResult. 40 ::testing::AssertionResult VerifyDeinterleavedArray( 41 size_t samples_per_channel, 42 size_t num_channels, 43 rtc::ArrayView<const float> reference, 44 rtc::ArrayView<const float> output, 45 float element_error_bound); 46 47 // Verifies a vector against a reference and returns the results as an 48 // AssertionResult. 49 ::testing::AssertionResult VerifyArray(rtc::ArrayView<const float> reference, 50 rtc::ArrayView<const float> output, 51 float element_error_bound); 52 53 } // namespace test 54 } // namespace webrtc 55 56 #endif // MODULES_AUDIO_PROCESSING_TEST_BITEXACTNESS_TOOLS_H_ 57