| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 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 | 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 | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 #include "webrtc/modules/audio_coding/main/test/PCMFile.h" | 26 #include "webrtc/modules/audio_coding/main/test/PCMFile.h" |
| 27 #include "webrtc/modules/audio_coding/main/test/utility.h" | 27 #include "webrtc/modules/audio_coding/main/test/utility.h" |
| 28 #include "webrtc/system_wrappers/include/event_wrapper.h" | 28 #include "webrtc/system_wrappers/include/event_wrapper.h" |
| 29 #include "webrtc/test/testsupport/fileutils.h" | 29 #include "webrtc/test/testsupport/fileutils.h" |
| 30 | 30 |
| 31 DEFINE_string(codec, "isac", "Codec Name"); | 31 DEFINE_string(codec, "isac", "Codec Name"); |
| 32 DEFINE_int32(sample_rate_hz, 16000, "Sampling rate in Hertz."); | 32 DEFINE_int32(sample_rate_hz, 16000, "Sampling rate in Hertz."); |
| 33 DEFINE_int32(num_channels, 1, "Number of Channels."); | 33 DEFINE_int32(num_channels, 1, "Number of Channels."); |
| 34 DEFINE_string(input_file, "", "Input file, PCM16 32 kHz, optional."); | 34 DEFINE_string(input_file, "", "Input file, PCM16 32 kHz, optional."); |
| 35 DEFINE_int32(delay, 0, "Delay in millisecond."); | 35 DEFINE_int32(delay, 0, "Delay in millisecond."); |
| 36 DEFINE_int32(init_delay, 0, "Initial delay in millisecond."); | |
| 37 DEFINE_bool(dtx, false, "Enable DTX at the sender side."); | 36 DEFINE_bool(dtx, false, "Enable DTX at the sender side."); |
| 38 DEFINE_bool(packet_loss, false, "Apply packet loss, c.f. Channel{.cc, .h}."); | 37 DEFINE_bool(packet_loss, false, "Apply packet loss, c.f. Channel{.cc, .h}."); |
| 39 DEFINE_bool(fec, false, "Use Forward Error Correction (FEC)."); | 38 DEFINE_bool(fec, false, "Use Forward Error Correction (FEC)."); |
| 40 | 39 |
| 41 namespace webrtc { | 40 namespace webrtc { |
| 42 | 41 |
| 43 namespace { | 42 namespace { |
| 44 | 43 |
| 45 struct CodecSettings { | 44 struct CodecSettings { |
| 46 char name[50]; | 45 char name[50]; |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 82 test_cntr_ = 0; | 81 test_cntr_ = 0; |
| 83 std::string file_name = webrtc::test::ResourcePath( | 82 std::string file_name = webrtc::test::ResourcePath( |
| 84 "audio_coding/testfile32kHz", "pcm"); | 83 "audio_coding/testfile32kHz", "pcm"); |
| 85 if (FLAGS_input_file.size() > 0) | 84 if (FLAGS_input_file.size() > 0) |
| 86 file_name = FLAGS_input_file; | 85 file_name = FLAGS_input_file; |
| 87 in_file_a_.Open(file_name, 32000, "rb"); | 86 in_file_a_.Open(file_name, 32000, "rb"); |
| 88 ASSERT_EQ(0, acm_a_->InitializeReceiver()) << | 87 ASSERT_EQ(0, acm_a_->InitializeReceiver()) << |
| 89 "Couldn't initialize receiver.\n"; | 88 "Couldn't initialize receiver.\n"; |
| 90 ASSERT_EQ(0, acm_b_->InitializeReceiver()) << | 89 ASSERT_EQ(0, acm_b_->InitializeReceiver()) << |
| 91 "Couldn't initialize receiver.\n"; | 90 "Couldn't initialize receiver.\n"; |
| 92 if (FLAGS_init_delay > 0) { | |
| 93 ASSERT_EQ(0, acm_b_->SetInitialPlayoutDelay(FLAGS_init_delay)) << | |
| 94 "Failed to set initial delay.\n"; | |
| 95 } | |
| 96 | 91 |
| 97 if (FLAGS_delay > 0) { | 92 if (FLAGS_delay > 0) { |
| 98 ASSERT_EQ(0, acm_b_->SetMinimumPlayoutDelay(FLAGS_delay)) << | 93 ASSERT_EQ(0, acm_b_->SetMinimumPlayoutDelay(FLAGS_delay)) << |
| 99 "Failed to set minimum delay.\n"; | 94 "Failed to set minimum delay.\n"; |
| 100 } | 95 } |
| 101 | 96 |
| 102 int num_encoders = acm_a_->NumberOfCodecs(); | 97 int num_encoders = acm_a_->NumberOfCodecs(); |
| 103 CodecInst my_codec_param; | 98 CodecInst my_codec_param; |
| 104 for (int n = 0; n < num_encoders; n++) { | 99 for (int n = 0; n < num_encoders; n++) { |
| 105 EXPECT_EQ(0, acm_b_->Codec(n, &my_codec_param)) << | 100 EXPECT_EQ(0, acm_b_->Codec(n, &my_codec_param)) << |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 165 "Failed to set RED.\n"; | 160 "Failed to set RED.\n"; |
| 166 } | 161 } |
| 167 | 162 |
| 168 void ConfigChannel(bool packet_loss) { | 163 void ConfigChannel(bool packet_loss) { |
| 169 channel_a2b_->SetFECTestWithPacketLoss(packet_loss); | 164 channel_a2b_->SetFECTestWithPacketLoss(packet_loss); |
| 170 } | 165 } |
| 171 | 166 |
| 172 void OpenOutFile(const char* output_id) { | 167 void OpenOutFile(const char* output_id) { |
| 173 std::stringstream file_stream; | 168 std::stringstream file_stream; |
| 174 file_stream << "delay_test_" << FLAGS_codec << "_" << FLAGS_sample_rate_hz | 169 file_stream << "delay_test_" << FLAGS_codec << "_" << FLAGS_sample_rate_hz |
| 175 << "Hz" << "_" << FLAGS_init_delay << "ms_" << FLAGS_delay << "ms.pcm"; | 170 << "Hz" << "_" << FLAGS_delay << "ms.pcm"; |
| 176 std::cout << "Output file: " << file_stream.str() << std::endl << std::endl; | 171 std::cout << "Output file: " << file_stream.str() << std::endl << std::endl; |
| 177 std::string file_name = webrtc::test::OutputPath() + file_stream.str(); | 172 std::string file_name = webrtc::test::OutputPath() + file_stream.str(); |
| 178 out_file_b_.Open(file_name.c_str(), 32000, "wb"); | 173 out_file_b_.Open(file_name.c_str(), 32000, "wb"); |
| 179 } | 174 } |
| 180 | 175 |
| 181 void Run(int duration_sec, const char* output_prefix) { | 176 void Run(int duration_sec, const char* output_prefix) { |
| 182 OpenOutFile(output_prefix); | 177 OpenOutFile(output_prefix); |
| 183 AudioFrame audio_frame; | 178 AudioFrame audio_frame; |
| 184 uint32_t out_freq_hz_b = out_file_b_.SamplingFrequency(); | 179 uint32_t out_freq_hz_b = out_file_b_.SamplingFrequency(); |
| 185 | 180 |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 261 test_setting.codec.num_channels = FLAGS_num_channels; | 256 test_setting.codec.num_channels = FLAGS_num_channels; |
| 262 test_setting.acm.dtx = FLAGS_dtx; | 257 test_setting.acm.dtx = FLAGS_dtx; |
| 263 test_setting.acm.fec = FLAGS_fec; | 258 test_setting.acm.fec = FLAGS_fec; |
| 264 test_setting.packet_loss = FLAGS_packet_loss; | 259 test_setting.packet_loss = FLAGS_packet_loss; |
| 265 | 260 |
| 266 webrtc::DelayTest delay_test; | 261 webrtc::DelayTest delay_test; |
| 267 delay_test.Initialize(); | 262 delay_test.Initialize(); |
| 268 delay_test.Perform(&test_setting, 1, 240, "delay_test"); | 263 delay_test.Perform(&test_setting, 1, 240, "delay_test"); |
| 269 return 0; | 264 return 0; |
| 270 } | 265 } |
| OLD | NEW |