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

Side by Side Diff: webrtc/modules/remote_bitrate_estimator/test/estimators/send_side.cc

Issue 1419503004: Set send times in send time history via OnSentPacket. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Comments addressed Created 5 years, 1 month 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) 2015 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2015 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/remote_bitrate_estimator/test/estimators/send_side.h" 11 #include "webrtc/modules/remote_bitrate_estimator/test/estimators/send_side.h"
12 12
13 #include "webrtc/base/logging.h" 13 #include "webrtc/base/logging.h"
14 #include "webrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_s end_time.h" 14 #include "webrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_s end_time.h"
15 #include "webrtc/modules/remote_bitrate_estimator/test/bwe_test_logging.h" 15 #include "webrtc/modules/remote_bitrate_estimator/test/bwe_test_logging.h"
16 16
17 namespace webrtc { 17 namespace webrtc {
18 namespace testing { 18 namespace testing {
19 namespace bwe { 19 namespace bwe {
20 20
21 const int kFeedbackIntervalMs = 50; 21 const int kFeedbackIntervalMs = 50;
22 22
23 FullBweSender::FullBweSender(int kbps, BitrateObserver* observer, Clock* clock) 23 FullBweSender::FullBweSender(int kbps, BitrateObserver* observer, Clock* clock)
24 : bitrate_controller_( 24 : bitrate_controller_(
25 BitrateController::CreateBitrateController(clock, observer)), 25 BitrateController::CreateBitrateController(clock, observer)),
26 rbe_(new RemoteBitrateEstimatorAbsSendTime(this, clock)), 26 rbe_(new RemoteBitrateEstimatorAbsSendTime(this, clock)),
27 feedback_observer_(bitrate_controller_->CreateRtcpBandwidthObserver()), 27 feedback_observer_(bitrate_controller_->CreateRtcpBandwidthObserver()),
28 clock_(clock), 28 clock_(clock),
29 send_time_history_(10000), 29 send_time_history_(clock_, 10000),
30 has_received_ack_(false), 30 has_received_ack_(false),
31 last_acked_seq_num_(0) { 31 last_acked_seq_num_(0) {
32 assert(kbps >= kMinBitrateKbps); 32 assert(kbps >= kMinBitrateKbps);
33 assert(kbps <= kMaxBitrateKbps); 33 assert(kbps <= kMaxBitrateKbps);
34 bitrate_controller_->SetStartBitrate(1000 * kbps); 34 bitrate_controller_->SetStartBitrate(1000 * kbps);
35 bitrate_controller_->SetMinMaxBitrate(1000 * kMinBitrateKbps, 35 bitrate_controller_->SetMinMaxBitrate(1000 * kMinBitrateKbps,
36 1000 * kMaxBitrateKbps); 36 1000 * kMaxBitrateKbps);
37 rbe_->SetMinBitrate(1000 * kMinBitrateKbps); 37 rbe_->SetMinBitrate(1000 * kMinBitrateKbps);
38 } 38 }
39 39
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 } else { 85 } else {
86 last_acked_seq_num_ = packet_feedback_vector.back().sequence_number; 86 last_acked_seq_num_ = packet_feedback_vector.back().sequence_number;
87 has_received_ack_ = true; 87 has_received_ack_ = true;
88 } 88 }
89 } 89 }
90 90
91 void FullBweSender::OnPacketsSent(const Packets& packets) { 91 void FullBweSender::OnPacketsSent(const Packets& packets) {
92 for (Packet* packet : packets) { 92 for (Packet* packet : packets) {
93 if (packet->GetPacketType() == Packet::kMedia) { 93 if (packet->GetPacketType() == Packet::kMedia) {
94 MediaPacket* media_packet = static_cast<MediaPacket*>(packet); 94 MediaPacket* media_packet = static_cast<MediaPacket*>(packet);
95 PacketInfo info(0, media_packet->sender_timestamp_ms(), 95 send_time_history_.AddAndRemoveOld(media_packet->header().sequenceNumber,
96 media_packet->header().sequenceNumber, 96 media_packet->payload_size(),
97 media_packet->payload_size(), packet->paced()); 97 packet->paced());
98 send_time_history_.AddAndRemoveOld(info); 98 send_time_history_.OnSentPacket(media_packet->header().sequenceNumber,
99 media_packet->sender_timestamp_ms());
99 } 100 }
100 } 101 }
101 } 102 }
102 103
103 void FullBweSender::OnReceiveBitrateChanged( 104 void FullBweSender::OnReceiveBitrateChanged(
104 const std::vector<unsigned int>& ssrcs, 105 const std::vector<unsigned int>& ssrcs,
105 unsigned int bitrate) { 106 unsigned int bitrate) {
106 feedback_observer_->OnReceivedEstimatedBitrate(bitrate); 107 feedback_observer_->OnReceivedEstimatedBitrate(bitrate);
107 } 108 }
108 109
109 int64_t FullBweSender::TimeUntilNextProcess() { 110 int64_t FullBweSender::TimeUntilNextProcess() {
110 return bitrate_controller_->TimeUntilNextProcess(); 111 return bitrate_controller_->TimeUntilNextProcess();
111 } 112 }
112 113
113 int FullBweSender::Process() { 114 int FullBweSender::Process() {
114 rbe_->Process(); 115 rbe_->Process();
115 return bitrate_controller_->Process(); 116 return bitrate_controller_->Process();
116 } 117 }
117 118
118 SendSideBweReceiver::SendSideBweReceiver(int flow_id) 119 SendSideBweReceiver::SendSideBweReceiver(int flow_id)
119 : BweReceiver(flow_id), last_feedback_ms_(0) { 120 : BweReceiver(flow_id), last_feedback_ms_(0) {
120 } 121 }
121 122
122 SendSideBweReceiver::~SendSideBweReceiver() { 123 SendSideBweReceiver::~SendSideBweReceiver() {
123 } 124 }
124 125
125 void SendSideBweReceiver::ReceivePacket(int64_t arrival_time_ms, 126 void SendSideBweReceiver::ReceivePacket(int64_t arrival_time_ms,
126 const MediaPacket& media_packet) { 127 const MediaPacket& media_packet) {
127 packet_feedback_vector_.push_back(PacketInfo( 128 packet_feedback_vector_.push_back(PacketInfo(
128 arrival_time_ms, media_packet.sender_timestamp_ms(), 129 -1, arrival_time_ms, media_packet.sender_timestamp_ms(),
129 media_packet.header().sequenceNumber, media_packet.payload_size(), true)); 130 media_packet.header().sequenceNumber, media_packet.payload_size(), true));
130 131
131 // Log received packet information. 132 // Log received packet information.
132 BweReceiver::ReceivePacket(arrival_time_ms, media_packet); 133 BweReceiver::ReceivePacket(arrival_time_ms, media_packet);
133 } 134 }
134 135
135 FeedbackPacket* SendSideBweReceiver::GetFeedback(int64_t now_ms) { 136 FeedbackPacket* SendSideBweReceiver::GetFeedback(int64_t now_ms) {
136 if (now_ms - last_feedback_ms_ < kFeedbackIntervalMs) 137 if (now_ms - last_feedback_ms_ < kFeedbackIntervalMs)
137 return NULL; 138 return NULL;
138 last_feedback_ms_ = now_ms; 139 last_feedback_ms_ = now_ms;
139 int64_t corrected_send_time_ms = 140 int64_t corrected_send_time_ms =
140 packet_feedback_vector_.back().send_time_ms + now_ms - 141 packet_feedback_vector_.back().send_time_ms + now_ms -
141 packet_feedback_vector_.back().arrival_time_ms; 142 packet_feedback_vector_.back().arrival_time_ms;
142 FeedbackPacket* fb = new SendSideBweFeedback( 143 FeedbackPacket* fb = new SendSideBweFeedback(
143 flow_id_, now_ms * 1000, corrected_send_time_ms, packet_feedback_vector_); 144 flow_id_, now_ms * 1000, corrected_send_time_ms, packet_feedback_vector_);
144 packet_feedback_vector_.clear(); 145 packet_feedback_vector_.clear();
145 return fb; 146 return fb;
146 } 147 }
147 148
148 } // namespace bwe 149 } // namespace bwe
149 } // namespace testing 150 } // namespace testing
150 } // namespace webrtc 151 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698