diff options
author | hclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-01 20:36:24 +0000 |
---|---|---|
committer | hclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-01 20:36:24 +0000 |
commit | c46ae304f8dc98e34b994b37ba63d60ab6601f63 (patch) | |
tree | d63943cb41372be6f556b51d2c9a5a490deeca23 /remoting | |
parent | e0e6c420a65454c411336d7d95f3dc57773b673f (diff) | |
download | chromium_src-c46ae304f8dc98e34b994b37ba63d60ab6601f63.zip chromium_src-c46ae304f8dc98e34b994b37ba63d60ab6601f63.tar.gz chromium_src-c46ae304f8dc98e34b994b37ba63d60ab6601f63.tar.bz2 |
Send a small empty video packet when capturer returns no dirty rect
This keeps the network active for the video channel, otherwise PseudoTcp will
reset the value of congestion window and the next transmission would suck.
After this change chromoting from a remote site with 100+ ms latency works way
better.
BUG=None
TEST=None
Review URL: http://codereview.chromium.org/7544020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94972 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'remoting')
-rw-r--r-- | remoting/host/screen_recorder.cc | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/remoting/host/screen_recorder.cc b/remoting/host/screen_recorder.cc index adeb1a1..0b1d1d1 100644 --- a/remoting/host/screen_recorder.cc +++ b/remoting/host/screen_recorder.cc @@ -365,9 +365,14 @@ void ScreenRecorder::DoEncode( // Early out if there's nothing to encode. if (!capture_data || !capture_data->dirty_rects().size()) { - capture_loop_->PostTask( + // Send an empty video packet to keep network active. + VideoPacket* packet = new VideoPacket(); + packet->set_flags(VideoPacket::LAST_PARTITION); + network_loop_->PostTask( FROM_HERE, - NewTracedMethod(this, &ScreenRecorder::DoFinishOneRecording)); + NewTracedMethod(this, + &ScreenRecorder::DoSendVideoPacket, + packet)); return; } |