<div dir="ltr">I'm trying to get rtpbin to receive audio from a remote endpoint. The simple examples all work fine, but when I try to integrate it into a larger framework rtpbin behaves differently.<div><br></div><div>These two pipelines work just fine with gst-launch</div><div>Sending audio:</div><div>gst-launch-1.0 rtpbin name=rtpbin \<br>    audiotestsrc ! mulawenc ! rtppcmupay ! rtpbin.send_rtp_sink_1 \<br>    rtpbin.send_rtp_src_1 ! udpsink host=127.0.0.1 port=10000<br></div><div><br></div><div>And receiving audio:</div><div>gst-launch-1.0 udpsrc address=127.0.0.1 port=10000 caps="application/x-rtp, media=audio, encoding-name=PCMU, clock-rate=8000" ! \<br>  rtpbin ! queue ! rtppcmudepay ! mulawdec ! audioconvert ! audioresample ! autoaudiosink<br></div><div><br></div><div><br></div><div>So, inside my rust code, I can pass the exact same string to gst::parse_launch(), play the pipeline, and send audio to it and it plays to my speaker. Cool.</div><div><br></div><div>*however*, if I do the following (rust):</div><div>let pipeline = gst::Pipeline::new(None);<br>pipeline.set_state(gst::State::Playing)?;<br></div><div><br></div><div>// the bin source is the *exact same* as the pipeline source</div><div>let bin = gst::parse_bin_from_description( ... )?;</div><div>pipeline.add(&bin);</div><div>bin.sync_state_with_parent()?;</div><div><br></div><div>And then send in the rtp, rtpbin fails to link some pads. With GST_DEBUG=3:</div><div>WARN                 basesrc gstbasesrc.c:3072:gst_base_src_loop:<udpsrc0> error: Internal data stream error.<br>WARN                 basesrc gstbasesrc.c:3072:gst_base_src_loop:<udpsrc0> error: streaming stopped, reason not-linked (-1)<br></div><div><br></div><div><br></div><div>With GST_DEBUG=4:</div><div>INFO        GST_ELEMENT_PADS gstutils.c:1771:gst_element_link_pads_full: trying to link element rtpbin:(any) to element rtppcmudepay0:(any)<br>INFO        GST_ELEMENT_PADS gstelement.c:915:gst_element_get_static_pad: found pad rtppcmudepay0:sink<br>INFO        GST_ELEMENT_PADS gstutils.c:1225:gst_element_get_compatible_pad:<rtppcmudepay0> Could not find a compatible pad to link to rtpbin:recv_rtp_src_0_270934790_0<br>INFO                 default gstutils.c:2161:gst_element_link_pads_filtered: Could not link pads: rtpbin:(null) - rtppcmudepay0:(null)<br>INFO                GST_PADS gstpad.c:4237:gst_pad_peer_query:<rtpbin:recv_rtp_src_0_270934790_0> pad has no peer<br>INFO                    task gsttask.c:312:gst_task_func:<rtpjitterbuffer0:src> Task going to paused<br>INFO                 basesrc gstbasesrc.c:2981:gst_base_src_loop:<udpsrc0> pausing after gst_pad_push() = not-linked<br>WARN                 basesrc gstbasesrc.c:3072:gst_base_src_loop:<udpsrc0> error: Internal data stream error.<br>WARN                 basesrc gstbasesrc.c:3072:gst_base_src_loop:<udpsrc0> error: streaming stopped, reason not-linked (-1)<br>INFO        GST_ERROR_SYSTEM gstelement.c:2140:gst_element_message_full_with_details:<udpsrc0> posting message: Internal data stream error.<br>INFO        GST_ERROR_SYSTEM gstelement.c:2167:gst_element_message_full_with_details:<udpsrc0> posted error message: Internal data stream error<br></div><div><br></div><div>What am I doing wrong?</div></div>