ref: 87db9c3769d0012481f6382edcb48855bcf7482c
parent: 56664b608a19917f33b0c35f3191cbb538da0cce
parent: 451158e6cf1a5457b47098ab6c476bacf76bedf3
author: cinap_lenrek <cinap_lenrek@gmx.de>
date: Wed Nov 6 17:19:59 EST 2013
merge
--- a/sys/src/cmd/audio/mp3dec/main.c
+++ b/sys/src/cmd/audio/mp3dec/main.c
@@ -46,7 +46,7 @@
rate = pcm->samplerate;
chans = pcm->channels;
- snprint(fmt, sizeof(fmt), "s32r%dc%d", rate, chans);
+ snprint(fmt, sizeof(fmt), "s%dr%dc%d", MAD_F_FRACBITS+1, rate, chans);
if(ifd >= 0){close(ifd);
@@ -82,6 +82,13 @@
p = buf + j*4;
for(i=0; i < pcm->length; i++){v = *s++;
+
+ /* clipping */
+ if(v >= MAD_F_ONE)
+ v = MAD_F_ONE-1;
+ else if(v < -MAD_F_ONE)
+ v = -MAD_F_ONE;
+
p[0] = v, v>>=8;
p[1] = v, v>>=8;
p[2] = v, v>>=8;
--
⑨