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

Unified Diff: remoting/host/screen_recorder.h

Issue 8342040: Gather history of capture and encode time determine next recoring delay (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: tested and removed testing code Created 9 years, 2 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: remoting/host/screen_recorder.h
diff --git a/remoting/host/screen_recorder.h b/remoting/host/screen_recorder.h
index 2e341c774e07a46c725833acbcb26fb5fb4c6b66..242bb0fc564dd32293bafbc2892c797c6f2b5199 100644
--- a/remoting/host/screen_recorder.h
+++ b/remoting/host/screen_recorder.h
@@ -16,6 +16,7 @@
#include "base/timer.h"
#include "remoting/base/encoder.h"
#include "remoting/host/capturer.h"
+#include "remoting/host/recording_rate_regulator.h"
#include "remoting/proto/video.pb.h"
namespace base {
@@ -92,13 +93,6 @@ class ScreenRecorder : public base::RefCountedThreadSafe<ScreenRecorder> {
// stopped. This object cannot be used again after |task| is executed.
void Stop(const base::Closure& done_task);
- // Set the maximum capture rate. This is denoted by number of updates
- // in one second. The actual system may run in a slower rate than the maximum
- // rate due to various factors, e.g. capture speed, encode speed and network
- // conditions.
- // This method should be called before Start() is called.
- void SetMaxRate(double rate);
-
// Add a connection to this recording session.
void AddConnection(scoped_refptr<protocol::ConnectionToClient> connection);
@@ -189,7 +183,11 @@ class ScreenRecorder : public base::RefCountedThreadSafe<ScreenRecorder> {
bool encoder_stopped_;
// Timer that calls DoCapture.
- base::RepeatingTimer<ScreenRecorder> capture_timer_;
+ base::OneShotTimer<ScreenRecorder> capture_timer_;
+
+ // Maximum simutaneous recordings allowed. Note that this number
Wez 2011/10/20 00:52:15 typo: "simutaneous"
Alpha Left Google 2011/10/31 18:47:24 Done.
+ // cannot exceed 2 at any time.
+ int max_recordings_;
// Count the number of recordings (i.e. capture or encode) happening.
int recordings_;
@@ -198,9 +196,6 @@ class ScreenRecorder : public base::RefCountedThreadSafe<ScreenRecorder> {
// many pending frames.
int frame_skipped_;
- // Number of captures to perform every second. Written on the capture thread.
- double max_rate_;
-
// Time when capture is started.
base::Time capture_start_time_;
@@ -210,6 +205,9 @@ class ScreenRecorder : public base::RefCountedThreadSafe<ScreenRecorder> {
// This is a number updated by client to trace performance.
int64 sequence_number_;
+ // An object to help throttle recording rate.
+ RecordingRateRegulator regulator_;
+
DISALLOW_COPY_AND_ASSIGN(ScreenRecorder);
};

Powered by Google App Engine
This is Rietveld 408576698