| 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..cc6d58a61824be640794a567398967140f1ef924 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,22 +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; }
|
|
|
| + uint32_t TargetBitrateKbps() override;
|
| +
|
| private:
|
| struct InFlight {
|
| public:
|
| @@ -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
|
|
|