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

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: Comments addressed Created 5 years, 6 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..c79fc3655aa3463dca58827c997de4ad329405e4 100644
--- a/webrtc/modules/remote_bitrate_estimator/test/packet_sender.h
+++ b/webrtc/modules/remote_bitrate_estimator/test/packet_sender.h
@@ -40,8 +40,11 @@ class PacketSender : public PacketProcessor {
// output of the estimators is sampled and therefore the baseline files may
// have to be regenerated.
virtual int GetFeedbackIntervalMs() const = 0;
+ virtual void set_choke_filter(ChokeFilter* choke_filter) {}
stefan-webrtc 2015/07/02 11:03:42 Remove? Why is it needed?
magalhaesc 2015/07/02 17:17:02 Done.
void SetSenderTimestamps(Packets* in_out);
+ virtual uint32_t TargetBitrateKbps() { return 0; }
+
protected:
SimulatedClock clock_;
};
@@ -58,16 +61,22 @@ 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_;
@@ -112,21 +121,18 @@ 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; }
+ void set_choke_filter(ChokeFilter* choke_filter) override;
+
+ uint32_t TargetBitrateKbps() override;
private:
struct InFlight {
@@ -153,6 +159,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 +170,13 @@ 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.
+ ChokeFilter* choke_filter_;
+ 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