Sender data wrapping into receiver side of gstrtpbin pipelines

Wes Miller wmiller at sdr.com
Fri Mar 15 12:05:14 PDT 2013


A note:  because I need to talk about both the app sending data to my
receiver pipeline and about the sender pipeline I use to talk back, I am
going to make a convention of talking about receiver and sender only in
reference to pipelines and talker and listener to mean the app at the other
end.

I have an application with a gst_parse_launch()-ed version of the gsgtrtpbin
audio receiver and sender taken directly from the examples.  They run in
separate threads in, obviously, separate pipeline.  Both threads gst_init()
and have separate g_main_loops.

The config is also straight out of the example:  The RTP port is 5002 to
5002 and RTCP criss-crosses on 5003/5007 though I made that configurable.

I added a padprobe to the udpsrc src pad in the receiver pipeline.  It calls
(callback) a service function each time data passes through the pad.  That
service routine gets the talker's ip address for me and tells me the if the
current data came from the same place the last data came from, i.e if I'm
receiving from the same talker.

I expect to get data from other talkers.  I use it as a kind of call-waiting
indicator except I dump the first call and answer the next one.

I don't know why yet, but my sender side data is wrapping into my receiver. 
Not nice.  Apparently the sender is sending data to the right place (I hear
at the listener) but I also hear "myself".

Any suggestions on solving this will be greatly appreciated.

I did have a couple of possible ideas that I simply don't know how to do. 
So, help here would be great too.

1.  Note that the data I got came from "me" and simplly discard it.  That'd
mean telling the pipe to throw away this packet/buffer/frame.  Can;t just
return false from the padprobe, that disconnects it.  Is there a way to tell
the pipeline to dump this frame and either just ignore that fact or to fake
an empty frame in the pipeline?

Or, perhaps,  a sorting element (???) that would send one sender to the
"left" and the other to the "right" in a tee?

Thanks for any ideas or debugging tricks,

Wes





--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Sender-data-wrapping-into-receiver-side-of-gstrtpbin-pipelines-tp4659148.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.


More information about the gstreamer-devel mailing list