GNOME Bugzilla – Bug 738472
gstvideodecoder: a/v sync issues with corrupted stream
Last modified: 2018-05-04 09:42:42 UTC
The reordered_output behavior of gstvideoencoder seems to be causing issues for us with broken h.264 stream (decoded using libav) The problem is that at some point, the decoder returns one decoded frame from past (that has PTS lower than last frame PTS). gstvideodecoder sees this, thinks all timestamps are broken and starts interpolating from that PTS. Example PTS-IN: 1 PTS-OUT: n/a PTS-IN: 2 PTS-OUT: 1 PTS-IN: 3 PTS-OUT: 2 PTS-IN: 4 PTS-OUT: 3 PTS-IN: 5 PTS-OUT: 4 PTS-IN: 6 PTS-OUT: none - decoding problem PTS-IN: 7 PTS-OUT: none - decoding problem PTS-IN: 8 PTS-OUT: none - decoding problem PTS-IN: 9 PTS-OUT: 8 // at this point the decoder returns one frame from past; I'm not sure why this happens, the frame should obviously be discarded, but it does; // gstvideodecoder will interpolate all following timestamps from this one PTS-IN: 10 PTS-OUT: 5 PTS-IN: 11 PTS-OUT: 10 If I make sure that the PTS is monotonous (by comparing it to previous value) there are no issues; I understand what the behavior is for, but maybe it could be optional?
This seems to be like to be the same as #795512 which has a patch, so mark this one as a duplicate. *** This bug has been marked as a duplicate of bug 795512 ***