mirror of
https://github.com/SubtitleEdit/subtitleedit.git
synced 2024-11-22 11:12:36 +01:00
parent
cf04f04957
commit
62b433ab6e
@ -133,6 +133,7 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
UiUtil.FixFonts(this);
|
UiUtil.FixFonts(this);
|
||||||
Icon = (Icon)icon.Clone();
|
Icon = (Icon)icon.Clone();
|
||||||
|
DoubleBuffered = true;
|
||||||
|
|
||||||
_cancellationTokenSource = new CancellationTokenSource();
|
_cancellationTokenSource = new CancellationTokenSource();
|
||||||
progressBar1.Visible = false;
|
progressBar1.Visible = false;
|
||||||
@ -1428,7 +1429,7 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
item.SubItems[3].Text = LanguageSettings.Current.BatchConvert.Ocr + " " + progress;
|
item.SubItems[3].Text = LanguageSettings.Current.BatchConvert.Ocr + " " + progress;
|
||||||
};
|
};
|
||||||
vobSubOcr.FileName = Path.GetFileName(fileName);
|
vobSubOcr.FileName = Path.GetFileName(fileName);
|
||||||
vobSubOcr.InitializeBatch(vobSubs, idx.Palette, Configuration.Settings.VobSubOcr, fileName, false, track.Language, _ocrEngine);
|
vobSubOcr.InitializeBatch(vobSubs, idx.Palette, Configuration.Settings.VobSubOcr, fileName, false, track.Language, _ocrEngine, _cancellationTokenSource.Token);
|
||||||
sub = vobSubOcr.SubtitleFromOcr;
|
sub = vobSubOcr.SubtitleFromOcr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1481,7 +1482,7 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
item.SubItems[3].Text = LanguageSettings.Current.BatchConvert.Ocr + " " + progress;
|
item.SubItems[3].Text = LanguageSettings.Current.BatchConvert.Ocr + " " + progress;
|
||||||
};
|
};
|
||||||
vobSubOcr.FileName = Path.GetFileName(fileName);
|
vobSubOcr.FileName = Path.GetFileName(fileName);
|
||||||
vobSubOcr.InitializeBatch(bluRaySubtitles, Configuration.Settings.VobSubOcr, fileName, false, track.Language, _ocrEngine);
|
vobSubOcr.InitializeBatch(bluRaySubtitles, Configuration.Settings.VobSubOcr, fileName, false, track.Language, _ocrEngine, _cancellationTokenSource.Token);
|
||||||
sub = vobSubOcr.SubtitleFromOcr;
|
sub = vobSubOcr.SubtitleFromOcr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1525,7 +1526,7 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
vobSubOcr.FileName = Path.GetFileName(fileName);
|
vobSubOcr.FileName = Path.GetFileName(fileName);
|
||||||
|
|
||||||
//TODO: fix
|
//TODO: fix
|
||||||
vobSubOcr.InitializeBatch(binaryParagraphs.Cast<IBinaryParagraph>().ToList(), Configuration.Settings.VobSubOcr, fileName, false, track.Language, _ocrEngine);
|
vobSubOcr.InitializeBatch(binaryParagraphs.Cast<IBinaryParagraph>().ToList(), Configuration.Settings.VobSubOcr, fileName, false, track.Language, _ocrEngine, _cancellationTokenSource.Token);
|
||||||
sub = vobSubOcr.SubtitleFromOcr;
|
sub = vobSubOcr.SubtitleFromOcr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1592,7 +1593,7 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
vobSubOcr.FileName = Path.GetFileName(fileName);
|
vobSubOcr.FileName = Path.GetFileName(fileName);
|
||||||
vobSubOcr.InitializeBatch(bluRaySubtitles, Configuration.Settings.VobSubOcr, fileName, false, _ocrLanguage, _ocrEngine);
|
vobSubOcr.InitializeBatch(bluRaySubtitles, Configuration.Settings.VobSubOcr, fileName, false, _ocrLanguage, _ocrEngine, _cancellationTokenSource.Token);
|
||||||
sub = vobSubOcr.SubtitleFromOcr;
|
sub = vobSubOcr.SubtitleFromOcr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1617,7 +1618,7 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
lastProgress = progress;
|
lastProgress = progress;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
vobSubOcr.InitializeBatch(fileName, Configuration.Settings.VobSubOcr, false, _ocrEngine, _ocrLanguage);
|
vobSubOcr.InitializeBatch(fileName, Configuration.Settings.VobSubOcr, false, _ocrEngine, _ocrLanguage, _cancellationTokenSource.Token);
|
||||||
sub = vobSubOcr.SubtitleFromOcr;
|
sub = vobSubOcr.SubtitleFromOcr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1687,7 +1688,7 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
var language = programMapTableParser.GetSubtitleLanguage(id);
|
var language = programMapTableParser.GetSubtitleLanguage(id);
|
||||||
language = string.IsNullOrEmpty(language) ? _ocrLanguage : language;
|
language = string.IsNullOrEmpty(language) ? _ocrLanguage : language;
|
||||||
vobSubOcr.FileName = Path.GetFileName(fileName);
|
vobSubOcr.FileName = Path.GetFileName(fileName);
|
||||||
vobSubOcr.InitializeBatch(tsBinaryParagraphs, Configuration.Settings.VobSubOcr, fileName, false, language, _ocrEngine);
|
vobSubOcr.InitializeBatch(tsBinaryParagraphs, Configuration.Settings.VobSubOcr, fileName, false, language, _ocrEngine, _cancellationTokenSource.Token);
|
||||||
subtitle = vobSubOcr.SubtitleFromOcr;
|
subtitle = vobSubOcr.SubtitleFromOcr;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1852,6 +1853,10 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
{
|
{
|
||||||
item.SubItems[3].Text = LanguageSettings.Current.BatchConvert.FilterSkipped;
|
item.SubItems[3].Text = LanguageSettings.Current.BatchConvert.FilterSkipped;
|
||||||
}
|
}
|
||||||
|
else if (_abort)
|
||||||
|
{
|
||||||
|
item.SubItems[3].Text = "Cancelled";
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (binaryParagraphs.Count == 0)
|
if (binaryParagraphs.Count == 0)
|
||||||
|
@ -24,10 +24,12 @@ using System.Net;
|
|||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using System.Xml;
|
using System.Xml;
|
||||||
using MessageBox = Nikse.SubtitleEdit.Forms.SeMsgBox.MessageBox;
|
using MessageBox = Nikse.SubtitleEdit.Forms.SeMsgBox.MessageBox;
|
||||||
|
using Timer = System.Windows.Forms.Timer;
|
||||||
|
|
||||||
namespace Nikse.SubtitleEdit.Forms.Ocr
|
namespace Nikse.SubtitleEdit.Forms.Ocr
|
||||||
{
|
{
|
||||||
@ -263,6 +265,7 @@ namespace Nikse.SubtitleEdit.Forms.Ocr
|
|||||||
private XmlDocument _compareDoc = new XmlDocument();
|
private XmlDocument _compareDoc = new XmlDocument();
|
||||||
private Point _manualOcrDialogPosition = new Point(-1, -1);
|
private Point _manualOcrDialogPosition = new Point(-1, -1);
|
||||||
private volatile bool _abort;
|
private volatile bool _abort;
|
||||||
|
private CancellationToken _cancellationToken = CancellationToken.None;
|
||||||
private int _selectedIndex = -1;
|
private int _selectedIndex = -1;
|
||||||
private VobSubOcrSettings _vobSubOcrSettings;
|
private VobSubOcrSettings _vobSubOcrSettings;
|
||||||
private bool _italicCheckedLast;
|
private bool _italicCheckedLast;
|
||||||
@ -678,8 +681,9 @@ namespace Nikse.SubtitleEdit.Forms.Ocr
|
|||||||
comboBoxDictionaries.SelectedIndexChanged += comboBoxDictionaries_SelectedIndexChanged;
|
comboBoxDictionaries.SelectedIndexChanged += comboBoxDictionaries_SelectedIndexChanged;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void InitializeBatch(string vobSubFileName, VobSubOcrSettings vobSubOcrSettings, bool forcedOnly, string ocrEngine, string language = null)
|
internal void InitializeBatch(string vobSubFileName, VobSubOcrSettings vobSubOcrSettings, bool forcedOnly, string ocrEngine, string language, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
|
_cancellationToken = cancellationToken;
|
||||||
Initialize(vobSubFileName, vobSubOcrSettings, null, true);
|
Initialize(vobSubFileName, vobSubOcrSettings, null, true);
|
||||||
FormVobSubOcr_Shown(null, null);
|
FormVobSubOcr_Shown(null, null);
|
||||||
checkBoxShowOnlyForced.Checked = forcedOnly;
|
checkBoxShowOnlyForced.Checked = forcedOnly;
|
||||||
@ -768,7 +772,7 @@ namespace Nikse.SubtitleEdit.Forms.Ocr
|
|||||||
_subtitle.Paragraphs[i].Text = text;
|
_subtitle.Paragraphs[i].Text = text;
|
||||||
|
|
||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
if (_abort)
|
if (_abort || _cancellationToken.IsCancellationRequested)
|
||||||
{
|
{
|
||||||
SetButtonsEnabledAfterOcrDone();
|
SetButtonsEnabledAfterOcrDone();
|
||||||
return;
|
return;
|
||||||
@ -872,13 +876,15 @@ namespace Nikse.SubtitleEdit.Forms.Ocr
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void InitializeBatch(IList<IBinaryParagraph> subtitles, VobSubOcrSettings vobSubOcrSettings, string fileName, bool forcedOnly, string language = null, string ocrEngine = null)
|
internal void InitializeBatch(IList<IBinaryParagraph> subtitles, VobSubOcrSettings vobSubOcrSettings, string fileName, bool forcedOnly, string language, string ocrEngine, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
if (subtitles.Count == 0)
|
if (subtitles.Count == 0)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_cancellationToken = cancellationToken;
|
||||||
|
|
||||||
if (subtitles.First() is TransportStreamSubtitle)
|
if (subtitles.First() is TransportStreamSubtitle)
|
||||||
{
|
{
|
||||||
var tssList = new List<TransportStreamSubtitle>();
|
var tssList = new List<TransportStreamSubtitle>();
|
||||||
@ -922,13 +928,14 @@ namespace Nikse.SubtitleEdit.Forms.Ocr
|
|||||||
checkBoxNOcrDrawUnknownLetters.Checked = oldNOcrDrawText;
|
checkBoxNOcrDrawUnknownLetters.Checked = oldNOcrDrawText;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void InitializeBatch(List<BluRaySupParser.PcsData> subtitles, VobSubOcrSettings vobSubOcrSettings, string fileName, bool forcedOnly, string language = null, string ocrEngine = null)
|
internal void InitializeBatch(List<BluRaySupParser.PcsData> subtitles, VobSubOcrSettings vobSubOcrSettings, string fileName, bool forcedOnly, string language, string ocrEngine, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
Initialize(subtitles, vobSubOcrSettings, fileName);
|
Initialize(subtitles, vobSubOcrSettings, fileName);
|
||||||
_ocrMethodIndex = Configuration.Settings.VobSubOcr.LastOcrMethod == "Tesseract4" ? _ocrMethodTesseract5 : _ocrMethodTesseract302;
|
_ocrMethodIndex = Configuration.Settings.VobSubOcr.LastOcrMethod == "Tesseract4" ? _ocrMethodTesseract5 : _ocrMethodTesseract302;
|
||||||
var oldNOcrDrawText = checkBoxNOcrDrawUnknownLetters.Checked;
|
var oldNOcrDrawText = checkBoxNOcrDrawUnknownLetters.Checked;
|
||||||
|
|
||||||
InitializeOcrEngineBatch(language, ocrEngine);
|
InitializeOcrEngineBatch(language, ocrEngine);
|
||||||
|
_cancellationToken = cancellationToken;
|
||||||
|
|
||||||
checkBoxShowOnlyForced.Checked = forcedOnly;
|
checkBoxShowOnlyForced.Checked = forcedOnly;
|
||||||
DoBatch();
|
DoBatch();
|
||||||
@ -958,11 +965,12 @@ namespace Nikse.SubtitleEdit.Forms.Ocr
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void InitializeBatch(List<VobSubMergedPack> vobSubMergedPackList, List<Color> palette, VobSubOcrSettings vobSubOcrSettings, string fileName, bool forcedOnly, string language, string ocrEngine)
|
internal void InitializeBatch(List<VobSubMergedPack> vobSubMergedPackList, List<Color> palette, VobSubOcrSettings vobSubOcrSettings, string fileName, bool forcedOnly, string language, string ocrEngine, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
Initialize(vobSubMergedPackList, palette, vobSubOcrSettings, language);
|
Initialize(vobSubMergedPackList, palette, vobSubOcrSettings, language);
|
||||||
checkBoxShowOnlyForced.Checked = forcedOnly;
|
checkBoxShowOnlyForced.Checked = forcedOnly;
|
||||||
InitializeOcrEngineBatch(language, ocrEngine);
|
InitializeOcrEngineBatch(language, ocrEngine);
|
||||||
|
_cancellationToken = cancellationToken;
|
||||||
DoBatch();
|
DoBatch();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1058,7 +1066,7 @@ namespace Nikse.SubtitleEdit.Forms.Ocr
|
|||||||
_subtitle.Paragraphs[i].Text = text;
|
_subtitle.Paragraphs[i].Text = text;
|
||||||
|
|
||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
if (_abort)
|
if (_abort || _cancellationToken.IsCancellationRequested)
|
||||||
{
|
{
|
||||||
SetButtonsEnabledAfterOcrDone();
|
SetButtonsEnabledAfterOcrDone();
|
||||||
return;
|
return;
|
||||||
|
@ -575,7 +575,7 @@ namespace Nikse.SubtitleEdit.Logic.CommandLineConvert
|
|||||||
_stdOutWriter?.Write($"\r{LanguageSettings.Current.BatchConvert.Ocr} : {progress}");
|
_stdOutWriter?.Write($"\r{LanguageSettings.Current.BatchConvert.Ocr} : {progress}");
|
||||||
};
|
};
|
||||||
vobSubOcr.FileName = Path.GetFileName(fileName);
|
vobSubOcr.FileName = Path.GetFileName(fileName);
|
||||||
vobSubOcr.InitializeBatch(vobSubs, idx.Palette, Configuration.Settings.VobSubOcr, fileName, false, lang, ocrEngine);
|
vobSubOcr.InitializeBatch(vobSubs, idx.Palette, Configuration.Settings.VobSubOcr, fileName, false, lang, ocrEngine, CancellationToken.None);
|
||||||
_stdOutWriter?.WriteLine();
|
_stdOutWriter?.WriteLine();
|
||||||
sub = vobSubOcr.SubtitleFromOcr;
|
sub = vobSubOcr.SubtitleFromOcr;
|
||||||
}
|
}
|
||||||
@ -614,7 +614,7 @@ namespace Nikse.SubtitleEdit.Logic.CommandLineConvert
|
|||||||
_stdOutWriter?.Write($"\r{LanguageSettings.Current.BatchConvert.Ocr} : {progress}");
|
_stdOutWriter?.Write($"\r{LanguageSettings.Current.BatchConvert.Ocr} : {progress}");
|
||||||
};
|
};
|
||||||
vobSubOcr.FileName = Path.GetFileName(fileName);
|
vobSubOcr.FileName = Path.GetFileName(fileName);
|
||||||
vobSubOcr.InitializeBatch(bluRaySubtitles, Configuration.Settings.VobSubOcr, fileName, false, lang, ocrEngine);
|
vobSubOcr.InitializeBatch(bluRaySubtitles, Configuration.Settings.VobSubOcr, fileName, false, lang, ocrEngine, CancellationToken.None);
|
||||||
_stdOutWriter?.WriteLine();
|
_stdOutWriter?.WriteLine();
|
||||||
sub = vobSubOcr.SubtitleFromOcr;
|
sub = vobSubOcr.SubtitleFromOcr;
|
||||||
}
|
}
|
||||||
@ -652,7 +652,7 @@ namespace Nikse.SubtitleEdit.Logic.CommandLineConvert
|
|||||||
_stdOutWriter?.Write($"\r{LanguageSettings.Current.BatchConvert.Ocr} : {progress}");
|
_stdOutWriter?.Write($"\r{LanguageSettings.Current.BatchConvert.Ocr} : {progress}");
|
||||||
};
|
};
|
||||||
vobSubOcr.FileName = Path.GetFileName(fileName);
|
vobSubOcr.FileName = Path.GetFileName(fileName);
|
||||||
vobSubOcr.InitializeBatch(binaryParagraphs.Cast<IBinaryParagraph>().ToList(), Configuration.Settings.VobSubOcr, fileName, false, lang, ocrEngine);
|
vobSubOcr.InitializeBatch(binaryParagraphs.Cast<IBinaryParagraph>().ToList(), Configuration.Settings.VobSubOcr, fileName, false, lang, ocrEngine, CancellationToken.None);
|
||||||
_stdOutWriter?.WriteLine();
|
_stdOutWriter?.WriteLine();
|
||||||
sub = vobSubOcr.SubtitleFromOcr;
|
sub = vobSubOcr.SubtitleFromOcr;
|
||||||
}
|
}
|
||||||
@ -988,7 +988,7 @@ namespace Nikse.SubtitleEdit.Logic.CommandLineConvert
|
|||||||
_stdOutWriter?.Write($"\r{LanguageSettings.Current.BatchConvert.Ocr} : {progress}");
|
_stdOutWriter?.Write($"\r{LanguageSettings.Current.BatchConvert.Ocr} : {progress}");
|
||||||
};
|
};
|
||||||
vobSubOcr.FileName = Path.GetFileName(fileName);
|
vobSubOcr.FileName = Path.GetFileName(fileName);
|
||||||
vobSubOcr.InitializeBatch(bluRaySubtitles, Configuration.Settings.VobSubOcr, fileName, forcedOnly, ocrDb, ocrEngine);
|
vobSubOcr.InitializeBatch(bluRaySubtitles, Configuration.Settings.VobSubOcr, fileName, forcedOnly, ocrDb, ocrEngine, CancellationToken.None);
|
||||||
_stdOutWriter?.WriteLine();
|
_stdOutWriter?.WriteLine();
|
||||||
sub = vobSubOcr.SubtitleFromOcr;
|
sub = vobSubOcr.SubtitleFromOcr;
|
||||||
_stdOutWriter?.WriteLine($"Extracted subtitles from file \"{fileName}\"");
|
_stdOutWriter?.WriteLine($"Extracted subtitles from file \"{fileName}\"");
|
||||||
@ -1014,7 +1014,7 @@ namespace Nikse.SubtitleEdit.Logic.CommandLineConvert
|
|||||||
{
|
{
|
||||||
_stdOutWriter?.Write($"\r{LanguageSettings.Current.BatchConvert.Ocr} : {progress}");
|
_stdOutWriter?.Write($"\r{LanguageSettings.Current.BatchConvert.Ocr} : {progress}");
|
||||||
};
|
};
|
||||||
vobSubOcr.InitializeBatch(fileName, Configuration.Settings.VobSubOcr, forcedOnly, ocrEngine, ocrDb);
|
vobSubOcr.InitializeBatch(fileName, Configuration.Settings.VobSubOcr, forcedOnly, ocrEngine, ocrDb, CancellationToken.None);
|
||||||
_stdOutWriter?.WriteLine();
|
_stdOutWriter?.WriteLine();
|
||||||
sub = vobSubOcr.SubtitleFromOcr;
|
sub = vobSubOcr.SubtitleFromOcr;
|
||||||
_stdOutWriter?.WriteLine($"Extracted subtitles from file \"{fileName}\"");
|
_stdOutWriter?.WriteLine($"Extracted subtitles from file \"{fileName}\"");
|
||||||
@ -1423,7 +1423,7 @@ namespace Nikse.SubtitleEdit.Logic.CommandLineConvert
|
|||||||
_stdOutWriter?.Write($"\r{LanguageSettings.Current.BatchConvert.Ocr} : {progress}");
|
_stdOutWriter?.Write($"\r{LanguageSettings.Current.BatchConvert.Ocr} : {progress}");
|
||||||
};
|
};
|
||||||
vobSubOcr.FileName = Path.GetFileName(fileName);
|
vobSubOcr.FileName = Path.GetFileName(fileName);
|
||||||
vobSubOcr.InitializeBatch(binaryParagraphs.Cast<IBinaryParagraph>().ToList(), Configuration.Settings.VobSubOcr, fileName, false, null, ocrEngine);
|
vobSubOcr.InitializeBatch(binaryParagraphs.Cast<IBinaryParagraph>().ToList(), Configuration.Settings.VobSubOcr, fileName, false, null, ocrEngine, CancellationToken.None);
|
||||||
_stdOutWriter?.WriteLine();
|
_stdOutWriter?.WriteLine();
|
||||||
sub = vobSubOcr.SubtitleFromOcr;
|
sub = vobSubOcr.SubtitleFromOcr;
|
||||||
_stdOutWriter?.WriteLine($"Extracted subtitles from file \"{fileName}\"");
|
_stdOutWriter?.WriteLine($"Extracted subtitles from file \"{fileName}\"");
|
||||||
|
Loading…
Reference in New Issue
Block a user