nvh264sldec choosing wrong I-frame to use on packet loss
When running a pipeline like:
gst-launch-1.0 udpsrc auto-multicast=true uri=udp://239.12.182.1:10200 caps="application/x-rtp,clock-rate=90000" ! rtpjitterbuffer latency=200 ! rtph264depay ! h264parse ! nvh264sldec ! queue ! d3d11videosink
where 239.12.182.1:10200 is a multicast stream, the decoder uses an I-frame received potentially hours or days ago when there is packet loss. My guess is that when there is packetloss on the I-frame that makes is unusable, the decoder chooses some kind of buffered I-frame instead to conceal. However this works quite bad if the I-frame used is very old. nvh264dec is not affected by this problem. Not other decoders like avdec_h264, d3d11h264 eighter.
Steps to reproduce:
- Run pipeline above
- Use utility like clumsy or similar to simulate 1% packet loss.