Fix original desync after set start time - thx Leon :)

Fix #6511
This commit is contained in:
niksedk 2023-01-01 07:55:25 +01:00
parent 29c9d20743
commit b999bdec6b
3 changed files with 21 additions and 6 deletions

View File

@ -40,7 +40,7 @@
* Fix possible crash in Choosee Profile - thx darnn
* Make "Add missing space" work with non-English letters - thx Redjan
* Fix a few UI issues in "Word lists" - thx Edwin
* Fix crash in ""Sync via other sub"" - thx JP
* Fix crash in "Sync via other sub" - thx JP
3.6.10 (21th November 2022)

View File

@ -1240,9 +1240,25 @@ namespace Nikse.SubtitleEdit.Core.Common
return null;
}
if (index < originalParagraphs.Count && Math.Abs(originalParagraphs[index].StartTime.TotalMilliseconds - paragraph.StartTime.TotalMilliseconds) < 50)
var middle = paragraph.StartTime.TotalMilliseconds + paragraph.Duration.TotalMilliseconds / 2.0;
if (index < originalParagraphs.Count)
{
return originalParagraphs[index];
var o = originalParagraphs[index];
if (Math.Abs(o.StartTime.TotalMilliseconds - paragraph.StartTime.TotalMilliseconds) < 50)
{
return o;
}
if (Math.Abs(o.EndTime.TotalMilliseconds - paragraph.EndTime.TotalMilliseconds) < 50 &&
paragraph.StartTime.TotalMilliseconds < o.EndTime.TotalMilliseconds)
{
return o;
}
if (o.StartTime.TotalMilliseconds < middle && o.EndTime.TotalMilliseconds > middle)
{
return o;
}
}
if (paragraph.StartTime.IsMaxTime && index < originalParagraphs.Count && originalParagraphs[index].StartTime.IsMaxTime)
@ -1261,8 +1277,7 @@ namespace Nikse.SubtitleEdit.Core.Common
foreach (var p in originalParagraphs)
{
if (!p.StartTime.IsMaxTime &&
p.StartTime.TotalMilliseconds > paragraph.StartTime.TotalMilliseconds - 200 &&
p.StartTime.TotalMilliseconds < paragraph.StartTime.TotalMilliseconds + TimeCode.BaseUnit)
p.StartTime.TotalMilliseconds < middle && p.EndTime.TotalMilliseconds > middle)
{
return p;
}

View File

@ -7404,7 +7404,7 @@ namespace Nikse.SubtitleEdit.Forms
{
_subtitle.AddTimeToAllParagraphs(TimeSpan.FromMilliseconds(-Configuration.Settings.General.CurrentVideoOffsetInMs));
}
for (var i = 0; i < oldSubtitle.Paragraphs.Count; i++)
{
if (oldSubtitle.Paragraphs[i].Bookmark != null)