From ee027f237b1fb53972d574d3c6efa16c49d8692d Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 22 Sep 2014 08:29:07 +0200 Subject: decoder/faad: allocate DecoderBuffer on stack --- src/decoder/plugins/FaadDecoderPlugin.cxx | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) (limited to 'src/decoder/plugins/FaadDecoderPlugin.cxx') diff --git a/src/decoder/plugins/FaadDecoderPlugin.cxx b/src/decoder/plugins/FaadDecoderPlugin.cxx index 6a2744243..7ae36ff3e 100644 --- a/src/decoder/plugins/FaadDecoderPlugin.cxx +++ b/src/decoder/plugins/FaadDecoderPlugin.cxx @@ -307,27 +307,24 @@ faad_decoder_decode(NeAACDecHandle decoder, DecoderBuffer *buffer, static std::pair faad_get_file_time(InputStream &is) { - DecoderBuffer *buffer = - new DecoderBuffer(nullptr, is, - FAAD_MIN_STREAMSIZE * MAX_CHANNELS); - auto duration = faad_song_duration(buffer, is); + DecoderBuffer buffer(nullptr, is, + FAAD_MIN_STREAMSIZE * MAX_CHANNELS); + auto duration = faad_song_duration(&buffer, is); bool recognized = !duration.IsNegative(); if (!recognized) { NeAACDecHandle decoder = faad_decoder_new(); - decoder_buffer_fill(buffer); + decoder_buffer_fill(&buffer); AudioFormat audio_format; - if (faad_decoder_init(decoder, buffer, audio_format, + if (faad_decoder_init(decoder, &buffer, audio_format, IgnoreError())) recognized = true; NeAACDecClose(decoder); } - delete buffer; - return std::make_pair(recognized, duration); } @@ -414,20 +411,18 @@ faad_stream_decode(Decoder &mpd_decoder, InputStream &is, static void faad_stream_decode(Decoder &mpd_decoder, InputStream &is) { - DecoderBuffer *buffer = - new DecoderBuffer(&mpd_decoder, is, - FAAD_MIN_STREAMSIZE * MAX_CHANNELS); + DecoderBuffer buffer(&mpd_decoder, is, + FAAD_MIN_STREAMSIZE * MAX_CHANNELS); /* create the libfaad decoder */ const NeAACDecHandle decoder = faad_decoder_new(); - faad_stream_decode(mpd_decoder, is, buffer, decoder); + faad_stream_decode(mpd_decoder, is, &buffer, decoder); /* cleanup */ NeAACDecClose(decoder); - delete buffer; } static bool -- cgit v1.2.3