Commit ee027f23 authored by Max Kellermann's avatar Max Kellermann

decoder/faad: allocate DecoderBuffer on stack

parent 3ae0d6f4
...@@ -307,27 +307,24 @@ faad_decoder_decode(NeAACDecHandle decoder, DecoderBuffer *buffer, ...@@ -307,27 +307,24 @@ faad_decoder_decode(NeAACDecHandle decoder, DecoderBuffer *buffer,
static std::pair<bool, SignedSongTime> static std::pair<bool, SignedSongTime>
faad_get_file_time(InputStream &is) faad_get_file_time(InputStream &is)
{ {
DecoderBuffer *buffer = DecoderBuffer buffer(nullptr, is,
new DecoderBuffer(nullptr, is,
FAAD_MIN_STREAMSIZE * MAX_CHANNELS); FAAD_MIN_STREAMSIZE * MAX_CHANNELS);
auto duration = faad_song_duration(buffer, is); auto duration = faad_song_duration(&buffer, is);
bool recognized = !duration.IsNegative(); bool recognized = !duration.IsNegative();
if (!recognized) { if (!recognized) {
NeAACDecHandle decoder = faad_decoder_new(); NeAACDecHandle decoder = faad_decoder_new();
decoder_buffer_fill(buffer); decoder_buffer_fill(&buffer);
AudioFormat audio_format; AudioFormat audio_format;
if (faad_decoder_init(decoder, buffer, audio_format, if (faad_decoder_init(decoder, &buffer, audio_format,
IgnoreError())) IgnoreError()))
recognized = true; recognized = true;
NeAACDecClose(decoder); NeAACDecClose(decoder);
} }
delete buffer;
return std::make_pair(recognized, duration); return std::make_pair(recognized, duration);
} }
...@@ -414,20 +411,18 @@ faad_stream_decode(Decoder &mpd_decoder, InputStream &is, ...@@ -414,20 +411,18 @@ faad_stream_decode(Decoder &mpd_decoder, InputStream &is,
static void static void
faad_stream_decode(Decoder &mpd_decoder, InputStream &is) faad_stream_decode(Decoder &mpd_decoder, InputStream &is)
{ {
DecoderBuffer *buffer = DecoderBuffer buffer(&mpd_decoder, is,
new DecoderBuffer(&mpd_decoder, is,
FAAD_MIN_STREAMSIZE * MAX_CHANNELS); FAAD_MIN_STREAMSIZE * MAX_CHANNELS);
/* create the libfaad decoder */ /* create the libfaad decoder */
const NeAACDecHandle decoder = faad_decoder_new(); const NeAACDecHandle decoder = faad_decoder_new();
faad_stream_decode(mpd_decoder, is, buffer, decoder); faad_stream_decode(mpd_decoder, is, &buffer, decoder);
/* cleanup */ /* cleanup */
NeAACDecClose(decoder); NeAACDecClose(decoder);
delete buffer;
} }
static bool static bool
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment