internal void AddReceiverReport(CompoundPacketBuilder cpb) { // Update the values rr.SSRC = ssrc; rr.PacketsLost = packetsLost; rr.FractionLost = (byte)((float)packetsLost / (float)(packetsReceived + packetsLost) * 100F); // TODO - figure out how to calculate / interpret these values, especially Seq - JVE // rr.Jitter = ?; // rr.LastSenderReport = ?; // rr.DelaySinceLastSenderReport = ?; // rr.ExtendedHighestSequence = ?; cpb.Add_ReceiverReport(rr); }
internal void AddReceiverReport(CompoundPacketBuilder cpb) { // Update the values rr.SSRC = ssrc; rr.PacketsLost = packetsLost; // andrew: this is obviously not what the spec says, but it's easier to compute and // to use for diagnostics... rr.ExtendedHighestSequence = packetsReceived; // andrew: this also is incorrect: the spec says this should be calculated per // interval rather than per session rr.FractionLost = (byte)((float)packetsLost / (float)(packetsReceived + packetsLost) * 100F); // TODO - figure out how to calculate / interpret these values, especially Seq - JVE // rr.Jitter = ?; // rr.LastSenderReport = ?; // rr.DelaySinceLastSenderReport = ?; // rr.ExtendedHighestSequence = ?; cpb.Add_ReceiverReport(rr); }