Added a "StreamlikeSpan"
Some checks failed
🚀 Pack skyscraper8 / make-zip (push) Failing after 1m15s
Some checks failed
🚀 Pack skyscraper8 / make-zip (push) Failing after 1m15s
This commit is contained in:
parent
5aa475dd46
commit
5cd08b978d
@ -11,12 +11,12 @@
|
|||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AThrowHelper_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fe1ab690537c44e02a014076312b886b7b2e200_003F4f_003F7bfc5050_003FThrowHelper_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AThrowHelper_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fe1ab690537c44e02a014076312b886b7b2e200_003F4f_003F7bfc5050_003FThrowHelper_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATuple_00602_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F57d616db882b441b8c50720b4477e03db2e200_003F9f_003F0d16f921_003FTuple_00602_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATuple_00602_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F57d616db882b441b8c50720b4477e03db2e200_003F9f_003F0d16f921_003FTuple_00602_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/Environment/Highlighting/HighlightingSourceSnapshotLocation/@EntryValue">/home/schiemas/.cache/JetBrains/Rider2025.1/resharper-host/temp/Rider/vAny/CoverageData/_skyscraper8.1808907683/Snapshot/snapshot.utdcvr</s:String>
|
<s:String x:Key="/Default/Environment/Highlighting/HighlightingSourceSnapshotLocation/@EntryValue">/home/schiemas/.cache/JetBrains/Rider2025.1/resharper-host/temp/Rider/vAny/CoverageData/_skyscraper8.1808907683/Snapshot/snapshot.utdcvr</s:String>
|
||||||
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=1108d3f2_002D5e6f_002D416b_002Da8ee_002D3c9502a978e2/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" IsActive="True" Name="CheckBfbsCrc #2" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
|
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=1108d3f2_002D5e6f_002D416b_002Da8ee_002D3c9502a978e2/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" IsActive="True" Name="CheckBfbsCrc #2" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
|
||||||
<Solution />
|
<Solution />
|
||||||
</SessionState></s:String>
|
</SessionState></s:String>
|
||||||
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=8cbe9c8f_002Dfc55_002D47f1_002D9df1_002Dcb4c7fbbc56b/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" Name="CheckBfbsCrc" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
|
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=8cbe9c8f_002Dfc55_002D47f1_002D9df1_002Dcb4c7fbbc56b/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" Name="CheckBfbsCrc" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
|
||||||
<TestAncestor>
|
<TestAncestor>
|
||||||
<TestId>xUnit::84EE9FCD-2C7F-DF84-C1BA-99D018CE9412::net8.0::skyscraper8.Tests.GsType1SanityTest.CheckBfbsCrc</TestId>
|
<TestId>xUnit::84EE9FCD-2C7F-DF84-C1BA-99D018CE9412::net8.0::skyscraper8.Tests.GsType1SanityTest.CheckBfbsCrc</TestId>
|
||||||
</TestAncestor>
|
</TestAncestor>
|
||||||
</SessionState></s:String>
|
</SessionState></s:String>
|
||||||
<s:String x:Key="/Default/Profiling/Configurations/=1/@EntryIndexedValue"><data><HostParameters type="LocalHostParameters" /><Argument type="StandaloneArgument"><Arguments IsNull="False"></Arguments><FileName IsNull="False"></FileName><WorkingDirectory IsNull="False"></WorkingDirectory><Scope><ProcessFilters /></Scope></Argument><Info type="TimelineInfo" /><CoreOptions type="CoreOptions"><CoreTempPath IsNull="False"></CoreTempPath><RemoteEndPoint IsNull="False"></RemoteEndPoint><AdditionalEnvironmentVariables /></CoreOptions><HostOptions type="HostOptions"><HostTempPath IsNull="False"></HostTempPath></HostOptions></data></s:String></wpf:ResourceDictionary>
|
<s:String x:Key="/Default/Profiling/Configurations/=1/@EntryIndexedValue"><data><HostParameters type="LocalHostParameters" /><Argument type="StandaloneArgument"><Arguments IsNull="False"></Arguments><FileName IsNull="False"></FileName><WorkingDirectory IsNull="False"></WorkingDirectory><Scope><ProcessFilters /></Scope></Argument><Info type="TimelineInfo" /><CoreOptions type="CoreOptions"><CoreTempPath IsNull="False"></CoreTempPath><RemoteEndPoint IsNull="False"></RemoteEndPoint><AdditionalEnvironmentVariables /></CoreOptions><HostOptions type="HostOptions"><HostTempPath IsNull="False"></HostTempPath></HostOptions></data></s:String></wpf:ResourceDictionary>
|
||||||
38
skyscraper8/GS/GSE-BFBS/BfbsGseReader.cs
Normal file
38
skyscraper8/GS/GSE-BFBS/BfbsGseReader.cs
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using skyscraper5.Mpeg2;
|
||||||
|
using skyscraper8.GSE;
|
||||||
|
using skyscraper8.Skyscraper.IO;
|
||||||
|
using skyscraper8.Skyscraper.Scraper;
|
||||||
|
|
||||||
|
namespace skyscraper8.GS.GSE_BFBS
|
||||||
|
{
|
||||||
|
internal class BfbsGseReader : IMisHandler
|
||||||
|
{
|
||||||
|
private readonly byte _misId;
|
||||||
|
private readonly ISubTsHandler _subTsHandler;
|
||||||
|
|
||||||
|
public BfbsGseReader(byte misId, ISubTsHandler subTsHandler)
|
||||||
|
{
|
||||||
|
_misId = misId;
|
||||||
|
_subTsHandler = subTsHandler;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void PushFrame(BBHeader bbHeader, ReadOnlySpan<byte> readOnlySpan)
|
||||||
|
{
|
||||||
|
bool validCrc = DvbCrc32.ValidateCrc(readOnlySpan);
|
||||||
|
if (!validCrc)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (readOnlySpan[0] == 0 && readOnlySpan[1] == 0 && readOnlySpan[2] == 0 && readOnlySpan[3] == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
|
||||||
|
StreamlikeSpan span = new StreamlikeSpan(readOnlySpan);
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,5 +1,6 @@
|
|||||||
using log4net;
|
using log4net;
|
||||||
using skyscraper5.Dvb.DataBroadcasting;
|
using skyscraper5.Dvb.DataBroadcasting;
|
||||||
|
using skyscraper8.GS.GSE_BFBS;
|
||||||
using skyscraper8.GS.SiminnRadiomidun;
|
using skyscraper8.GS.SiminnRadiomidun;
|
||||||
using skyscraper8.GSE.GSE_HEM;
|
using skyscraper8.GSE.GSE_HEM;
|
||||||
using skyscraper8.GSE.GSE;
|
using skyscraper8.GSE.GSE;
|
||||||
@ -23,7 +24,9 @@ public class GsTypeDetector : IMisHandler
|
|||||||
private GseReader gseReader;
|
private GseReader gseReader;
|
||||||
private GseHemReader gseHemReader;
|
private GseHemReader gseHemReader;
|
||||||
private SiminnRadiomidunReader siminnRadiomidunReader;
|
private SiminnRadiomidunReader siminnRadiomidunReader;
|
||||||
|
private BfbsGseReader bfbsGseReader;
|
||||||
private int simminRadiomidunScore;
|
private int simminRadiomidunScore;
|
||||||
|
private int bfbsScore;
|
||||||
|
|
||||||
public void PushFrame(BBHeader bbHeader, ReadOnlySpan<byte> readOnlySpan)
|
public void PushFrame(BBHeader bbHeader, ReadOnlySpan<byte> readOnlySpan)
|
||||||
{
|
{
|
||||||
@ -82,6 +85,17 @@ public class GsTypeDetector : IMisHandler
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (bbHeader.TsGs == 1 && bbHeader.SyncByte == 1 && bbHeader.UserPacketLength == 0)
|
||||||
|
{
|
||||||
|
if (bfbsGseReader == null)
|
||||||
|
{
|
||||||
|
bfbsGseReader = new BfbsGseReader(_misId, subTsHandler);
|
||||||
|
}
|
||||||
|
|
||||||
|
bfbsGseReader.PushFrame(bbHeader, readOnlySpan);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
//We have no idea what this is.
|
//We have no idea what this is.
|
||||||
Tuple<int, byte> streamTypeToPost = new Tuple<int, byte>(bbHeader.TsGs, bbHeader.SyncByte);
|
Tuple<int, byte> streamTypeToPost = new Tuple<int, byte>(bbHeader.TsGs, bbHeader.SyncByte);
|
||||||
if (_postedStreamTypes == null)
|
if (_postedStreamTypes == null)
|
||||||
|
|||||||
@ -2,11 +2,7 @@
|
|||||||
"profiles": {
|
"profiles": {
|
||||||
"skyscraper8": {
|
"skyscraper8": {
|
||||||
"commandName": "Project",
|
"commandName": "Project",
|
||||||
<<<<<<< HEAD
|
"commandLineArgs": "E:\\638951188146456482.ts",
|
||||||
"commandLineArgs": "\"D:\\sorglos-iww-rww-aca-oca.ts\"",
|
|
||||||
=======
|
|
||||||
"commandLineArgs": "udpin udp://127.0.0.1:6970",
|
|
||||||
>>>>>>> remotes/origin/sauerland
|
|
||||||
"remoteDebugEnabled": false
|
"remoteDebugEnabled": false
|
||||||
},
|
},
|
||||||
"Container (Dockerfile)": {
|
"Container (Dockerfile)": {
|
||||||
|
|||||||
19
skyscraper8/Skyscraper/IO/ReadOnlySpanStream.cs
Normal file
19
skyscraper8/Skyscraper/IO/ReadOnlySpanStream.cs
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace skyscraper8.Skyscraper.IO
|
||||||
|
{
|
||||||
|
internal class ReadOnlySpanStream
|
||||||
|
{
|
||||||
|
public ReadOnlySpanStream(ReadOnlySpan<byte> span)
|
||||||
|
{
|
||||||
|
Memory<byte> m = new Memory<byte>();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
107
skyscraper8/Skyscraper/IO/StreamlikeSpan.cs
Normal file
107
skyscraper8/Skyscraper/IO/StreamlikeSpan.cs
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace skyscraper8.Skyscraper.IO
|
||||||
|
{
|
||||||
|
internal ref struct StreamlikeSpan
|
||||||
|
{
|
||||||
|
private ReadOnlySpan<byte> _readOnlySpan;
|
||||||
|
|
||||||
|
public StreamlikeSpan(ReadOnlySpan<byte> readOnlySpan)
|
||||||
|
{
|
||||||
|
_readOnlySpan = readOnlySpan;
|
||||||
|
internalLength = readOnlySpan.Length;
|
||||||
|
internalPosition = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
private int internalLength, internalPosition;
|
||||||
|
|
||||||
|
public int Read(byte[] buffer, int offset, int count)
|
||||||
|
{
|
||||||
|
int result = 0;
|
||||||
|
for (int i = 0; i < count; i++)
|
||||||
|
{
|
||||||
|
buffer[i + offset] = _readOnlySpan[internalPosition];
|
||||||
|
internalPosition++;
|
||||||
|
result++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long Seek(long offset, SeekOrigin origin)
|
||||||
|
{
|
||||||
|
switch (origin)
|
||||||
|
{
|
||||||
|
case SeekOrigin.Begin:
|
||||||
|
internalPosition = (int)offset;
|
||||||
|
break;
|
||||||
|
case SeekOrigin.Current:
|
||||||
|
internalPosition += (int)offset;
|
||||||
|
break;
|
||||||
|
case SeekOrigin.End:
|
||||||
|
internalPosition = internalLength + (int)offset;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return internalPosition;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetLength(long value)
|
||||||
|
{
|
||||||
|
if (value > internalLength)
|
||||||
|
throw new NotSupportedException("Can not lengthen Streamlikes. You have to shorten them.");
|
||||||
|
|
||||||
|
_readOnlySpan = _readOnlySpan.Slice(0, (int)value);
|
||||||
|
internalLength = (int)value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Write(byte[] buffer, int offset, int count)
|
||||||
|
{
|
||||||
|
throw new NotSupportedException("Cannot write to an ReadOnlySpan");
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool CanRead => true;
|
||||||
|
public bool CanSeek => true;
|
||||||
|
public bool CanWrite => true;
|
||||||
|
public long Length => internalLength;
|
||||||
|
public long Position => internalPosition;
|
||||||
|
}
|
||||||
|
|
||||||
|
class TelepathyStream : Stream
|
||||||
|
{
|
||||||
|
public override void Flush()
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override int Read(byte[] buffer, int offset, int count)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override long Seek(long offset, SeekOrigin origin)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void SetLength(long value)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Write(byte[] buffer, int offset, int count)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool CanRead { get; }
|
||||||
|
public override bool CanSeek { get; }
|
||||||
|
public override bool CanWrite { get; }
|
||||||
|
public override long Length { get; }
|
||||||
|
public override long Position { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user