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.