Initiating resync when receiving strange packet

The packet type 0x56, sequence number 0, containing 4 bytes (the first two are the sequence number of the previously requested packet) initiates a resync. Not sure what this packet is supposed to do, but it occurs after heavy requesting resending of packets. Seems to be an out of sync situation, so resyncing is not the worst idea.

Signed-off-by: Gregor Fabritius <gre@g0r.de>
This commit is contained in:
Gregor Fabritius
2012-07-16 01:27:08 +02:00
parent c4ec84d398
commit 643f57d52b
+11 -4
View File
@@ -451,10 +451,17 @@ static void *rtp_thread_func(void *arg) {
plen -= 12;
// check if packet contains enough content to be reasonable
if (plen < 16)
continue;
buffer_put_packet(seqno, pktp, plen);
if (plen >= 16) {
buffer_put_packet(seqno, pktp, plen);
} else {
// resync?
if (type == 0x56 && seqno == 0) {
fprintf(stderr, "Suspected resync request packet received. Initiating resync.\n");
pthread_mutex_lock(&ab_mutex);
ab_resync();
pthread_mutex_unlock(&ab_mutex);
}
}
}
}