diff --git a/api/BUILD.gn b/api/BUILD.gn index a238357edc..ec717841c6 100644 --- a/api/BUILD.gn +++ b/api/BUILD.gn @@ -313,6 +313,22 @@ rtc_source_set("libjingle_peerconnection_test_api") { } if (rtc_include_tests) { + if (rtc_enable_protobuf) { + rtc_source_set("audioproc_f_api") { + visibility = [ "*" ] + testonly = true + sources = [ + "test/audioproc_float.cc", + "test/audioproc_float.h", + ] + + deps = [ + "../modules/audio_processing:audio_processing", + "../modules/audio_processing:audioproc_f_impl", + ] + } + } + rtc_source_set("mock_audio_mixer") { testonly = true sources = [ diff --git a/api/DEPS b/api/DEPS index 28914ba6a7..ba5d62356a 100644 --- a/api/DEPS +++ b/api/DEPS @@ -5,6 +5,7 @@ include_rules = [ "+p2p", "+pc", "+logging/rtc_event_log/rtc_event_log_factory_interface.h", + "+modules/audio_processing/include", ] specific_include_rules = { @@ -27,9 +28,4 @@ specific_include_rules = { ".*i420_buffer\.h": [ "+system_wrappers/include/aligned_malloc.h", ], - - # Needed to use the APM statistics. - "mediastreaminterface.h": [ - "+modules/audio_processing/include/audio_processing_statistics.h", - ], } diff --git a/api/test/audioproc_float.cc b/api/test/audioproc_float.cc new file mode 100644 index 0000000000..9d3ad7e9d8 --- /dev/null +++ b/api/test/audioproc_float.cc @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2018 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#include "api/test/audioproc_float.h" + +#include + +#include "modules/audio_processing/test/audioproc_float_impl.h" + +namespace webrtc { +namespace test { + +int AudioprocFloat(std::unique_ptr ap_builder, + int argc, + char* argv[]) { + return AudioprocFloatImpl(std::move(ap_builder), argc, argv); +} + +} // namespace test +} // namespace webrtc diff --git a/api/test/audioproc_float.h b/api/test/audioproc_float.h new file mode 100644 index 0000000000..25e4dd5b1c --- /dev/null +++ b/api/test/audioproc_float.h @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2018 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#ifndef API_TEST_AUDIOPROC_FLOAT_H_ +#define API_TEST_AUDIOPROC_FLOAT_H_ + +#include + +#include "modules/audio_processing/include/audio_processing.h" + +namespace webrtc { +namespace test { + +// This is an interface for the audio processing simulation utility. This +// utility can be used to simulate the audioprocessing module using a recording +// (either an AEC dump or wav files), and generate the output as a wav file. +// The |ap_builder| object will be used to create the AudioProcessing instance +// that is used during the simulation. The |ap_builder| supports setting of +// injectable components, which will be passed on to the created AudioProcessing +// instance. It is needed to pass the command line flags as |argc| and |argv|, +// so these can be interpreted properly by the utility. +// To get a fully-working audioproc_f utility, all that is needed is to write a +// main function, create an AudioProcessingBuilder, optionally set custom +// processing components on it, and pass the builder together with the command +// line arguments into this function. +// To see a list of all supported command line flags, run the executable with +// the '--help' flag. +int AudioprocFloat(std::unique_ptr ap_builder, + int argc, + char* argv[]); + +} // namespace test +} // namespace webrtc + +#endif // API_TEST_AUDIOPROC_FLOAT_H_ diff --git a/modules/audio_processing/BUILD.gn b/modules/audio_processing/BUILD.gn index 78e1be1810..6e6ce30c3a 100644 --- a/modules/audio_processing/BUILD.gn +++ b/modules/audio_processing/BUILD.gn @@ -676,8 +676,8 @@ if (rtc_include_tests) { "test/aec_dump_based_simulator.h", "test/audio_processing_simulator.cc", "test/audio_processing_simulator.h", - "test/audioproc_float.cc", - "test/audioproc_float.h", + "test/audioproc_float_impl.cc", + "test/audioproc_float_impl.h", "test/wav_based_simulator.cc", "test/wav_based_simulator.h", ] @@ -712,7 +712,7 @@ if (rtc_include_tests) { ] deps = [ ":audio_processing", - ":audioproc_f_impl", + "../../api:audioproc_f_api", "../../rtc_base:rtc_base_approved", ] } # audioproc_f diff --git a/modules/audio_processing/test/audioproc_float.cc b/modules/audio_processing/test/audioproc_float_impl.cc similarity index 98% rename from modules/audio_processing/test/audioproc_float.cc rename to modules/audio_processing/test/audioproc_float_impl.cc index 1d3f4273de..de6fb6551f 100644 --- a/modules/audio_processing/test/audioproc_float.cc +++ b/modules/audio_processing/test/audioproc_float_impl.cc @@ -8,15 +8,17 @@ * be found in the AUTHORS file in the root of the source tree. */ +#include + #include #include - -#include +#include +#include #include "modules/audio_processing/include/audio_processing.h" #include "modules/audio_processing/test/aec_dump_based_simulator.h" #include "modules/audio_processing/test/audio_processing_simulator.h" -#include "modules/audio_processing/test/audioproc_float.h" +#include "modules/audio_processing/test/audioproc_float_impl.h" #include "modules/audio_processing/test/wav_based_simulator.h" #include "rtc_base/flags.h" @@ -461,9 +463,9 @@ void PerformBasicParameterSanityChecks(const SimulationSettings& settings) { } // namespace -int audioproc_f(std::unique_ptr ap_builder, - int argc, - char* argv[]) { +int AudioprocFloatImpl(std::unique_ptr ap_builder, + int argc, + char* argv[]) { if (rtc::FlagList::SetFlagsFromCommandLine(&argc, argv, true) || FLAG_help || argc != 1) { printf("%s", kUsageDescription); diff --git a/modules/audio_processing/test/audioproc_float.h b/modules/audio_processing/test/audioproc_float_impl.h similarity index 65% rename from modules/audio_processing/test/audioproc_float.h rename to modules/audio_processing/test/audioproc_float_impl.h index 0b10044baf..063ecb45b8 100644 --- a/modules/audio_processing/test/audioproc_float.h +++ b/modules/audio_processing/test/audioproc_float_impl.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef MODULES_AUDIO_PROCESSING_TEST_AUDIOPROC_FLOAT_H_ -#define MODULES_AUDIO_PROCESSING_TEST_AUDIOPROC_FLOAT_H_ +#ifndef MODULES_AUDIO_PROCESSING_TEST_AUDIOPROC_FLOAT_IMPL_H_ +#define MODULES_AUDIO_PROCESSING_TEST_AUDIOPROC_FLOAT_IMPL_H_ #include @@ -19,11 +19,11 @@ namespace webrtc { namespace test { // This function implements the audio processing simulation utility. -int audioproc_f(std::unique_ptr ap_builder, - int argc, - char* argv[]); +int AudioprocFloatImpl(std::unique_ptr ap_builder, + int argc, + char* argv[]); } // namespace test } // namespace webrtc -#endif // MODULES_AUDIO_PROCESSING_TEST_AUDIOPROC_FLOAT_H_ +#endif // MODULES_AUDIO_PROCESSING_TEST_AUDIOPROC_FLOAT_IMPL_H_ diff --git a/modules/audio_processing/test/audioproc_float_main.cc b/modules/audio_processing/test/audioproc_float_main.cc index e0f24a9cf8..af81e78d0b 100644 --- a/modules/audio_processing/test/audioproc_float_main.cc +++ b/modules/audio_processing/test/audioproc_float_main.cc @@ -8,11 +8,11 @@ * be found in the AUTHORS file in the root of the source tree. */ +#include "api/test/audioproc_float.h" #include "modules/audio_processing/include/audio_processing.h" -#include "modules/audio_processing/test/audioproc_float.h" #include "rtc_base/ptr_util.h" int main(int argc, char* argv[]) { - return webrtc::test::audioproc_f( + return webrtc::test::AudioprocFloat( rtc::MakeUnique(), argc, argv); }