neteq_simulator_factory.cc (2788B)
1 /* 2 * Copyright (c) 2018 The WebRTC project authors. All Rights Reserved. 3 * 4 * Use of this source code is governed by a BSD-style license 5 * that can be found in the LICENSE file in the root of the source 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 #include "api/test/neteq_simulator_factory.h" 12 13 #include <memory> 14 #include <string> 15 16 #include "absl/strings/string_view.h" 17 #include "api/test/neteq_simulator.h" 18 #include "modules/audio_coding/neteq/tools/neteq_test_factory.h" 19 20 namespace webrtc { 21 namespace test { 22 namespace { 23 NetEqTestFactory::Config convertConfig( 24 const NetEqSimulatorFactory::Config& simulation_config, 25 absl::string_view replacement_audio_filename) { 26 NetEqTestFactory::Config config; 27 config.replacement_audio_file = std::string(replacement_audio_filename); 28 config.max_nr_packets_in_buffer = simulation_config.max_nr_packets_in_buffer; 29 config.initial_dummy_packets = simulation_config.initial_dummy_packets; 30 config.skip_get_audio_events = simulation_config.skip_get_audio_events; 31 config.field_trial_string = simulation_config.field_trial_string; 32 config.output_audio_filename = simulation_config.output_audio_filename; 33 config.pythonplot = simulation_config.python_plot_filename.has_value(); 34 config.plot_scripts_basename = simulation_config.python_plot_filename; 35 config.textlog = simulation_config.text_log_filename.has_value(); 36 config.textlog_filename = simulation_config.text_log_filename; 37 config.ssrc_filter = simulation_config.ssrc_filter; 38 return config; 39 } 40 } // namespace 41 42 NetEqSimulatorFactory::NetEqSimulatorFactory() 43 : factory_(std::make_unique<NetEqTestFactory>()) {} 44 45 NetEqSimulatorFactory::~NetEqSimulatorFactory() = default; 46 47 std::unique_ptr<NetEqSimulator> NetEqSimulatorFactory::CreateSimulatorFromFile( 48 absl::string_view event_log_filename, 49 absl::string_view replacement_audio_filename, 50 Config simulation_config) { 51 NetEqTestFactory::Config config = 52 convertConfig(simulation_config, replacement_audio_filename); 53 return factory_->InitializeTestFromFile( 54 std::string(event_log_filename), simulation_config.neteq_factory, config); 55 } 56 57 std::unique_ptr<NetEqSimulator> 58 NetEqSimulatorFactory::CreateSimulatorFromString( 59 absl::string_view event_log_file_contents, 60 absl::string_view replacement_audio_filename, 61 Config simulation_config) { 62 NetEqTestFactory::Config config = 63 convertConfig(simulation_config, replacement_audio_filename); 64 return factory_->InitializeTestFromString( 65 std::string(event_log_file_contents), simulation_config.neteq_factory, 66 config); 67 } 68 69 } // namespace test 70 } // namespace webrtc