GStreamer data protocol
    Intended to wrap GstData objects in a line protocol for use with
    pipe / network elements.
    IDEAS-- -- -*for transporting buffers, have a function that creates a header for a given buffer to be written before the buffer.
    This way, you don't lose time creating a GDP buffer from the buffer
* allow for CRC' ing of the GstBuffer, optionally * have a version number of the protocol * optimizing the header for size is not useful since the GstData structure
    already contains more than 32 bytes anyway, making up half the header size PROTOCOL-- -- ----*1 byte GDP major
version (0)
  *1 byte GDP minor version (1)
  * 1 byte GDP flags
      * 1 byte GDP data type
      1 for buffer, 2 caps, 65 + for events
      * 4 byte length of "payload"
      * 8 byte timestamp of buffer / event
      * 8 byte duration of buffer
      * 8 byte offset
      * 8 byte offset_end
      * 2 byte buffer data flags * 14 byte future extension (ABI padding)
    *2 byte optional header crc
        * 2 byte optional payload crc
        * (length) payload
        header:60 bytes
        PROTOCOL CHANGELOG-- --
        --------------0.1:added two bytes for buffer flags all numbers use
        network byte ordering.
