Index: webrtc/modules/audio_coding/audio_network_adaptor/audio_network_adaptor_impl.cc |
diff --git a/webrtc/modules/audio_coding/audio_network_adaptor/audio_network_adaptor_impl.cc b/webrtc/modules/audio_coding/audio_network_adaptor/audio_network_adaptor_impl.cc |
index 0303c84920a56b3c2322800139ede1b110b029b3..3d8b2beb8d25217a1e86c2783616c58a4c565f70 100644 |
--- a/webrtc/modules/audio_coding/audio_network_adaptor/audio_network_adaptor_impl.cc |
+++ b/webrtc/modules/audio_coding/audio_network_adaptor/audio_network_adaptor_impl.cc |
@@ -8,10 +8,10 @@ |
* be found in the AUTHORS file in the root of the source tree. |
*/ |
-#include <utility> |
- |
#include "webrtc/modules/audio_coding/audio_network_adaptor/audio_network_adaptor_impl.h" |
+#include <utility> |
+ |
namespace webrtc { |
AudioNetworkAdaptorImpl::Config::Config() = default; |
@@ -21,7 +21,15 @@ AudioNetworkAdaptorImpl::Config::~Config() = default; |
AudioNetworkAdaptorImpl::AudioNetworkAdaptorImpl( |
const Config& config, |
std::unique_ptr<ControllerManager> controller_manager) |
- : config_(config), controller_manager_(std::move(controller_manager)) { |
+ : AudioNetworkAdaptorImpl(config, std::move(controller_manager), nullptr) {} |
+ |
+AudioNetworkAdaptorImpl::AudioNetworkAdaptorImpl( |
+ const Config& config, |
+ std::unique_ptr<ControllerManager> controller_manager, |
+ std::unique_ptr<DebugDumpWriter> debug_dump_writer) |
+ : config_(config), |
+ controller_manager_(std::move(controller_manager)), |
+ debug_dump_writer_(std::move(debug_dump_writer)) { |
RTC_DCHECK(controller_manager_); |
} |
@@ -29,16 +37,19 @@ AudioNetworkAdaptorImpl::~AudioNetworkAdaptorImpl() = default; |
void AudioNetworkAdaptorImpl::SetUplinkBandwidth(int uplink_bandwidth_bps) { |
last_metrics_.uplink_bandwidth_bps = rtc::Optional<int>(uplink_bandwidth_bps); |
- |
- // TODO(minyue): Add debug dumping. |
+ DumpNetworkMetrics(); |
} |
void AudioNetworkAdaptorImpl::SetUplinkPacketLossFraction( |
float uplink_packet_loss_fraction) { |
last_metrics_.uplink_packet_loss_fraction = |
rtc::Optional<float>(uplink_packet_loss_fraction); |
+ DumpNetworkMetrics(); |
+} |
- // TODO(minyue): Add debug dumping. |
+void AudioNetworkAdaptorImpl::SetRtt(int rtt_ms) { |
+ last_metrics_.rtt_ms = rtc::Optional<int>(rtt_ms); |
+ DumpNetworkMetrics(); |
} |
AudioNetworkAdaptor::EncoderRuntimeConfig |
@@ -49,6 +60,9 @@ AudioNetworkAdaptorImpl::GetEncoderRuntimeConfig() { |
controller->MakeDecision(last_metrics_, &config); |
// TODO(minyue): Add debug dumping. |
+ if (debug_dump_writer_) |
+ debug_dump_writer_->DumpEncoderRuntimeConfig( |
+ config, config_.clock->TimeInMilliseconds()); |
return config; |
} |
@@ -67,7 +81,17 @@ void AudioNetworkAdaptorImpl::SetReceiverFrameLengthRange( |
} |
void AudioNetworkAdaptorImpl::StartDebugDump(FILE* file_handle) { |
- // TODO(minyue): Implement this method. |
+ debug_dump_writer_ = DebugDumpWriter::Create(file_handle); |
+} |
+ |
+void AudioNetworkAdaptorImpl::StopDebugDump() { |
+ debug_dump_writer_.reset(nullptr); |
+} |
+ |
+void AudioNetworkAdaptorImpl::DumpNetworkMetrics() { |
+ if (debug_dump_writer_) |
+ debug_dump_writer_->DumpNetworkMetrics(last_metrics_, |
+ config_.clock->TimeInMilliseconds()); |
} |
} // namespace webrtc |