From 06eebda835e00582e70890890aad08beaf63db05 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 6 Feb 2024 11:33:12 +0100 Subject: [PATCH] Don't give confusing errors about WEBVTT when there are errors in a Subrip file (#2733). --- cscript | 2 +- src/lib/string_text_file.cc | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/cscript b/cscript index 413161741..6c43e05b6 100644 --- a/cscript +++ b/cscript @@ -508,7 +508,7 @@ def dependencies(target, options): deps = [] deps.append(('libdcp', 'v1.8.94')) - deps.append(('libsub', 'v1.6.46')) + deps.append(('libsub', 'v1.6.47')) deps.append(('leqm-nrt', '30dcaea1373ac62fba050e02ce5b0c1085797a23')) deps.append(('rtaudio', 'f619b76')) # We get our OpenSSL libraries from the environment, but we diff --git a/src/lib/string_text_file.cc b/src/lib/string_text_file.cc index 348ccd1d5..9b43b35a6 100644 --- a/src/lib/string_text_file.cc +++ b/src/lib/string_text_file.cc @@ -25,6 +25,7 @@ #include "string_text_file_content.h" #include #include +#include #include #include #include @@ -105,9 +106,14 @@ StringTextFile::StringTextFile (shared_ptr content) if (ext == ".srt") { try { reader.reset(new sub::SubripReader(utf8.get())); - } catch (...) { - /* Sometimes files are have the .srt extension but are really WEBVTT */ - reader.reset(new sub::WebVTTReader(utf8.get())); + } catch (sub::SubripError& subrip_error) { + /* Sometimes files are have the .srt extension but are really WEBVTT... */ + try { + reader.reset(new sub::WebVTTReader(utf8.get())); + } catch (sub::WebVTTHeaderError&) { + /* ...but in this case there isn't even a WebVTT error */ + throw subrip_error; + } } } else if (ext == ".ssa" || ext == ".ass") { reader.reset(new sub::SSAReader(utf8.get())); -- 2.30.2