In codecs/amr.go HandleRtpPacket:
if packet.SequenceNumber <= amr.lastSeq { return nil, errors.New("Ignore out of sequence") }
However this check should consider the sequence number wrapping around. The sequence number is a 16bit unsigned number and its initial value (the sequence number of the first RTP packet) is random.
I see that lastSeq is never set, it is always 0. So, the above check is always false. When lastSeq will be set, the sequence number wrapping around should be considered.
In codecs/amr.go HandleRtpPacket:
if packet.SequenceNumber <= amr.lastSeq { return nil, errors.New("Ignore out of sequence") }
However this check should consider the sequence number wrapping around. The sequence number is a 16bit unsigned number and its initial value (the sequence number of the first RTP packet) is random.I see that lastSeq is never set, it is always 0. So, the above check is always false. When lastSeq will be set, the sequence number wrapping around should be considered.