summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorWim Taymans <wtaymans@redhat.com>2015-08-24 16:41:04 +0200
committerWim Taymans <wtaymans@redhat.com>2015-08-24 16:41:04 +0200
commitc47fcd8105704d9ed5f121f9321222d7284d3fa2 (patch)
tree6fc123fdb2b518a071af0fb0b45b2199a006e70b /doc
parentd0f3f3125bc37402baf02d06d78b22d3ed77e5e4 (diff)
Rework the wire protocol
Send a command stream over the socket. Implement a new buffer object that holds the data and commands. Make iterator and builders to parse and construct buffers. Rework gstreamer elements to use new API for creating and parsing buffers. Add _release_buffer to notify a stream when we are done processing the buffer. This will eventually go all the way to the server and will allow us to do more complicated buffer management.
Diffstat (limited to 'doc')
-rw-r--r--doc/design.txt24
1 files changed, 13 insertions, 11 deletions
diff --git a/doc/design.txt b/doc/design.txt
index 39adb70d..4db76349 100644
--- a/doc/design.txt
+++ b/doc/design.txt
@@ -55,29 +55,31 @@ Wire
Fixed header
-<flags> : 4 bytes
-<seq> : 4 bytes
-<pts> : 8 bytes
-<dts-offset> : 8 bytes
+<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
Followed by 1 or more type-length-data sections
<type> : 1 byte
<length> : variable length, 7 bits, hight bit is continuation marker
-<data> : <length> bytes
+<data> : <length> bytes, see below for contents based on <type>
Types:
- 0: format change
+ 0: fd-payload section
+
+ <offset> : 8 bytes : offset
+ <size> : 8 bytes : size
+ <fd-index> : 4 bytes : index of fd
+
+ 1: format change
<format-id> : 1 byte : format id
<format> : 0-terminated : contains serialized format
- 1: fd-payload section
-
- <offset> : 8 bytes : offset
- <size> : 8 bytes : size
- <fd-index> : 1 byte : index of fd
2: property changes