mxfdemux: Outputs unusable stream after a seek
@thiblahute
Submitted by Thibault Saunier Link to original bug (#796746)
Description
The validate test validate.file.playback.scrub_forward_seeking.op2b-mpeg2-wave_hd_mxf
fails with
critical : We got an ERROR message on the bus
Detected on <playbin0>
Details : Got error: No valid frames decoded before end of stream -- Debug message: gstvideodecoder.c(1171): gst_video_decoder_sink_event_default (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/avdec_mpeg2video:avdec_mpeg2video0: no valid frames found
The simplest scenario to reproduce would be:
echo "seek,start=3.400000000,flags=accurate+flush" >/tmp/tmp.scenario && GST_DEBUG="gstvalidatescenario*:2" GST_VALIDATE_SCENARIO=/tmp/tmp.scenario gst-validate-1.0 playbin uri=file:///$HOME/gst-validate/gst-integration-testsuites/medias/defaults/mxf/op2b-mpeg2-wave_hd.mxf
Interestingly on normal playback and with gst-validate-media-check we see that the last avalaible keyframe in the stream is:
<frame duration="40000000" id="96" is-keyframe="true" offset="23493821" offset-end="18446744073709551615" pts="3880000000" dts="3840000000" running-time="3880000000" checksum="9d8a13aea46f8dfe05dd603556504726"/>
Which is after 3.40 where we are seeking in that last scenario.