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

Unified Diff: webrtc/modules/remote_bitrate_estimator/test/packet_sender.cc

Issue 1270543002: Supporting Pause/Resume, Sending Estimate logging. Corrected plot colors (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Removed PacketSender member from MetricRecorder Created 5 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/remote_bitrate_estimator/test/packet_sender.cc
diff --git a/webrtc/modules/remote_bitrate_estimator/test/packet_sender.cc b/webrtc/modules/remote_bitrate_estimator/test/packet_sender.cc
index a7a68aa28bc261ca55a5e168248e4f25467ee546..85cbdef8cf3cb056e1dd178b135133a218799763 100644
--- a/webrtc/modules/remote_bitrate_estimator/test/packet_sender.cc
+++ b/webrtc/modules/remote_bitrate_estimator/test/packet_sender.cc
@@ -17,11 +17,39 @@
#include "webrtc/base/checks.h"
#include "webrtc/modules/interface/module_common_types.h"
#include "webrtc/modules/remote_bitrate_estimator/test/bwe.h"
+#include "webrtc/modules/remote_bitrate_estimator/test/metric_recorder.h"
namespace webrtc {
namespace testing {
namespace bwe {
+void PacketSender::Pause() {
+ running_ = false;
+ if (metric_recorder_ != nullptr) {
+ metric_recorder_->PauseFlow();
+ }
+}
+
+void PacketSender::Resume(int64_t paused_time_ms) {
+ running_ = true;
+ if (metric_recorder_ != nullptr) {
+ metric_recorder_->ResumeFlow(paused_time_ms);
+ }
+}
+
+void PacketSender::set_metric_recorder(MetricRecorder* metric_recorder) {
+ metric_recorder_ = metric_recorder;
+}
+
+void PacketSender::RecordBitrate() {
+ if (metric_recorder_ != nullptr) {
+ BWE_TEST_LOGGING_CONTEXT("Sender");
+ BWE_TEST_LOGGING_CONTEXT(*flow_ids().begin());
+ metric_recorder_->UpdateTimeMs(clock_.TimeInMilliseconds());
+ metric_recorder_->UpdateSendingEstimateKbps(TargetBitrateKbps());
+ }
+}
+
std::list<FeedbackPacket*> GetFeedbackPackets(Packets* in_out,
int64_t end_time_ms,
int flow_id) {
@@ -44,7 +72,6 @@ VideoSender::VideoSender(PacketProcessorListener* listener,
VideoSource* source,
BandwidthEstimatorType estimator_type)
: PacketSender(listener, source->flow_id()),
- running_(true),
source_(source),
bwe_(CreateBweSender(estimator_type,
source_->bits_per_second() / 1000,
@@ -57,6 +84,16 @@ VideoSender::VideoSender(PacketProcessorListener* listener,
VideoSender::~VideoSender() {
}
+void VideoSender::Pause() {
+ previous_sending_bitrate_ = TargetBitrateKbps();
+ PacketSender::Pause();
+}
+
+void VideoSender::Resume(int64_t paused_time_ms) {
+ source_->SetBitrateBps(previous_sending_bitrate_);
+ PacketSender::Resume(paused_time_ms);
+}
+
void VideoSender::RunFor(int64_t time_ms, Packets* in_out) {
std::list<FeedbackPacket*> feedbacks = GetFeedbackPackets(
in_out, clock_.TimeInMilliseconds() + time_ms, source_->flow_id());
@@ -109,16 +146,7 @@ void VideoSender::OnNetworkChanged(uint32_t target_bitrate_bps,
uint8_t fraction_lost,
int64_t rtt) {
source_->SetBitrateBps(target_bitrate_bps);
-}
-
-void VideoSender::Pause() {
- running_ = false;
- previous_sending_bitrate_ = TargetBitrateKbps();
-}
-
-void VideoSender::Resume() {
- running_ = true;
- source_->SetBitrateBps(previous_sending_bitrate_);
+ RecordBitrate();
}
uint32_t VideoSender::TargetBitrateKbps() {
@@ -309,7 +337,6 @@ TcpSender::TcpSender(PacketProcessorListener* listener,
last_rtt_ms_(0),
total_sent_bytes_(0),
send_limit_bytes_(send_limit_bytes),
- running_(true),
last_generated_packets_ms_(0),
num_recent_sent_packets_(0),
bitrate_kbps_(0) {
@@ -319,18 +346,16 @@ void TcpSender::RunFor(int64_t time_ms, Packets* in_out) {
if (clock_.TimeInMilliseconds() + time_ms < offset_ms_) {
clock_.AdvanceTimeMilliseconds(time_ms);
if (running_) {
- running_ = false;
+ Pause();
}
return;
}
- if (!running_) {
- running_ = true;
+ if (!running_ && total_sent_bytes_ == 0) {
+ Resume(offset_ms_);
}
int64_t start_time_ms = clock_.TimeInMilliseconds();
- BWE_TEST_LOGGING_CONTEXT("Sender");
- BWE_TEST_LOGGING_CONTEXT(*flow_ids().begin());
std::list<FeedbackPacket*> feedbacks = GetFeedbackPackets(
in_out, clock_.TimeInMilliseconds() + time_ms, *flow_ids().begin());
@@ -426,7 +451,7 @@ Packets TcpSender::GeneratePackets(size_t num_packets) {
for (size_t i = 0; i < num_packets; ++i) {
if ((total_sent_bytes_ + kPacketSizeBytes) > send_limit_bytes_) {
if (running_) {
- running_ = false;
+ Pause();
}
break;
}
@@ -454,6 +479,8 @@ void TcpSender::UpdateSendBitrateEstimate(size_t num_packets) {
last_generated_packets_ms_ = clock_.TimeInMilliseconds();
num_recent_sent_packets_ = 0;
}
+
+ RecordBitrate();
}
uint32_t TcpSender::TargetBitrateKbps() {

Powered by Google App Engine
This is Rietveld 408576698