I just read the rtcp.cpp and find a problem in multicast mode. In RTCPInstance::incomingReportHandler1(), from line 342 :
[...]
Here, the mechanism to prevent endless loop seems not perfect, checking the variables fHaveJustSentPacket and fLastPacketSentSize is not enough.
Yes, you're correct. As you noted, this is a problem if we're a SSM source, because (in that case) we want to resend the incoming packet back to the multicast group, and if the packet originated from us, then this would cause a 'packet storm'.
To avoid this bug we must enable the code in Groupsock::multicastSendOnly(), so the server will not received any multicast packets that it just sent out.
Unfortunately we can't do that, because some OSs have a bug whereby multicast sending doesn't work if we don't also join the group.
What I've done instead is change the RTCP code so that we send the incoming packet back to the multicast group only if we know for sure that the packet originated from another host. This should avoid the possibility of a 'packet storm'.
I've now installed a new version (2011.06.12 ) of the code that includes this change.
-- 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