| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Protocol for video messages. | 5 // Protocol for video messages. |
| 6 | 6 |
| 7 syntax = "proto2"; | 7 syntax = "proto2"; |
| 8 | 8 |
| 9 option optimize_for = LITE_RUNTIME; | 9 option optimize_for = LITE_RUNTIME; |
| 10 | 10 |
| 11 package remoting; | 11 package remoting; |
| 12 | 12 |
| 13 message VideoPacketFormat { | 13 message VideoPacketFormat { |
| 14 // Reserved fields IDs used for removed fields: 1 to 4. |
| 15 |
| 14 // Identifies how the image was encoded. | 16 // Identifies how the image was encoded. |
| 15 enum Encoding { | 17 enum Encoding { |
| 16 ENCODING_INVALID = -1; | 18 ENCODING_INVALID = -1; |
| 17 ENCODING_VERBATIM = 0; | 19 ENCODING_VERBATIM = 0; |
| 18 ENCODING_ZLIB = 1; | 20 ENCODING_ZLIB = 1; |
| 19 ENCODING_VP8 = 2; | 21 ENCODING_VP8 = 2; |
| 20 ENCODING_VP9 = 3; | 22 ENCODING_VP9 = 3; |
| 21 }; | 23 }; |
| 22 | 24 |
| 23 // The encoding used for this image update. | 25 // The encoding used for this image update. |
| (...skipping 10 matching lines...) Expand all Loading... |
| 34 } | 36 } |
| 35 | 37 |
| 36 message Rect { | 38 message Rect { |
| 37 optional int32 x = 1; | 39 optional int32 x = 1; |
| 38 optional int32 y = 2; | 40 optional int32 y = 2; |
| 39 optional int32 width = 3; | 41 optional int32 width = 3; |
| 40 optional int32 height = 4; | 42 optional int32 height = 4; |
| 41 } | 43 } |
| 42 | 44 |
| 43 message VideoPacket { | 45 message VideoPacket { |
| 46 // Reserved fields IDs used for removed fields: 1 to 3, 10, 11. |
| 47 |
| 44 optional VideoPacketFormat format = 4; | 48 optional VideoPacketFormat format = 4; |
| 45 | 49 |
| 46 optional bytes data = 5; | 50 optional bytes data = 5; |
| 47 | 51 |
| 48 // List of rectangles updated by this frame. | 52 // List of rectangles updated by this frame. |
| 49 repeated Rect dirty_rects = 6; | 53 repeated Rect dirty_rects = 6; |
| 50 | 54 |
| 51 // Time in milliseconds spent in capturing this video frame. | 55 // Time in milliseconds spent in capturing this video frame. |
| 52 optional int64 capture_time_ms = 7; | 56 optional int64 capture_time_ms = 7; |
| 53 | 57 |
| 54 // Time in milliseconds spent in encoding this video frame. | 58 // Time in milliseconds spent in encoding this video frame. |
| 55 optional int64 encode_time_ms = 8; | 59 optional int64 encode_time_ms = 8; |
| 56 | 60 |
| 57 // The client's timestamp of the latest event received by the host before | 61 // The client's timestamp of the latest event received by the host before |
| 58 // starting to capture this video frame. | 62 // starting to capture this video frame. |
| 59 optional int64 latest_event_timestamp = 9; | 63 optional int64 latest_event_timestamp = 9; |
| 60 | 64 |
| 61 // Provides the new shape for this frame, iff |use_desktop_shape| is true. | |
| 62 repeated Rect desktop_shape_rects = 10; | |
| 63 | |
| 64 // True when |desktop_shape_rects| should be used, false to indicate that | |
| 65 // the frame is un-shaped. If the shape has not changed since the preceding | |
| 66 // frame then this field should be omitted. | |
| 67 optional bool use_desktop_shape = 11; | |
| 68 | |
| 69 // Optional frame timestamp. Used in tests to estimate frame latency. | 65 // Optional frame timestamp. Used in tests to estimate frame latency. |
| 70 optional int64 timestamp = 12; | 66 optional int64 timestamp = 12; |
| 71 | 67 |
| 72 // Frame identifier used to match VideoFrame and VideoAck. | 68 // Frame identifier used to match VideoFrame and VideoAck. |
| 73 optional int32 frame_id = 13; | 69 optional int32 frame_id = 13; |
| 74 | 70 |
| 75 // Time from when the last event was received until capturing has started. | 71 // Time from when the last event was received until capturing has started. |
| 76 optional int64 capture_pending_time_ms = 14; | 72 optional int64 capture_pending_time_ms = 14; |
| 77 | 73 |
| 78 // Total overhead time for IPC and threading when capturing frames. | 74 // Total overhead time for IPC and threading when capturing frames. |
| 79 optional int64 capture_overhead_time_ms = 15; | 75 optional int64 capture_overhead_time_ms = 15; |
| 80 | 76 |
| 81 // Time between when the frame was captured and when encoder started encoding | 77 // Time between when the frame was captured and when encoder started encoding |
| 82 // it. | 78 // it. |
| 83 optional int64 encode_pending_time_ms = 16; | 79 optional int64 encode_pending_time_ms = 16; |
| 84 | 80 |
| 85 // Time for which the frame is blocked until it's sent to the client. | 81 // Time for which the frame is blocked until it's sent to the client. |
| 86 optional int64 send_pending_time_ms = 17; | 82 optional int64 send_pending_time_ms = 17; |
| 87 } | 83 } |
| 88 | 84 |
| 89 // VideoAck acknowledges that the frame in the VideoPacket with the same | 85 // VideoAck acknowledges that the frame in the VideoPacket with the same |
| 90 // frame_id has been rendered. VideoAck messages must be sent only for frames | 86 // frame_id has been rendered. VideoAck messages must be sent only for frames |
| 91 // that have frame_id field set. They must be sent the same order in which | 87 // that have frame_id field set. They must be sent the same order in which |
| 92 // the corresponding VideoPackets were received. | 88 // the corresponding VideoPackets were received. |
| 93 message VideoAck { | 89 message VideoAck { |
| 94 // Frame ID. | 90 // Frame ID. |
| 95 optional int32 frame_id = 1; | 91 optional int32 frame_id = 1; |
| 96 } | 92 } |
| OLD | NEW |