Bidirectional PAD communication protocol
From Opendigitalradio
The current ODR-PadEnc to ODR-AudioEnc communication is done through a nonblocking FIFO.
The proposal is to replace it by a UDP-based request/reply protocol.
For every audio frame, the ODR-AudioEnc checks if a block of PAD data is available by doing a nonblocking recv() on the UDP socket. If yes, it inserts it into the audio frame; if not, the audio frame will not contain PAD. In any case, it sends a request to ODR-PadEnc for new data:
UDP PAD Request - message format | type (1 byte) | | 0x1 (request) |
ODR-PadEnc prepares the PAD block and answers with a UDP reply message:
UDP PAD Reply - message format | type (1 byte) | PAD data (N bytes) | | 0x2 (reply) | <PAD> |
Future versions of the messages as well as new types of messages shall use different values for the type field.
Multi-byte values (none yet) use network endianness (i.e. big-endian).
TODO:
- Define the order of bytes for the PAD data