Compare commits

...

2 Commits

Author SHA1 Message Date
Philippe G
fd9158e7c1 no need for aac protection - release
issue was (my bad) in LMS
2020-12-23 16:23:19 -08:00
Philippe G
effd24ccd4 aac was more complicated - best is to ignore last 128 bytes - release 2020-12-23 02:16:29 -08:00

View File

@@ -431,19 +431,12 @@ static decode_state helixaac_decode(void) {
}
// we always have at least WRAPBUF_LEN unless it's the end of a stream
/* There is a bug in helixaac where it overflows its buffer when not having
* samples and enters an infinite loop so we can't do here the proper test
* if (bytes_wrap < WRAPBUF_LEN && bytes_wrap != bytes_total)
* but instead we'll zero the wrap buf and provide a safe overflow space
* for the decoder
*/
if (bytes_wrap < WRAPBUF_LEN) {
if (bytes_wrap < WRAPBUF_LEN && bytes_wrap != bytes_total) {
// build a linear buffer if we are crossing the end of streambuf
memcpy(a->wrap_buf, streambuf->readp, bytes_wrap);
memcpy(a->wrap_buf + bytes_wrap, streambuf->buf, min(WRAPBUF_LEN, bytes_total) - bytes_wrap);
sptr = a->wrap_buf;
if (bytes_total < WRAPBUF_LEN) memset(a->wrap_buf + bytes_total, 0, WRAPBUF_LEN - bytes_total);
else bytes = bytes_wrap = min(WRAPBUF_LEN, bytes_total);
bytes = bytes_wrap = min(WRAPBUF_LEN, bytes_total);
} else {
sptr = streambuf->readp;
bytes = bytes_wrap;