Add config options for python plots and text log to the NetEq simulator API.

This CL also introduces a helper function to perform the config conversion,
which eliminates duplicate code.

Bug: webrtc:10337
Change-Id: I162288f90ebac8f2f345356ec25f0805df698c67
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/188121
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32399}
This commit is contained in:
Ivo Creusen 2020-10-13 15:17:32 +02:00 committed by Commit Bot
parent 52c138e36e
commit 47156e27c0
2 changed files with 26 additions and 13 deletions

View File

@ -21,6 +21,24 @@
namespace webrtc {
namespace test {
namespace {
NetEqTestFactory::Config convertConfig(
const NetEqSimulatorFactory::Config& simulation_config,
absl::string_view replacement_audio_filename) {
NetEqTestFactory::Config config;
config.replacement_audio_file = std::string(replacement_audio_filename);
config.max_nr_packets_in_buffer = simulation_config.max_nr_packets_in_buffer;
config.initial_dummy_packets = simulation_config.initial_dummy_packets;
config.skip_get_audio_events = simulation_config.skip_get_audio_events;
config.field_trial_string = simulation_config.field_trial_string;
config.output_audio_filename = simulation_config.output_audio_filename;
config.pythonplot = simulation_config.python_plot_filename.has_value();
config.plot_scripts_basename = simulation_config.python_plot_filename;
config.textlog = simulation_config.text_log_filename.has_value();
config.textlog_filename = simulation_config.text_log_filename;
return config;
}
} // namespace
NetEqSimulatorFactory::NetEqSimulatorFactory()
: factory_(std::make_unique<NetEqTestFactory>()) {}
@ -31,13 +49,8 @@ std::unique_ptr<NetEqSimulator> NetEqSimulatorFactory::CreateSimulatorFromFile(
absl::string_view event_log_filename,
absl::string_view replacement_audio_filename,
Config simulation_config) {
NetEqTestFactory::Config config;
config.replacement_audio_file = std::string(replacement_audio_filename);
config.max_nr_packets_in_buffer = simulation_config.max_nr_packets_in_buffer;
config.initial_dummy_packets = simulation_config.initial_dummy_packets;
config.skip_get_audio_events = simulation_config.skip_get_audio_events;
config.field_trial_string = simulation_config.field_trial_string;
config.output_audio_filename = simulation_config.output_audio_filename;
NetEqTestFactory::Config config =
convertConfig(simulation_config, replacement_audio_filename);
return factory_->InitializeTestFromFile(
std::string(event_log_filename), simulation_config.neteq_factory, config);
}
@ -47,12 +60,8 @@ NetEqSimulatorFactory::CreateSimulatorFromString(
absl::string_view event_log_file_contents,
absl::string_view replacement_audio_filename,
Config simulation_config) {
NetEqTestFactory::Config config;
config.replacement_audio_file = std::string(replacement_audio_filename);
config.max_nr_packets_in_buffer = simulation_config.max_nr_packets_in_buffer;
config.initial_dummy_packets = simulation_config.initial_dummy_packets;
config.skip_get_audio_events = simulation_config.skip_get_audio_events;
config.field_trial_string = simulation_config.field_trial_string;
NetEqTestFactory::Config config =
convertConfig(simulation_config, replacement_audio_filename);
return factory_->InitializeTestFromString(
std::string(event_log_file_contents), simulation_config.neteq_factory,
config);

View File

@ -44,6 +44,10 @@ class NetEqSimulatorFactory {
std::string field_trial_string;
// A filename for the generated output audio file.
absl::optional<std::string> output_audio_filename;
// A filename for the python plot.
absl::optional<std::string> python_plot_filename;
// A filename for the text log.
absl::optional<std::string> text_log_filename;
// A custom NetEqFactory can be used.
NetEqFactory* neteq_factory = nullptr;
};