summaryrefslogtreecommitdiff
path: root/usr.bin/aucat
diff options
context:
space:
mode:
authorAlexandre Ratchov <ratchov@cvs.openbsd.org>2015-05-16 19:27:54 +0000
committerAlexandre Ratchov <ratchov@cvs.openbsd.org>2015-05-16 19:27:54 +0000
commit9c1ab0ef3b8f8fbf48d2d93ee2f651c530f460f9 (patch)
tree33cda92ddbb9c984587fe5c536bff383607b3b94 /usr.bin/aucat
parent9699ac95deabbaea7414e28440871b611ef9e475 (diff)
Call slot_stop() after the play buffer is drained to properly cleanup
the slot. Fixes periodic glitches occurring after eof is reached, and then playback restarted with a MMC-relocate and MMC-start.
Diffstat (limited to 'usr.bin/aucat')
-rw-r--r--usr.bin/aucat/aucat.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/usr.bin/aucat/aucat.c b/usr.bin/aucat/aucat.c
index e62ac2fd407..ab52872949b 100644
--- a/usr.bin/aucat/aucat.c
+++ b/usr.bin/aucat/aucat.c
@@ -917,13 +917,13 @@ slot_list_mix(unsigned int round, unsigned int pchan, adata_t *pbuf)
if (s->pstate == SLOT_INIT || !(s->mode & SIO_PLAY))
continue;
if (s->pstate == SLOT_STOP && s->buf.used < s->bpf) {
- s->pstate = SLOT_INIT;
#ifdef DEBUG
if (log_level >= 3) {
slot_log(s);
log_puts(": drained, done\n");
}
#endif
+ slot_stop(s);
continue;
}
n = slot_mix_badd(s, dev_pbuf);