[gst-devel] udpsrc odd behaviour building a pipeline with two streams

Tiago Katcipis katcipis at inf.ufsc.br
Mon Nov 16 12:48:39 CET 2009


I'm doing more tests and my problem seens to be udpsrc + udpsink being used
together on the same pipeline. I need to use then together on the same
pipeline because on the future i want to use a tee element to log the near
stream and the far stream on the same file from the voip chat, and i didn't
wanted to use two pipes and mix outside gstreamer.

This simple example wont work, bot streams got locked:
gst-launch -v fakesrc ! identity ! udpsink host=localhost port=6000 udpsrc
port=5000 ! identity ! fakesink

But if i use only udpsink OR udpsrc, it works:
gst-launch -v fakesrc ! identity ! fakesink  udpsrc port=5000 ! identity !
fakesink
gst-launch -v fakesrc ! identity ! udpsink host=localhost port=6000 fakesrc
! identity ! fakesink

An i doing some big mistake on the way I'm using gstreamer to do this?

any help will be appreciated.

best regards,
Katcipis

On Wed, Nov 11, 2009 at 9:15 PM, Tiago Katcipis <katcipis at inf.ufsc.br>wrote:

> I'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.
>
> For example, the following works fine:
>
> *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
> gst-launch udpsrc port=5000
> caps="audio/x-raw-int,rate=44100,channels=1,endianness=1234,width=16,depth=16,signed=true"
> ! identity ! pulsesink*
>
> 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)
>
> *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="audio/x-raw-int,rate=44100,channels=1,endianness=1234,width=16,depth=16,signed=true"
> ! identity ! pulsesink
>
> *I think it is something with udpsrc because if i try:*
> *
> *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="audio/x-raw-int,rate=44100,channels=1,endianness=1234,width=16,depth=16,signed=true"
> ! identity ! pulsesink*
>
> it will not work too, no data reaches the fakesink.
>
> but if i try
>
> *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*
>
> it works just fine. It sens that for some reason the udpsrc makes the
> entire pipeline stop, no data flows on either streams.
>
> I tought it could be some error on pulse with udpsrc, but:
>
> *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="audio/x-raw-int,rate=44100,channels=1,endianness=1234,width=16,depth=16,signed=true"
> ! identity ! fakesink*
>
> wont work either, but if i run on separated gst-launch, it works fine.
>
>
> 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.
>
> The ok code:
> https://svn.inf.ufsc.br/katcipis/c/gstreamer/pipe_voip_ok
>
> The error code:
> https://svn.inf.ufsc.br/katcipis/c/gstreamer/pipe_voip_error
>
> the odd thing is that even if udpsrc didn't receive any data, why is udpsrc
> blocking the entire pipe?
>
> hope someone can help me see what I'm doing wrong.
>
>
> best regards,
> Katcipis
>
>


-- 
"Se você se perder na selva africana, não precisa se desesperar. Basta
sentar em uma pedra e começar a instalar GNU/Linux em seu laptop. Em menos
de 5 minutos aparecerá alguém pra discordar de sua escolha de distribuição,
do particionamento, do gerenciador de janelas, do ambiente de desktop, do
editor de textos..."
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20091116/ba784948/attachment.htm>


More information about the gstreamer-devel mailing list