mirror of
https://github.com/SubtitleEdit/subtitleedit.git
synced 2024-10-27 22:42:38 +01:00
parent
8eb271a14f
commit
147e6020e8
@ -100,7 +100,7 @@ namespace Nikse.SubtitleEdit.Core.TransportStream
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return sb.ToString();
|
return sb.ToString().TrimEnd(' ', '$');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return string.Empty;
|
return string.Empty;
|
||||||
|
@ -56,6 +56,7 @@ namespace Nikse.SubtitleEdit.Core.TransportStream
|
|||||||
var m2TsTimeCodeBuffer = new byte[4];
|
var m2TsTimeCodeBuffer = new byte[4];
|
||||||
long position = 0;
|
long position = 0;
|
||||||
long callBackTicks = 0;
|
long callBackTicks = 0;
|
||||||
|
SubtitlesLookup = new Dictionary<int, List<DvbSubPes>>();
|
||||||
|
|
||||||
// check for Topfield .rec file
|
// check for Topfield .rec file
|
||||||
ms.Seek(position, SeekOrigin.Begin);
|
ms.Seek(position, SeekOrigin.Begin);
|
||||||
@ -111,12 +112,40 @@ namespace Nikse.SubtitleEdit.Core.TransportStream
|
|||||||
{
|
{
|
||||||
TotalNumberOfPrivateStream1++;
|
TotalNumberOfPrivateStream1++;
|
||||||
|
|
||||||
SubtitlePackets.Add(packet);
|
|
||||||
|
|
||||||
if (!SubtitlePacketIds.Contains(packet.PacketId))
|
if (!SubtitlePacketIds.Contains(packet.PacketId))
|
||||||
{
|
{
|
||||||
SubtitlePacketIds.Add(packet.PacketId);
|
SubtitlePacketIds.Add(packet.PacketId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!IsM2TransportStream && packet.PayloadUnitStartIndicator)
|
||||||
|
{
|
||||||
|
var list = MakeSubtitlePesPackets(packet.PacketId, SubtitlePackets);
|
||||||
|
bool hasImageSubtitles = false;
|
||||||
|
foreach (var item in list)
|
||||||
|
{
|
||||||
|
if (item.IsDvbSubpicture)
|
||||||
|
{
|
||||||
|
hasImageSubtitles = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (hasImageSubtitles)
|
||||||
|
{
|
||||||
|
if (SubtitlesLookup.ContainsKey(packet.PacketId))
|
||||||
|
{
|
||||||
|
SubtitlesLookup[packet.PacketId].AddRange(list);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SubtitlesLookup.Add(packet.PacketId, list);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SubtitlePackets.RemoveAll(p => p.PacketId == packet.PacketId);
|
||||||
|
}
|
||||||
|
SubtitlePackets.Add(packet);
|
||||||
|
|
||||||
|
|
||||||
if (packet.ContinuityCounter == 0)
|
if (packet.ContinuityCounter == 0)
|
||||||
{
|
{
|
||||||
TotalNumberOfPrivateStream1Continuation0++;
|
TotalNumberOfPrivateStream1Continuation0++;
|
||||||
@ -196,7 +225,6 @@ namespace Nikse.SubtitleEdit.Core.TransportStream
|
|||||||
}
|
}
|
||||||
|
|
||||||
// check for SubPictureStreamId = 32
|
// check for SubPictureStreamId = 32
|
||||||
SubtitlesLookup = new Dictionary<int, List<DvbSubPes>>();
|
|
||||||
foreach (int pid in SubtitlePacketIds)
|
foreach (int pid in SubtitlePacketIds)
|
||||||
{
|
{
|
||||||
var list = MakeSubtitlePesPackets(pid, SubtitlePackets);
|
var list = MakeSubtitlePesPackets(pid, SubtitlePackets);
|
||||||
@ -211,9 +239,18 @@ namespace Nikse.SubtitleEdit.Core.TransportStream
|
|||||||
}
|
}
|
||||||
if (hasImageSubtitles)
|
if (hasImageSubtitles)
|
||||||
{
|
{
|
||||||
SubtitlesLookup.Add(pid, list);
|
if (SubtitlesLookup.ContainsKey(pid))
|
||||||
|
{
|
||||||
|
SubtitlesLookup[pid].AddRange(list);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SubtitlesLookup.Add(pid, list);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
SubtitlePackets.RemoveAll(p => p.PacketId == pid);
|
||||||
}
|
}
|
||||||
|
|
||||||
SubtitlePacketIds.Clear();
|
SubtitlePacketIds.Clear();
|
||||||
foreach (int key in SubtitlesLookup.Keys)
|
foreach (int key in SubtitlesLookup.Keys)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user