This commit is contained in:
parent
33d17a730b
commit
124bf9eb49
@ -17,6 +17,7 @@ namespace skyscraper8.GS.GSE_BFBS
|
|||||||
private readonly ISubTsHandler _subTsHandler;
|
private readonly ISubTsHandler _subTsHandler;
|
||||||
|
|
||||||
private GseLabel lastLabel;
|
private GseLabel lastLabel;
|
||||||
|
private int frameNo;
|
||||||
|
|
||||||
public BfbsGseReader(byte misId, ISubTsHandler subTsHandler)
|
public BfbsGseReader(byte misId, ISubTsHandler subTsHandler)
|
||||||
{
|
{
|
||||||
@ -26,6 +27,7 @@ namespace skyscraper8.GS.GSE_BFBS
|
|||||||
|
|
||||||
public void PushFrame(BBHeader bbHeader, ReadOnlySpan<byte> readOnlySpan)
|
public void PushFrame(BBHeader bbHeader, ReadOnlySpan<byte> readOnlySpan)
|
||||||
{
|
{
|
||||||
|
frameNo++;
|
||||||
bool validCrc = DvbCrc32.ValidateCrc(readOnlySpan);
|
bool validCrc = DvbCrc32.ValidateCrc(readOnlySpan);
|
||||||
if (!validCrc)
|
if (!validCrc)
|
||||||
return;
|
return;
|
||||||
@ -36,7 +38,7 @@ namespace skyscraper8.GS.GSE_BFBS
|
|||||||
|
|
||||||
StreamlikeSpan span = new StreamlikeSpan(readOnlySpan);
|
StreamlikeSpan span = new StreamlikeSpan(readOnlySpan);
|
||||||
|
|
||||||
while (span.GetAvailableBytes() >= 1)
|
while (span.GetAvailableBytes() > 4)
|
||||||
{
|
{
|
||||||
byte byteA = span.ReadUInt8();
|
byte byteA = span.ReadUInt8();
|
||||||
bool startIndicator = (byteA & 0x80) != 0;
|
bool startIndicator = (byteA & 0x80) != 0;
|
||||||
@ -97,21 +99,20 @@ namespace skyscraper8.GS.GSE_BFBS
|
|||||||
|
|
||||||
ReadOnlySpan<byte> gseDataBytes = span.ReadBytes(gseLength);
|
ReadOnlySpan<byte> gseDataBytes = span.ReadBytes(gseLength);
|
||||||
|
|
||||||
|
uint? crc32 = null;
|
||||||
if (!startIndicator && endIndicator)
|
if (!startIndicator && endIndicator)
|
||||||
{
|
{
|
||||||
uint crc32 = span.ReadUInt32BE();
|
crc32 = span.ReadUInt32BE();
|
||||||
throw new NotImplementedException("crc32");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
HandleGseFrame(startIndicator, endIndicator, fragId, totalLength, label, protocolType,
|
HandleGseFrame(startIndicator, endIndicator, fragId, totalLength, label, protocolType, gseDataBytes, crc32);
|
||||||
gseDataBytes);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void HandleGseFrame(bool startIndicator, bool endIndicator, byte? fragId, ushort? totalLength, GseLabel label, ushort? protocolType, ReadOnlySpan<byte> gseDataBytes)
|
private void HandleGseFrame(bool startIndicator, bool endIndicator, byte? fragId, ushort? totalLength, GseLabel label, ushort? protocolType, ReadOnlySpan<byte> gseDataBytes, uint? crc32)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
//throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user