Index: remoting/host/capture_scheduler.h |
diff --git a/remoting/host/capture_scheduler.h b/remoting/host/capture_scheduler.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..df05d40e57eb7a886fef73066c17a666e7a8acae |
--- /dev/null |
+++ b/remoting/host/capture_scheduler.h |
@@ -0,0 +1,41 @@ |
+// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+// This class is used to determine the recoring rate of ScreenRecorder. |
Wez
2011/10/25 00:05:38
typo: recoring
Alpha Left Google
2011/10/31 18:47:24
Done.
|
+// This class gathers history of time spent on encode and capture to |
+// determine the delay for next recoding cycle. |
Wez
2011/10/25 00:05:38
typo: recoding
nit: Please word this more clearly;
Alpha Left Google
2011/10/31 18:47:24
Done.
|
+// The algorithm also takes into account number of processors in the |
+// system and current system load. |
+ |
+#ifndef REMOTING_HOST_CAPTURE_SCHEDULER_H_ |
+#define REMOTING_HOST_CAPTURE_SCHEDULER_H_ |
+ |
+#include "base/time.h" |
+#include "remoting/base/running_average.h" |
+ |
+namespace remoting { |
+ |
+class CaptureScheduler { |
+ public: |
+ CaptureScheduler(); |
+ ~CaptureScheduler(); |
+ |
+ // Determine the time delay from current time to perform next capture. |
+ base::TimeDelta NextCaptureDelay(); |
+ |
+ // Recording time spend on capturing and encoding. |
Wez
2011/10/25 00:05:38
typos: Recording->Record, spend->spent.
Alpha Left Google
2011/10/31 18:47:24
Done.
|
+ void RecordCaptureTime(base::TimeDelta capture_time); |
+ void RecordEncodeTime(base::TimeDelta encode_time); |
+ |
+ private: |
+ int num_of_processors_; |
+ RunningAverage capture_time_; |
+ RunningAverage encode_time_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(CaptureScheduler); |
+}; |
+ |
+} // namespace remoting |
+ |
+#endif // REMOTING_HOST_CAPTURE_SCHEDULER_H_ |