GNOME Bugzilla – Bug 737231
rtspsrc: Fails to pre-roll if one of the streams never sends anything
Last modified: 2018-05-05 15:46:49 UTC
I have a RTSP camera that claims (in it's SDP) to have a video and an audio stream. But in practice, it nevers sends any audio. rtspsrc fails to timeout the audio stream, and instead blocks forever to preroll.. After some time, it should probably give up on the audio stream, send a warning, and destroy it (send EOS? remove the pad? both?).
Or maybe it should send gap events instead?
(In reply to comment #1) > Or maybe it should send gap events instead? That would imply we do end preroll on gaps, is that implemented ? (note, in this context, rtsp tries UDP, timeout on audio while video is working, then fallback to TCP, and stall in preroll. If the server was not to support TCP at all, we'd loose, not sure there is a bullet proof solution to this server lie, as sending gaps in UDP might also be wrong).
(In reply to comment #2) > (In reply to comment #1) > > Or maybe it should send gap events instead? > > That would imply we do end preroll on gaps, is that implemented ? It should be implemented (at least in the audio sinks), but there's some doubt about that, or maybe bugs :) See bug #736655
*** Bug 708867 has been marked as a duplicate of this bug. ***
*** Bug 688416 has been marked as a duplicate of this bug. ***
Preroll on gap events should work for both video and audio decoders these days
But if there's no data stream, decodebin won't be able to plug a parser and fix the caps, so prerolling won't happen. Am I right ?
Hmm, yes - true.
decodebin3/playbin3 will have no issues with that. Closing.