decoder/opus: allocate buffer only in the first chained song

Fixes memory leak.  That's what we get for
This commit is contained in:
Max Kellermann
2020-07-01 20:56:50 +02:00
parent 5ca137c73c
commit 46eab05045
2 changed files with 7 additions and 2 deletions

View File

@@ -192,8 +192,12 @@ MPDOpusDecoder::OnOggBeginning(const ogg_packet &packet)
client.Ready(audio_format, eos_granulepos > 0, duration);
frame_size = audio_format.GetFrameSize();
output_buffer = new opus_int16[opus_output_buffer_frames
* audio_format.channels];
if (output_buffer == nullptr)
/* note: if we ever support changing the channel count
in chained streams, we need to reallocate this
buffer instead of keeping it */
output_buffer = new opus_int16[opus_output_buffer_frames
* audio_format.channels];
auto cmd = client.GetCommand();
if (cmd != DecoderCommand::NONE)