Skip to content

'internalError() in 'BasicTaskScheduler()' #64

@gvanem

Description

@gvanem

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions