diff --git a/aegisub/src/audio_provider_ffmpegsource.cpp b/aegisub/src/audio_provider_ffmpegsource.cpp index 48e425409..cabfca9de 100644 --- a/aegisub/src/audio_provider_ffmpegsource.cpp +++ b/aegisub/src/audio_provider_ffmpegsource.cpp @@ -76,8 +76,12 @@ void FFmpegSourceAudioProvider::LoadAudio(wxString filename) { wxString FileNameShort = wxFileName(filename).GetShortPath(); FFMS_Indexer *Indexer = FFMS_CreateIndexer(FileNameShort.utf8_str(), &ErrInfo); - if (!Indexer) - throw agi::FileNotFoundError(ErrInfo.Buffer); + if (!Indexer) { + if (ErrInfo.SubType == FFMS_ERROR_FILE_READ) + throw agi::FileNotFoundError(ErrInfo.Buffer); + else + throw agi::AudioDataNotFoundError(ErrInfo.Buffer, 0); + } std::map TrackList = GetTracksOfType(Indexer, FFMS_TYPE_AUDIO); if (TrackList.size() <= 0) diff --git a/aegisub/src/video_provider_ffmpegsource.cpp b/aegisub/src/video_provider_ffmpegsource.cpp index f131a773b..ce28e6839 100644 --- a/aegisub/src/video_provider_ffmpegsource.cpp +++ b/aegisub/src/video_provider_ffmpegsource.cpp @@ -89,8 +89,12 @@ void FFmpegSourceVideoProvider::LoadVideo(wxString filename) { wxString FileNameShort = wxFileName(filename).GetShortPath(); FFMS_Indexer *Indexer = FFMS_CreateIndexer(FileNameShort.utf8_str(), &ErrInfo); - if (!Indexer) - throw agi::FileNotFoundError(ErrInfo.Buffer); + if (!Indexer) { + if (ErrInfo.SubType == FFMS_ERROR_FILE_READ) + throw agi::FileNotFoundError(ErrInfo.Buffer); + else + throw VideoNotSupported(ErrInfo.Buffer); + } std::map TrackList = GetTracksOfType(Indexer, FFMS_TYPE_VIDEO); if (TrackList.size() <= 0)