Chromium Code Reviews| Index: remoting/host/capture_scheduler.h |
| diff --git a/remoting/host/capture_scheduler.h b/remoting/host/capture_scheduler.h |
| index 610b35ba490b9cb1ef4b5bcedbde46bd6d28c624..29c2c5703d47b0a9c35a5bfc47375078f39087c0 100644 |
| --- a/remoting/host/capture_scheduler.h |
| +++ b/remoting/host/capture_scheduler.h |
| @@ -22,7 +22,7 @@ namespace remoting { |
| // taking into account capture delay, encoder delay, network bandwidth, etc. |
| class CaptureScheduler : public base::NonThreadSafe { |
| public: |
| - explicit CaptureScheduler(const base::Closure& capture_closure); |
| + CaptureScheduler(const base::Closure& capture_closure, bool acks_supported); |
| ~CaptureScheduler(); |
| // Starts the scheduler. |
| @@ -40,6 +40,16 @@ class CaptureScheduler : public base::NonThreadSafe { |
| // Notifies the scheduler than a frame has been sent. |
| void OnFrameSent(); |
| + // Notifies the scheduler than a frame has been acknowledged. |
| + void OnFrameAck(); |
| + |
| + // Sets maximum number of pending frames in the sending queue. When ACKs are |
| + // supported frames is considered to be pending until ACK message is received, |
|
Wez
2015/02/03 00:54:32
s/is/are
Sergey Ulanov
2015/02/09 19:14:54
Removed this function now
|
| + // otherwise it's pending until it's sent (OnFrameSent() is called). |
|
Wez
2015/02/03 00:54:32
If the two things are treated equivalently, simply
Sergey Ulanov
2015/02/09 19:14:54
Removed this function now
|
| + void set_maximum_pending_frames(int max_pending_frames) { |
| + max_pending_frames_ = max_pending_frames; |
| + } |
| + |
| // Sets minimum interval between frames. |
| void set_minimum_interval(base::TimeDelta minimum_interval) { |
| minimum_interval_ = minimum_interval; |
| @@ -68,6 +78,12 @@ class CaptureScheduler : public base::NonThreadSafe { |
| base::Closure capture_closure_; |
| + // Set to true if the connection supports video frame acknowledgments. |
| + bool acks_supported_; |
| + |
| + // Maximum number of pending frames. |
| + int max_pending_frames_; |
| + |
| scoped_ptr<base::TickClock> tick_clock_; |
| // Timer used to schedule CaptureNextFrame(). |
| @@ -81,7 +97,9 @@ class CaptureScheduler : public base::NonThreadSafe { |
| RunningAverage capture_time_; |
| RunningAverage encode_time_; |
| - int pending_frames_; |
| + int num_encoding_frames_; |
| + int num_sending_frames_; |
| + |
| bool capture_pending_; |
| base::TimeTicks last_capture_started_time_; |
| bool is_paused_; |