summaryrefslogtreecommitdiff
path: root/doc/design.txt
diff options
context:
space:
mode:
authorWim Taymans <wtaymans@redhat.com>2015-08-31 16:47:32 +0200
committerWim Taymans <wtaymans@redhat.com>2015-08-31 16:47:32 +0200
commit8d1ad2ea63cbc1c424461f32a53c8b02391b86e7 (patch)
tree4ec7d7e3d15a9e0f53fe9ff4cfb145ed4360e553 /doc/design.txt
parentc2cf3590760915d60227f6bb79c783e416f8d344 (diff)
More work on wire protocol
Make separate payload for the header. Make release-fd payloads capture_buffer -> peek_buffer to avoid a copy remove release-buffer, we really need to release each fd in the buffer separately. provide_buffer -> send_buffer so that we can also use this to send the release-fd messages. in pinossrc, send back release-fd messages when the fd is no longer in use.
Diffstat (limited to 'doc/design.txt')
-rw-r--r--doc/design.txt39
1 files changed, 22 insertions, 17 deletions
diff --git a/doc/design.txt b/doc/design.txt
index 242320d3..682e3b84 100644
--- a/doc/design.txt
+++ b/doc/design.txt
@@ -55,11 +55,8 @@ Wire
Fixed header
-<flags> : 4 bytes : buffer flags
-<seq> : 4 bytes : sequence number
-<pts> : 8 bytes : presentation time
-<dts-offset> : 8 bytes : dts-offset
-<length> : 8 bytes : total message length
+<version> : 4 bytes : total message length
+<length> : 4 bytes : total message length
Followed by 1 or more type-length-data sections
@@ -69,28 +66,36 @@ Followed by 1 or more type-length-data sections
Types:
- 0: fd-payload section
+ 1: header
+
+ Header for payload
+
+ <flags> : 4 bytes : buffer flags
+ <seq> : 4 bytes : sequence number
+ <pts> : 8 bytes : presentation time
+ <dts-offset> : 8 bytes : dts-offset
+
+ 2: fd-payload section
Used to send a buffer between client and server.
- <id> : 4 bytes : id of the fd-payload
- <offset> : 8 bytes : offset
- <size> : 8 bytes : size
- <fd-index> : 4 bytes : index of fd
+ <id> : 4 bytes : id of the fd-payload
+ <offset> : 8 bytes : offset
+ <size> : 8 bytes : size
+ <fd-index> : 4 bytes : index of fd
- 1: release fd-payload
+ 3: release fd-payload
Release a fd-payload with <id>
- <id> : 4 bytes : the id number of the released fd-payload
-
- 2: format change
+ <id> : 4 bytes : the id number of the released fd-payload
- <format-id> : 1 byte : format id
- <format> : 0-terminated : contains serialized format
+ 4: format change
+ <format-id> : 1 byte : format id
+ <format> : 0-terminated : contains serialized format
- 3: property changes
+ 5: property changes
<key> : 0-terminated : key
<value> : 0-terminated : value