We are using the very latest h264 decoder on a dm368 based board. We are running in low latency mode and we have observed that as soon as the decoder sees a missed packet for a frame, it gives up on decoding that frame even if later packets for the frame are available. Is this correct?
For example: consider a frame divided into 4 slices, with 1 slice per packet. Packet 1 arrives and is decoded by the decoder which then calls our callback function. Packet 2 is lost, but Packets 3 and 4 are available. If we return Packet 3 to the decoder it comes out of the process function with an error without calling our callback again to get Packet 4.
The result of this is that at least two (probably three) slices were not decoded, because one slice was missing. This is not very good for error resilience. Are we doing something wrong? What should the callback function return to the decoder in the case where the decoder is expecting packet 2, but it has been lost and only packets 3 and 4 are available?
Many thanks,
Alex