[Live-devel] RTSP MediaSession.cpp patch for RTP/RTCP for multicast

Ross Finlayson finlayson at live555.com
Fri Jan 15 14:46:54 PST 2010

>I am using VLC 0.9.10 with live555 snapshot live.2010.01.13.tar.gz

Are you sure?  VLC disagrees:

>User-Agent: VLC media player (LIVE555 Streaming Media v2009.07.27)

Nonetheless, the problem you describe applies even to newer versions:

>BasicTaskScheduler::SingleStep(): select() fails: Bad file descriptor
>[00000703] main decoder debug: thread started
>By turning on debugging I was able to ascertain that the problem was 
>that the fd_set socket handle mask for the 'select()' call was not 
>getting updated when RTP and RTCP sockets were closed and reopened 
>with different file descriptor values because of a multicast 
>address/port changed flagged by the RTSP stack.

Yes, you're right - you identified a bug.  (This arose because your 
server is doing something rather unusual (but still legal): define 
the destination multicast address in the RTSP "SETUP" response.)

The problem was our implementation of the "changePort()" function.  I 
have now changed this so that it calls "bind()" directly, rather than 
indirectly via closing and reopening sockets.

I have installed a new version (2010.01.15) of the code that - I hope 
fixes this problem.

Ross Finlayson
Live Networks, Inc.

More information about the live-devel mailing list