public void ParseTest1() { int startIndex = 0; List <RtcpMessage> messages = RtcpMessage.Parse(rawMessage1, ref startIndex, rawMessage1.Length); Assert.AreEqual(rawMessage1.Length, startIndex); Assert.AreEqual(false, messages[0].Padding); Assert.AreEqual(false, messages[1].Padding); Assert.AreEqual(2, messages.Count); Assert.AreEqual(RtcpMessageType.SenderReport, messages[0].MessageType); Assert.AreEqual(RtcpMessageType.SourceDescription, messages[1].MessageType); Assert.AreEqual((UInt32)0x15061, messages[0].SenderReport.Ssrc); Assert.AreEqual((UInt64)0xCEA3F3344AE04C05, messages[0].SenderReport.NtpTimestamp); Assert.AreEqual((UInt32)0x6E04447, messages[0].SenderReport.RtpTimestamp); Assert.AreEqual((UInt32)0x00000023, messages[0].SenderReport.PacketCount); Assert.AreEqual((UInt32)0x00000835, messages[0].SenderReport.OctetCount); Assert.AreEqual(1, messages[0].SenderReport.ReportBlocks.Length); Assert.AreEqual((UInt32)0xEA70896C, messages[0].SenderReport.ReportBlocks[0].SsrcN); Assert.AreEqual((Byte)0x13, messages[0].SenderReport.ReportBlocks[0].FractionLost); Assert.AreEqual((UInt32)0x3, messages[0].SenderReport.ReportBlocks[0].PacketsLost); Assert.AreEqual((UInt32)0xBD47, messages[0].SenderReport.ReportBlocks[0].HighestSequence); Assert.AreEqual((UInt32)0x30, messages[0].SenderReport.ReportBlocks[0].InterarrivalJitter); Assert.AreEqual((UInt32)0x01020304, messages[0].SenderReport.ReportBlocks[0].LastSrTimestamp); Assert.AreEqual((UInt32)0x01020304, messages[0].SenderReport.ReportBlocks[0].DelaySinceLastSr); Assert.AreEqual(1, messages[1].SourceDescription.Chunks.Length); Assert.AreEqual((UInt32)0x15061, messages[1].SourceDescription.Chunks[0].Ssrc); Assert.AreEqual(SourceDescriptionPacketChunk.ItemType.Cname, messages[1].SourceDescription.Chunks[0].Type); Assert.AreEqual(@"user@gizmoproject", messages[1].SourceDescription.Chunks[0].Value); Assert.AreEqual(0, messages[1].SourceDescription.Chunks[0].PrefixLength); }
public void IsRtcpMessageTest() { byte[] bytes1 = new byte[] { 0xff, 0xff, 0xff, 0xff, 0xb2, 0xEA, 0x46, 0x5C, }; byte[] bytes2 = new byte[] { 0xb2, 0xC8, 0x46, 0x5C, }; byte[] bytes3 = new byte[] { 0xb2, 0xC9, 0x46, 0x5C, }; byte[] bytes4 = new byte[] { 0x02, 0xEA, 0x46, 0x5C, }; Assert.IsFalse(RtcpMessage.IsRtcpMessage(bytes1, 4, bytes1.Length)); Assert.IsTrue(RtcpMessage.IsRtcpMessage(bytes2, 0, bytes2.Length)); Assert.IsTrue(RtcpMessage.IsRtcpMessage(bytes3, 0, bytes3.Length)); Assert.IsFalse(RtcpMessage.IsRtcpMessage(bytes4, 0, bytes4.Length)); }
public void ParseTest2() { int startIndex = 0; List <RtcpMessage> messages = RtcpMessage.Parse(rawMessage2, ref startIndex, rawMessage2.Length); Assert.AreEqual(rawMessage2.Length, startIndex); Assert.AreEqual(3, messages.Count); Assert.AreEqual(false, messages[0].Padding); Assert.AreEqual(false, messages[1].Padding); Assert.AreEqual(false, messages[2].Padding); Assert.AreEqual(RtcpMessageType.SenderReport, messages[0].MessageType); Assert.AreEqual(RtcpMessageType.SourceDescription, messages[1].MessageType); Assert.AreEqual(RtcpMessageType.Goodbye, messages[2].MessageType); Assert.AreEqual((UInt32)0x15061, messages[0].SenderReport.Ssrc); Assert.AreEqual((UInt64)0xCEA3F3722B21D53C, messages[0].SenderReport.NtpTimestamp); Assert.AreEqual((UInt32)0x8377AFC3, messages[0].SenderReport.RtpTimestamp); Assert.AreEqual((UInt32)0x0000002E, messages[0].SenderReport.PacketCount); Assert.AreEqual((UInt32)0x000008B9, messages[0].SenderReport.OctetCount); Assert.AreEqual(1, messages[0].SenderReport.ReportBlocks.Length); Assert.AreEqual((UInt32)0x3B5B229E, messages[0].SenderReport.ReportBlocks[0].SsrcN); Assert.AreEqual((Byte)0x0, messages[0].SenderReport.ReportBlocks[0].FractionLost); Assert.AreEqual((UInt32)0x0, messages[0].SenderReport.ReportBlocks[0].PacketsLost); Assert.AreEqual((UInt32)0x8362, messages[0].SenderReport.ReportBlocks[0].HighestSequence); Assert.AreEqual((UInt32)0xFFD253F, messages[0].SenderReport.ReportBlocks[0].InterarrivalJitter); Assert.AreEqual((UInt32)0x0, messages[0].SenderReport.ReportBlocks[0].LastSrTimestamp); Assert.AreEqual((UInt32)0x0, messages[0].SenderReport.ReportBlocks[0].DelaySinceLastSr); Assert.AreEqual(1, messages[1].SourceDescription.Chunks.Length); Assert.AreEqual((UInt32)0x15061, messages[1].SourceDescription.Chunks[0].Ssrc); Assert.AreEqual(SourceDescriptionPacketChunk.ItemType.Cname, messages[1].SourceDescription.Chunks[0].Type); Assert.AreEqual(@"user@gizmoproject", messages[1].SourceDescription.Chunks[0].Value); Assert.AreEqual(0, messages[1].SourceDescription.Chunks[0].PrefixLength); Assert.AreEqual(1, messages[2].Goodbye.Ssrcs.Length); Assert.AreEqual((UInt32)0x15061, messages[2].Goodbye.Ssrcs[0]); Assert.IsNull(messages[2].Goodbye.Reason); }