Ross, I apologize for that. I should have spotted that bug a mile away… Thanks again for the help.
From: live-devel [mailto:live-devel-boun...@ns.live555.com] On Behalf Of Ross Finlayson Sent: Thursday, January 22, 2015 5:56 PM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] Encapsulate PassiveMediaServerSubsession in a derived ServerMediaSession However I am getting errors at runtime (on Windows specifically). I am seeing a “BasicTaskScheduler::SingleStep(): select fails: No error socket numbers used in the select call: 120(r) 128(r)”. FYI, these errors are occurring because you have closed two sockets - presumably the RTP and RTCP "Groupsock" objects - without also disabling background read handling on those sockets. The problem is probably this code: Groupsock rtpGroupsock(env, destinationAddress, rtpPort, ttl); rtpGroupsock.multicastSendOnly(); // we're a SSM source Groupsock rtcpGroupsock(env, destinationAddress, rtcpPort, ttl); rtcpGroupsock.multicastSendOnly(); // we're a SSM source You have probably put this code in a function, which you call (and return from) before calling "doEventLoop()". The problem with this is that, because these "Groupsock" objects are declared on the stack, they are automatically destroyed when you leave the function. To overcome this, create these objects on the heap instead - i.e., Groupsock* rtpGroupsock = new Groupsock(env, destinationAddress, rtpPort, ttl); rtpGroupsock->multicastSendOnly(); // we're a SSM source Groupsock* rtcpGroupsock = new Groupsock(env, destinationAddress, rtcpPort, ttl); rtcpGroupsock->multicastSendOnly(); // we're a SSM source Ross Finlayson Live Networks, Inc. http://www.live555.com/
_______________________________________________ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel