+ } else if (!packet_buffer.empty() &&
+ tdiff(packet_buffer.top().ts, now) > TIMEOUT_SEC) {
+ printf("Gave up waiting for packets [%d,%d> (timeout)\n",
+ last_seq + 1, packet_buffer.top().seq);
+ silence = true;
+ last_seq = packet_buffer.top().seq - 1;
+ // TODO: Rerun immediately after we've cleared out,
+ // in case there are more timeouts.
+ }
+
+ // In case of restarts.
+ if (packet_buffer.empty() &&
+ seq < last_seq &&
+ tdiff(last_sent_packet, now) > 5.0) {
+ printf("No good data for five seconds, resetting sequence to %d\n", seq);
+ last_seq = seq - 1;