diff --git a/aegisub/src/audio_provider_ffmpegsource.cpp b/aegisub/src/audio_provider_ffmpegsource.cpp index 48e425409b79911a1c71ccb6d777720dbbe63feb..cabfca9de82f67f00af2bbaf6528ed94b25de15f 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<int,wxString> 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 f131a773befd64847fcf846cf4401239513e20b6..ce28e6839e7cd9b456ce072247dc89850e179c8a 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<int,wxString> TrackList = GetTracksOfType(Indexer, FFMS_TYPE_VIDEO); if (TrackList.size() <= 0)