gecko-dev/third_party/libwebrtc/moz-patch-stack/0003.patch

103 строки
3.7 KiB
Diff

From: Dan Minor <dminor@mozilla.com>
Date: Tue, 21 Aug 2018 13:39:00 -0400
Subject: Bug 1376873 - Fix up logging in WebrtcLog.cpp; r=ng
The webrtc::Trace code is removed by this update. We already had support for
LOG (now RTC_LOG) in WebrtcLog.cpp. This removes the trace code from
WebRtcLog.cpp and moves the aec logging code from webrtc::Trace to
rtc::LogMessage.
This also disables logging to stderr in rtc_base/logging.cc. We could disable
it using the API, but that happens through peerconnection resulting in some
logging occuring during getusermedia.
The aec logs were testing with --disable-e10s. Rather than trying to
work around sandboxing, I think it makes more sense to fix Bug 1404982 and
store the logs in memory for retrieval from about:webrtc.
Differential Revision: https://phabricator.services.mozilla.com/D7429
Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/e84c60e2c9373f4d2dc24e769375a92c17c2a0ad
---
.../audio_processing/logging/apm_data_dumper.cc | 2 +-
rtc_base/logging.cc | 11 ++++++++++-
rtc_base/logging.h | 14 ++++++++++++++
3 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/modules/audio_processing/logging/apm_data_dumper.cc b/modules/audio_processing/logging/apm_data_dumper.cc
index f787b65604..a15321ad48 100644
--- a/modules/audio_processing/logging/apm_data_dumper.cc
+++ b/modules/audio_processing/logging/apm_data_dumper.cc
@@ -42,7 +42,7 @@ std::string FormFileName(absl::string_view output_dir,
#endif
std::stringstream ss;
- std::string base = webrtc::Trace::aec_debug_filename();
+ std::string base = rtc::LogMessage::aec_debug_filename();
ss << base;
if (base.length() && base.back() != sep) {
diff --git a/rtc_base/logging.cc b/rtc_base/logging.cc
index 4bc9183d97..d71d6a3e1b 100644
--- a/rtc_base/logging.cc
+++ b/rtc_base/logging.cc
@@ -54,6 +54,15 @@ static const int kMaxLogLineSize = 1024 - 60;
#include "rtc_base/time_utils.h"
namespace rtc {
+
+bool LogMessage::aec_debug_ = false;
+uint32_t LogMessage::aec_debug_size_ = 4*1024*1024;
+std::string LogMessage::aec_filename_base_;
+
+std::string LogMessage::aec_debug_filename() {
+ return aec_filename_base_;
+}
+
namespace {
// By default, release builds don't log, debug builds at info level
@@ -114,7 +123,7 @@ std::string LogLineRef::DefaultLogLine() const {
// LogMessage
/////////////////////////////////////////////////////////////////////////////
-bool LogMessage::log_to_stderr_ = true;
+bool LogMessage::log_to_stderr_ = false;
// The list of logging streams currently configured.
// Note: we explicitly do not clean this up, because of the uncertain ordering
diff --git a/rtc_base/logging.h b/rtc_base/logging.h
index d59b9a0ef7..8f490c44a2 100644
--- a/rtc_base/logging.h
+++ b/rtc_base/logging.h
@@ -581,6 +581,16 @@ class LogMessage {
}
#endif // RTC_LOG_ENABLED()
+ // Enable dumping of AEC inputs and outputs. Can be changed in mid-call
+ static void set_aec_debug(bool enable) { aec_debug_ = enable; }
+ static void set_aec_debug_size(uint32_t size) { aec_debug_size_ = size; }
+ static bool aec_debug() { return aec_debug_; }
+ static uint32_t aec_debug_size() { return aec_debug_size_; }
+ static std::string aec_debug_filename();
+ static void set_aec_debug_filename(const char* filename) {
+ aec_filename_base_ = filename;
+ }
+
private:
friend class LogMessageForTesting;
@@ -636,6 +646,10 @@ class LogMessage {
// The stringbuilder that buffers the formatted message before output
rtc::StringBuilder print_stream_;
+
+ static bool aec_debug_;
+ static uint32_t aec_debug_size_;
+ static std::string aec_filename_base_;
};
//////////////////////////////////////////////////////////////////////
--
2.34.1