diff --git a/core/subtitle_provider.cpp b/core/subtitle_provider.cpp index 7deebdb9e..d2e299cc8 100644 --- a/core/subtitle_provider.cpp +++ b/core/subtitle_provider.cpp @@ -50,6 +50,12 @@ SubtitleProvider::Class::Class(wxString name) SubtitleProvider *SubtitleProvider::Class::GetProvider(wxString provider_name, AssFile *subs) { - return (*classes)[provider_name]->Get(subs); + SubtitleProvider::Class *sp; + if (!classes) + throw _T("Subtitle provider not found"); + sp = (*classes)[provider_name]; + if (!sp) + throw _T("Subtitle provider not found"); + return sp->Get(subs); } diff --git a/core/video_provider_lavc.cpp b/core/video_provider_lavc.cpp index 7bb76e764..2376a4a5c 100644 --- a/core/video_provider_lavc.cpp +++ b/core/video_provider_lavc.cpp @@ -72,7 +72,11 @@ LAVCVideoProvider::LAVCVideoProvider(wxString filename, wxString subfilename) { LoadVideo(filename); // Attach subtitles - SubtitleProvider::Class::GetProvider(_T("asa"), AssFile::top)->Bind(this); + try { + SubtitleProvider::Class::GetProvider(_T("asa"), AssFile::top)->Bind(this); + } catch (...) { + /* warn user? */ + } }