Patch for handing off SIS data to the UI.
Some checks failed
🚀 Pack skyscraper8 / make-zip (push) Failing after 1m48s

This commit is contained in:
feyris-tan 2026-03-15 12:07:19 +01:00
parent a97535e17c
commit 68cd0799bd
2 changed files with 20 additions and 1 deletions

View File

@ -18,9 +18,11 @@ using skyscraper5.Skyscraper.Equipment;
using skyscraper5.Skyscraper.IO.CrazycatStreamReader; using skyscraper5.Skyscraper.IO.CrazycatStreamReader;
using skyscraper5.Skyscraper.Net; using skyscraper5.Skyscraper.Net;
using skyscraper5.src.Skyscraper.FrequencyListGenerator; using skyscraper5.src.Skyscraper.FrequencyListGenerator;
using skyscraper5.T2MI.Packets;
using skyscraper5.Teletext.Wss; using skyscraper5.Teletext.Wss;
using skyscraper8.DvbNip; using skyscraper8.DvbNip;
using skyscraper8.DvbNip.UiIntegration; using skyscraper8.DvbNip.UiIntegration;
using skyscraper8.DvbSis;
using skyscraper8.GSE; using skyscraper8.GSE;
using skyscraper8.GSE.GSE; using skyscraper8.GSE.GSE;
using skyscraper8.Ietf.FLUTE; using skyscraper8.Ietf.FLUTE;
@ -28,6 +30,7 @@ using skyscraper8.Ses;
using skyscraper8.Skyscraper.Drawing; using skyscraper8.Skyscraper.Drawing;
using skyscraper8.Skyscraper.FrequencyListGenerator; using skyscraper8.Skyscraper.FrequencyListGenerator;
using skyscraper8.Skyscraper.Scraper; using skyscraper8.Skyscraper.Scraper;
using skyscraper8.T2MI.Packets;
namespace skyscraper5.Skyscraper.Scraper namespace skyscraper5.Skyscraper.Scraper
{ {
@ -218,6 +221,12 @@ namespace skyscraper5.Skyscraper.Scraper
void OnAstraSgtList(SgtList list); void OnAstraSgtList(SgtList list);
void OnAstraSgtService(SgtService child); void OnAstraSgtService(SgtService child);
void NotifyTransportStreamId(int tsid, int nid); void NotifyTransportStreamId(int tsid, int nid);
void OnDvbSisCat(int sourcePid, SisCatContainer catContainer);
void OnDvbSisEit(int sourcePid, SisEitContainer eitContainer);
void OnDvbSisFti(int relatedPid, _0xF0_FramingTimingInformation fti);
void OnDvbSisTimestamp(int pid, _0x20_DvbT2Timestamp t2Timestamp);
void OnDvbSisPat(int sourcePid, SisPatContainer patContainer);
void OnDvbSisSdt(int sourcePid, SisSdtContainer sdtContainer);
TaskQueue Tasks { get; set; } TaskQueue Tasks { get; set; }

View File

@ -3399,6 +3399,7 @@ namespace skyscraper5.Skyscraper.Scraper
public void OnSisCat(int sourcePid, ushort sourceProgram, SisCatContainer catContainer) public void OnSisCat(int sourcePid, ushort sourceProgram, SisCatContainer catContainer)
{ {
UiJunction?.OnDvbSisCat(sourcePid, catContainer);
if (catContainer.CaDescriptors.Count > 0) if (catContainer.CaDescriptors.Count > 0)
{ {
SkyscraperContext skyscraperContext = GetSisContext(sourceProgram); SkyscraperContext skyscraperContext = GetSisContext(sourceProgram);
@ -3428,15 +3429,18 @@ namespace skyscraper5.Skyscraper.Scraper
{ {
dsaci = new GZipStream(dsaci, CompressionMode.Decompress); dsaci = new GZipStream(dsaci, CompressionMode.Decompress);
} }
MemoryStream ms = new MemoryStream();
dsaci.CopyTo(ms);
LogEvent(SkyscraperContextEvent.DvbSisDaughterSiteAdapterConfiguration, String.Format("Group ID = {0}, Version = {1}", currentDsaGroupId, versionNumber)); LogEvent(SkyscraperContextEvent.DvbSisDaughterSiteAdapterConfiguration, String.Format("Group ID = {0}, Version = {1}", currentDsaGroupId, versionNumber));
ObjectStorage.StoreSisDsaci(CurrentNetworkId.Value, CurrentTransportStreamId.Value, currentDsaGroupId, versionNumber, dsaci); ObjectStorage.StoreSisDsaci(CurrentNetworkId.Value, CurrentTransportStreamId.Value, currentDsaGroupId, versionNumber, ms);
dsaci.Dispose(); dsaci.Dispose();
} }
} }
public void OnSisEit(int sourcePid, ushort sourceProgram, SisEitContainer eitContainer) public void OnSisEit(int sourcePid, ushort sourceProgram, SisEitContainer eitContainer)
{ {
UiJunction?.OnDvbSisEit(sourcePid, eitContainer);
SkyscraperContext skyscraperContext = GetSisContext(sourceProgram); SkyscraperContext skyscraperContext = GetSisContext(sourceProgram);
if (eitContainer.NetworkId.HasValue) if (eitContainer.NetworkId.HasValue)
skyscraperContext.SetNetworkId(eitContainer.NetworkId.Value); skyscraperContext.SetNetworkId(eitContainer.NetworkId.Value);
@ -3453,6 +3457,7 @@ namespace skyscraper5.Skyscraper.Scraper
private _0xF0_FramingTimingInformation.Plp[][] _sisFtiData; private _0xF0_FramingTimingInformation.Plp[][] _sisFtiData;
public void OnSisFti(int relatedPid, _0xF0_FramingTimingInformation fti) public void OnSisFti(int relatedPid, _0xF0_FramingTimingInformation fti)
{ {
UiJunction?.OnDvbSisFti(relatedPid, fti);
if (_sisFtiFlags == null) if (_sisFtiFlags == null)
{ {
_sisFtiFlags = new bool[0x1fff]; _sisFtiFlags = new bool[0x1fff];
@ -3485,6 +3490,8 @@ namespace skyscraper5.Skyscraper.Scraper
public void OnSisPat(int sourcePid, ushort sourceProgram, SisPatContainer patContainer) public void OnSisPat(int sourcePid, ushort sourceProgram, SisPatContainer patContainer)
{ {
UiJunction?.OnDvbSisPat(sourcePid, patContainer);
SkyscraperContext skyscraperContext = GetSisContext(sourceProgram); SkyscraperContext skyscraperContext = GetSisContext(sourceProgram);
if (patContainer.NetworkPid.HasValue) if (patContainer.NetworkPid.HasValue)
skyscraperContext.NetworkPidFromPat(patContainer.NetworkPid.Value); skyscraperContext.NetworkPidFromPat(patContainer.NetworkPid.Value);
@ -3506,6 +3513,7 @@ namespace skyscraper5.Skyscraper.Scraper
public void OnSisSdt(int sourcePid, ushort sourceProgram, SisSdtContainer sdtContainer) public void OnSisSdt(int sourcePid, ushort sourceProgram, SisSdtContainer sdtContainer)
{ {
UiJunction?.OnDvbSisSdt(sourcePid, sdtContainer);
SkyscraperContext context = GetSisContext(sourceProgram); SkyscraperContext context = GetSisContext(sourceProgram);
if (sdtContainer.NetworkId.HasValue) if (sdtContainer.NetworkId.HasValue)
@ -3534,6 +3542,8 @@ namespace skyscraper5.Skyscraper.Scraper
private bool[] _sisTimestampFlags; private bool[] _sisTimestampFlags;
public void OnSisTimestamp(int pid, _0x20_DvbT2Timestamp t2Timestamp) public void OnSisTimestamp(int pid, _0x20_DvbT2Timestamp t2Timestamp)
{ {
UiJunction?.OnDvbSisTimestamp(pid, t2Timestamp);
if (!CurrentNetworkId.HasValue) if (!CurrentNetworkId.HasValue)
return; return;