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

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

Issue 1202253003: More Simulation Framework features (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Using rtc::scoped_ptr on nada_unittest.cc 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.h
diff --git a/webrtc/modules/remote_bitrate_estimator/test/packet_sender.h b/webrtc/modules/remote_bitrate_estimator/test/packet_sender.h
index 2e690c83770c7c6b0c2e9f8b951b957e2319e9bb..8f0b3cdfcb9c4282d58b038ff5cab2eead29a10d 100644
--- a/webrtc/modules/remote_bitrate_estimator/test/packet_sender.h
+++ b/webrtc/modules/remote_bitrate_estimator/test/packet_sender.h
@@ -42,6 +42,8 @@ class PacketSender : public PacketProcessor {
virtual int GetFeedbackIntervalMs() const = 0;
void SetSenderTimestamps(Packets* in_out);
+ virtual uint32_t TargetBitrateKbps() { return 0; }
+
protected:
SimulatedClock clock_;
};
@@ -58,22 +60,29 @@ class VideoSender : public PacketSender, public BitrateObserver {
virtual VideoSource* source() const { return source_; }
+ uint32_t TargetBitrateKbps() override;
+
// Implements BitrateObserver.
void OnNetworkChanged(uint32_t target_bitrate_bps,
uint8_t fraction_lost,
int64_t rtt) override;
+ void Pause();
+ void Resume();
+
protected:
void ProcessFeedbackAndGeneratePackets(int64_t time_ms,
std::list<FeedbackPacket*>* feedbacks,
Packets* generated);
+ bool running_;
VideoSource* source_;
rtc::scoped_ptr<BweSender> bwe_;
int64_t start_of_run_ms_;
std::list<Module*> modules_;
private:
+ uint32_t previous_sending_bitrate_;
DISALLOW_COPY_AND_ASSIGN(VideoSender);
};
@@ -112,28 +121,24 @@ class PacedVideoSender : public VideoSender, public PacedSender::Callback {
class TcpSender : public PacketSender {
public:
- TcpSender(PacketProcessorListener* listener, int flow_id, int64_t offset_ms)
- : PacketSender(listener, flow_id),
- cwnd_(10),
- ssthresh_(std::numeric_limits<int>::max()),
- ack_received_(false),
- last_acked_seq_num_(0),
- next_sequence_number_(0),
- offset_ms_(offset_ms),
- last_reduction_time_ms_(-1),
- last_rtt_ms_(0) {}
-
+ TcpSender(PacketProcessorListener* listener, int flow_id, int64_t offset_ms);
+ TcpSender(PacketProcessorListener* listener,
+ int flow_id,
+ int64_t offset_ms,
+ int send_limit_bytes);
virtual ~TcpSender() {}
void RunFor(int64_t time_ms, Packets* in_out) override;
int GetFeedbackIntervalMs() const override { return 10; }
+ uint32_t TargetBitrateKbps() override;
+
private:
struct InFlight {
public:
InFlight(const MediaPacket& packet)
: sequence_number(packet.header().sequenceNumber),
- time_ms(packet.send_time_us() / 1000) {}
+ time_ms(packet.send_time_ms()) {}
InFlight(uint16_t seq_num, int64_t now_ms)
: sequence_number(seq_num), time_ms(now_ms) {}
@@ -153,6 +158,7 @@ class TcpSender : public PacketSender {
int TriggerTimeouts();
void HandleLoss();
Packets GeneratePackets(size_t num_packets);
+ void UpdateSendBitrateEstimate(size_t num_packets);
float cwnd_;
int ssthresh_;
@@ -163,6 +169,12 @@ class TcpSender : public PacketSender {
int64_t offset_ms_;
int64_t last_reduction_time_ms_;
int64_t last_rtt_ms_;
+ int total_sent_bytes_;
+ int send_limit_bytes_; // Initialized by default as kNoLimit.
+ bool running_; // Initialized by default as true.
+ int64_t last_generated_packets_ms_;
+ size_t num_recent_sent_packets_;
+ uint32_t bitrate_kbps_;
};
} // namespace bwe
} // namespace testing

Powered by Google App Engine
This is Rietveld 408576698