update brrUtils

This commit is contained in:
tildearrow 2022-09-25 00:44:05 -05:00
parent e75f23fa61
commit 608254f07a
1 changed files with 8 additions and 5 deletions

View File

@ -100,30 +100,33 @@ long brrEncode(short* buf, unsigned char* out, long len, long loopStart) {
} }
#define DO_ONE_SAMPLE \ #define DO_ONE_SAMPLE \
if (next&8) next|=0xfffffff8; \ if (next&8) next|=0xfffffff0; \
\ \
next<<=(buf[0]>>4); /* range */ \ next<<=(buf[0]>>4); /* range */ \
next>>=1; \
\ \
switch (control&0xc) { /* filter */ \ switch (control&0xc) { /* filter */ \
case 0: \ case 0: \
break; \ break; \
case 4: \ case 4: \
next+=(last1*15)/16; \ next+=last1+((-last1)>>4); \
break; \ break; \
case 8: \ case 8: \
next+=((last2*61)/32)-((last1*15)/16); \ next+=last1*2+((-last1*3)>>5)-last2+(last2>>4); \
break; \ break; \
case 12: \ case 12: \
next+=((last2*115)/64)-((last1*13)/16); \ next+=last1*2+((-last1*13)>>6)-last2+((last2*3)>>4); \
break; \ break; \
} \ } \
\ \
if (next>32767) next=32767; \ if (next>32767) next=32767; \
if (next<-32768) next=-32768; \ if (next<-32768) next=-32768; \
next&=0x7fff; \
if (next&0x4000) next|=0xffff8000; \
\ \
last2=last1; \ last2=last1; \
last1=next; \ last1=next; \
*out=next; \ *out=next<<1; \
out++; out++;
// TODO: // TODO: