[FFmpeg-devel] (Reviewing old code) fifo_size=0 in rtpproto.c
george at nsup.org
Wed Mar 26 16:07:53 CET 2014
Le primidi 1er germinal, an CCXXII, Roger Pack a écrit :
> There have been some changes to udp since then, I wonder if it works
> now (the change I'm referring to is that it passes back data in the
> same packet sizes as they were received).
> FWIW. Or maybe it's still broken who knows :)
I would be surprised if the change you are referring to changes anything to
The core of the problem is that RTP uses several sockets, and therefore
needs to multiplex them, using the poll() system call or any equivalent.
With the UDP thread, there are two threads waiting on the socket: the main
thread in poll() for the RTP protocol, and the UDP thread reading
continuously. That is a race condition. Whenever the UDP thread wins the
race, the RTP poll() will miss the packet and stay blocked until the next
The solution would be to replace the poll() with a system that can be
notified of packets by the UDP thread. Doing that cleanly requires designed
a clean I/O / event loop API; I have it as a project but it is still at the
"maturating in my head" stage.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 819 bytes
Desc: Digital signature
More information about the ffmpeg-devel