=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/sndiod/dev.c,v retrieving revision 1.29 retrieving revision 1.30 diff -c -r1.29 -r1.30 *** src/usr.bin/sndiod/dev.c 2017/11/03 17:12:59 1.29 --- src/usr.bin/sndiod/dev.c 2017/11/07 11:41:07 1.30 *************** *** 1,4 **** ! /* $OpenBSD: dev.c,v 1.29 2017/11/03 17:12:59 ratchov Exp $ */ /* * Copyright (c) 2008-2012 Alexandre Ratchov * --- 1,4 ---- ! /* $OpenBSD: dev.c,v 1.30 2017/11/07 11:41:07 ratchov Exp $ */ /* * Copyright (c) 2008-2012 Alexandre Ratchov * *************** *** 1709,1715 **** enc_init(&s->sub.enc, &s->par, slot_nch); s->sub.encbuf = xmalloc(s->round * slot_nch * sizeof(adata_t)); ! enc_sil_do(&s->sub.enc, s->sub.buf.data, s->appbufsz); } else { memset(s->sub.buf.data, 0, s->appbufsz * slot_nch * sizeof(adata_t)); --- 1709,1728 ---- enc_init(&s->sub.enc, &s->par, slot_nch); s->sub.encbuf = xmalloc(s->round * slot_nch * sizeof(adata_t)); ! } ! ! /* ! * cmap_copy() doesn't write samples in all channels, ! * for instance when mono->stereo conversion is ! * disabled. So we have to prefill cmap_copy() output ! * with silence. ! */ ! if (s->sub.resampbuf) { ! memset(s->sub.resampbuf, 0, ! d->round * slot_nch * sizeof(adata_t)); ! } else if (s->sub.encbuf) { ! memset(s->sub.encbuf, 0, ! s->round * slot_nch * sizeof(adata_t)); } else { memset(s->sub.buf.data, 0, s->appbufsz * slot_nch * sizeof(adata_t));