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.Net;
using skyscraper5.src.Skyscraper.FrequencyListGenerator;
using skyscraper5.T2MI.Packets;
using skyscraper5.Teletext.Wss;
using skyscraper8.DvbNip;
using skyscraper8.DvbNip.UiIntegration;
using skyscraper8.DvbSis;
using skyscraper8.GSE;
using skyscraper8.GSE.GSE;
using skyscraper8.Ietf.FLUTE;
@ -28,6 +30,7 @@ using skyscraper8.Ses;
using skyscraper8.Skyscraper.Drawing;
using skyscraper8.Skyscraper.FrequencyListGenerator;
using skyscraper8.Skyscraper.Scraper;
using skyscraper8.T2MI.Packets;
namespace skyscraper5.Skyscraper.Scraper
{
@ -218,6 +221,12 @@ namespace skyscraper5.Skyscraper.Scraper
void OnAstraSgtList(SgtList list);
void OnAstraSgtService(SgtService child);
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; }

View File

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