From 7c704b82893bbe7fc206b004fb9dfe6e69a986ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20Bostr=C3=B6m?= Date: Fri, 4 Dec 2015 16:13:05 +0100 Subject: [PATCH] Use webrtc/base/logging.h in stefan@'s ownership. Replaces system_wrappers' logging in call/, bitrate_controller/, pacing/ and remote_bitrate_estimator/. BUG=webrtc:5118 R=stefan@webrtc.org Review URL: https://codereview.webrtc.org/1484503002 . Cr-Commit-Position: refs/heads/master@{#10896} --- webrtc/call/bitrate_estimator_tests.cc | 109 ++++++++---------- webrtc/call/call.cc | 2 +- webrtc/call/congestion_controller.cc | 2 +- .../send_side_bandwidth_estimation.cc | 2 +- webrtc/modules/pacing/bitrate_prober.cc | 2 +- webrtc/modules/pacing/paced_sender.cc | 2 +- .../overuse_estimator.cc | 2 +- .../remote_bitrate_estimator_abs_send_time.cc | 5 +- .../remote_bitrate_estimator_single_stream.cc | 4 +- 9 files changed, 61 insertions(+), 69 deletions(-) diff --git a/webrtc/call/bitrate_estimator_tests.cc b/webrtc/call/bitrate_estimator_tests.cc index 3ce96f614a..5b07c54744 100644 --- a/webrtc/call/bitrate_estimator_tests.cc +++ b/webrtc/call/bitrate_estimator_tests.cc @@ -15,6 +15,7 @@ #include "webrtc/audio_state.h" #include "webrtc/base/checks.h" +#include "webrtc/base/logging.h" #include "webrtc/base/scoped_ptr.h" #include "webrtc/base/thread_annotations.h" #include "webrtc/call.h" @@ -32,26 +33,12 @@ namespace webrtc { namespace { // Note: If you consider to re-use this class, think twice and instead consider -// writing tests that don't depend on the trace system. -class TraceObserver { +// writing tests that don't depend on the logging system. +class LogObserver { public: - TraceObserver() { - Trace::set_level_filter(kTraceTerseInfo); + LogObserver() { rtc::LogMessage::AddLogToStream(&callback_, rtc::LS_INFO); } - Trace::CreateTrace(); - Trace::SetTraceCallback(&callback_); - - // Call webrtc trace to initialize the tracer that would otherwise trigger a - // data-race if left to be initialized by multiple threads (i.e. threads - // spawned by test::DirectTransport members in BitrateEstimatorTest). - WEBRTC_TRACE(kTraceStateInfo, kTraceUtility, -1, - "Instantiate without data races."); - } - - ~TraceObserver() { - Trace::SetTraceCallback(nullptr); - Trace::ReturnTrace(); - } + ~LogObserver() { rtc::LogMessage::RemoveLogToStream(&callback_); } void PushExpectedLogLine(const std::string& expected_log_line) { callback_.PushExpectedLogLine(expected_log_line); @@ -60,16 +47,20 @@ class TraceObserver { EventTypeWrapper Wait() { return callback_.Wait(); } private: - class Callback : public TraceCallback { + class Callback : public rtc::LogSink { public: Callback() : done_(EventWrapper::Create()) {} - void Print(TraceLevel level, const char* message, int length) override { + void OnLogMessage(const std::string& message) override { rtc::CritScope lock(&crit_sect_); - std::string msg(message); - if (msg.find("BitrateEstimator") != std::string::npos) { - received_log_lines_.push_back(msg); + // Ignore log lines that are due to missing AST extensions, these are + // logged when we switch back from AST to TOF until the wrapping bitrate + // estimator gives up on using AST. + if (message.find("BitrateEstimator") != std::string::npos && + message.find("packet is missing") == std::string::npos) { + received_log_lines_.push_back(message); } + int num_popped = 0; while (!received_log_lines_.empty() && !expected_log_lines_.empty()) { std::string a = received_log_lines_.front(); @@ -77,7 +68,7 @@ class TraceObserver { received_log_lines_.pop_front(); expected_log_lines_.pop_front(); num_popped++; - EXPECT_TRUE(a.find(b) != std::string::npos); + EXPECT_TRUE(a.find(b) != std::string::npos) << a << " != " << b; } if (expected_log_lines_.size() <= 0) { if (num_popped > 0) { @@ -260,7 +251,7 @@ class BitrateEstimatorTest : public test::CallTest { }; testing::NiceMock mock_voice_engine_; - TraceObserver receiver_trace_; + LogObserver receiver_log_; rtc::scoped_ptr send_transport_; rtc::scoped_ptr receive_transport_; rtc::scoped_ptr sender_call_; @@ -277,87 +268,87 @@ static const char* kSingleStreamLog = TEST_F(BitrateEstimatorTest, InstantiatesTOFPerDefaultForVideo) { send_config_.rtp.extensions.push_back( RtpExtension(RtpExtension::kTOffset, kTOFExtensionId)); - receiver_trace_.PushExpectedLogLine(kSingleStreamLog); - receiver_trace_.PushExpectedLogLine(kSingleStreamLog); + receiver_log_.PushExpectedLogLine(kSingleStreamLog); + receiver_log_.PushExpectedLogLine(kSingleStreamLog); streams_.push_back(new Stream(this, false)); - EXPECT_EQ(kEventSignaled, receiver_trace_.Wait()); + EXPECT_EQ(kEventSignaled, receiver_log_.Wait()); } TEST_F(BitrateEstimatorTest, ImmediatelySwitchToASTForAudio) { send_config_.rtp.extensions.push_back( RtpExtension(RtpExtension::kAbsSendTime, kASTExtensionId)); - receiver_trace_.PushExpectedLogLine(kSingleStreamLog); - receiver_trace_.PushExpectedLogLine(kSingleStreamLog); - receiver_trace_.PushExpectedLogLine("Switching to absolute send time RBE."); - receiver_trace_.PushExpectedLogLine(kAbsSendTimeLog); + receiver_log_.PushExpectedLogLine(kSingleStreamLog); + receiver_log_.PushExpectedLogLine(kSingleStreamLog); + receiver_log_.PushExpectedLogLine("Switching to absolute send time RBE."); + receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); streams_.push_back(new Stream(this, true)); - EXPECT_EQ(kEventSignaled, receiver_trace_.Wait()); + EXPECT_EQ(kEventSignaled, receiver_log_.Wait()); } TEST_F(BitrateEstimatorTest, ImmediatelySwitchToASTForVideo) { send_config_.rtp.extensions.push_back( RtpExtension(RtpExtension::kAbsSendTime, kASTExtensionId)); - receiver_trace_.PushExpectedLogLine(kSingleStreamLog); - receiver_trace_.PushExpectedLogLine(kSingleStreamLog); - receiver_trace_.PushExpectedLogLine("Switching to absolute send time RBE."); - receiver_trace_.PushExpectedLogLine(kAbsSendTimeLog); + receiver_log_.PushExpectedLogLine(kSingleStreamLog); + receiver_log_.PushExpectedLogLine(kSingleStreamLog); + receiver_log_.PushExpectedLogLine("Switching to absolute send time RBE."); + receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); streams_.push_back(new Stream(this, false)); - EXPECT_EQ(kEventSignaled, receiver_trace_.Wait()); + EXPECT_EQ(kEventSignaled, receiver_log_.Wait()); } TEST_F(BitrateEstimatorTest, SwitchesToASTForAudio) { - receiver_trace_.PushExpectedLogLine(kSingleStreamLog); - receiver_trace_.PushExpectedLogLine(kSingleStreamLog); + receiver_log_.PushExpectedLogLine(kSingleStreamLog); + receiver_log_.PushExpectedLogLine(kSingleStreamLog); streams_.push_back(new Stream(this, true)); - EXPECT_EQ(kEventSignaled, receiver_trace_.Wait()); + EXPECT_EQ(kEventSignaled, receiver_log_.Wait()); send_config_.rtp.extensions.push_back( RtpExtension(RtpExtension::kAbsSendTime, kASTExtensionId)); - receiver_trace_.PushExpectedLogLine("Switching to absolute send time RBE."); - receiver_trace_.PushExpectedLogLine(kAbsSendTimeLog); + receiver_log_.PushExpectedLogLine("Switching to absolute send time RBE."); + receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); streams_.push_back(new Stream(this, true)); - EXPECT_EQ(kEventSignaled, receiver_trace_.Wait()); + EXPECT_EQ(kEventSignaled, receiver_log_.Wait()); } TEST_F(BitrateEstimatorTest, SwitchesToASTForVideo) { send_config_.rtp.extensions.push_back( RtpExtension(RtpExtension::kTOffset, kTOFExtensionId)); - receiver_trace_.PushExpectedLogLine(kSingleStreamLog); - receiver_trace_.PushExpectedLogLine(kSingleStreamLog); + receiver_log_.PushExpectedLogLine(kSingleStreamLog); + receiver_log_.PushExpectedLogLine(kSingleStreamLog); streams_.push_back(new Stream(this, false)); - EXPECT_EQ(kEventSignaled, receiver_trace_.Wait()); + EXPECT_EQ(kEventSignaled, receiver_log_.Wait()); send_config_.rtp.extensions[0] = RtpExtension(RtpExtension::kAbsSendTime, kASTExtensionId); - receiver_trace_.PushExpectedLogLine("Switching to absolute send time RBE."); - receiver_trace_.PushExpectedLogLine(kAbsSendTimeLog); + receiver_log_.PushExpectedLogLine("Switching to absolute send time RBE."); + receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); streams_.push_back(new Stream(this, false)); - EXPECT_EQ(kEventSignaled, receiver_trace_.Wait()); + EXPECT_EQ(kEventSignaled, receiver_log_.Wait()); } TEST_F(BitrateEstimatorTest, SwitchesToASTThenBackToTOFForVideo) { send_config_.rtp.extensions.push_back( RtpExtension(RtpExtension::kTOffset, kTOFExtensionId)); - receiver_trace_.PushExpectedLogLine(kSingleStreamLog); - receiver_trace_.PushExpectedLogLine(kSingleStreamLog); + receiver_log_.PushExpectedLogLine(kSingleStreamLog); + receiver_log_.PushExpectedLogLine(kSingleStreamLog); streams_.push_back(new Stream(this, false)); - EXPECT_EQ(kEventSignaled, receiver_trace_.Wait()); + EXPECT_EQ(kEventSignaled, receiver_log_.Wait()); send_config_.rtp.extensions[0] = RtpExtension(RtpExtension::kAbsSendTime, kASTExtensionId); - receiver_trace_.PushExpectedLogLine("Switching to absolute send time RBE."); - receiver_trace_.PushExpectedLogLine(kAbsSendTimeLog); + receiver_log_.PushExpectedLogLine("Switching to absolute send time RBE."); + receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); streams_.push_back(new Stream(this, false)); - EXPECT_EQ(kEventSignaled, receiver_trace_.Wait()); + EXPECT_EQ(kEventSignaled, receiver_log_.Wait()); send_config_.rtp.extensions[0] = RtpExtension(RtpExtension::kTOffset, kTOFExtensionId); - receiver_trace_.PushExpectedLogLine( + receiver_log_.PushExpectedLogLine( "WrappingBitrateEstimator: Switching to transmission time offset RBE."); - receiver_trace_.PushExpectedLogLine(kSingleStreamLog); + receiver_log_.PushExpectedLogLine(kSingleStreamLog); streams_.push_back(new Stream(this, false)); streams_[0]->StopSending(); streams_[1]->StopSending(); - EXPECT_EQ(kEventSignaled, receiver_trace_.Wait()); + EXPECT_EQ(kEventSignaled, receiver_log_.Wait()); } } // namespace webrtc diff --git a/webrtc/call/call.cc b/webrtc/call/call.cc index 441de87ef4..4156765d74 100644 --- a/webrtc/call/call.cc +++ b/webrtc/call/call.cc @@ -18,6 +18,7 @@ #include "webrtc/audio/audio_state.h" #include "webrtc/audio/scoped_voe_interface.h" #include "webrtc/base/checks.h" +#include "webrtc/base/logging.h" #include "webrtc/base/scoped_ptr.h" #include "webrtc/base/thread_annotations.h" #include "webrtc/base/thread_checker.h" @@ -35,7 +36,6 @@ #include "webrtc/modules/utility/include/process_thread.h" #include "webrtc/system_wrappers/include/cpu_info.h" #include "webrtc/system_wrappers/include/critical_section_wrapper.h" -#include "webrtc/system_wrappers/include/logging.h" #include "webrtc/system_wrappers/include/metrics.h" #include "webrtc/system_wrappers/include/rw_lock_wrapper.h" #include "webrtc/system_wrappers/include/trace.h" diff --git a/webrtc/call/congestion_controller.cc b/webrtc/call/congestion_controller.cc index 387792f338..18c880cfc2 100644 --- a/webrtc/call/congestion_controller.cc +++ b/webrtc/call/congestion_controller.cc @@ -11,6 +11,7 @@ #include "webrtc/call/congestion_controller.h" #include "webrtc/base/checks.h" +#include "webrtc/base/logging.h" #include "webrtc/base/thread_annotations.h" #include "webrtc/common.h" #include "webrtc/modules/bitrate_controller/include/bitrate_controller.h" @@ -24,7 +25,6 @@ #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp.h" #include "webrtc/modules/utility/include/process_thread.h" #include "webrtc/system_wrappers/include/critical_section_wrapper.h" -#include "webrtc/system_wrappers/include/logging.h" #include "webrtc/video_engine/call_stats.h" #include "webrtc/video_engine/payload_router.h" #include "webrtc/video_engine/vie_encoder.h" diff --git a/webrtc/modules/bitrate_controller/send_side_bandwidth_estimation.cc b/webrtc/modules/bitrate_controller/send_side_bandwidth_estimation.cc index c1c10e8262..96a3b471af 100644 --- a/webrtc/modules/bitrate_controller/send_side_bandwidth_estimation.cc +++ b/webrtc/modules/bitrate_controller/send_side_bandwidth_estimation.cc @@ -13,8 +13,8 @@ #include #include "webrtc/base/checks.h" +#include "webrtc/base/logging.h" #include "webrtc/system_wrappers/include/field_trial.h" -#include "webrtc/system_wrappers/include/logging.h" #include "webrtc/system_wrappers/include/metrics.h" #include "webrtc/call/rtc_event_log.h" diff --git a/webrtc/modules/pacing/bitrate_prober.cc b/webrtc/modules/pacing/bitrate_prober.cc index db903f06c5..41ad5fa11a 100644 --- a/webrtc/modules/pacing/bitrate_prober.cc +++ b/webrtc/modules/pacing/bitrate_prober.cc @@ -15,8 +15,8 @@ #include #include +#include "webrtc/base/logging.h" #include "webrtc/modules/pacing/paced_sender.h" -#include "webrtc/system_wrappers/include/logging.h" namespace webrtc { diff --git a/webrtc/modules/pacing/paced_sender.cc b/webrtc/modules/pacing/paced_sender.cc index dcdf64e97e..37e8ed79da 100644 --- a/webrtc/modules/pacing/paced_sender.cc +++ b/webrtc/modules/pacing/paced_sender.cc @@ -15,12 +15,12 @@ #include #include "webrtc/base/checks.h" +#include "webrtc/base/logging.h" #include "webrtc/modules/include/module_common_types.h" #include "webrtc/modules/pacing/bitrate_prober.h" #include "webrtc/system_wrappers/include/clock.h" #include "webrtc/system_wrappers/include/critical_section_wrapper.h" #include "webrtc/system_wrappers/include/field_trial.h" -#include "webrtc/system_wrappers/include/logging.h" namespace { // Time limit in milliseconds between packet bursts. diff --git a/webrtc/modules/remote_bitrate_estimator/overuse_estimator.cc b/webrtc/modules/remote_bitrate_estimator/overuse_estimator.cc index 4be7b7493b..36c3acd7ec 100644 --- a/webrtc/modules/remote_bitrate_estimator/overuse_estimator.cc +++ b/webrtc/modules/remote_bitrate_estimator/overuse_estimator.cc @@ -16,8 +16,8 @@ #include #include +#include "webrtc/base/logging.h" #include "webrtc/modules/remote_bitrate_estimator/include/bwe_defines.h" -#include "webrtc/system_wrappers/include/logging.h" namespace webrtc { diff --git a/webrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.cc b/webrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.cc index 51f7d4320a..8006fe82a2 100644 --- a/webrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.cc +++ b/webrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.cc @@ -13,13 +13,13 @@ #include #include "webrtc/base/constructormagic.h" +#include "webrtc/base/logging.h" #include "webrtc/base/scoped_ptr.h" #include "webrtc/base/thread_annotations.h" -#include "webrtc/modules/remote_bitrate_estimator/include/remote_bitrate_estimator.h" #include "webrtc/modules/pacing/paced_sender.h" +#include "webrtc/modules/remote_bitrate_estimator/include/remote_bitrate_estimator.h" #include "webrtc/system_wrappers/include/clock.h" #include "webrtc/system_wrappers/include/critical_section_wrapper.h" -#include "webrtc/system_wrappers/include/logging.h" #include "webrtc/typedefs.h" namespace webrtc { @@ -241,6 +241,7 @@ void RemoteBitrateEstimatorAbsSendTime::IncomingPacket(int64_t arrival_time_ms, if (!header.extension.hasAbsoluteSendTime) { LOG(LS_WARNING) << "RemoteBitrateEstimatorAbsSendTimeImpl: Incoming packet " "is missing absolute send time extension!"; + return; } IncomingPacketInfo(arrival_time_ms, header.extension.absoluteSendTime, payload_size, header.ssrc, was_paced); diff --git a/webrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator_single_stream.cc b/webrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator_single_stream.cc index f1a1cb6602..a84377b5fd 100644 --- a/webrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator_single_stream.cc +++ b/webrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator_single_stream.cc @@ -11,15 +11,15 @@ #include "webrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator_single_stream.h" #include "webrtc/base/constructormagic.h" +#include "webrtc/base/logging.h" #include "webrtc/base/scoped_ptr.h" #include "webrtc/base/thread_annotations.h" +#include "webrtc/modules/remote_bitrate_estimator/aimd_rate_control.h" #include "webrtc/modules/remote_bitrate_estimator/inter_arrival.h" #include "webrtc/modules/remote_bitrate_estimator/overuse_detector.h" #include "webrtc/modules/remote_bitrate_estimator/overuse_estimator.h" -#include "webrtc/modules/remote_bitrate_estimator/aimd_rate_control.h" #include "webrtc/system_wrappers/include/clock.h" #include "webrtc/system_wrappers/include/critical_section_wrapper.h" -#include "webrtc/system_wrappers/include/logging.h" #include "webrtc/typedefs.h" namespace webrtc {