fix opus & vorbis last decode

This commit is contained in:
philippe44
2022-11-10 23:05:17 -08:00
parent 6c524cd094
commit a81d0e0513
2 changed files with 10 additions and 4 deletions

View File

@@ -44,6 +44,7 @@
struct opus {
struct OggOpusFile *of;
bool end;
#if FRAME_BUF
u8_t *write_buf;
#endif
@@ -118,7 +119,7 @@ static decode_state opus_decompress(void) {
LOCK_S;
if (stream.state <= DISCONNECT && !_buf_used(streambuf)) {
if (stream.state <= DISCONNECT && u->end) {
UNLOCK_S;
return DECODE_COMPLETE;
}
@@ -170,6 +171,8 @@ static decode_state opus_decompress(void) {
frames = process.max_in_frames;
write_buf = process.inbuf;
);
u->end = frames == 0;
// write the decoded frames into outputbuf then unpack them (they are 16 bits)
n = OP(u, read, u->of, (opus_int16*) write_buf, frames * channels, NULL);
@@ -260,7 +263,8 @@ static void opus_open(u8_t size, u8_t rate, u8_t chan, u8_t endianness) {
} else {
OP(u, free, u->of);
u->of = NULL;
}
}
u->end = false;
}
static void opus_close(void) {