Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2017 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 <iostream> | 11 #include <iostream> |
| 12 | 12 |
| 13 #include "gflags/gflags.h" | |
| 14 #include "webrtc/modules/audio_processing/test/conversational_speech/config.h" | 13 #include "webrtc/modules/audio_processing/test/conversational_speech/config.h" |
| 15 #include "webrtc/modules/audio_processing/test/conversational_speech/multiend_ca ll.h" | 14 #include "webrtc/modules/audio_processing/test/conversational_speech/multiend_ca ll.h" |
| 16 #include "webrtc/modules/audio_processing/test/conversational_speech/simulator.h " | 15 #include "webrtc/modules/audio_processing/test/conversational_speech/simulator.h " |
| 17 #include "webrtc/modules/audio_processing/test/conversational_speech/timing.h" | 16 #include "webrtc/modules/audio_processing/test/conversational_speech/timing.h" |
| 18 #include "webrtc/modules/audio_processing/test/conversational_speech/wavreader_f actory.h" | 17 #include "webrtc/modules/audio_processing/test/conversational_speech/wavreader_f actory.h" |
| 18 #include "webrtc/rtc_base/flags.h" | |
| 19 #include "webrtc/rtc_base/ptr_util.h" | 19 #include "webrtc/rtc_base/ptr_util.h" |
| 20 #include "webrtc/test/testsupport/fileutils.h" | 20 #include "webrtc/test/testsupport/fileutils.h" |
| 21 | 21 |
| 22 namespace webrtc { | 22 namespace webrtc { |
| 23 namespace test { | 23 namespace test { |
| 24 namespace { | 24 namespace { |
| 25 | 25 |
| 26 // Adapting DirExists/FileExists interfaces to DEFINE_validator. | |
| 27 auto dir_exists = [](const char* c, const std::string& dirpath) { | |
| 28 return DirExists(dirpath); | |
| 29 }; | |
| 30 auto file_exists = [](const char* c, const std::string& filepath) { | |
| 31 return FileExists(filepath); | |
| 32 }; | |
| 33 | |
| 34 const char kUsageDescription[] = | 26 const char kUsageDescription[] = |
| 35 "Usage: conversational_speech_generator\n" | 27 "Usage: conversational_speech_generator\n" |
| 36 " -i <path/to/source/audiotracks>\n" | 28 " -i <path/to/source/audiotracks>\n" |
| 37 " -t <path/to/timing_file.txt>\n" | 29 " -t <path/to/timing_file.txt>\n" |
| 38 " -o <output/path>\n" | 30 " -o <output/path>\n" |
| 39 "\n\n" | 31 "\n\n" |
| 40 "Command-line tool to generate multiple-end audio tracks to simulate " | 32 "Command-line tool to generate multiple-end audio tracks to simulate " |
| 41 "conversational speech with two or more participants."; | 33 "conversational speech with two or more participants.\n"; |
| 42 | 34 |
| 43 DEFINE_string(i, "", "Directory containing the speech turn wav files"); | 35 DEFINE_string(i, "", "Directory containing the speech turn wav files"); |
| 44 DEFINE_validator(i, dir_exists); | |
| 45 DEFINE_string(t, "", "Path to the timing text file"); | 36 DEFINE_string(t, "", "Path to the timing text file"); |
| 46 DEFINE_validator(t, file_exists); | |
| 47 DEFINE_string(o, "", "Output wav files destination path"); | 37 DEFINE_string(o, "", "Output wav files destination path"); |
| 48 DEFINE_validator(o, dir_exists); | 38 DEFINE_bool(help, false, "Prints this message"); |
| 49 | 39 |
| 50 } // namespace | 40 } // namespace |
| 51 | 41 |
| 52 int main(int argc, char* argv[]) { | 42 int main(int argc, char* argv[]) { |
| 53 google::SetUsageMessage(kUsageDescription); | 43 if (rtc::FlagList::SetFlagsFromCommandLine(&argc, argv, true) || |
| 54 google::ParseCommandLineFlags(&argc, &argv, true); | 44 FLAG_help || argc != 0) { |
| 55 conversational_speech::Config config(FLAGS_i, FLAGS_t, FLAGS_o); | 45 printf("%s", kUsageDescription); |
| 46 if (FLAG_help) { | |
| 47 rtc::FlagList::Print(nullptr, false); | |
| 48 return 0; | |
| 49 } | |
| 50 return 1; | |
| 51 } | |
| 52 RTC_CHECK(DirExists(FLAG_i)); | |
|
hlundin-webrtc
2017/08/30 21:07:54
In these three lines, I think it would be helpful
oprypin_webrtc
2017/08/31 00:23:25
I did make sure that there's always at least some
hlundin-webrtc
2017/08/31 05:59:20
OK. Fair enough.
| |
| 53 RTC_CHECK(FileExists(FLAG_t)); | |
| 54 RTC_CHECK(DirExists(FLAG_o)); | |
| 55 | |
| 56 conversational_speech::Config config(FLAG_i, FLAG_t, FLAG_o); | |
| 56 | 57 |
| 57 // Load timing. | 58 // Load timing. |
| 58 std::vector<conversational_speech::Turn> timing = | 59 std::vector<conversational_speech::Turn> timing = |
| 59 conversational_speech::LoadTiming(config.timing_filepath()); | 60 conversational_speech::LoadTiming(config.timing_filepath()); |
| 60 | 61 |
| 61 // Parse timing and audio tracks. | 62 // Parse timing and audio tracks. |
| 62 auto wavreader_factory = rtc::MakeUnique< | 63 auto wavreader_factory = rtc::MakeUnique< |
| 63 conversational_speech::WavReaderFactory>(); | 64 conversational_speech::WavReaderFactory>(); |
| 64 conversational_speech::MultiEndCall multiend_call( | 65 conversational_speech::MultiEndCall multiend_call( |
| 65 timing, config.audiotracks_path(), std::move(wavreader_factory)); | 66 timing, config.audiotracks_path(), std::move(wavreader_factory)); |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 80 | 81 |
| 81 return 0; | 82 return 0; |
| 82 } | 83 } |
| 83 | 84 |
| 84 } // namespace test | 85 } // namespace test |
| 85 } // namespace webrtc | 86 } // namespace webrtc |
| 86 | 87 |
| 87 int main(int argc, char* argv[]) { | 88 int main(int argc, char* argv[]) { |
| 88 return webrtc::test::main(argc, argv); | 89 return webrtc::test::main(argc, argv); |
| 89 } | 90 } |
| OLD | NEW |