This document describes an extensible protocol for sending a uni directional stream of small
control messages embedded in the non-active picture region of a digital video stream.
Thevideo stream containing the protocol stream may be broadcast to a number of devices.
Device addressing is used to allow the sender to specify which device each message is
directed to.
Assumptions
Alignment and padding constraints are explicitly described in the protocol document. Bit fields
are packed from LSB first. Message groups, individual messages and command headers are
defined as, and can be assumed to be, 32 bit aligned.
Blanking Encoding
A message group is encoded into a SMPTE 291M packet with DID/SDID x51/x53 in the active
region of VANC line 16.
Message Grouping
Up to 32 messages may be concatenated and transmitted in one blanking packet up to a
maximum of 255 bytes payload. Under most circumstances, this should allow all messages to
be sent with a maximum of one frame latency.
If the transmitting device queues more bytes of message packets than can be sent in a single
frame, it should use heuristics to determine which packets to prioritize and send immediately.
Lower priority messages can be delayed to later frames, or dropped entirely as appropriate.
Abstract Message Packet Format
Every message packet consists of a three byte header followed by an optional variable length
data block. The maximum packet size is 64 bytes.
Destination device (uint8)
Device addresses are represented as an 8 bit unsigned integer. Individual
devices are numbered 0 through 254 with the value 255 reserved to
indicate a broadcast message to all devices.
Command length (uint8)
The command length is an 8 bit unsigned integer which specifies the
length of the included command data. The length does NOT include the
length of the header or any trailing padding bytes.
Command id (uint8)
The command id is an 8 bit unsigned integer which indicates themessage
type being sent. Receiving devices should ignore any commands that they
do not understand. Commands 0 through 127 are reserved for commands
that apply to multiple types of devices. Commands 128 through 255 are
device specific.
Reserved (uint8)
This byte is reserved for alignment and expansion purposes. Itshould be
set to zero.
Command data(uint8[])
The command data may contain between 0 and 60 bytes of data.
Theformat of the data section is defined by the command itself.
Padding(uint8[])
Messages must be padded up to a 32 bit boundary with 0x0bytes. Any
padding bytes are NOT included in the command length.
Receiving devices should use the destination device address and or the command identifier to
determine which messages to process. The receiver should use the command length to skip
irrelevant or unknown commands and should be careful to skip the implicit padding as well.
401401
개발자 정보