+ while(nsamples >= minbuffer && !escape) {
+ time(&now);
+ if(now > logged + 10) {
+ logged = now;
+ info("%lu samples in buffer (%lus)", nsamples,
+ nsamples / (44100 * 2));
+ }
+ if(packets
+ && ge(next_timestamp, packets->timestamp + packets->nsamples)) {
+ struct packet *p = packets;
+
+ info("dropping buffered past packet %"PRIx32" < %"PRIx32,
+ packets->timestamp, next_timestamp);
+
+ packets = p->next;
+ if(packets)
+ assert(lt(p->timestamp, packets->timestamp));
+ nsamples -= p->nsamples;
+ free(p);
+ pthread_cond_broadcast(&cond);
+ continue;
+ }