public void AddRTPPacket(RTPPacket rtpPacket) { FramePackets.Add(rtpPacket); //if (HasMarker && FramePayload == null) //{ // FramePayload = IsComplete(_packets, payloadHeaderLength); //} }
//public byte[] GetFramePayload() //{ // List<byte> payload = new List<byte>(); // foreach (var rtpPacket in _packets.OrderBy(x => x.Header.SequenceNumber)) // { // if (FrameType == FrameTypesEnum.VP8) // { // var vp8Header = RTPVP8Header.GetVP8Header(rtpPacket.Payload); // payload.AddRange(rtpPacket.Payload.Skip(vp8Header.PayloadDescriptorLength)); // } // else // { // payload.AddRange(rtpPacket.Payload); // } // } // return payload.ToArray(); //} public byte[] GetFramePayload() { var buffer = new System.IO.MemoryStream(); foreach (var packet in FramePackets.OrderBy(x => x.Header.SequenceNumber)) { buffer.Write(packet.Payload, 0, packet.Payload.Length); } return(buffer.GetBuffer()); }