This class represents FEC parameters as defined in RFC 6330 as the
Encoded FEC Object Transmission Information (OTI), which contains the
Encoded Common FEC OTI and the
Encoded Scheme-Specific FEC OTI.
The FEC parameters consist of:
- Source data length
- The length of the source data, in number of bytes. Since encoded data may contain extra padding bytes, this value allows a decoder to infer the real size of the decoded data.
- Symbol size
- The size of a symbol, in number of bytes. This value represents the size of an encoding symbol (source or repair), except the size of the last source symbol, which may be smaller.
- Number of source blocks
- The number of source blocks into which the source data is partitioned. Each source block is encoded/decoded independently, and not every one is divided into the same number of source symbols.
- Interleaver length
- The number of sub-blocks per source block into which the source data is interleaved. This value influences the level of uniform interleaving used before encoding a source block. A value of 1 means no interleaving is used, and a higher value means more interleaving per source block. Interleaving refers to a burst-error correction technique in FEC codes.
- Symbol alignment
- This value has no relevance to the user of OpenRQ, since it is fixed to a value of 1. This parameter exists here only for compliance to the RFC 6330.
Methods are provided to write instances of this class to arrays of bytes, {@link ByteBuffer} objects, serializableobjects, {@link DataOutput} objects and {@link WritableByteChannel} objects. Additionally, static methods areprovided to parse/read instances of this class from arrays of bytes, {@code ByteBuffer} objects, serializableobjects, {@link DataInput} objects and {@link ReadableByteChannel} objects.