From c38918fc03faf3ab040e369f592149d0c71baac4 Mon Sep 17 00:00:00 2001 From: Nikolaj Olsson Date: Fri, 1 May 2020 09:11:02 +0200 Subject: [PATCH] Improve reading of faulty DVD SUP files - thx GCRaistlin :) --- Changelog.txt | 1 + src/Forms/Main.cs | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Changelog.txt b/Changelog.txt index a51b8e1e41..476e9a8cbc 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -64,6 +64,7 @@ * Add Arabic no-break-after list - thx OmrSi * Titlebar changed to: "*file - SE" - thx Signy13/GCRaistlin * Remove default alignment in TTML 1.0 - thx Arjan + * Improve reading of faulty DVD SUP files - thx GCRaistlin * FIXED: * Fix extraction from MKV via drag-n-drop - thx ryvec/Symos404/uckthis * Fix issue with line break in MS translate - thx cocowash diff --git a/src/Forms/Main.cs b/src/Forms/Main.cs index 4c4aeaee81..76d6eaa45d 100644 --- a/src/Forms/Main.cs +++ b/src/Forms/Main.cs @@ -12066,7 +12066,7 @@ private bool LoadTextSTFromMatroska(MatroskaTrackInfo matroskaSubtitleInfo, Matr { _fileName = matroska.Path.Remove(matroska.Path.Length - 4) + GetCurrentSubtitleFormat().Extension; } - + SetTitle(); _fileDateTime = new DateTime(); _converted = true; @@ -13253,6 +13253,11 @@ private void ImportAndOcrSpDvdSup(string fileName, bool showInTaskbar) buffer = new byte[SpHeader.SpHeaderLength]; bytesRead = fs.Read(buffer, 0, buffer.Length); + while (bytesRead == buffer.Length && Encoding.ASCII.GetString(buffer, 0, 2) != "SP") + { + fs.Seek(fs.Position - buffer.Length + 1, SeekOrigin.Begin); + bytesRead = fs.Read(buffer, 0, buffer.Length); + } header = new SpHeader(buffer); } }