Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(33)

Side by Side Diff: webrtc/modules/audio_coding/test/delay_test.cc

Issue 3005483002: Replace remaining gflags usages with rtc_base/flags (Closed)
Patch Set: Rebase Created 3 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
11 #include <assert.h> 11 #include <assert.h>
12 #include <math.h> 12 #include <math.h>
13 #include <string.h>
13 14
14 #include <iostream> 15 #include <iostream>
15 #include <memory> 16 #include <memory>
16 17
17 #include "gflags/gflags.h"
18 #include "webrtc/common_types.h" 18 #include "webrtc/common_types.h"
19 #include "webrtc/modules/audio_coding/codecs/audio_format_conversion.h" 19 #include "webrtc/modules/audio_coding/codecs/audio_format_conversion.h"
20 #include "webrtc/modules/audio_coding/include/audio_coding_module.h" 20 #include "webrtc/modules/audio_coding/include/audio_coding_module.h"
21 #include "webrtc/modules/audio_coding/include/audio_coding_module_typedefs.h" 21 #include "webrtc/modules/audio_coding/include/audio_coding_module_typedefs.h"
22 #include "webrtc/modules/audio_coding/test/Channel.h" 22 #include "webrtc/modules/audio_coding/test/Channel.h"
23 #include "webrtc/modules/audio_coding/test/PCMFile.h" 23 #include "webrtc/modules/audio_coding/test/PCMFile.h"
24 #include "webrtc/modules/audio_coding/test/utility.h" 24 #include "webrtc/modules/audio_coding/test/utility.h"
25 #include "webrtc/rtc_base/flags.h"
25 #include "webrtc/system_wrappers/include/event_wrapper.h" 26 #include "webrtc/system_wrappers/include/event_wrapper.h"
26 #include "webrtc/test/gtest.h" 27 #include "webrtc/test/gtest.h"
27 #include "webrtc/test/testsupport/fileutils.h" 28 #include "webrtc/test/testsupport/fileutils.h"
28 #include "webrtc/typedefs.h" 29 #include "webrtc/typedefs.h"
29 30
30 DEFINE_string(codec, "isac", "Codec Name"); 31 DEFINE_string(codec, "isac", "Codec Name");
31 DEFINE_int32(sample_rate_hz, 16000, "Sampling rate in Hertz."); 32 DEFINE_int(sample_rate_hz, 16000, "Sampling rate in Hertz.");
32 DEFINE_int32(num_channels, 1, "Number of Channels."); 33 DEFINE_int(num_channels, 1, "Number of Channels.");
33 DEFINE_string(input_file, "", "Input file, PCM16 32 kHz, optional."); 34 DEFINE_string(input_file, "", "Input file, PCM16 32 kHz, optional.");
34 DEFINE_int32(delay, 0, "Delay in millisecond."); 35 DEFINE_int(delay, 0, "Delay in millisecond.");
35 DEFINE_bool(dtx, false, "Enable DTX at the sender side."); 36 DEFINE_bool(dtx, false, "Enable DTX at the sender side.");
36 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}.");
37 DEFINE_bool(fec, false, "Use Forward Error Correction (FEC)."); 38 DEFINE_bool(fec, false, "Use Forward Error Correction (FEC).");
39 DEFINE_bool(help, false, "Print this message.");
38 40
39 namespace webrtc { 41 namespace webrtc {
40 42
41 namespace { 43 namespace {
42 44
43 struct CodecSettings { 45 struct CodecSettings {
44 char name[50]; 46 char name[50];
45 int sample_rate_hz; 47 int sample_rate_hz;
46 int num_channels; 48 int num_channels;
47 }; 49 };
(...skipping 25 matching lines...) Expand all
73 delete channel_a2b_; 75 delete channel_a2b_;
74 channel_a2b_ = NULL; 76 channel_a2b_ = NULL;
75 } 77 }
76 in_file_a_.Close(); 78 in_file_a_.Close();
77 } 79 }
78 80
79 void Initialize() { 81 void Initialize() {
80 test_cntr_ = 0; 82 test_cntr_ = 0;
81 std::string file_name = webrtc::test::ResourcePath( 83 std::string file_name = webrtc::test::ResourcePath(
82 "audio_coding/testfile32kHz", "pcm"); 84 "audio_coding/testfile32kHz", "pcm");
83 if (FLAGS_input_file.size() > 0) 85 if (strlen(FLAG_input_file) > 0)
84 file_name = FLAGS_input_file; 86 file_name = FLAG_input_file;
85 in_file_a_.Open(file_name, 32000, "rb"); 87 in_file_a_.Open(file_name, 32000, "rb");
86 ASSERT_EQ(0, acm_a_->InitializeReceiver()) << 88 ASSERT_EQ(0, acm_a_->InitializeReceiver()) <<
87 "Couldn't initialize receiver.\n"; 89 "Couldn't initialize receiver.\n";
88 ASSERT_EQ(0, acm_b_->InitializeReceiver()) << 90 ASSERT_EQ(0, acm_b_->InitializeReceiver()) <<
89 "Couldn't initialize receiver.\n"; 91 "Couldn't initialize receiver.\n";
90 92
91 if (FLAGS_delay > 0) { 93 if (FLAG_delay > 0) {
92 ASSERT_EQ(0, acm_b_->SetMinimumPlayoutDelay(FLAGS_delay)) << 94 ASSERT_EQ(0, acm_b_->SetMinimumPlayoutDelay(FLAG_delay)) <<
93 "Failed to set minimum delay.\n"; 95 "Failed to set minimum delay.\n";
94 } 96 }
95 97
96 int num_encoders = acm_a_->NumberOfCodecs(); 98 int num_encoders = acm_a_->NumberOfCodecs();
97 CodecInst my_codec_param; 99 CodecInst my_codec_param;
98 for (int n = 0; n < num_encoders; n++) { 100 for (int n = 0; n < num_encoders; n++) {
99 EXPECT_EQ(0, acm_b_->Codec(n, &my_codec_param)) << 101 EXPECT_EQ(0, acm_b_->Codec(n, &my_codec_param)) <<
100 "Failed to get codec."; 102 "Failed to get codec.";
101 if (STR_CASE_CMP(my_codec_param.plname, "opus") == 0) 103 if (STR_CASE_CMP(my_codec_param.plname, "opus") == 0)
102 my_codec_param.channels = 1; 104 my_codec_param.channels = 1;
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 ASSERT_EQ(0, acm_a_->SetREDStatus(config.fec)) << 161 ASSERT_EQ(0, acm_a_->SetREDStatus(config.fec)) <<
160 "Failed to set RED.\n"; 162 "Failed to set RED.\n";
161 } 163 }
162 164
163 void ConfigChannel(bool packet_loss) { 165 void ConfigChannel(bool packet_loss) {
164 channel_a2b_->SetFECTestWithPacketLoss(packet_loss); 166 channel_a2b_->SetFECTestWithPacketLoss(packet_loss);
165 } 167 }
166 168
167 void OpenOutFile(const char* output_id) { 169 void OpenOutFile(const char* output_id) {
168 std::stringstream file_stream; 170 std::stringstream file_stream;
169 file_stream << "delay_test_" << FLAGS_codec << "_" << FLAGS_sample_rate_hz 171 file_stream << "delay_test_" << FLAG_codec << "_" << FLAG_sample_rate_hz
170 << "Hz" << "_" << FLAGS_delay << "ms.pcm"; 172 << "Hz" << "_" << FLAG_delay << "ms.pcm";
171 std::cout << "Output file: " << file_stream.str() << std::endl << std::endl; 173 std::cout << "Output file: " << file_stream.str() << std::endl << std::endl;
172 std::string file_name = webrtc::test::OutputPath() + file_stream.str(); 174 std::string file_name = webrtc::test::OutputPath() + file_stream.str();
173 out_file_b_.Open(file_name.c_str(), 32000, "wb"); 175 out_file_b_.Open(file_name.c_str(), 32000, "wb");
174 } 176 }
175 177
176 void Run(int duration_sec, const char* output_prefix) { 178 void Run(int duration_sec, const char* output_prefix) {
177 OpenOutFile(output_prefix); 179 OpenOutFile(output_prefix);
178 AudioFrame audio_frame; 180 AudioFrame audio_frame;
179 uint32_t out_freq_hz_b = out_file_b_.SamplingFrequency(); 181 uint32_t out_freq_hz_b = out_file_b_.SamplingFrequency();
180 182
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 235
234 PCMFile in_file_a_; 236 PCMFile in_file_a_;
235 PCMFile out_file_b_; 237 PCMFile out_file_b_;
236 int test_cntr_; 238 int test_cntr_;
237 int encoding_sample_rate_hz_; 239 int encoding_sample_rate_hz_;
238 }; 240 };
239 241
240 } // namespace webrtc 242 } // namespace webrtc
241 243
242 int main(int argc, char* argv[]) { 244 int main(int argc, char* argv[]) {
243 google::ParseCommandLineFlags(&argc, &argv, true); 245 if (rtc::FlagList::SetFlagsFromCommandLine(&argc, argv, true)) {
246 return 1;
247 }
248 if (FLAG_help) {
249 rtc::FlagList::Print(nullptr, false);
250 return 0;
251 }
252
244 webrtc::TestSettings test_setting; 253 webrtc::TestSettings test_setting;
245 strcpy(test_setting.codec.name, FLAGS_codec.c_str()); 254 strcpy(test_setting.codec.name, FLAG_codec);
246 255
247 if (FLAGS_sample_rate_hz != 8000 && 256 if (FLAG_sample_rate_hz != 8000 &&
248 FLAGS_sample_rate_hz != 16000 && 257 FLAG_sample_rate_hz != 16000 &&
249 FLAGS_sample_rate_hz != 32000 && 258 FLAG_sample_rate_hz != 32000 &&
250 FLAGS_sample_rate_hz != 48000) { 259 FLAG_sample_rate_hz != 48000) {
251 std::cout << "Invalid sampling rate.\n"; 260 std::cout << "Invalid sampling rate.\n";
252 return 1; 261 return 1;
253 } 262 }
254 test_setting.codec.sample_rate_hz = FLAGS_sample_rate_hz; 263 test_setting.codec.sample_rate_hz = FLAG_sample_rate_hz;
255 if (FLAGS_num_channels < 1 || FLAGS_num_channels > 2) { 264 if (FLAG_num_channels < 1 || FLAG_num_channels > 2) {
256 std::cout << "Only mono and stereo are supported.\n"; 265 std::cout << "Only mono and stereo are supported.\n";
257 return 1; 266 return 1;
258 } 267 }
259 test_setting.codec.num_channels = FLAGS_num_channels; 268 test_setting.codec.num_channels = FLAG_num_channels;
260 test_setting.acm.dtx = FLAGS_dtx; 269 test_setting.acm.dtx = FLAG_dtx;
261 test_setting.acm.fec = FLAGS_fec; 270 test_setting.acm.fec = FLAG_fec;
262 test_setting.packet_loss = FLAGS_packet_loss; 271 test_setting.packet_loss = FLAG_packet_loss;
263 272
264 webrtc::DelayTest delay_test; 273 webrtc::DelayTest delay_test;
265 delay_test.Initialize(); 274 delay_test.Initialize();
266 delay_test.Perform(&test_setting, 1, 240, "delay_test"); 275 delay_test.Perform(&test_setting, 1, 240, "delay_test");
267 return 0; 276 return 0;
268 } 277 }
OLDNEW
« no previous file with comments | « webrtc/modules/audio_coding/neteq/tools/rtp_analyze.cc ('k') | webrtc/modules/audio_coding/test/insert_packet_with_timing.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698