Use 16000Hz audio in PC test when specified

Bug: webrtc:10138
Change-Id: Iea28aef07de45f244ed4d3813dc0531068f6d4b0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144567
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28531}
This commit is contained in:
Artem Titov
2019-07-10 19:13:19 +02:00
committed by Commit Bot
parent ff25b873bf
commit 52e240e2c1

View File

@ -22,6 +22,8 @@
#include "test/testsupport/perf_test.h"
WEBRTC_DECLARE_string(test_case_prefix);
WEBRTC_DECLARE_int(sample_rate_hz);
WEBRTC_DECLARE_bool(quick);
namespace webrtc {
namespace test {
@ -34,7 +36,8 @@ using AudioConfig =
namespace {
constexpr int kTestDurationSec = 45;
constexpr int kTestDurationSec = 6;
constexpr int kQuickTestDurationSec = 1;
std::string GetMetricTestCaseName() {
const ::testing::TestInfo* const test_info =
@ -46,18 +49,11 @@ std::string GetMetricTestCaseName() {
return std::string(FLAG_test_case_prefix) + "_" + test_info->name();
}
EmulatedNetworkNode* CreateEmulatedNodeWithConfig(
NetworkEmulationManager* emulation,
const BuiltInNetworkBehaviorConfig& config) {
return emulation->CreateEmulatedNode(
absl::make_unique<SimulatedNetwork>(config));
}
std::pair<EmulatedNetworkManagerInterface*, EmulatedNetworkManagerInterface*>
CreateTwoNetworkLinks(NetworkEmulationManager* emulation,
const BuiltInNetworkBehaviorConfig& config) {
auto* alice_node = CreateEmulatedNodeWithConfig(emulation, config);
auto* bob_node = CreateEmulatedNodeWithConfig(emulation, config);
auto* alice_node = emulation->CreateEmulatedNode(config);
auto* bob_node = emulation->CreateEmulatedNode(config);
auto* alice_endpoint = emulation->CreateEndpoint(EmulatedEndpointConfig());
auto* bob_endpoint = emulation->CreateEndpoint(EmulatedEndpointConfig());
@ -90,19 +86,25 @@ CreateTestFixture(const std::string& test_case_name,
return fixture;
}
std::string FileSampleRateSuffix() {
return std::to_string(FLAG_sample_rate_hz / 1000);
}
std::string AudioInputFile() {
return test::ResourcePath("voice_engine/audio_tiny48", "wav");
return test::ResourcePath("voice_engine/audio_tiny" + FileSampleRateSuffix(),
"wav");
}
std::string AudioOutputFile() {
const ::testing::TestInfo* const test_info =
::testing::UnitTest::GetInstance()->current_test_info();
return webrtc::test::OutputPath() + "PCLowBandwidth_" + test_info->name() +
"_48.wav";
"_" + FileSampleRateSuffix() + ".wav";
}
std::string PerfResultsOutputFile() {
return webrtc::test::OutputPath() + "PCLowBandwidth_perf_48.json";
return webrtc::test::OutputPath() + "PCLowBandwidth_perf_" +
FileSampleRateSuffix() + ".json";
}
void LogTestResults() {
@ -133,10 +135,12 @@ TEST(PCLowBandwidthAudioTest, PCGoodNetworkHighBitrate) {
audio.mode = AudioConfig::Mode::kFile;
audio.input_file_name = AudioInputFile();
audio.output_dump_file_name = AudioOutputFile();
audio.sampling_frequency_in_hz = FLAG_sample_rate_hz;
alice->SetAudioConfig(std::move(audio));
},
[](PeerConfigurer* bob) {});
fixture->Run(RunParams(TimeDelta::seconds(kTestDurationSec)));
fixture->Run(RunParams(TimeDelta::seconds(FLAG_quick ? kQuickTestDurationSec
: kTestDurationSec)));
LogTestResults();
}
@ -156,11 +160,12 @@ TEST(PCLowBandwidthAudioTest, PCMobile2GNetwork) {
audio.mode = AudioConfig::Mode::kFile;
audio.input_file_name = AudioInputFile();
audio.output_dump_file_name = AudioOutputFile();
audio.sampling_frequency_in_hz = FLAG_sample_rate_hz;
alice->SetAudioConfig(std::move(audio));
},
[](PeerConfigurer* bob) {});
RunParams run_params(TimeDelta::seconds(kTestDurationSec));
fixture->Run(RunParams(TimeDelta::seconds(kTestDurationSec)));
fixture->Run(RunParams(TimeDelta::seconds(FLAG_quick ? kQuickTestDurationSec
: kTestDurationSec)));
LogTestResults();
}