<div dir="ltr">Hi<div><br></div><div>I have a number of h.264 file which are being RTP broadcast by a VLC server. We use this for testing RTSP clients.</div><div><br></div><div>I am using a GST pipeline as follows:</div><div><br></div><div>rtspsrc location=<rtsp....> ! rtph264depay ! vaapiparse_h264 ! vaapidecode ! autovideosink</div><div><br></div><div>For some of the files broadcast by the server this works fine, for others I get the following error:</div><div><br></div><div><div>Got context from element 'vaapidecode0': gst.vaapi.Display=context, display=(GstVaapiDisplay)NULL;</div><div>ERROR: from element /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstVaapiDecode:vaapidecode0: No valid frames decoded before end of stream</div><div>Additional debug info:</div><div>gstvideodecoder.c(1256): gst_video_decoder_sink_event_default (): /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstVaapiDecode:vaapidecode0:</div><div>no valid frames found</div></div><div><br></div><div>With a software decode (avdec_h264), this source plays fine.</div><div><br></div><div>If I play the stream in VLC (using libva) it also spews out some error codes (below), but it just carries on and seems to sync up in the end and manages to play the video:</div><div><br></div><div><div>libva info: VA-API version 0.38.0</div><div>libva info: va_getDriverName() returns 0</div><div>libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/r600_drv_video.so</div><div>libva info: Found init function __vaDriverInit_0_37</div><div>libva info: va_openDriver() returns 0</div><div>[00007f24f41522c8] avcodec decoder: Using Splitted-Desktop Systems VDPAU backend for VA-API - 0.7.4 for hardware decoding.</div><div>[h264 @ 0x7f24f4158140] decode_slice_header error</div><div>[h264 @ 0x7f24f4158140] decode_slice_header error</div><div>[h264 @ 0x7f24f4158140] decode_slice_header error</div><div>[h264 @ 0x7f24f4158140] decode_slice_header error</div><div>[h264 @ 0x7f24f4158140] decode_slice_header error</div><div>[h264 @ 0x7f24f4158140] decode_slice_header error</div><div>[h264 @ 0x7f24f4158140] decode_slice_header error</div><div>[h264 @ 0x7f24f4158140] decode_slice_header error</div><div>[h264 @ 0x7f24f4158140] Frame num change from 141 to 0</div><div>[h264 @ 0x7f24f4158140] decode_slice_header error</div><div>[h264 @ 0x7f24f4158140] no frame!</div><div>[00007f24fc0009b8] core input error: ES_OUT_RESET_PCR called</div></div><div><br></div><div>It looks to me like the vaapidecode element gives up at the first error whereas avdec_h264 and vlc can 'play past' the initial issues until they get valid data.</div><div><br></div><div>Question: Is there a way to instruct vaapidecode to keep trying if it hits a stream error instead of bailing immediately?</div><div><br></div><div>Thanks in advanced<br>Ben</div></div>