From 86aaac802db4ea053a351b3da321ebec0d11ba61 Mon Sep 17 00:00:00 2001 From: David Hampton Date: Tue, 11 Aug 2020 09:28:08 -0400 Subject: [PATCH] Put subtitle reading inside a try/catch statement. --- .../libmythtv/captions/textsubtitleparser.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/mythtv/libs/libmythtv/captions/textsubtitleparser.cpp b/mythtv/libs/libmythtv/captions/textsubtitleparser.cpp index bc57a2ed71b..6081f473dd7 100644 --- a/mythtv/libs/libmythtv/captions/textsubtitleparser.cpp +++ b/mythtv/libs/libmythtv/captions/textsubtitleparser.cpp @@ -358,12 +358,19 @@ void TextSubtitleParser::LoadSubtitles(const QString &fileName, sub_data.rbuffer_text = ba.data(); sub_data.rbuffer_len = ba.size(); - if (!sub_read_file(&sub_data)) + try { - // Don't delete[] sub_data.rbuffer_text; because the - // QByteArray destructor will clean up. - LOG(VB_VBI, LOG_ERR, QString("Failed to read subtitles from '%1'") - .arg(fileName)); + if (!sub_read_file(&sub_data)) + { + // Don't delete[] sub_data.rbuffer_text; because the + // QByteArray destructor will clean up. + LOG(VB_VBI, LOG_ERR, QString("Failed to read subtitles from '%1'") + .arg(fileName)); + return; + } + } catch (std::exception& e) { + LOG(VB_VBI, LOG_ERR, + QString("Exception reading subtitles file (%1)").arg(e.what())); return; }