mirror of https://github.com/odrling/Aegisub
Check the error code when FFMS2 can't create an indexer
Creating an indexer can fail for reasons other than the file not existing. This check is still not completely correct, since FFMS2 uses the wrong error codes in a bunch of places.
This commit is contained in:
parent
f8a6c71a21
commit
73cc2d21c6
|
@ -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)
|
||||
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)
|
||||
|
|
|
@ -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)
|
||||
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)
|
||||
|
|
Loading…
Reference in New Issue