summaryrefslogtreecommitdiffstats
path: root/remoting/host
diff options
context:
space:
mode:
authorhclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-18 21:37:59 +0000
committerhclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-18 21:37:59 +0000
commit5a196bd4513a7902e82dc278f2a7919181429ec7 (patch)
tree322814f5fa90c991b0ce5b2d7a652278e16a8135 /remoting/host
parent60c2a1e67f50775ac75f4f5c681c2686e7b9935d (diff)
downloadchromium_src-5a196bd4513a7902e82dc278f2a7919181429ec7.zip
chromium_src-5a196bd4513a7902e82dc278f2a7919181429ec7.tar.gz
chromium_src-5a196bd4513a7902e82dc278f2a7919181429ec7.tar.bz2
Fix some problems in SessionManager in chromoting
SessionManager doesn't handle empty dirty rect list, this is fixed in this patch. This patch also make SessionManager handle rate controlling better. Review URL: http://codereview.chromium.org/3127019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56605 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'remoting/host')
-rw-r--r--remoting/host/session_manager.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/remoting/host/session_manager.cc b/remoting/host/session_manager.cc
index 9d4f83e..f2cb3aa 100644
--- a/remoting/host/session_manager.cc
+++ b/remoting/host/session_manager.cc
@@ -381,6 +381,11 @@ void SessionManager::DoEncode(
scoped_refptr<CaptureData> capture_data) {
DCHECK_EQ(encode_loop_, MessageLoop::current());
+ if (!capture_data->dirty_rects().size()) {
+ capture_loop_->PostTask(
+ FROM_HERE, NewRunnableMethod(this, &SessionManager::DoFinishEncode));
+ }
+
// TODO(hclam): Enable |force_refresh| if a new client was
// added.
encoder_->Encode(capture_data, false,