Try to allow one more subtitle type in mp4 - thx Erki :)

This commit is contained in:
Nikolaj Olsson 2021-06-01 20:51:52 +02:00
parent 1cc25a43b1
commit 9166cb569b
3 changed files with 28 additions and 6 deletions

View File

@ -34,8 +34,9 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
return false; return false;
} }
// ftypisml, ftypdash, ftyppiff, stypiso6 or ?
var str = Encoding.ASCII.GetString(buffer, 4, 8); var str = Encoding.ASCII.GetString(buffer, 4, 8);
if (!str.StartsWith("ftyp", StringComparison.Ordinal)) // ftypisml, ftypdash, ftyppiff or ? if (!str.StartsWith("ftyp", StringComparison.Ordinal) && !str.StartsWith("styp", StringComparison.Ordinal))
{ {
return false; return false;
} }

View File

@ -106,11 +106,29 @@ namespace Nikse.SubtitleEdit.Forms
var subtitles = new List<Subtitle>(); var subtitles = new List<Subtitle>();
for (int k = 0; k < _fileNamesToJoin.Count; k++) for (int k = 0; k < _fileNamesToJoin.Count; k++)
{ {
string fileName = _fileNamesToJoin[k]; var fileName = _fileNamesToJoin[k];
try try
{ {
var sub = new Subtitle(); var sub = new Subtitle();
SubtitleFormat format; SubtitleFormat format = null;
if (fileName.EndsWith(".ismt", StringComparison.InvariantCultureIgnoreCase) ||
fileName.EndsWith(".mp4", StringComparison.InvariantCultureIgnoreCase) ||
fileName.EndsWith(".m4v", StringComparison.InvariantCultureIgnoreCase) ||
fileName.EndsWith(".3gp", StringComparison.InvariantCultureIgnoreCase))
{
format = new IsmtDfxp();
if (format.IsMine(null, fileName))
{
var s = new Subtitle();
format.LoadSubtitle(s, null, fileName);
if (s.Paragraphs.Count > 0)
{
lastFormat = format;
}
}
}
var lines = FileUtil.ReadAllLinesShared(fileName, LanguageAutoDetect.GetEncodingFromFile(fileName)); var lines = FileUtil.ReadAllLinesShared(fileName, LanguageAutoDetect.GetEncodingFromFile(fileName));
if (lastFormat != null && lastFormat.IsMine(lines, fileName)) if (lastFormat != null && lastFormat.IsMine(lines, fileName))
{ {
@ -118,7 +136,10 @@ namespace Nikse.SubtitleEdit.Forms
format.LoadSubtitle(sub, lines, fileName); format.LoadSubtitle(sub, lines, fileName);
} }
format = sub.LoadSubtitle(fileName, out _, null); if (sub.Paragraphs.Count == 0 || format == null)
{
format = sub.LoadSubtitle(fileName, out _, null);
}
if (format == null) if (format == null)
{ {

View File

@ -2557,7 +2557,7 @@ namespace Nikse.SubtitleEdit.Forms
} }
} }
if ((ext == ".mp4" || ext == ".m4v" || ext == ".3gp") && file.Length > 10000) if ((ext == ".mp4" || ext == ".m4v" || ext == ".3gp") && file.Length > 2000)
{ {
if (!new IsmtDfxp().IsMine(null, fileName)) if (!new IsmtDfxp().IsMine(null, fileName))
{ {
@ -2641,7 +2641,7 @@ namespace Nikse.SubtitleEdit.Forms
} }
} }
if (ext == ".ismt") if (ext == ".ismt" || ext == ".mp4" || ext == ".m4v" || ext == ".3gp")
{ {
var f = new IsmtDfxp(); var f = new IsmtDfxp();
if (f.IsMine(null, fileName)) if (f.IsMine(null, fileName))