Return and de-interleave undecodable blocks
Sometimes a block is not decodable, due to too much packet loss.
But in this case we just refuse to decode the whole block.
There should be an option to decode a block once the end_of_data() has been signalled so that we can fill the lost symbols with zeros, then return the de-interleaved data.
...which should be accompanied by a bitmask of which bytes were actual data and which are fillers, so that the user can make some sense of the data.