diff --git a/components/squeezelite/opus.c b/components/squeezelite/opus.c index ac893d90..e89e5af6 100644 --- a/components/squeezelite/opus.c +++ b/components/squeezelite/opus.c @@ -352,6 +352,8 @@ static decode_state opus_decompress(void) { static void opus_open(u8_t size, u8_t rate, u8_t chan, u8_t endianness) { if (u->decoder) OP(&gu, decoder_destroy, u->decoder); + u->decoder = NULL; + if (!u->overbuf) u->overbuf = malloc(MAX_OPUS_FRAMES * BYTES_PER_FRAME); u->status = OGG_SYNC; @@ -364,6 +366,7 @@ static void opus_open(u8_t size, u8_t rate, u8_t chan, u8_t endianness) { static void opus_close(void) { if (u->decoder) OP(&gu, decoder_destroy, u->decoder); + u->decoder = NULL; free(u->overbuf); u->overbuf = NULL;