decoder/faad: allocate DecoderBuffer on stack
This commit is contained in:
parent
3ae0d6f421
commit
ee027f237b
@ -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,
|
|||||||
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
|
||||||
|
Loading…
Reference in New Issue
Block a user