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.
This commit is contained in:
parent
7a048f004d
commit
ec3568bd97
@ -91,15 +91,14 @@ mp4_get_aac_track(MP4FileHandle handle, NeAACDecHandle decoder,
|
|||||||
if (!audio_format_init_checked(audio_format, sample_rate,
|
if (!audio_format_init_checked(audio_format, sample_rate,
|
||||||
SampleFormat::S16,
|
SampleFormat::S16,
|
||||||
channels,
|
channels,
|
||||||
error)) {
|
error))
|
||||||
error.Set(mp4v2_decoder_domain,
|
|
||||||
"Invalid audio format");
|
|
||||||
continue;
|
continue;
|
||||||
}
|
|
||||||
|
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
error.Set(mp4v2_decoder_domain, "no valid aac track found");
|
||||||
|
|
||||||
return MP4_INVALID_TRACK_ID;
|
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);
|
const auto track = mp4_get_aac_track(handle, decoder, audio_format, error);
|
||||||
|
|
||||||
if (track == MP4_INVALID_TRACK_ID) {
|
if (track == MP4_INVALID_TRACK_ID) {
|
||||||
LogError(error);
|
|
||||||
NeAACDecClose(decoder);
|
NeAACDecClose(decoder);
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
@ -132,7 +130,7 @@ mp4_file_decode(Decoder &mpd_decoder, Path path_fs)
|
|||||||
|
|
||||||
if (handle == MP4_INVALID_FILE_HANDLE) {
|
if (handle == MP4_INVALID_FILE_HANDLE) {
|
||||||
FormatError(mp4v2_decoder_domain,
|
FormatError(mp4v2_decoder_domain,
|
||||||
"Unable to open file");
|
"unable to open file");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user