| 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() {
|
|
|