[gst-devel] gstrtpbin race condition

Wes Miller wmiller at sdr.com
Tue Nov 9 16:20:24 CET 2010


I have created a gstrtpbin based sender/receiver program where the same
gstrtpbin services both the incoming and outgoing streams.  When the program
starts I can watch (via print statements) as pads are added and connections
are made.  The connection from recv_rtp_src_%d_%d_%d to the receive pipe,
i.e. the depayloader, waits until a packet is received from the remote host. 
This works great so long as the remote host sends a packet, but if it
doesn't, I am deadlocked.

In particular, when I use my programs for both ends of the connection, I see
both get down to waiting for recv_rtp_src_%d_%d_%d to connect.  Neither ever
gets to running because it is waiting on the other.  a classic race
condition. (or is that a Mexican Standoff?)

So, I'd like a suggestion on how to get things rolling.  Do I somehow need
to start a local pipe that send data to myself to get me kicked off?  Is
there a way to force gstrtpbin to create recv_rtp_src_%d_%d_%d without
seeing an inbound packet?  Or should I mux the udpsrc with an audiotestsrc
(with num-buffers = 1 or 5 or ???) to fool the gstrtpbin into thinking it is
seeing (bad) traffic?

Warmly,

Wes



-- 
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/gstrtpbin-race-condition-tp3034437p3034437.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.




More information about the gstreamer-devel mailing list