Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1181)

Unified Diff: webrtc/modules/audio_coding/audio_network_adaptor/event_log_writer.cc

Issue 2559953002: Log audio network adapter decisions in event log. (Closed)
Patch Set: Log Ana Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/audio_coding/audio_network_adaptor/event_log_writer.cc
diff --git a/webrtc/modules/audio_coding/audio_network_adaptor/event_log_writer.cc b/webrtc/modules/audio_coding/audio_network_adaptor/event_log_writer.cc
new file mode 100644
index 0000000000000000000000000000000000000000..6e9173019b650138a30f76fd8e3309c89e5dde8e
--- /dev/null
+++ b/webrtc/modules/audio_coding/audio_network_adaptor/event_log_writer.cc
@@ -0,0 +1,79 @@
+/*
+ * Copyright (c) 2016 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 <cmath>
+
+#include "webrtc/modules/audio_coding/audio_network_adaptor/event_log_writer.h"
+#include "webrtc/logging/rtc_event_log/rtc_event_log.h"
+
+namespace webrtc {
+
+namespace {
+constexpr int kMinBitreateChangeBps = 5000;
+constexpr float kMinPacketLossChangeFraction = 0.5;
+}
+
+EventLogWriter::EventLogWriter(RtcEventLog* event_log)
+ : EventLogWriter(event_log,
+ kMinBitreateChangeBps,
+ kMinPacketLossChangeFraction) {}
+
+EventLogWriter::EventLogWriter(RtcEventLog* event_log,
+ int min_bitreate_change_bps,
+ float min_packet_loss_change_fraction)
+ : event_log_(event_log),
+ min_bitreate_change_bps_(min_bitreate_change_bps),
+ min_packet_loss_change_fraction_(min_packet_loss_change_fraction) {
+ RTC_CHECK(event_log_);
+}
+
+EventLogWriter::~EventLogWriter() = default;
+
+void EventLogWriter::MayLogEncoderRuntimeConfig(
minyue-webrtc 2016/12/12 10:33:12 Do we want to log only the changes or the whole ru
michaelt 2016/12/12 10:50:08 We could save some space if we would just log chan
+ const AudioNetworkAdaptor::EncoderRuntimeConfig& config) {
+ if (last_runtime_config_) {
+ if (last_runtime_config_->num_channels != config.num_channels ||
+ last_runtime_config_->enable_dtx != config.enable_dtx ||
+ last_runtime_config_->enable_fec != config.enable_fec ||
+ last_runtime_config_->frame_length_ms != config.frame_length_ms)
+ event_log_->LogAnaDecisionEvent(
+ config.bitrate_bps, config.frame_length_ms,
+ config.uplink_packet_loss_fraction, config.enable_fec,
+ config.enable_dtx, config.num_channels);
+
+ if (last_runtime_config_->bitrate_bps && config.bitrate_bps &&
+ std::abs(*last_runtime_config_->bitrate_bps - *config.bitrate_bps) >=
+ min_bitreate_change_bps_)
+ event_log_->LogAnaDecisionEvent(
+ config.bitrate_bps, config.frame_length_ms,
+ config.uplink_packet_loss_fraction, config.enable_fec,
+ config.enable_dtx, config.num_channels);
+
+ if (last_runtime_config_->uplink_packet_loss_fraction &&
+ config.uplink_packet_loss_fraction &&
+ std::abs(*last_runtime_config_->uplink_packet_loss_fraction -
+ *config.uplink_packet_loss_fraction) >=
+ min_packet_loss_change_fraction_ *
+ *last_runtime_config_->uplink_packet_loss_fraction)
+ event_log_->LogAnaDecisionEvent(
+ config.bitrate_bps, config.frame_length_ms,
+ config.uplink_packet_loss_fraction, config.enable_fec,
+ config.enable_dtx, config.num_channels);
+
+ } else {
+ event_log_->LogAnaDecisionEvent(config.bitrate_bps, config.frame_length_ms,
+ config.uplink_packet_loss_fraction,
+ config.enable_fec, config.enable_dtx,
+ config.num_channels);
+ }
+ last_runtime_config_ =
+ rtc::Optional<AudioNetworkAdaptor::EncoderRuntimeConfig>(config);
+}
+} // namespace webrtc

Powered by Google App Engine
This is Rietveld 408576698