summaryrefslogtreecommitdiffstats
path: root/remoting/proto
diff options
context:
space:
mode:
authorsergeyu <sergeyu@chromium.org>2015-02-24 10:00:55 -0800
committerCommit bot <commit-bot@chromium.org>2015-02-24 18:01:33 +0000
commit97568a816ed5fe0a69a2c0f6d0987381899f58d8 (patch)
tree781e82c2a8b62cfc90001352602f27dcc61cd691 /remoting/proto
parent9e61fcead9dd339fd1b39453dcd6f0b08642de3a (diff)
downloadchromium_src-97568a816ed5fe0a69a2c0f6d0987381899f58d8.zip
chromium_src-97568a816ed5fe0a69a2c0f6d0987381899f58d8.tar.gz
chromium_src-97568a816ed5fe0a69a2c0f6d0987381899f58d8.tar.bz2
Implement video frame acknowledgements in the chromoting protocol.
Added frame_id field in the VideoPacket message. Client now acknowledges every frame that has frame_id set by sending VideoAck messages after the corresponding frame is decoded and rendered. On the host the VideoAck messages are processed by the new VideoFeedbackStub, which is implemented in CaptureScheduler. CaptureScheduler limits number of unacknowledged frames to 4. This number was chosen experimentally to minimize latency (using remoting_perftests). BUG=448838 Review URL: https://codereview.chromium.org/850983002 Cr-Commit-Position: refs/heads/master@{#317824}
Diffstat (limited to 'remoting/proto')
-rw-r--r--remoting/proto/video.proto12
1 files changed, 12 insertions, 0 deletions
diff --git a/remoting/proto/video.proto b/remoting/proto/video.proto
index 0ee29c9..211b023 100644
--- a/remoting/proto/video.proto
+++ b/remoting/proto/video.proto
@@ -66,4 +66,16 @@ message VideoPacket {
// Optional frame timestamp. Used in tests to estimate frame latency.
optional int64 timestamp = 12;
+
+ // Frame identifier used to match VideoFrame and VideoAck.
+ optional int32 frame_id = 13;
+}
+
+// VideoAck acknowledges that the frame in the VideoPacket with the same
+// frame_id has been rendered. VideoAck messages must be sent only for frames
+// that have frame_id field set. They must be sent the same order in which
+// the corresponding VideoPackets were received.
+message VideoAck {
+ // Frame ID.
+ optional int32 frame_id = 1;
}