--- oss.c.orig Mon Jul 26 01:00:48 2004 +++ oss.c Mon Jul 26 01:04:45 2004 @@ -796,12 +796,13 @@ play = MIN (left, bytes); written = write (s->fd, (void *) ((uint32_t) s->buf + s->rpos), play); - if (-1 == written) { + if (written < 0) { if (EAGAIN == errno || EINTR == errno) { return; } else { - ERRFail ("write audio"); + fprintf (stderr, "write failed, errno=%d\n", errno); + return; } } @@ -895,6 +896,9 @@ elapsed += s->leftover; } } + + if (elapsed < 1024) + return 0; if (elapsed > free) { lwarn ("audio can not keep up elapsed %d free %d\n", elapsed, free);