public bool IsComplete()
{
if(!HasMarker)
{
return false;
}
// The frame has the marker bit set. Check that there are no missing sequence numbers.
uint previousSeqNum = 0;
foreach (var rtpPacket in _packets.OrderBy(x => x.Header.SequenceNumber))
{
if (previousSeqNum == 0)
{
previousSeqNum = rtpPacket.Header.SequenceNumber;
//payload.AddRange(rtpPacket.Payload.Skip(payloadHeaderLength));
//payloadPackets.Add(rtpPacket);
}
else if (previousSeqNum != rtpPacket.Header.SequenceNumber - 1)
{
// Missing packet.
return false;
}
else
{
previousSeqNum = rtpPacket.Header.SequenceNumber;
//payload.AddRange(rtpPacket.Payload.Skip(payloadHeaderLength));
//payloadPackets.Add(rtpPacket);
}
}
//return payload.ToArray();
//return Mjpeg.ProcessMjpegFrame(payloadPackets);
return true;
}