Summary
fec::IBlockEncoder and fec::IBlockDecoder are interfaces for codec-specific encoding and decoding of FEC packets used for packet loss recovery. See documentation.
They both have begin_block() method which can report error by returning status::StatusCode.
We need to update their other methods so that they return status code as well (currently they are void): end_block(), set_buffer(), fill_buffers(), repair_buffer().
Implementation
- Update IBlockEncoder and IBlockDecoder interfaces and two implementations:
- fec::OpenfecEncoder
- fec::OpenfecDecoder
- In OpenfecEncoder and OpenfecDecoder, find invocations of
of_xxx() functions, check for errors, and return status code in case of error (currently errors are either unhandled or cause panic)
- Update fec::BlockWriter and fec::BlockReader, which use IBlockEncoder and IBlockDecoder interfaces. When encoder or decoder return error code, writer and reader should forward it to upper level.
Summary
fec::IBlockEncoder and fec::IBlockDecoder are interfaces for codec-specific encoding and decoding of FEC packets used for packet loss recovery. See documentation.
They both have
begin_block()method which can report error by returning status::StatusCode.We need to update their other methods so that they return status code as well (currently they are void):
end_block(),set_buffer(),fill_buffers(),repair_buffer().Implementation
of_xxx()functions, check for errors, and return status code in case of error (currently errors are either unhandled or cause panic)