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

Side by Side Diff: webrtc/modules/audio_coding/audio_network_adaptor/audio_network_adaptor_impl.cc

Issue 2365723002: Relanding of "Adding debug dump to audio network adaptor." (Closed)
Patch Set: fixing Created 4 years, 3 months 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
11 #include "webrtc/modules/audio_coding/audio_network_adaptor/audio_network_adapto r_impl.h"
12
11 #include <utility> 13 #include <utility>
12 14
13 #include "webrtc/modules/audio_coding/audio_network_adaptor/audio_network_adapto r_impl.h"
14
15 namespace webrtc { 15 namespace webrtc {
16 16
17 AudioNetworkAdaptorImpl::Config::Config() = default; 17 AudioNetworkAdaptorImpl::Config::Config() = default;
18 18
19 AudioNetworkAdaptorImpl::Config::~Config() = default; 19 AudioNetworkAdaptorImpl::Config::~Config() = default;
20 20
21 AudioNetworkAdaptorImpl::AudioNetworkAdaptorImpl( 21 AudioNetworkAdaptorImpl::AudioNetworkAdaptorImpl(
22 const Config& config, 22 const Config& config,
23 std::unique_ptr<ControllerManager> controller_manager) 23 std::unique_ptr<ControllerManager> controller_manager)
24 : config_(config), controller_manager_(std::move(controller_manager)) { 24 : AudioNetworkAdaptorImpl(config, std::move(controller_manager), nullptr) {}
25
26 AudioNetworkAdaptorImpl::AudioNetworkAdaptorImpl(
27 const Config& config,
28 std::unique_ptr<ControllerManager> controller_manager,
29 std::unique_ptr<DebugDumpWriter> debug_dump_writer)
30 : config_(config),
31 controller_manager_(std::move(controller_manager)),
32 debug_dump_writer_(std::move(debug_dump_writer)) {
25 RTC_DCHECK(controller_manager_); 33 RTC_DCHECK(controller_manager_);
26 } 34 }
27 35
28 AudioNetworkAdaptorImpl::~AudioNetworkAdaptorImpl() = default; 36 AudioNetworkAdaptorImpl::~AudioNetworkAdaptorImpl() = default;
29 37
30 void AudioNetworkAdaptorImpl::SetUplinkBandwidth(int uplink_bandwidth_bps) { 38 void AudioNetworkAdaptorImpl::SetUplinkBandwidth(int uplink_bandwidth_bps) {
31 last_metrics_.uplink_bandwidth_bps = rtc::Optional<int>(uplink_bandwidth_bps); 39 last_metrics_.uplink_bandwidth_bps = rtc::Optional<int>(uplink_bandwidth_bps);
32 40 DumpNetworkMetrics();
33 // TODO(minyue): Add debug dumping.
34 } 41 }
35 42
36 void AudioNetworkAdaptorImpl::SetUplinkPacketLossFraction( 43 void AudioNetworkAdaptorImpl::SetUplinkPacketLossFraction(
37 float uplink_packet_loss_fraction) { 44 float uplink_packet_loss_fraction) {
38 last_metrics_.uplink_packet_loss_fraction = 45 last_metrics_.uplink_packet_loss_fraction =
39 rtc::Optional<float>(uplink_packet_loss_fraction); 46 rtc::Optional<float>(uplink_packet_loss_fraction);
47 DumpNetworkMetrics();
48 }
40 49
41 // TODO(minyue): Add debug dumping. 50 void AudioNetworkAdaptorImpl::SetRtt(int rtt_ms) {
51 last_metrics_.rtt_ms = rtc::Optional<int>(rtt_ms);
52 DumpNetworkMetrics();
42 } 53 }
43 54
44 AudioNetworkAdaptor::EncoderRuntimeConfig 55 AudioNetworkAdaptor::EncoderRuntimeConfig
45 AudioNetworkAdaptorImpl::GetEncoderRuntimeConfig() { 56 AudioNetworkAdaptorImpl::GetEncoderRuntimeConfig() {
46 EncoderRuntimeConfig config; 57 EncoderRuntimeConfig config;
47 for (auto& controller : 58 for (auto& controller :
48 controller_manager_->GetSortedControllers(last_metrics_)) 59 controller_manager_->GetSortedControllers(last_metrics_))
49 controller->MakeDecision(last_metrics_, &config); 60 controller->MakeDecision(last_metrics_, &config);
50 61
51 // TODO(minyue): Add debug dumping. 62 // TODO(minyue): Add debug dumping.
63 if (debug_dump_writer_)
64 debug_dump_writer_->DumpEncoderRuntimeConfig(
65 config, config_.clock->TimeInMilliseconds());
52 66
53 return config; 67 return config;
54 } 68 }
55 69
56 void AudioNetworkAdaptorImpl::SetReceiverFrameLengthRange( 70 void AudioNetworkAdaptorImpl::SetReceiverFrameLengthRange(
57 int min_frame_length_ms, 71 int min_frame_length_ms,
58 int max_frame_length_ms) { 72 int max_frame_length_ms) {
59 Controller::Constraints constraints; 73 Controller::Constraints constraints;
60 constraints.receiver_frame_length_range = 74 constraints.receiver_frame_length_range =
61 rtc::Optional<Controller::Constraints::FrameLengthRange>( 75 rtc::Optional<Controller::Constraints::FrameLengthRange>(
62 Controller::Constraints::FrameLengthRange(min_frame_length_ms, 76 Controller::Constraints::FrameLengthRange(min_frame_length_ms,
63 max_frame_length_ms)); 77 max_frame_length_ms));
64 auto controllers = controller_manager_->GetControllers(); 78 auto controllers = controller_manager_->GetControllers();
65 for (auto& controller : controllers) 79 for (auto& controller : controllers)
66 controller->SetConstraints(constraints); 80 controller->SetConstraints(constraints);
67 } 81 }
68 82
69 void AudioNetworkAdaptorImpl::StartDebugDump(FILE* file_handle) { 83 void AudioNetworkAdaptorImpl::StartDebugDump(FILE* file_handle) {
70 // TODO(minyue): Implement this method. 84 debug_dump_writer_ = DebugDumpWriter::Create(file_handle);
85 }
86
87 void AudioNetworkAdaptorImpl::StopDebugDump() {
88 debug_dump_writer_.reset(nullptr);
89 }
90
91 void AudioNetworkAdaptorImpl::DumpNetworkMetrics() {
92 if (debug_dump_writer_)
93 debug_dump_writer_->DumpNetworkMetrics(last_metrics_,
94 config_.clock->TimeInMilliseconds());
71 } 95 }
72 96
73 } // namespace webrtc 97 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698