| 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 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 67 pcm_out_fid_(fopen(FLAGS_output.c_str(), "wb")), | 67 pcm_out_fid_(fopen(FLAGS_output.c_str(), "wb")), |
| 68 samples_in_1ms_(48), | 68 samples_in_1ms_(48), |
| 69 num_10ms_in_codec_frame_(2), // Typical 20 ms frames. | 69 num_10ms_in_codec_frame_(2), // Typical 20 ms frames. |
| 70 time_to_insert_packet_ms_(3), // An arbitrary offset on pushing packet. | 70 time_to_insert_packet_ms_(3), // An arbitrary offset on pushing packet. |
| 71 next_receive_ts_(0), | 71 next_receive_ts_(0), |
| 72 time_to_playout_audio_ms_(kPlayoutPeriodMs), | 72 time_to_playout_audio_ms_(kPlayoutPeriodMs), |
| 73 loss_threshold_(0), | 73 loss_threshold_(0), |
| 74 playout_timing_fid_(fopen("playout_timing.txt", "wt")) {} | 74 playout_timing_fid_(fopen("playout_timing.txt", "wt")) {} |
| 75 | 75 |
| 76 void SetUp() { | 76 void SetUp() { |
| 77 ASSERT_TRUE(sender_clock_ != NULL); | 77 ASSERT_TRUE(sender_clock_ != nullptr); |
| 78 ASSERT_TRUE(receiver_clock_ != NULL); | 78 ASSERT_TRUE(receiver_clock_ != nullptr); |
| 79 | 79 |
| 80 ASSERT_TRUE(send_acm_.get() != NULL); | 80 ASSERT_TRUE(send_acm_.get() != nullptr); |
| 81 ASSERT_TRUE(receive_acm_.get() != NULL); | 81 ASSERT_TRUE(receive_acm_.get() != nullptr); |
| 82 ASSERT_TRUE(channel_ != NULL); | 82 ASSERT_TRUE(channel_ != nullptr); |
| 83 | 83 |
| 84 ASSERT_TRUE(seq_num_fid_ != NULL); | 84 ASSERT_TRUE(seq_num_fid_ != nullptr); |
| 85 ASSERT_TRUE(send_ts_fid_ != NULL); | 85 ASSERT_TRUE(send_ts_fid_ != nullptr); |
| 86 ASSERT_TRUE(receive_ts_fid_ != NULL); | 86 ASSERT_TRUE(receive_ts_fid_ != nullptr); |
| 87 | 87 |
| 88 ASSERT_TRUE(playout_timing_fid_ != NULL); | 88 ASSERT_TRUE(playout_timing_fid_ != nullptr); |
| 89 | 89 |
| 90 next_receive_ts_ = ReceiveTimestamp(); | 90 next_receive_ts_ = ReceiveTimestamp(); |
| 91 | 91 |
| 92 CodecInst codec; | 92 CodecInst codec; |
| 93 ASSERT_EQ(0, AudioCodingModule::Codec(FLAGS_codec.c_str(), &codec, | 93 ASSERT_EQ(0, AudioCodingModule::Codec(FLAGS_codec.c_str(), &codec, |
| 94 FLAGS_codec_sample_rate_hz, | 94 FLAGS_codec_sample_rate_hz, |
| 95 FLAGS_codec_channels)); | 95 FLAGS_codec_channels)); |
| 96 ASSERT_EQ(0, receive_acm_->InitializeReceiver()); | 96 ASSERT_EQ(0, receive_acm_->InitializeReceiver()); |
| 97 ASSERT_EQ(0, send_acm_->RegisterSendCodec(codec)); | 97 ASSERT_EQ(0, send_acm_->RegisterSendCodec(codec)); |
| 98 ASSERT_EQ(true, receive_acm_->RegisterReceiveCodec(codec.pltype, | 98 ASSERT_EQ(true, receive_acm_->RegisterReceiveCodec(codec.pltype, |
| (...skipping 13 matching lines...) Expand all Loading... |
| 112 std::cout << "Input file " << file_name << " 32 kHz mono." << std::endl; | 112 std::cout << "Input file " << file_name << " 32 kHz mono." << std::endl; |
| 113 } else { | 113 } else { |
| 114 pcm_in_fid_.Open(FLAGS_input, static_cast<uint16_t>(FLAGS_input_fs_hz), | 114 pcm_in_fid_.Open(FLAGS_input, static_cast<uint16_t>(FLAGS_input_fs_hz), |
| 115 "r", true); // auto-rewind | 115 "r", true); // auto-rewind |
| 116 std::cout << "Input file " << FLAGS_input << "at " << FLAGS_input_fs_hz | 116 std::cout << "Input file " << FLAGS_input << "at " << FLAGS_input_fs_hz |
| 117 << " Hz in " << ((FLAGS_input_stereo) ? "stereo." : "mono.") | 117 << " Hz in " << ((FLAGS_input_stereo) ? "stereo." : "mono.") |
| 118 << std::endl; | 118 << std::endl; |
| 119 pcm_in_fid_.ReadStereo(FLAGS_input_stereo); | 119 pcm_in_fid_.ReadStereo(FLAGS_input_stereo); |
| 120 } | 120 } |
| 121 | 121 |
| 122 ASSERT_TRUE(pcm_out_fid_ != NULL); | 122 ASSERT_TRUE(pcm_out_fid_ != nullptr); |
| 123 std::cout << "Output file " << FLAGS_output << " at " << FLAGS_output_fs_hz | 123 std::cout << "Output file " << FLAGS_output << " at " << FLAGS_output_fs_hz |
| 124 << " Hz." << std::endl; | 124 << " Hz." << std::endl; |
| 125 | 125 |
| 126 // Other setups | 126 // Other setups |
| 127 if (FLAGS_loss_rate > 0) | 127 if (FLAGS_loss_rate > 0) |
| 128 loss_threshold_ = RAND_MAX * FLAGS_loss_rate; | 128 loss_threshold_ = RAND_MAX * FLAGS_loss_rate; |
| 129 else | 129 else |
| 130 loss_threshold_ = 0; | 130 loss_threshold_ = 0; |
| 131 } | 131 } |
| 132 | 132 |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 276 FILE* playout_timing_fid_; | 276 FILE* playout_timing_fid_; |
| 277 }; | 277 }; |
| 278 | 278 |
| 279 } // webrtc | 279 } // webrtc |
| 280 | 280 |
| 281 int main(int argc, char* argv[]) { | 281 int main(int argc, char* argv[]) { |
| 282 google::ParseCommandLineFlags(&argc, &argv, true); | 282 google::ParseCommandLineFlags(&argc, &argv, true); |
| 283 webrtc::InsertPacketWithTiming test; | 283 webrtc::InsertPacketWithTiming test; |
| 284 test.SetUp(); | 284 test.SetUp(); |
| 285 | 285 |
| 286 FILE* delay_log = NULL; | 286 FILE* delay_log = nullptr; |
| 287 if (FLAGS_delay.size() > 0) { | 287 if (FLAGS_delay.size() > 0) { |
| 288 delay_log = fopen(FLAGS_delay.c_str(), "wt"); | 288 delay_log = fopen(FLAGS_delay.c_str(), "wt"); |
| 289 if (delay_log == NULL) { | 289 if (delay_log == nullptr) { |
| 290 std::cout << "Cannot open the file to log delay values." << std::endl; | 290 std::cout << "Cannot open the file to log delay values." << std::endl; |
| 291 exit(1); | 291 exit(1); |
| 292 } | 292 } |
| 293 } | 293 } |
| 294 | 294 |
| 295 uint32_t action_taken; | 295 uint32_t action_taken; |
| 296 int optimal_delay_ms; | 296 int optimal_delay_ms; |
| 297 int current_delay_ms; | 297 int current_delay_ms; |
| 298 while (test.HasPackets()) { | 298 while (test.HasPackets()) { |
| 299 test.TickOneMillisecond(&action_taken); | 299 test.TickOneMillisecond(&action_taken); |
| 300 | 300 |
| 301 if (action_taken != 0) { | 301 if (action_taken != 0) { |
| 302 test.Delay(&optimal_delay_ms, ¤t_delay_ms); | 302 test.Delay(&optimal_delay_ms, ¤t_delay_ms); |
| 303 if (delay_log != NULL) { | 303 if (delay_log != nullptr) { |
| 304 fprintf(delay_log, "%3d %3d\n", optimal_delay_ms, current_delay_ms); | 304 fprintf(delay_log, "%3d %3d\n", optimal_delay_ms, current_delay_ms); |
| 305 } | 305 } |
| 306 } | 306 } |
| 307 } | 307 } |
| 308 std::cout << std::endl; | 308 std::cout << std::endl; |
| 309 test.TearDown(); | 309 test.TearDown(); |
| 310 if (delay_log != NULL) | 310 if (delay_log != nullptr) |
| 311 fclose(delay_log); | 311 fclose(delay_log); |
| 312 } | 312 } |
| OLD | NEW |