mirror of
https://github.com/SubtitleEdit/subtitleedit.git
synced 2024-10-27 14:32:35 +01:00
Tried to add read support for NCI CAPT 1.2 (besides the existing NCI CAPT 2.0)
git-svn-id: https://subtitleedit.googlecode.com/svn/trunk@2138 99eadd0c-20b8-1223-b5c4-2a2b2df33de2
This commit is contained in:
parent
f98f1d0bc7
commit
46cab87a3b
@ -41,14 +41,24 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
|
||||
if (fileName.ToLower().EndsWith(".cap"))
|
||||
{
|
||||
byte[] buffer = File.ReadAllBytes(fileName);
|
||||
return (buffer[0] == 0x43 &&
|
||||
|
||||
|
||||
return ((buffer[0] == 0x43 && // CAPT.2.0
|
||||
buffer[1] == 0x41 &&
|
||||
buffer[2] == 0x50 &&
|
||||
buffer[3] == 0x54 &&
|
||||
buffer[4] == 0x00 &&
|
||||
buffer[5] == 0x32 &&
|
||||
buffer[6] == 0x2e &&
|
||||
buffer[7] == 0x30);
|
||||
buffer[7] == 0x30) ||
|
||||
(buffer[0] == 0x43 && // CAPT.1.2
|
||||
buffer[1] == 0x41 &&
|
||||
buffer[2] == 0x50 &&
|
||||
buffer[3] == 0x54 &&
|
||||
buffer[4] == 0x00 &&
|
||||
buffer[5] == 0x31 &&
|
||||
buffer[6] == 0x2e &&
|
||||
buffer[7] == 0x32));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -126,6 +136,40 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
|
||||
}
|
||||
subtitle.Renumber(1);
|
||||
|
||||
|
||||
if (buffer[0] == 0x43 && // CAPT.1.2
|
||||
buffer[1] == 0x41 &&
|
||||
buffer[2] == 0x50 &&
|
||||
buffer[3] == 0x54 &&
|
||||
buffer[4] == 0x00 &&
|
||||
buffer[5] == 0x31 &&
|
||||
buffer[6] == 0x2e &&
|
||||
buffer[7] == 0x32)
|
||||
{
|
||||
i = 396;
|
||||
int start = i;
|
||||
int number = 0;
|
||||
while (i < buffer.Length - 66)
|
||||
{
|
||||
if (buffer[i] == 0xff && buffer[i + 1] == 0xff && buffer[i + 2] != 0xff && buffer[i + 28] == 0xff && buffer[i + 29] == 0xff && buffer[i + 30] != 0xff)
|
||||
{
|
||||
if (buffer[i+14] == number+1)
|
||||
{
|
||||
Paragraph p = subtitle.GetParagraphOrDefault(number);
|
||||
if (p != null)
|
||||
{
|
||||
p.StartTime = DecodeTimeCode(buffer, i + 18);
|
||||
p.EndTime = DecodeTimeCode(buffer, i + 22);
|
||||
number++;
|
||||
}
|
||||
i += 25;
|
||||
}
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
i = 230;
|
||||
int countTimecodes = 0;
|
||||
int start = i;
|
||||
@ -154,7 +198,7 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
|
||||
int number = buffer[index] + buffer[index + 1] * 256;
|
||||
if (number != lastNumber + 1)
|
||||
{
|
||||
int tempNumber = buffer[index-2] + buffer[index -1] * 256;
|
||||
int tempNumber = buffer[index - 2] + buffer[index - 1] * 256;
|
||||
if (tempNumber == lastNumber + 1)
|
||||
{
|
||||
index -= 2;
|
||||
@ -186,6 +230,7 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < subtitle.Paragraphs.Count; i++)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user