-
Notifications
You must be signed in to change notification settings - Fork 379
Description
I have built the Live555.DLL and live555MediaServer.exe sample on Win-10.
But trying it with rtsp:// and MPC-HomeCinema ver. 2.5.5 triggers an internalError() on an illegal socket given to select():
BasicTaskScheduler::SingleStep(): select() fails: No error
socket numbers used in the select() call: 3(r) 504(r) 508(r) 704(r) 708(r) 712(re) 724(r)In this context a socket-number 3 is illegal. Hence select() returns -1 and WSAGetLastError() == WSAENOTSOCK.
The RTSP traffic looks fine until the actual stream should be transferred. But the PLAY rtsp://10.0.0.10/file.mp3/ request looks fishy for a file.
10.0.0.10 is my adapter's local IP-address. Traffic from the view of live555MediaServer.exe :
recv: OPTIONS rtsp://10.0.0.10:554/file.mp3 RTSP/1.0
CSeq: 1
User-Agent: Lavf62.6.100
sent: RTSP/1.0 200 OK
CSeq: 1
Date: Tue, Nov 18 2025 07:21:28 GMT
Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, GET_PARAMETER, SET_PARAMETER
...
recv: PLAY rtsp://10.0.0.10/file.mp3/ RTSP/1.0 (in GroupsockHelper.cpp + readSocket())
Range: npt=0.000-
CSeq: 4
User-Agent: Lavf62.6.100
Session: 5E00E825
sent: RTSP/1.0 200 OK
CSeq: 4
Date: Tue, Nov 18 2025 07:21:28 GMT
Range: npt=0.000-
Session: 5E00E825
RTP-Info: url=rtsp://10.0.0.10/file.mp3/track1;seq=57004;rtptime=1796717416
And at this point select() tests socket == 3 in the readSet. And boom; internalError() + abort().
So how does it come into BasicTaskScheduler::fReadSet?
Or are we perhaps forced to build with -DNDEBUG on Windows?