live555 icon indicating copy to clipboard operation
live555 copied to clipboard

'internalError() in 'BasicTaskScheduler()'

Open gvanem opened this issue 1 month ago • 0 comments

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?

gvanem avatar Nov 18 '25 09:11 gvanem