dynamically adding udpsrc to rtpbin causes streaming stopped, reason not-linked (-1)

Ankur Deep Jaiswal ankur at techgentsia.com
Fri Aug 3 11:09:03 UTC 2018


The only issue that i have been able to find out is.
sometimes it says  rtpssrcdemux0:src_2345243 not linked, and then udpsrc
audio fails with   gst_pad_push() = not-linked.
there is this issue that i dont understand, that the pipeline works most of
the time, it fails for 25 % of time.

On Thu, Aug 2, 2018 at 10:14 PM, Ankur Deep Jaiswal <ankur at techgentsia.com>
wrote:

> Hi,
>
> i am trying to add a udp src dynamically to a running pipeline.
> e.g
>
>       void addAudioSource(std::string const ip, int const port, int const
> payloadtype)
>       {
>         std::string description = "autoaudiosrc ! queue ! audioconvert !
> audio/x-raw,rate=16000 ! avenc_g722 ! rtpg722pay";
>
>         audiosrc = Gst::Parse::create_bin(description, true);
>
>         pipeline->add(audiosrc);
>         {
>           auto srcpad = audiosrc->get_static_pad("src");
>           auto sinkpad = rtpbin->get_request_pad("send_rtp_sink_1");
>           srcpad->link(sinkpad);
>         }
>
>         rtpudpsinkAudio->set_property("host", ip);
>         rtpudpsinkAudio->set_property("port", port);
>         rtpudpsinkAudio->set_property("sync",true);
>         rtpudpsinkAudio->set_property("async",false);
>         pipeline->add(rtpudpsinkAudio);
>         {
>           auto srcpad = rtpbin->get_static_pad("send_rtp_src_1");
>           auto sinkpad = rtpudpsinkAudio->get_static_pad("sink");
>           srcpad->link(sinkpad);
>         }
>         pipeline->set_state(Gst::State::STATE_PLAYING);
>     }
>
> --- and ---
>
>       void addAudioSink(std::string const ip, int const port, int const
> payloadtype)
>       {
>         char const caps[] = "application/x-rtp,media=(
> string)audio,clock-rate=(int)8000,payload=(int)%d";
>         char buffer[128] = {0};
>         sprintf(buffer,caps,payloadtype);
>         pipeline->add(rtpudpsrcAudio);
>         rtpudpsrcAudio->set_property("caps",
>             Gst::Caps::create_from_string(buffer));
>         {
>           auto srcpad = rtpudpsrcAudio->get_static_pad("src");
>           auto sinkpad = rtpbin->get_request_pad("recv_rtp_sink_1");
>           srcpad->link(sinkpad);
>         }
>         pipeline->set_state(Gst::State::STATE_PLAYING);
>       }
>
> individually when i am not calling the other function the pipeline works
> fine.
>
> if i try to call addAudioSink some time after addAudioSource  , i always
> get this error when i debug through the application
>
> 0:00:18.190302584 [334m 6945 [00m 0x555556669450 [36mINFO   [00m
> [00;01;34m           GST_EVENT gstevent.c:814:gst_event_new_caps: [00m
> creating caps event application/x-rtp, media=(string)audio,
> clock-rate=(int)8000, payload=(int)9, ssrc=(uint)1388635048
> 0:00:18.190323116 [334m 6945 [00m 0x555556669450 [36mINFO   [00m
> [00m             basesrc gstbasesrc.c:2965:gst_base_
> src_loop:<rtpudpsrcaudio-AVP-d80367f9-8361-458d-a52d-23db4d185996> [00m
> pausing after gst_pad_push() = not-linked
> 0:00:18.190333169 [334m 6945 [00m 0x555556669450 [33;01mWARN   [00m
> [00m             basesrc gstbasesrc.c:3055:gst_base_
> src_loop:<rtpudpsrcaudio-AVP-d80367f9-8361-458d-a52d-23db4d185996> [00m
> error: Internal data stream error.
> 0:00:18.190337616 [334m 6945 [00m 0x555556669450 [33;01mWARN   [00m
> [00m             basesrc gstbasesrc.c:3055:gst_base_
> src_loop:<rtpudpsrcaudio-AVP-d80367f9-8361-458d-a52d-23db4d185996> [00m
> error: streaming stopped, reason not-linked (-1)
> 0:00:18.190350252 [334m 6945 [00m 0x555556669450 [36mINFO   [00m
> [00;01;31;47m    GST_ERROR_SYSTEM gstelement.c:2145:gst_element_
> message_full_with_details:<rtpudpsrcaudio-AVP-d80367f9-8361-458d-a52d-23db4d185996>
> [00m posting message: Internal data stream error.
> 0:00:18.190358717 [334m 6945 [00m 0x555556669450 [36mINFO   [00m
> [00;01;31;47m    GST_ERROR_SYSTEM gstelement.c:2172:gst_element_
> message_full_with_details:<rtpudpsrcaudio-AVP-d80367f9-8361-458d-a52d-23db4d185996>
> [00m posted error message: Internal data stream error.
>
>
> the other thing is that this pipeline works most of the time.
> i am only hit by this error when i debug through the application and
> sometimes when on release build.
>
> please help
>
> --
> Regards
>
> Ankur Deep Jaiswal
>
>


-- 
Regards

Ankur Deep Jaiswal
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20180803/4a2c3856/attachment-0001.html>


More information about the gstreamer-devel mailing list