From ec3568bd97b0ea094df4b480b05a81c1d9db35b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9e=20Ekroth?= Date: Fri, 8 Aug 2014 23:05:24 +0200 Subject: decoder/Mp4v2: fix crash with undefined error When no track is found the error is now properly set. Previously the calling function tried to log an undefined error, which resulted in a crash. MPD falls back to ffmpeg for unsupported tracks, such as ALAC. This should fix issue 4051. --- src/decoder/plugins/Mp4v2DecoderPlugin.cxx | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/decoder/plugins/Mp4v2DecoderPlugin.cxx b/src/decoder/plugins/Mp4v2DecoderPlugin.cxx index 3cdd97167..36d02c81d 100644 --- a/src/decoder/plugins/Mp4v2DecoderPlugin.cxx +++ b/src/decoder/plugins/Mp4v2DecoderPlugin.cxx @@ -91,15 +91,14 @@ mp4_get_aac_track(MP4FileHandle handle, NeAACDecHandle decoder, if (!audio_format_init_checked(audio_format, sample_rate, SampleFormat::S16, channels, - error)) { - error.Set(mp4v2_decoder_domain, - "Invalid audio format"); + error)) continue; - } return id; } + error.Set(mp4v2_decoder_domain, "no valid aac track found"); + return MP4_INVALID_TRACK_ID; } @@ -117,7 +116,6 @@ mp4_faad_new(MP4FileHandle handle, AudioFormat &audio_format, Error &error) const auto track = mp4_get_aac_track(handle, decoder, audio_format, error); if (track == MP4_INVALID_TRACK_ID) { - LogError(error); NeAACDecClose(decoder); return nullptr; } @@ -132,7 +130,7 @@ mp4_file_decode(Decoder &mpd_decoder, Path path_fs) if (handle == MP4_INVALID_FILE_HANDLE) { FormatError(mp4v2_decoder_domain, - "Unable to open file"); + "unable to open file"); return; } -- cgit v1.2.3