From 69b627d89de99cb59c271b4f7e1108800a91ddba Mon Sep 17 00:00:00 2001 From: minyue Date: Thu, 24 Nov 2016 11:01:09 -0800 Subject: [PATCH] Move smoothing filter to common audio and exp_filter to base/analytics. An earlier attempt of this work can be found here https://codereview.webrtc.org/2520003005/#ps100001, but was reverted. PS4 in that CL was not valid since separation of BUILD.gn can cause internal bot to fail. This is a new attempt, which is the same as https://codereview.webrtc.org/2520003005/#ps100001 but PS4 reverted. BUG=webrtc:6443 TBR=tommi@webrtc.org, solenberg@webrtc.org Review-Url: https://codereview.webrtc.org/2532523002 Cr-Commit-Position: refs/heads/master@{#15233} --- webrtc/BUILD.gn | 3 ++- webrtc/base/BUILD.gn | 9 +++++++-- webrtc/base/{ => analytics}/exp_filter.cc | 2 +- webrtc/base/{ => analytics}/exp_filter.h | 6 +++--- webrtc/base/{ => analytics}/exp_filter_unittest.cc | 4 ++-- webrtc/common_audio/BUILD.gn | 4 ++++ .../mocks}/mock_smoothing_filter.h | 10 ++++------ .../smoothing_filter.cc | 2 +- .../smoothing_filter.h | 10 +++++----- .../smoothing_filter_unittest.cc | 2 +- webrtc/modules/BUILD.gn | 1 - webrtc/modules/audio_coding/BUILD.gn | 3 +-- .../audio_network_adaptor/fec_controller.h | 2 +- .../audio_network_adaptor/fec_controller_unittest.cc | 5 +---- .../audio_coding/codecs/opus/audio_encoder_opus.cc | 2 +- .../aimd_rate_control_unittest.cc | 2 +- webrtc/modules/video_coding/BUILD.gn | 2 ++ webrtc/modules/video_coding/media_opt_util.h | 2 +- webrtc/modules/video_coding/utility/frame_dropper.h | 2 +- webrtc/video/BUILD.gn | 1 + webrtc/video/overuse_frame_detector.cc | 2 +- webrtc/video/overuse_frame_detector.h | 2 +- webrtc/video/send_statistics_proxy.h | 2 +- 23 files changed, 43 insertions(+), 37 deletions(-) rename webrtc/base/{ => analytics}/exp_filter.cc (96%) rename webrtc/base/{ => analytics}/exp_filter.h (91%) rename webrtc/base/{ => analytics}/exp_filter_unittest.cc (95%) rename webrtc/{modules/audio_coding/audio_network_adaptor/mock => common_audio/mocks}/mock_smoothing_filter.h (60%) rename webrtc/{modules/audio_coding/audio_network_adaptor => common_audio}/smoothing_filter.cc (96%) rename webrtc/{modules/audio_coding/audio_network_adaptor => common_audio}/smoothing_filter.h (81%) rename webrtc/{modules/audio_coding/audio_network_adaptor => common_audio}/smoothing_filter_unittest.cc (97%) diff --git a/webrtc/BUILD.gn b/webrtc/BUILD.gn index b3532b1aaf..c91792083e 100644 --- a/webrtc/BUILD.gn +++ b/webrtc/BUILD.gn @@ -363,6 +363,7 @@ if (rtc_include_tests) { testonly = true sources = [ "api/fakemetricsobserver.cc", + "base/analytics/exp_filter_unittest.cc", "base/array_view_unittest.cc", "base/atomicops_unittest.cc", "base/autodetectproxy_unittest.cc", @@ -380,7 +381,6 @@ if (rtc_include_tests) { "base/criticalsection_unittest.cc", "base/event_tracer_unittest.cc", "base/event_unittest.cc", - "base/exp_filter_unittest.cc", "base/file_unittest.cc", "base/filerotatingstream_unittest.cc", "base/fileutils_unittest.cc", @@ -508,6 +508,7 @@ if (rtc_include_tests) { } deps = [ + "base:rtc_analytics", "base:rtc_base", "base:rtc_base_tests_utils", "base:rtc_task_queue", diff --git a/webrtc/base/BUILD.gn b/webrtc/base/BUILD.gn index d1e600288b..71f9ec45e4 100644 --- a/webrtc/base/BUILD.gn +++ b/webrtc/base/BUILD.gn @@ -124,8 +124,6 @@ rtc_static_library("rtc_base_approved") { "event.h", "event_tracer.cc", "event_tracer.h", - "exp_filter.cc", - "exp_filter.h", "file.cc", "file.h", "format_macros.h", @@ -338,6 +336,13 @@ rtc_static_library("rtc_task_queue") { } } +rtc_static_library("rtc_analytics") { + sources = [ + "analytics/exp_filter.cc", + "analytics/exp_filter.h", + ] +} + config("rtc_base_warnings_config") { if (is_win && is_clang) { cflags = [ diff --git a/webrtc/base/exp_filter.cc b/webrtc/base/analytics/exp_filter.cc similarity index 96% rename from webrtc/base/exp_filter.cc rename to webrtc/base/analytics/exp_filter.cc index 9529480061..48fe1ad97a 100644 --- a/webrtc/base/exp_filter.cc +++ b/webrtc/base/analytics/exp_filter.cc @@ -8,7 +8,7 @@ * be found in the AUTHORS file in the root of the source tree. */ -#include "webrtc/base/exp_filter.h" +#include "webrtc/base/analytics/exp_filter.h" #include diff --git a/webrtc/base/exp_filter.h b/webrtc/base/analytics/exp_filter.h similarity index 91% rename from webrtc/base/exp_filter.h rename to webrtc/base/analytics/exp_filter.h index 174159b45f..e93de48963 100644 --- a/webrtc/base/exp_filter.h +++ b/webrtc/base/analytics/exp_filter.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef WEBRTC_BASE_EXP_FILTER_H_ -#define WEBRTC_BASE_EXP_FILTER_H_ +#ifndef WEBRTC_BASE_ANALYTICS_EXP_FILTER_H_ +#define WEBRTC_BASE_ANALYTICS_EXP_FILTER_H_ namespace rtc { @@ -46,4 +46,4 @@ class ExpFilter { }; } // namespace rtc -#endif // WEBRTC_BASE_EXP_FILTER_H_ +#endif // WEBRTC_BASE_ANALYTICS_EXP_FILTER_H_ diff --git a/webrtc/base/exp_filter_unittest.cc b/webrtc/base/analytics/exp_filter_unittest.cc similarity index 95% rename from webrtc/base/exp_filter_unittest.cc rename to webrtc/base/analytics/exp_filter_unittest.cc index f027808113..48cb4cc329 100644 --- a/webrtc/base/exp_filter_unittest.cc +++ b/webrtc/base/analytics/exp_filter_unittest.cc @@ -10,8 +10,8 @@ #include -#include "webrtc/base/gunit.h" -#include "webrtc/base/exp_filter.h" +#include "webrtc/base/analytics/exp_filter.h" +#include "webrtc/test/gtest.h" namespace rtc { diff --git a/webrtc/common_audio/BUILD.gn b/webrtc/common_audio/BUILD.gn index bfed73eeeb..a26d74b0ec 100644 --- a/webrtc/common_audio/BUILD.gn +++ b/webrtc/common_audio/BUILD.gn @@ -86,6 +86,8 @@ rtc_static_library("common_audio") { "signal_processing/splitting_filter.c", "signal_processing/sqrt_of_one_minus_x_squared.c", "signal_processing/vector_scaling_operations.c", + "smoothing_filter.cc", + "smoothing_filter.h", "sparse_fir_filter.cc", "sparse_fir_filter.h", "vad/include/vad.h", @@ -109,6 +111,7 @@ rtc_static_library("common_audio") { ] deps = [ + "../base:rtc_analytics", "../system_wrappers", ] @@ -257,6 +260,7 @@ if (rtc_include_tests) { "ring_buffer_unittest.cc", "signal_processing/real_fft_unittest.cc", "signal_processing/signal_processing_unittest.cc", + "smoothing_filter_unittest.cc", "sparse_fir_filter_unittest.cc", "vad/vad_core_unittest.cc", "vad/vad_filterbank_unittest.cc", diff --git a/webrtc/modules/audio_coding/audio_network_adaptor/mock/mock_smoothing_filter.h b/webrtc/common_audio/mocks/mock_smoothing_filter.h similarity index 60% rename from webrtc/modules/audio_coding/audio_network_adaptor/mock/mock_smoothing_filter.h rename to webrtc/common_audio/mocks/mock_smoothing_filter.h index 745ca98ea6..6b2991b22f 100644 --- a/webrtc/modules/audio_coding/audio_network_adaptor/mock/mock_smoothing_filter.h +++ b/webrtc/common_audio/mocks/mock_smoothing_filter.h @@ -8,22 +8,20 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef WEBRTC_MODULES_AUDIO_CODING_AUDIO_NETWORK_ADAPTOR_MOCK_MOCK_SMOOTHING_FILTER_H_ -#define WEBRTC_MODULES_AUDIO_CODING_AUDIO_NETWORK_ADAPTOR_MOCK_MOCK_SMOOTHING_FILTER_H_ +#ifndef WEBRTC_COMMON_AUDIO_MOCKS_MOCK_SMOOTHING_FILTER_H_ +#define WEBRTC_COMMON_AUDIO_MOCKS_MOCK_SMOOTHING_FILTER_H_ -#include "webrtc/modules/audio_coding/audio_network_adaptor/smoothing_filter.h" +#include "webrtc/common_audio/smoothing_filter.h" #include "webrtc/test/gmock.h" namespace webrtc { class MockSmoothingFilter : public SmoothingFilter { public: - virtual ~MockSmoothingFilter() { Die(); } - MOCK_METHOD0(Die, void()); MOCK_METHOD1(AddSample, void(float)); MOCK_CONST_METHOD0(GetAverage, rtc::Optional()); }; } // namespace webrtc -#endif // WEBRTC_MODULES_AUDIO_CODING_AUDIO_NETWORK_ADAPTOR_MOCK_MOCK_SMOOTHING_FILTER_H_ +#endif // WEBRTC_COMMON_AUDIO_MOCKS_MOCK_SMOOTHING_FILTER_H_ diff --git a/webrtc/modules/audio_coding/audio_network_adaptor/smoothing_filter.cc b/webrtc/common_audio/smoothing_filter.cc similarity index 96% rename from webrtc/modules/audio_coding/audio_network_adaptor/smoothing_filter.cc rename to webrtc/common_audio/smoothing_filter.cc index 8a8106918a..1cf9580d2a 100644 --- a/webrtc/modules/audio_coding/audio_network_adaptor/smoothing_filter.cc +++ b/webrtc/common_audio/smoothing_filter.cc @@ -10,7 +10,7 @@ #include -#include "webrtc/modules/audio_coding/audio_network_adaptor/smoothing_filter.h" +#include "webrtc/common_audio/smoothing_filter.h" namespace webrtc { diff --git a/webrtc/modules/audio_coding/audio_network_adaptor/smoothing_filter.h b/webrtc/common_audio/smoothing_filter.h similarity index 81% rename from webrtc/modules/audio_coding/audio_network_adaptor/smoothing_filter.h rename to webrtc/common_audio/smoothing_filter.h index c4de7b5da5..64a83d1484 100644 --- a/webrtc/modules/audio_coding/audio_network_adaptor/smoothing_filter.h +++ b/webrtc/common_audio/smoothing_filter.h @@ -8,11 +8,11 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef WEBRTC_MODULES_AUDIO_CODING_AUDIO_NETWORK_ADAPTOR_SMOOTHING_FILTER_H_ -#define WEBRTC_MODULES_AUDIO_CODING_AUDIO_NETWORK_ADAPTOR_SMOOTHING_FILTER_H_ +#ifndef WEBRTC_COMMON_AUDIO_SMOOTHING_FILTER_H_ +#define WEBRTC_COMMON_AUDIO_SMOOTHING_FILTER_H_ +#include "webrtc/base/analytics/exp_filter.h" #include "webrtc/base/constructormagic.h" -#include "webrtc/base/exp_filter.h" #include "webrtc/base/optional.h" #include "webrtc/system_wrappers/include/clock.h" @@ -46,9 +46,9 @@ class SmoothingFilterImpl final : public SmoothingFilter { int64_t last_sample_time_ms_; rtc::ExpFilter filter_; - RTC_DISALLOW_COPY_AND_ASSIGN(SmoothingFilterImpl); + RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(SmoothingFilterImpl); }; } // namespace webrtc -#endif // WEBRTC_MODULES_AUDIO_CODING_AUDIO_NETWORK_ADAPTOR_SMOOTHING_FILTER_H_ +#endif // WEBRTC_COMMON_AUDIO_SMOOTHING_FILTER_H_ diff --git a/webrtc/modules/audio_coding/audio_network_adaptor/smoothing_filter_unittest.cc b/webrtc/common_audio/smoothing_filter_unittest.cc similarity index 97% rename from webrtc/modules/audio_coding/audio_network_adaptor/smoothing_filter_unittest.cc rename to webrtc/common_audio/smoothing_filter_unittest.cc index af4e8d957b..c80ffb672c 100644 --- a/webrtc/modules/audio_coding/audio_network_adaptor/smoothing_filter_unittest.cc +++ b/webrtc/common_audio/smoothing_filter_unittest.cc @@ -10,7 +10,7 @@ #include -#include "webrtc/modules/audio_coding/audio_network_adaptor/smoothing_filter.h" +#include "webrtc/common_audio/smoothing_filter.h" #include "webrtc/test/gtest.h" namespace webrtc { diff --git a/webrtc/modules/BUILD.gn b/webrtc/modules/BUILD.gn index e5c4881ac0..498004fb06 100644 --- a/webrtc/modules/BUILD.gn +++ b/webrtc/modules/BUILD.gn @@ -264,7 +264,6 @@ if (rtc_include_tests) { "audio_coding/audio_network_adaptor/frame_length_controller_unittest.cc", "audio_coding/audio_network_adaptor/mock/mock_controller.h", "audio_coding/audio_network_adaptor/mock/mock_controller_manager.h", - "audio_coding/audio_network_adaptor/smoothing_filter_unittest.cc", ] deps = [ "audio_coding:audio_network_adaptor", diff --git a/webrtc/modules/audio_coding/BUILD.gn b/webrtc/modules/audio_coding/BUILD.gn index 0e78abfea6..8c5a079828 100644 --- a/webrtc/modules/audio_coding/BUILD.gn +++ b/webrtc/modules/audio_coding/BUILD.gn @@ -708,6 +708,7 @@ rtc_static_library("webrtc_opus") { ":audio_decoder_interface", ":audio_encoder_interface", ":audio_network_adaptor", + "../../base:rtc_analytics", "../../base:rtc_base_approved", ] @@ -764,8 +765,6 @@ rtc_static_library("audio_network_adaptor") { "audio_network_adaptor/frame_length_controller.cc", "audio_network_adaptor/frame_length_controller.h", "audio_network_adaptor/include/audio_network_adaptor.h", - "audio_network_adaptor/smoothing_filter.cc", - "audio_network_adaptor/smoothing_filter.h", ] deps = [ diff --git a/webrtc/modules/audio_coding/audio_network_adaptor/fec_controller.h b/webrtc/modules/audio_coding/audio_network_adaptor/fec_controller.h index 0c2388b2c6..62a3533a75 100644 --- a/webrtc/modules/audio_coding/audio_network_adaptor/fec_controller.h +++ b/webrtc/modules/audio_coding/audio_network_adaptor/fec_controller.h @@ -14,8 +14,8 @@ #include #include "webrtc/base/constructormagic.h" +#include "webrtc/common_audio/smoothing_filter.h" #include "webrtc/modules/audio_coding/audio_network_adaptor/controller.h" -#include "webrtc/modules/audio_coding/audio_network_adaptor/smoothing_filter.h" namespace webrtc { diff --git a/webrtc/modules/audio_coding/audio_network_adaptor/fec_controller_unittest.cc b/webrtc/modules/audio_coding/audio_network_adaptor/fec_controller_unittest.cc index 9bbec26cbe..823763f091 100644 --- a/webrtc/modules/audio_coding/audio_network_adaptor/fec_controller_unittest.cc +++ b/webrtc/modules/audio_coding/audio_network_adaptor/fec_controller_unittest.cc @@ -10,8 +10,8 @@ #include +#include "webrtc/common_audio/mocks/mock_smoothing_filter.h" #include "webrtc/modules/audio_coding/audio_network_adaptor/fec_controller.h" -#include "webrtc/modules/audio_coding/audio_network_adaptor/mock/mock_smoothing_filter.h" #include "webrtc/test/gtest.h" namespace webrtc { @@ -55,7 +55,6 @@ FecControllerStates CreateFecController(bool initial_fec_enabled) { std::unique_ptr mock_smoothing_filter( new NiceMock()); states.packet_loss_smoothed = mock_smoothing_filter.get(); - EXPECT_CALL(*states.packet_loss_smoothed, Die()); using Threshold = FecController::Config::Threshold; states.controller.reset(new FecController( FecController::Config( @@ -262,7 +261,6 @@ TEST(FecControllerTest, CheckBehaviorOnSpecialCurves) { std::unique_ptr mock_smoothing_filter( new NiceMock()); states.packet_loss_smoothed = mock_smoothing_filter.get(); - EXPECT_CALL(*states.packet_loss_smoothed, Die()); using Threshold = FecController::Config::Threshold; states.controller.reset(new FecController( FecController::Config( @@ -293,7 +291,6 @@ TEST(FecControllerDeathTest, InvalidConfig) { std::unique_ptr mock_smoothing_filter( new NiceMock()); states.packet_loss_smoothed = mock_smoothing_filter.get(); - EXPECT_CALL(*states.packet_loss_smoothed, Die()); using Threshold = FecController::Config::Threshold; EXPECT_DEATH( states.controller.reset(new FecController( diff --git a/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc b/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc index 0f0958c2dc..e9772f674b 100644 --- a/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc +++ b/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc @@ -13,8 +13,8 @@ #include #include +#include "webrtc/base/analytics/exp_filter.h" #include "webrtc/base/checks.h" -#include "webrtc/base/exp_filter.h" #include "webrtc/base/safe_conversions.h" #include "webrtc/common_types.h" #include "webrtc/modules/audio_coding/audio_network_adaptor/audio_network_adaptor_impl.h" diff --git a/webrtc/modules/remote_bitrate_estimator/aimd_rate_control_unittest.cc b/webrtc/modules/remote_bitrate_estimator/aimd_rate_control_unittest.cc index 2966c29372..b36b16ddbf 100644 --- a/webrtc/modules/remote_bitrate_estimator/aimd_rate_control_unittest.cc +++ b/webrtc/modules/remote_bitrate_estimator/aimd_rate_control_unittest.cc @@ -9,8 +9,8 @@ */ #include -#include "webrtc/modules/audio_coding/audio_network_adaptor/smoothing_filter.h" #include "webrtc/modules/remote_bitrate_estimator/aimd_rate_control.h" +#include "webrtc/system_wrappers/include/clock.h" #include "webrtc/test/gtest.h" namespace webrtc { diff --git a/webrtc/modules/video_coding/BUILD.gn b/webrtc/modules/video_coding/BUILD.gn index 8f413d9820..378449ff68 100644 --- a/webrtc/modules/video_coding/BUILD.gn +++ b/webrtc/modules/video_coding/BUILD.gn @@ -93,6 +93,7 @@ rtc_static_library("video_coding") { ":webrtc_vp8", ":webrtc_vp9", "../..:webrtc_common", + "../../base:rtc_analytics", "../../common_video", "../../system_wrappers", ] @@ -124,6 +125,7 @@ rtc_static_library("video_coding_utility") { } deps = [ + "../../base:rtc_analytics", "../../common_video", "../../system_wrappers", ] diff --git a/webrtc/modules/video_coding/media_opt_util.h b/webrtc/modules/video_coding/media_opt_util.h index 26f9332f3c..bab1cbe4c3 100644 --- a/webrtc/modules/video_coding/media_opt_util.h +++ b/webrtc/modules/video_coding/media_opt_util.h @@ -16,7 +16,7 @@ #include -#include "webrtc/base/exp_filter.h" +#include "webrtc/base/analytics/exp_filter.h" #include "webrtc/modules/video_coding/internal_defines.h" #include "webrtc/system_wrappers/include/trace.h" #include "webrtc/typedefs.h" diff --git a/webrtc/modules/video_coding/utility/frame_dropper.h b/webrtc/modules/video_coding/utility/frame_dropper.h index 20ff3d79f5..468b41744a 100644 --- a/webrtc/modules/video_coding/utility/frame_dropper.h +++ b/webrtc/modules/video_coding/utility/frame_dropper.h @@ -13,7 +13,7 @@ #include -#include "webrtc/base/exp_filter.h" +#include "webrtc/base/analytics/exp_filter.h" #include "webrtc/typedefs.h" namespace webrtc { diff --git a/webrtc/video/BUILD.gn b/webrtc/video/BUILD.gn index 9a753608ef..3074d96e00 100644 --- a/webrtc/video/BUILD.gn +++ b/webrtc/video/BUILD.gn @@ -56,6 +56,7 @@ rtc_static_library("video") { deps = [ "..:webrtc_common", + "../base:rtc_analytics", "../base:rtc_base_approved", "../base:rtc_task_queue", "../common_video", diff --git a/webrtc/video/overuse_frame_detector.cc b/webrtc/video/overuse_frame_detector.cc index bb89864bb0..1670dc3aaa 100644 --- a/webrtc/video/overuse_frame_detector.cc +++ b/webrtc/video/overuse_frame_detector.cc @@ -17,8 +17,8 @@ #include #include +#include "webrtc/base/analytics/exp_filter.h" #include "webrtc/base/checks.h" -#include "webrtc/base/exp_filter.h" #include "webrtc/base/logging.h" #include "webrtc/common_video/include/frame_callback.h" #include "webrtc/system_wrappers/include/clock.h" diff --git a/webrtc/video/overuse_frame_detector.h b/webrtc/video/overuse_frame_detector.h index 3cd1fd5cdf..f1a99d74bf 100644 --- a/webrtc/video/overuse_frame_detector.h +++ b/webrtc/video/overuse_frame_detector.h @@ -14,9 +14,9 @@ #include #include +#include "webrtc/base/analytics/exp_filter.h" #include "webrtc/base/constructormagic.h" #include "webrtc/base/optional.h" -#include "webrtc/base/exp_filter.h" #include "webrtc/base/sequenced_task_checker.h" #include "webrtc/base/task_queue.h" #include "webrtc/base/thread_annotations.h" diff --git a/webrtc/video/send_statistics_proxy.h b/webrtc/video/send_statistics_proxy.h index ec2fe4c50e..fff2d8ded8 100644 --- a/webrtc/video/send_statistics_proxy.h +++ b/webrtc/video/send_statistics_proxy.h @@ -16,8 +16,8 @@ #include #include +#include "webrtc/base/analytics/exp_filter.h" #include "webrtc/base/criticalsection.h" -#include "webrtc/base/exp_filter.h" #include "webrtc/base/ratetracker.h" #include "webrtc/base/thread_annotations.h" #include "webrtc/common_types.h"