<div dir="ltr">Dear all, <div><br></div><div>This is my first post and I'd like to start with thanking you all for the great work you've done so far! It's amazing really!</div><div><br></div><div>Now to my question. Is it possible to use parse-launch for multiple ssrc's on the same rtpsrc?</div>
<div><br></div><div>Receiver:</div><div>gst-launch-0.10 -v gstrtpbin name=rtpbin udpsrc caps="application/x-rtp,media=(string)audio,clock-rate=(int)8000,encoding-name=(string)PCMU" port=5000 ! rtpbin.recv_rtp_sink_0 rtpbin. ! rtppcmudepay ! mulawdec ! alsasink                         udpsrc port=5001 ! rtpbin.recv_rtcp_sink_0 rtpbin.send_rtcp_src_0 ! udpsink port=5005 sync=false async=false<br>
</div><div><br></div><div>Senders:</div><div>gst-launch-0.10 -v audiotestsrc freq=1000 ! mulawenc ! rtppcmupay ! udpsink host=127.0.0.1 port=5000<br></div><div><br></div><div>The first sender comes through alright, but the second one crashes it.</div>
<div><br></div><div><div>Setting pipeline to PAUSED ...</div><div>Pipeline is live and does not need PREROLL ...</div><div>Setting pipeline to PLAYING ...</div><div>New clock: GstSystemClock</div><div>/GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:send_rtcp_src_0: caps = application/x-rtcp</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSession:rtpsession0.GstPad:send_rtcp_src: caps = application/x-rtcp</div><div>/GstPipeline:pipeline0/GstUDPSink:udpsink0.GstPad:sink: caps = application/x-rtcp</div><div>
/GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:send_rtcp_src_0.GstProxyPad:proxypad2: caps = application/x-rtcp</div><div>/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSession:rtpsession0.GstPad:recv_rtp_sink: caps = application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)PCMU</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:recv_rtp_sink_0: caps = application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)PCMU</div><div>/GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:recv_rtp_sink_0.GstProxyPad:proxypad0: caps = application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)PCMU</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSession:rtpsession0.GstPad:recv_rtp_src: caps = application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)PCMU</div><div>/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSsrcDemux:rtpssrcdemux0.GstPad:sink: caps = application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)PCMU</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpJitterBuffer:rtpjitterbuffer0.GstPad:src: caps = application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)PCMU</div><div>/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpJitterBuffer:rtpjitterbuffer0.GstPad:sink: caps = application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)PCMU</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpPtDemux:rtpptdemux0.GstPad:sink: caps = application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)PCMU</div><div>/GstPipeline:pipeline0/GstRtpPcmuDepay:rtppcmudepay0.GstPad:src: caps = audio/x-mulaw, channels=(int)1, rate=(int)8000</div>
<div>/GstPipeline:pipeline0/GstRtpPcmuDepay:rtppcmudepay0.GstPad:sink: caps = application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)PCMU, payload=(int)0</div><div>/GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:recv_rtp_src_0_4128931428_0.GstProxyPad:proxypad3: caps = application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)PCMU, payload=(int)0</div>
<div>/GstPipeline:pipeline0/GstMuLawDec:mulawdec0.GstPad:src: caps = audio/x-raw-int, width=(int)16, depth=(int)16, endianness=(int)1234, signed=(boolean)true, rate=(int)8000, channels=(int)1</div><div>/GstPipeline:pipeline0/GstMuLawDec:mulawdec0.GstPad:sink: caps = audio/x-mulaw, channels=(int)1, rate=(int)8000</div>
<div>/GstPipeline:pipeline0/GstAlsaSink:alsasink0.GstPad:sink: caps = audio/x-raw-int, width=(int)16, depth=(int)16, endianness=(int)1234, signed=(boolean)true, rate=(int)8000, channels=(int)1</div><div>/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpJitterBuffer:rtpjitterbuffer1.GstPad:src: caps = application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)PCMU</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpJitterBuffer:rtpjitterbuffer1.GstPad:sink: caps = application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)PCMU</div><div>/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpPtDemux:rtpptdemux1.GstPad:sink: caps = application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)PCMU</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:recv_rtp_src_0_3622823938_0.GstProxyPad:proxypad4: caps = application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)PCMU, payload=(int)0</div>
<div>ERROR: from element /GstPipeline:pipeline0/GstUDPSrc:udpsrc0: Internal data flow error.</div><div>Additional debug info:</div><div>gstbasesrc.c(2625): gst_base_src_loop (): /GstPipeline:pipeline0/GstUDPSrc:udpsrc0:</div>
<div>streaming task paused, reason not-linked (-1)</div><div>Execution ended after 6593780888 ns.</div><div>Setting pipeline to PAUSED ...</div><div>Setting pipeline to READY ...</div><div>/GstPipeline:pipeline0/GstUDPSink:udpsink0.GstPad:sink: caps = NULL</div>
<div>/GstPipeline:pipeline0/GstAlsaSink:alsasink0.GstPad:sink: caps = NULL</div><div>/GstPipeline:pipeline0/GstMuLawDec:mulawdec0.GstPad:src: caps = NULL</div><div>/GstPipeline:pipeline0/GstMuLawDec:mulawdec0.GstPad:sink: caps = NULL</div>
<div>/GstPipeline:pipeline0/GstRtpPcmuDepay:rtppcmudepay0.GstPad:src: caps = NULL</div><div>/GstPipeline:pipeline0/GstRtpPcmuDepay:rtppcmudepay0.GstPad:sink: caps = NULL</div><div>/GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:recv_rtp_src_0_3622823938_0: caps = NULL</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:recv_rtp_src_0_4128931428_0: caps = NULL</div><div>/GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:send_rtcp_src_0: caps = NULL</div><div>/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpPtDemux:rtpptdemux1.GstPad:src_0: caps = NULL</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpPtDemux:rtpptdemux1.GstPad:sink: caps = NULL</div><div>/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpJitterBuffer:rtpjitterbuffer1.GstPad:sink: caps = NULL</div><div>/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpJitterBuffer:rtpjitterbuffer1.GstPad:src: caps = NULL</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpPtDemux:rtpptdemux0.GstPad:src_0: caps = NULL</div><div>/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpPtDemux:rtpptdemux0.GstPad:sink: caps = NULL</div><div>/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpJitterBuffer:rtpjitterbuffer0.GstPad:sink: caps = NULL</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpJitterBuffer:rtpjitterbuffer0.GstPad:src: caps = NULL</div><div>/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSsrcDemux:rtpssrcdemux0.GstPad:src_-672143358: caps = NULL</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSsrcDemux:rtpssrcdemux0.GstPad:src_-166035868: caps = NULL</div><div>/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSsrcDemux:rtpssrcdemux0.GstPad:sink: caps = NULL</div><div>
/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSession:rtpsession0.GstPad:send_rtcp_src: caps = NULL</div><div>/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSession:rtpsession0.GstPad:recv_rtp_src: caps = NULL</div><div>/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSession:rtpsession0.GstPad:recv_rtp_sink: caps = NULL</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:recv_rtp_sink_0: caps = NULL</div><div>/GstPipeline:pipeline0/GstUDPSrc:udpsrc0.GstPad:src: caps = NULL</div><div>Setting pipeline to NULL ...</div><div>Freeing pipeline ...</div>
</div><div><br></div><div><br></div><div>I know that 1.0 has been released, but for different reasons I cannot use that on my system (Debian) and I don't know if this works in the 1.0 version.</div><div><br></div><div>
If this does not work with parse-launch, would the alternative be to create the pipeline 'manually' and for each new pad (pad_added callback) add a new depay/decode/sink.</div><div><br></div><div>Thanks in advance - Magnus</div>
</div>