1c6beb416fe5feee3d91a1663610e7ec4f168f1f
[glsdk/gstreamer0-10.git] / docs / random / gdp
1 GStreamer data protocol
3 Intended to wrap GstData objects in a line protocol for use with
4 pipe/network elements.
6 IDEAS
7 -----
8 * for transporting buffers, have a function that creates a header for
9   a given buffer to be written before the buffer.  This way, you don't lose
10   time creating a GDP buffer from the buffer
11 * allow for CRC'ing of the GstBuffer, optionally
12 * have a version number of the protocol
13 * optimizing the header for size is not useful since the GstData structure
14   already contains more than 32 bytes anyway, making up half the header size
16 PROTOCOL
17 --------
18 * 1 byte   GDP major version
19 * 1 byte   GDP minor version
20 * 1 byte   GDP flags
21 * 1 byte   GDP data type
22            1 for buffer, 2 caps, 65+ for events
23 * 4 byte   length of "payload"
24 * 8 byte   timestamp of buffer/event
25 * 8 byte   duration  of buffer
26 * 8 byte   offset
27 * 8 byte   offset_end
28 * 16 byte  future extension (ABI padding)
29 * 2 byte   optional header crc
30 * 2 byte   optional payload crc
31 * (length) payload
33 header: 60 bytes
35 all numbers use network byte ordering.