Graceful quality/caps degradation with DASH/HLS streams

Samuel de Moura samueldemouramoreira at gmail.com
Fri Sep 10 17:32:17 UTC 2021


Hello everyone, quick question about caps negotiation in adaptive streams (specifically DASH and HLS, haven't tested MSS behavior):

Is there any way to "gracefully" restrict bitrate/variant switching so that it respects caps limitations from downstream? The situation I'm running into is that I have a hardware decoder which cannot handle certain H.264/5 profiles. This is made explicit by the caps on the sink pad of the video sink element.

However, what happens is that if I try to play a DASH or HLS stream which has multiple qualities (some of which the decoder can handle, and some which it cannot), playback starts correctly (at the lower quality) but soon enough the adaptivedemux selects another quality which the decoder cannot handle, and playback stops because of a negotiation failure.

I want to make adaptivedemux select the best resolution possible, but also take into account the caps limitations from downstream instead of just network speed (which is what it seems to be doing at the moment). Is this already doable through some existing mechanism, or would I have to implement it from scratch in the adaptive demuxers?


More information about the gstreamer-devel mailing list