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}
diff --git a/api/test/neteq_simulator_factory.cc b/api/test/neteq_simulator_factory.cc
index ea5be85..82b27e5 100644
--- a/api/test/neteq_simulator_factory.cc
+++ b/api/test/neteq_simulator_factory.cc
@@ -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 @@
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 @@
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);
diff --git a/api/test/neteq_simulator_factory.h b/api/test/neteq_simulator_factory.h
index b3c77b1..2a716e6 100644
--- a/api/test/neteq_simulator_factory.h
+++ b/api/test/neteq_simulator_factory.h
@@ -44,6 +44,10 @@
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;
};