Thanks Ross.
Will do.
John
Ross Finlayson wrote:
> The "ReflectorSocket::ProcessPacket()" routine (in
> "APIModules/QTSSReflectorModule/ReflectorStream.cpp") performs a series of
> tests on incoming packets, before deciding whether to 'reflect' them.
>
> First, it calls FilterInvalidSSRCs() to check whether the incoming packet's
> SSRC (RTP/RTCP source id) is valid. (It does this by assuming that the
> SSRC of the first packet it receives is the legitimate source, and that any
> other SSRC it sees later is illegitimate.)
>
> Next, for incoming RTCP packets, it checks whether the packet is a RTCP SR
> (Sender Report) packet, because these are the only RTCP packets that get
> reflected.
>
> However, these two tests should be reversed: The RTCP SR test should come
> before the FilterInvalidSSRCs() test.
>
> The reason for this is that if the first received RTCP packet is a RR
> (Reception Report) packet (e.g., from the DSS itself), then its SSRC (which
> will be different from that of the sender) will be considered the
> 'legitimate' source. Subsequent RTCP SR packets will then be ignored,
> even though they are from coming the actual data source.
>
> I have seen this happen several times in practice. Quite often, RTCP SR
> packets from the source will not get reflected, because a RR (from someone
> else) arrived first.
>
> Reversing the order of those two tests in
> "ReflectorSocket::ProcessPacket()" should fix the problem.
>
> Ross Finlayson
> LIVE.COM
> <http://www.live.com/>
> _______________________________________________
> streaming-server-developers mailing list | email@hidden
> Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/streaming-server-developers
> Do not post admin requests to the list. They will be ignored.
_______________________________________________
streaming-server-developers mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/streaming-server-developers
Do not post admin requests to the list. They will be ignored.