I&#39;m building a pipeline to use on a voip application, i started building a very simple one, one stream generates the audio and sends it with udpsink the other receives audio at udpsrc and play it at pulsesink. For test purposes i send the audio to myself. But the odd thing is that it only works when i use separated pipelines to build the send and the receive streams. <br>
<br>For example, the following works fine:<br><br><b>gst-launch -v audiotestsrc ! identity ! audioconvert ! audio/x-raw-int,rate=44100,channels=1,endianness=1234,width=16,depth=16,signed=true ! udpsink host=127.0.0.1 port=5000<br>
gst-launch udpsrc port=5000 caps=&quot;audio/x-raw-int,rate=44100,channels=1,endianness=1234,width=16,depth=16,signed=true&quot; ! identity ! pulsesink</b><br><br>But if i use only one pipeline to do the work, it starts just ok....but nothing happens (and no data pass through the identity0 or identity1)<br>
<br><b>gst-launch -v audiotestsrc ! identity ! audioconvert !
audio/x-raw-int,rate=44100,channels=1,endianness=1234,width=16,depth=16,signed=true
! udpsink host=127.0.0.1 port=5000 udpsrc port=5000
caps=&quot;audio/x-raw-int,rate=44100,channels=1,endianness=1234,width=16,depth=16,signed=true&quot;
! identity ! pulsesink<br><br></b>I think it is something with udpsrc because if i try:<b><br></b><br>
<b>gst-launch -v audiotestsrc ! identity ! audioconvert !
audio/x-raw-int,rate=44100,channels=1,endianness=1234,width=16,depth=16,signed=true
! fakesink udpsrc port=5000
caps=&quot;audio/x-raw-int,rate=44100,channels=1,endianness=1234,width=16,depth=16,signed=true&quot;
! identity ! pulsesink</b><br><br>it will not work too, no data reaches the fakesink.<br><br>but if i try<br><br><b>gst-launch -v audiotestsrc ! identity ! audioconvert !
audio/x-raw-int,rate=44100,channels=1,endianness=1234,width=16,depth=16,signed=true
! udpsink host=127.0.0.1 port=5000 audiotestsrc
! identity ! pulsesink</b><br><br>it works just fine. It sens that for some reason the udpsrc makes the entire pipeline stop, no data flows on either streams.<br><br>I tought it could be some error on pulse with udpsrc, but:<br>

<br>
<b>gst-launch -v audiotestsrc ! identity ! 
audio/x-raw-int,rate=44100,channels=1,endianness=1234,width=16,depth=16,signed=true
! fakesink udpsrc port=5000
caps=&quot;audio/x-raw-int,rate=44100,channels=1,endianness=1234,width=16,depth=16,signed=true&quot;
! identity ! fakesink</b><br>
<br>
wont work either, but if i run on separated gst-launch, it works fine.<br><br><br>i even have made some source code to test this, the same example that works on different pipelines wont work if it is made on only one pipeline.<br>
<br>The ok code:<br><a href="https://svn.inf.ufsc.br/katcipis/c/gstreamer/pipe_voip_ok">https://svn.inf.ufsc.br/katcipis/c/gstreamer/pipe_voip_ok</a><br><br>The error code:<br><a href="https://svn.inf.ufsc.br/katcipis/c/gstreamer/pipe_voip_error">https://svn.inf.ufsc.br/katcipis/c/gstreamer/pipe_voip_error</a><br>
<br>the odd thing is that even if udpsrc didn&#39;t receive any data, why is udpsrc blocking the entire pipe? <br><br>hope someone can help me see what I&#39;m doing wrong.<br><br><br>best regards,<br>Katcipis<br><br>