sdpdemux throws a critical assertion error
Hi GStreamer devs,
I have stumbled upon an issue when trying out the sdpsrc and sdpdemux plugins. I have started working on it under LMDE 3, which is based on Debian 9 stable, which provides GStreamer 1.10.4. I was able to listen to an audio RTP stream just fine by using the following pipeline :
$ gst-launch-1.0 sdpsrc location=sdp://test.sdp ! decodebin ! autoaudiosink
I then tried it out on a Debian Sid VM, which provides GStreamer 1.16.1. The same pipeline with the same SDP file throws the following error :
$ gst-launch-1.0 sdpsrc location=sdp://test.sdp ! decodebin ! autoaudiosink Setting pipeline to PAUSED ... Pipeline is live and does not need PREROLL ... Setting pipeline to PLAYING ... New clock: GstSystemClock ** (gst-launch-1.0:602): CRITICAL **: 16:59:26.470: gst_sdp_media_get_connection: assertion 'idx < media->connections->len' failed ERROR: from element /GstPipeline:pipeline0/GstSdpSrc:sdpsrc0/GstSDPDemux:sdpdemux0: Could not read from resource. Additional debug info: gstsdpdemux.c(982): gst_sdp_demux_handle_message (): /GstPipeline:pipeline0/GstSdpSrc:sdpsrc0/GstSDPDemux:sdpdemux0: Could not receive any UDP packets for 10.0000 seconds, maybe your firewall is blocking it. Execution ended after 0:00:10.014706472 Setting pipeline to PAUSED ... Setting pipeline to READY ... Setting pipeline to NULL ... Freeing pipeline ...
After looking at the debug output, I understand that
sdpsrc internally uses
sdpdemux, so I tried the following and got the exact same output :
$ gst-launch-1.0 filesrc location=test.sdp ! sdpdemux ! decodebin ! autoaudiosink
Logs and SDP file are available here :
Did I do something wrong, considering that my pipeline only works with an outdated version ?
Thanks for your time.