From 7de126b5a127a7b8464827dd8c11678c906a9f71 Mon Sep 17 00:00:00 2001
From: feyris-tan <4116042+feyris-tan@users.noreply.github.com>
Date: Sun, 15 Mar 2026 19:02:36 +0100
Subject: [PATCH] Patches for handing off DVB-SIS data to the UI.
---
Documentation/SIS-XSD/make-classes.bat | 1 +
Documentation/SIS-XSD/sis.cs | 1697 +++++++++++++++++
Documentation/SIS-XSD/sis.xsd | 388 ++++
.../Mpeg2/Psi/Model/ProgramMappingStream.cs | 3 +-
skyscraper8/Mpeg2/Psi/PmtParser.cs | 1 +
.../Scraper/ISkyscraperUiJunction.cs | 4 +
.../Skyscraper/Scraper/SkyscraperContext.cs | 9 +-
7 files changed, 2099 insertions(+), 4 deletions(-)
create mode 100644 Documentation/SIS-XSD/make-classes.bat
create mode 100644 Documentation/SIS-XSD/sis.cs
create mode 100644 Documentation/SIS-XSD/sis.xsd
diff --git a/Documentation/SIS-XSD/make-classes.bat b/Documentation/SIS-XSD/make-classes.bat
new file mode 100644
index 0000000..ec86e2d
--- /dev/null
+++ b/Documentation/SIS-XSD/make-classes.bat
@@ -0,0 +1 @@
+"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8.1 Tools\x64\xsd.exe" /classes sis.xsd /namespace:Voile.Patchouli.Dvb.Sis.Model
diff --git a/Documentation/SIS-XSD/sis.cs b/Documentation/SIS-XSD/sis.cs
new file mode 100644
index 0000000..f23c893
--- /dev/null
+++ b/Documentation/SIS-XSD/sis.cs
@@ -0,0 +1,1697 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+//
+// This source code was auto-generated by xsd, Version=4.8.9037.0.
+//
+namespace Voile.Patchouli.Dvb.Sis.Model {
+ using System.Xml.Serialization;
+
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
+ [System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
+ public partial class DSACI {
+
+ private type_global_configuration global_configurationField;
+
+ private type_input_parent[] input_configurationField;
+
+ private type_output_TS[] remultiplexingField;
+
+ private type_output_processing output_processingField;
+
+ ///
+ public type_global_configuration global_configuration {
+ get {
+ return this.global_configurationField;
+ }
+ set {
+ this.global_configurationField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlArrayItemAttribute("input", IsNullable=false)]
+ public type_input_parent[] input_configuration {
+ get {
+ return this.input_configurationField;
+ }
+ set {
+ this.input_configurationField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlArrayItemAttribute("output_TS", IsNullable=false)]
+ public type_output_TS[] remultiplexing {
+ get {
+ return this.remultiplexingField;
+ }
+ set {
+ this.remultiplexingField = value;
+ }
+ }
+
+ ///
+ public type_output_processing output_processing {
+ get {
+ return this.output_processingField;
+ }
+ set {
+ this.output_processingField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class type_global_configuration {
+
+ private int current_DSA_group_idField;
+
+ private int global_version_numberField;
+
+ private int global_application_timeField;
+
+ private type_SIS_edition sIS_editionField;
+
+ ///
+ public int current_DSA_group_id {
+ get {
+ return this.current_DSA_group_idField;
+ }
+ set {
+ this.current_DSA_group_idField = value;
+ }
+ }
+
+ ///
+ public int global_version_number {
+ get {
+ return this.global_version_numberField;
+ }
+ set {
+ this.global_version_numberField = value;
+ }
+ }
+
+ ///
+ public int global_application_time {
+ get {
+ return this.global_application_timeField;
+ }
+ set {
+ this.global_application_timeField = value;
+ }
+ }
+
+ ///
+ public type_SIS_edition SIS_edition {
+ get {
+ return this.sIS_editionField;
+ }
+ set {
+ this.sIS_editionField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class type_SIS_edition {
+
+ private int majorField;
+
+ private int middleField;
+
+ private int minorField;
+
+ ///
+ public int major {
+ get {
+ return this.majorField;
+ }
+ set {
+ this.majorField = value;
+ }
+ }
+
+ ///
+ public int middle {
+ get {
+ return this.middleField;
+ }
+ set {
+ this.middleField = value;
+ }
+ }
+
+ ///
+ public int minor {
+ get {
+ return this.minorField;
+ }
+ set {
+ this.minorField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class type_L2_signalling {
+
+ private int output_TS_idField;
+
+ private int output_ON_idField;
+
+ private int output_L2_service_idField;
+
+ private string output_L2_service_provider_nameField;
+
+ private string output_L2_service_nameField;
+
+ private int output_L2_PCR_PIDField;
+
+ private int output_L2_PMT_PIDField;
+
+ ///
+ public int output_TS_id {
+ get {
+ return this.output_TS_idField;
+ }
+ set {
+ this.output_TS_idField = value;
+ }
+ }
+
+ ///
+ public int output_ON_id {
+ get {
+ return this.output_ON_idField;
+ }
+ set {
+ this.output_ON_idField = value;
+ }
+ }
+
+ ///
+ public int output_L2_service_id {
+ get {
+ return this.output_L2_service_idField;
+ }
+ set {
+ this.output_L2_service_idField = value;
+ }
+ }
+
+ ///
+ public string output_L2_service_provider_name {
+ get {
+ return this.output_L2_service_provider_nameField;
+ }
+ set {
+ this.output_L2_service_provider_nameField = value;
+ }
+ }
+
+ ///
+ public string output_L2_service_name {
+ get {
+ return this.output_L2_service_nameField;
+ }
+ set {
+ this.output_L2_service_nameField = value;
+ }
+ }
+
+ ///
+ public int output_L2_PCR_PID {
+ get {
+ return this.output_L2_PCR_PIDField;
+ }
+ set {
+ this.output_L2_PCR_PIDField = value;
+ }
+ }
+
+ ///
+ public int output_L2_PMT_PID {
+ get {
+ return this.output_L2_PMT_PIDField;
+ }
+ set {
+ this.output_L2_PMT_PIDField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class dvb_t2_standard {
+
+ private int output_T2_MI_PIDField;
+
+ private int output_T2_MI_stream_idField;
+
+ private int output_rateField;
+
+ private type_L2_signalling l2_signallingField;
+
+ ///
+ public int output_T2_MI_PID {
+ get {
+ return this.output_T2_MI_PIDField;
+ }
+ set {
+ this.output_T2_MI_PIDField = value;
+ }
+ }
+
+ ///
+ public int output_T2_MI_stream_id {
+ get {
+ return this.output_T2_MI_stream_idField;
+ }
+ set {
+ this.output_T2_MI_stream_idField = value;
+ }
+ }
+
+ ///
+ public int output_rate {
+ get {
+ return this.output_rateField;
+ }
+ set {
+ this.output_rateField = value;
+ }
+ }
+
+ ///
+ public type_L2_signalling L2_signalling {
+ get {
+ return this.l2_signallingField;
+ }
+ set {
+ this.l2_signallingField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class type_terrestrial_standard_generation {
+
+ private object itemField;
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("dvb_t", typeof(string))]
+ [System.Xml.Serialization.XmlElementAttribute("dvb_t2", typeof(dvb_t2_standard))]
+ public object Item {
+ get {
+ return this.itemField;
+ }
+ set {
+ this.itemField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class type_output_processing {
+
+ private type_terrestrial_standard_generation terrestrial_standard_generationField;
+
+ ///
+ public type_terrestrial_standard_generation terrestrial_standard_generation {
+ get {
+ return this.terrestrial_standard_generationField;
+ }
+ set {
+ this.terrestrial_standard_generationField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class type_DTT_only_service {
+
+ private int dTT_only_service_idField;
+
+ private int input_EIT_PIDField;
+
+ private int source_idField;
+
+ ///
+ public int DTT_only_service_id {
+ get {
+ return this.dTT_only_service_idField;
+ }
+ set {
+ this.dTT_only_service_idField = value;
+ }
+ }
+
+ ///
+ public int input_EIT_PID {
+ get {
+ return this.input_EIT_PIDField;
+ }
+ set {
+ this.input_EIT_PIDField = value;
+ }
+ }
+
+ ///
+ public int source_id {
+ get {
+ return this.source_idField;
+ }
+ set {
+ this.source_idField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class eit_regeneration_processing {
+
+ private int eit_pf_actual_periodField;
+
+ private int eit_pf_other_periodField;
+
+ private int eit_sch_1stday_actual_periodField;
+
+ private int eit_sch_1stday_other_periodField;
+
+ private int eit_sch_2nd_8th_actual_periodField;
+
+ private int eit_sch_2nd_8th_other_periodField;
+
+ private int eit_sch_sup_8th_actual_periodField;
+
+ private int eit_sch_sup_8th_other_periodField;
+
+ private int eit_insertion_window_durationField;
+
+ private bool eit_cross_referencing_flagField;
+
+ private type_other_mux[] other_muxField;
+
+ private type_DTT_only_service[] dTT_only_serviceField;
+
+ ///
+ public int eit_pf_actual_period {
+ get {
+ return this.eit_pf_actual_periodField;
+ }
+ set {
+ this.eit_pf_actual_periodField = value;
+ }
+ }
+
+ ///
+ public int eit_pf_other_period {
+ get {
+ return this.eit_pf_other_periodField;
+ }
+ set {
+ this.eit_pf_other_periodField = value;
+ }
+ }
+
+ ///
+ public int eit_sch_1stday_actual_period {
+ get {
+ return this.eit_sch_1stday_actual_periodField;
+ }
+ set {
+ this.eit_sch_1stday_actual_periodField = value;
+ }
+ }
+
+ ///
+ public int eit_sch_1stday_other_period {
+ get {
+ return this.eit_sch_1stday_other_periodField;
+ }
+ set {
+ this.eit_sch_1stday_other_periodField = value;
+ }
+ }
+
+ ///
+ public int eit_sch_2nd_8th_actual_period {
+ get {
+ return this.eit_sch_2nd_8th_actual_periodField;
+ }
+ set {
+ this.eit_sch_2nd_8th_actual_periodField = value;
+ }
+ }
+
+ ///
+ public int eit_sch_2nd_8th_other_period {
+ get {
+ return this.eit_sch_2nd_8th_other_periodField;
+ }
+ set {
+ this.eit_sch_2nd_8th_other_periodField = value;
+ }
+ }
+
+ ///
+ public int eit_sch_sup_8th_actual_period {
+ get {
+ return this.eit_sch_sup_8th_actual_periodField;
+ }
+ set {
+ this.eit_sch_sup_8th_actual_periodField = value;
+ }
+ }
+
+ ///
+ public int eit_sch_sup_8th_other_period {
+ get {
+ return this.eit_sch_sup_8th_other_periodField;
+ }
+ set {
+ this.eit_sch_sup_8th_other_periodField = value;
+ }
+ }
+
+ ///
+ public int eit_insertion_window_duration {
+ get {
+ return this.eit_insertion_window_durationField;
+ }
+ set {
+ this.eit_insertion_window_durationField = value;
+ }
+ }
+
+ ///
+ public bool eit_cross_referencing_flag {
+ get {
+ return this.eit_cross_referencing_flagField;
+ }
+ set {
+ this.eit_cross_referencing_flagField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("other_mux")]
+ public type_other_mux[] other_mux {
+ get {
+ return this.other_muxField;
+ }
+ set {
+ this.other_muxField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("DTT_only_service")]
+ public type_DTT_only_service[] DTT_only_service {
+ get {
+ return this.dTT_only_serviceField;
+ }
+ set {
+ this.dTT_only_serviceField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class type_other_mux {
+
+ private int other_DSA_group_idField;
+
+ private int dSACI_PIDField;
+
+ private int source_idField;
+
+ ///
+ public int other_DSA_group_id {
+ get {
+ return this.other_DSA_group_idField;
+ }
+ set {
+ this.other_DSA_group_idField = value;
+ }
+ }
+
+ ///
+ public int DSACI_PID {
+ get {
+ return this.dSACI_PIDField;
+ }
+ set {
+ this.dSACI_PIDField = value;
+ }
+ }
+
+ ///
+ public int source_id {
+ get {
+ return this.source_idField;
+ }
+ set {
+ this.source_idField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class eit_patching_processing {
+
+ private bool eit_crossreferencing_flagField;
+
+ private type_other_mux[] other_muxField;
+
+ ///
+ public bool eit_crossreferencing_flag {
+ get {
+ return this.eit_crossreferencing_flagField;
+ }
+ set {
+ this.eit_crossreferencing_flagField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("other_mux")]
+ public type_other_mux[] other_mux {
+ get {
+ return this.other_muxField;
+ }
+ set {
+ this.other_muxField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class type_eit_processing_mode {
+
+ private object itemField;
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("eit_passthrough", typeof(string))]
+ [System.Xml.Serialization.XmlElementAttribute("eit_patching", typeof(eit_patching_processing))]
+ [System.Xml.Serialization.XmlElementAttribute("eit_regeneration", typeof(eit_regeneration_processing))]
+ public object Item {
+ get {
+ return this.itemField;
+ }
+ set {
+ this.itemField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class sdt_regeneration_processing {
+
+ private int sdt_actual_periodField;
+
+ private int m_actualField;
+
+ private int offsetField;
+
+ private int sdt_actual_version_numberField;
+
+ private bool sdt_crossreferencing_flagField;
+
+ private type_other_mux[] other_muxField;
+
+ private type_bouquet[] bouquetField;
+
+ ///
+ public int sdt_actual_period {
+ get {
+ return this.sdt_actual_periodField;
+ }
+ set {
+ this.sdt_actual_periodField = value;
+ }
+ }
+
+ ///
+ public int M_actual {
+ get {
+ return this.m_actualField;
+ }
+ set {
+ this.m_actualField = value;
+ }
+ }
+
+ ///
+ public int offset {
+ get {
+ return this.offsetField;
+ }
+ set {
+ this.offsetField = value;
+ }
+ }
+
+ ///
+ public int sdt_actual_version_number {
+ get {
+ return this.sdt_actual_version_numberField;
+ }
+ set {
+ this.sdt_actual_version_numberField = value;
+ }
+ }
+
+ ///
+ public bool sdt_crossreferencing_flag {
+ get {
+ return this.sdt_crossreferencing_flagField;
+ }
+ set {
+ this.sdt_crossreferencing_flagField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("other_mux")]
+ public type_other_mux[] other_mux {
+ get {
+ return this.other_muxField;
+ }
+ set {
+ this.other_muxField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("bouquet")]
+ public type_bouquet[] bouquet {
+ get {
+ return this.bouquetField;
+ }
+ set {
+ this.bouquetField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class type_bouquet {
+
+ private int source_idField;
+
+ private int input_bouquet_idField;
+
+ private int terrestrial_bouquet_idField;
+
+ ///
+ public int source_id {
+ get {
+ return this.source_idField;
+ }
+ set {
+ this.source_idField = value;
+ }
+ }
+
+ ///
+ public int input_bouquet_id {
+ get {
+ return this.input_bouquet_idField;
+ }
+ set {
+ this.input_bouquet_idField = value;
+ }
+ }
+
+ ///
+ public int terrestrial_bouquet_id {
+ get {
+ return this.terrestrial_bouquet_idField;
+ }
+ set {
+ this.terrestrial_bouquet_idField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class sdt_patching_processing {
+
+ private bool sdt_crossreferencing_flagField;
+
+ private type_other_mux[] other_muxField;
+
+ private type_bouquet[] bouquetField;
+
+ ///
+ public bool sdt_crossreferencing_flag {
+ get {
+ return this.sdt_crossreferencing_flagField;
+ }
+ set {
+ this.sdt_crossreferencing_flagField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("other_mux")]
+ public type_other_mux[] other_mux {
+ get {
+ return this.other_muxField;
+ }
+ set {
+ this.other_muxField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("bouquet")]
+ public type_bouquet[] bouquet {
+ get {
+ return this.bouquetField;
+ }
+ set {
+ this.bouquetField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class type_sdt_bat_processing_mode {
+
+ private object itemField;
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("sdt_passthrough", typeof(string))]
+ [System.Xml.Serialization.XmlElementAttribute("sdt_patching", typeof(sdt_patching_processing))]
+ [System.Xml.Serialization.XmlElementAttribute("sdt_regeneration", typeof(sdt_regeneration_processing))]
+ public object Item {
+ get {
+ return this.itemField;
+ }
+ set {
+ this.itemField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class cat_regeneration_processing {
+
+ private int table_repetition_periodField;
+
+ private int offsetField;
+
+ private int cAT_version_numberField;
+
+ private type_ca_provider[] ca_providerField;
+
+ ///
+ public int table_repetition_period {
+ get {
+ return this.table_repetition_periodField;
+ }
+ set {
+ this.table_repetition_periodField = value;
+ }
+ }
+
+ ///
+ public int offset {
+ get {
+ return this.offsetField;
+ }
+ set {
+ this.offsetField = value;
+ }
+ }
+
+ ///
+ public int CAT_version_number {
+ get {
+ return this.cAT_version_numberField;
+ }
+ set {
+ this.cAT_version_numberField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("ca_provider")]
+ public type_ca_provider[] ca_provider {
+ get {
+ return this.ca_providerField;
+ }
+ set {
+ this.ca_providerField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class type_ca_provider {
+
+ private int cAS_idField;
+
+ private int output_EMM_PIDField;
+
+ ///
+ public int CAS_id {
+ get {
+ return this.cAS_idField;
+ }
+ set {
+ this.cAS_idField = value;
+ }
+ }
+
+ ///
+ public int output_EMM_PID {
+ get {
+ return this.output_EMM_PIDField;
+ }
+ set {
+ this.output_EMM_PIDField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class cat_patching_processing {
+
+ private type_ca_provider[] ca_providerField;
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("ca_provider")]
+ public type_ca_provider[] ca_provider {
+ get {
+ return this.ca_providerField;
+ }
+ set {
+ this.ca_providerField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class type_cat_processing_mode {
+
+ private object itemField;
+
+ private ItemChoiceType1 itemElementNameField;
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("cat_passthrough", typeof(string))]
+ [System.Xml.Serialization.XmlElementAttribute("cat_patching", typeof(cat_patching_processing))]
+ [System.Xml.Serialization.XmlElementAttribute("cat_regeneration", typeof(cat_regeneration_processing))]
+ [System.Xml.Serialization.XmlElementAttribute("cat_stopping", typeof(string))]
+ [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")]
+ public object Item {
+ get {
+ return this.itemField;
+ }
+ set {
+ this.itemField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public ItemChoiceType1 ItemElementName {
+ get {
+ return this.itemElementNameField;
+ }
+ set {
+ this.itemElementNameField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Xml.Serialization.XmlTypeAttribute(IncludeInSchema=false)]
+ public enum ItemChoiceType1 {
+
+ ///
+ cat_passthrough,
+
+ ///
+ cat_patching,
+
+ ///
+ cat_regeneration,
+
+ ///
+ cat_stopping,
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class pat_regeneration_processing {
+
+ private int table_repetition_periodField;
+
+ private int offsetField;
+
+ private int pAT_version_numberField;
+
+ ///
+ public int table_repetition_period {
+ get {
+ return this.table_repetition_periodField;
+ }
+ set {
+ this.table_repetition_periodField = value;
+ }
+ }
+
+ ///
+ public int offset {
+ get {
+ return this.offsetField;
+ }
+ set {
+ this.offsetField = value;
+ }
+ }
+
+ ///
+ public int PAT_version_number {
+ get {
+ return this.pAT_version_numberField;
+ }
+ set {
+ this.pAT_version_numberField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class type_pat_processing_mode {
+
+ private object itemField;
+
+ private ItemChoiceType itemElementNameField;
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("pat_passthrough", typeof(string))]
+ [System.Xml.Serialization.XmlElementAttribute("pat_patching", typeof(string))]
+ [System.Xml.Serialization.XmlElementAttribute("pat_regeneration", typeof(pat_regeneration_processing))]
+ [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")]
+ public object Item {
+ get {
+ return this.itemField;
+ }
+ set {
+ this.itemField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public ItemChoiceType ItemElementName {
+ get {
+ return this.itemElementNameField;
+ }
+ set {
+ this.itemElementNameField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Xml.Serialization.XmlTypeAttribute(IncludeInSchema=false)]
+ public enum ItemChoiceType {
+
+ ///
+ pat_passthrough,
+
+ ///
+ pat_patching,
+
+ ///
+ pat_regeneration,
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class type_psisi_processing_mode {
+
+ private type_pat_processing_mode patField;
+
+ private type_cat_processing_mode catField;
+
+ private type_sdt_bat_processing_mode sdt_batField;
+
+ private type_eit_processing_mode eitField;
+
+ ///
+ public type_pat_processing_mode pat {
+ get {
+ return this.patField;
+ }
+ set {
+ this.patField = value;
+ }
+ }
+
+ ///
+ public type_cat_processing_mode cat {
+ get {
+ return this.catField;
+ }
+ set {
+ this.catField = value;
+ }
+ }
+
+ ///
+ public type_sdt_bat_processing_mode sdt_bat {
+ get {
+ return this.sdt_batField;
+ }
+ set {
+ this.sdt_batField = value;
+ }
+ }
+
+ ///
+ public type_eit_processing_mode eit {
+ get {
+ return this.eitField;
+ }
+ set {
+ this.eitField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class pmt_regeneration_processing {
+
+ private int table_repetition_periodField;
+
+ private int offsetField;
+
+ private int pCR_PIDField;
+
+ private int[] output_pidField;
+
+ private type_ECM[] eCMField;
+
+ ///
+ public int table_repetition_period {
+ get {
+ return this.table_repetition_periodField;
+ }
+ set {
+ this.table_repetition_periodField = value;
+ }
+ }
+
+ ///
+ public int offset {
+ get {
+ return this.offsetField;
+ }
+ set {
+ this.offsetField = value;
+ }
+ }
+
+ ///
+ public int PCR_PID {
+ get {
+ return this.pCR_PIDField;
+ }
+ set {
+ this.pCR_PIDField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("output_pid")]
+ public int[] output_pid {
+ get {
+ return this.output_pidField;
+ }
+ set {
+ this.output_pidField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("ECM")]
+ public type_ECM[] ECM {
+ get {
+ return this.eCMField;
+ }
+ set {
+ this.eCMField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class type_ECM {
+
+ private int cAS_idField;
+
+ private int output_ECM_PIDField;
+
+ ///
+ public int CAS_id {
+ get {
+ return this.cAS_idField;
+ }
+ set {
+ this.cAS_idField = value;
+ }
+ }
+
+ ///
+ public int output_ECM_PID {
+ get {
+ return this.output_ECM_PIDField;
+ }
+ set {
+ this.output_ECM_PIDField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class pmt_patching_processing {
+
+ private type_ECM[] eCMField;
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("ECM")]
+ public type_ECM[] ECM {
+ get {
+ return this.eCMField;
+ }
+ set {
+ this.eCMField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class type_pmt_processing_mode {
+
+ private object itemField;
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("pmt_passthrough", typeof(string))]
+ [System.Xml.Serialization.XmlElementAttribute("pmt_patching", typeof(pmt_patching_processing))]
+ [System.Xml.Serialization.XmlElementAttribute("pmt_regeneration", typeof(pmt_regeneration_processing))]
+ public object Item {
+ get {
+ return this.itemField;
+ }
+ set {
+ this.itemField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class type_service {
+
+ private int source_idField;
+
+ private int input_service_idField;
+
+ private int output_service_idField;
+
+ private string output_service_nameField;
+
+ private string output_provider_nameField;
+
+ private bool eit_schedule_flagField;
+
+ private bool eit_present_following_flagField;
+
+ private int running_statusField;
+
+ private int free_ca_modeField;
+
+ private int output_PMT_PIDField;
+
+ private type_pmt_processing_mode pmt_processing_modeField;
+
+ ///
+ public int source_id {
+ get {
+ return this.source_idField;
+ }
+ set {
+ this.source_idField = value;
+ }
+ }
+
+ ///
+ public int input_service_id {
+ get {
+ return this.input_service_idField;
+ }
+ set {
+ this.input_service_idField = value;
+ }
+ }
+
+ ///
+ public int output_service_id {
+ get {
+ return this.output_service_idField;
+ }
+ set {
+ this.output_service_idField = value;
+ }
+ }
+
+ ///
+ public string output_service_name {
+ get {
+ return this.output_service_nameField;
+ }
+ set {
+ this.output_service_nameField = value;
+ }
+ }
+
+ ///
+ public string output_provider_name {
+ get {
+ return this.output_provider_nameField;
+ }
+ set {
+ this.output_provider_nameField = value;
+ }
+ }
+
+ ///
+ public bool eit_schedule_flag {
+ get {
+ return this.eit_schedule_flagField;
+ }
+ set {
+ this.eit_schedule_flagField = value;
+ }
+ }
+
+ ///
+ public bool eit_present_following_flag {
+ get {
+ return this.eit_present_following_flagField;
+ }
+ set {
+ this.eit_present_following_flagField = value;
+ }
+ }
+
+ ///
+ public int running_status {
+ get {
+ return this.running_statusField;
+ }
+ set {
+ this.running_statusField = value;
+ }
+ }
+
+ ///
+ public int free_ca_mode {
+ get {
+ return this.free_ca_modeField;
+ }
+ set {
+ this.free_ca_modeField = value;
+ }
+ }
+
+ ///
+ public int output_PMT_PID {
+ get {
+ return this.output_PMT_PIDField;
+ }
+ set {
+ this.output_PMT_PIDField = value;
+ }
+ }
+
+ ///
+ public type_pmt_processing_mode pmt_processing_mode {
+ get {
+ return this.pmt_processing_modeField;
+ }
+ set {
+ this.pmt_processing_modeField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class type_pid_proc {
+
+ private int source_idField;
+
+ private int input_PIDField;
+
+ private int output_PIDField;
+
+ ///
+ public int source_id {
+ get {
+ return this.source_idField;
+ }
+ set {
+ this.source_idField = value;
+ }
+ }
+
+ ///
+ public int input_PID {
+ get {
+ return this.input_PIDField;
+ }
+ set {
+ this.input_PIDField = value;
+ }
+ }
+
+ ///
+ public int output_PID {
+ get {
+ return this.output_PIDField;
+ }
+ set {
+ this.output_PIDField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class type_output_TS {
+
+ private int pLP_idField;
+
+ private bool pLP_idFieldSpecified;
+
+ private int output_TS_idField;
+
+ private int output_ON_idField;
+
+ private type_pid_proc[] pid_processingField;
+
+ private type_service[] service_pmt_processingField;
+
+ private type_psisi_processing_mode psisi_processingField;
+
+ private int nsteps_to_liveField;
+
+ ///
+ public int PLP_id {
+ get {
+ return this.pLP_idField;
+ }
+ set {
+ this.pLP_idField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool PLP_idSpecified {
+ get {
+ return this.pLP_idFieldSpecified;
+ }
+ set {
+ this.pLP_idFieldSpecified = value;
+ }
+ }
+
+ ///
+ public int output_TS_id {
+ get {
+ return this.output_TS_idField;
+ }
+ set {
+ this.output_TS_idField = value;
+ }
+ }
+
+ ///
+ public int output_ON_id {
+ get {
+ return this.output_ON_idField;
+ }
+ set {
+ this.output_ON_idField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlArrayItemAttribute("pid", IsNullable=false)]
+ public type_pid_proc[] pid_processing {
+ get {
+ return this.pid_processingField;
+ }
+ set {
+ this.pid_processingField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlArrayItemAttribute("service", IsNullable=false)]
+ public type_service[] service_pmt_processing {
+ get {
+ return this.service_pmt_processingField;
+ }
+ set {
+ this.service_pmt_processingField = value;
+ }
+ }
+
+ ///
+ public type_psisi_processing_mode psisi_processing {
+ get {
+ return this.psisi_processingField;
+ }
+ set {
+ this.psisi_processingField = value;
+ }
+ }
+
+ ///
+ public int Nsteps_to_live {
+ get {
+ return this.nsteps_to_liveField;
+ }
+ set {
+ this.nsteps_to_liveField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.9037.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class type_input_parent {
+
+ private int input_TS_idField;
+
+ private int input_ON_idField;
+
+ private int source_idField;
+
+ private int pMT_PID_SIS_serviceField;
+
+ private bool primary_SIS_Service_FlagField;
+
+ ///
+ public int input_TS_id {
+ get {
+ return this.input_TS_idField;
+ }
+ set {
+ this.input_TS_idField = value;
+ }
+ }
+
+ ///
+ public int input_ON_id {
+ get {
+ return this.input_ON_idField;
+ }
+ set {
+ this.input_ON_idField = value;
+ }
+ }
+
+ ///
+ public int source_id {
+ get {
+ return this.source_idField;
+ }
+ set {
+ this.source_idField = value;
+ }
+ }
+
+ ///
+ public int PMT_PID_SIS_service {
+ get {
+ return this.pMT_PID_SIS_serviceField;
+ }
+ set {
+ this.pMT_PID_SIS_serviceField = value;
+ }
+ }
+
+ ///
+ public bool Primary_SIS_Service_Flag {
+ get {
+ return this.primary_SIS_Service_FlagField;
+ }
+ set {
+ this.primary_SIS_Service_FlagField = value;
+ }
+ }
+ }
+}
diff --git a/Documentation/SIS-XSD/sis.xsd b/Documentation/SIS-XSD/sis.xsd
new file mode 100644
index 0000000..dc8200b
--- /dev/null
+++ b/Documentation/SIS-XSD/sis.xsd
@@ -0,0 +1,388 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/skyscraper8/Mpeg2/Psi/Model/ProgramMappingStream.cs b/skyscraper8/Mpeg2/Psi/Model/ProgramMappingStream.cs
index 465840b..ed81701 100644
--- a/skyscraper8/Mpeg2/Psi/Model/ProgramMappingStream.cs
+++ b/skyscraper8/Mpeg2/Psi/Model/ProgramMappingStream.cs
@@ -221,8 +221,9 @@ namespace skyscraper5.Mpeg2.Psi.Model
public byte[] PrivateData { get; internal set; }
//Voile tools
- public bool Ac3DescriptorPresent { get; internal set; }
+ public bool? Ac3DescriptorPresent { get; internal set; }
public int NumDescriptors { get; internal set; }
+ public bool? Ac3PlusDescriptorPresent { get; internal set; }
public List UnknownUserDefines;
public ProgramMappingStream(PmtStreamType streamType, int elementaryPid)
diff --git a/skyscraper8/Mpeg2/Psi/PmtParser.cs b/skyscraper8/Mpeg2/Psi/PmtParser.cs
index 1fa80cc..f48025e 100644
--- a/skyscraper8/Mpeg2/Psi/PmtParser.cs
+++ b/skyscraper8/Mpeg2/Psi/PmtParser.cs
@@ -258,6 +258,7 @@ namespace skyscraper5.Mpeg2.Psi
output.Substream1 = eac3d.Substream1;
output.Substream2 = eac3d.Substream2;
output.Substream3 = eac3d.Substream3;
+ output.Ac3PlusDescriptorPresent = true;
break;
case nameof(HevcVideoDescriptor):
HevcVideoDescriptor hvd = (HevcVideoDescriptor)dvbDescriptor;
diff --git a/skyscraper8/Skyscraper/Scraper/ISkyscraperUiJunction.cs b/skyscraper8/Skyscraper/Scraper/ISkyscraperUiJunction.cs
index 9c1fade..bb18805 100644
--- a/skyscraper8/Skyscraper/Scraper/ISkyscraperUiJunction.cs
+++ b/skyscraper8/Skyscraper/Scraper/ISkyscraperUiJunction.cs
@@ -227,6 +227,10 @@ namespace skyscraper5.Skyscraper.Scraper
void OnDvbSisTimestamp(int pid, _0x20_DvbT2Timestamp t2Timestamp);
void OnDvbSisPat(int sourcePid, SisPatContainer patContainer);
void OnDvbSisSdt(int sourcePid, SisSdtContainer sdtContainer);
+ void OnDvbSisDsaci(ushort currentDsaGroupId, int versionNumber, byte sectionNumber, byte lastSectionNumber, Stream dsaci);
+ void OnDvbSisPmt(int sourcePid, SisPmtContainer pmtContainer);
+ void OnDvbSisNit(int sourcePid, SisNitContainer nitContainer);
+ void OnDvbSisTdt(int sourcePid, DateTime? utcTime);
TaskQueue Tasks { get; set; }
diff --git a/skyscraper8/Skyscraper/Scraper/SkyscraperContext.cs b/skyscraper8/Skyscraper/Scraper/SkyscraperContext.cs
index 5b29bbe..960fec5 100644
--- a/skyscraper8/Skyscraper/Scraper/SkyscraperContext.cs
+++ b/skyscraper8/Skyscraper/Scraper/SkyscraperContext.cs
@@ -3413,6 +3413,8 @@ namespace skyscraper5.Skyscraper.Scraper
public void OnSisDsaci(ushort currentDsaGroupId, int versionNumber, byte sectionNumber, byte lastSectionNumber, Stream dsaci)
{
+ UiJunction?.OnDvbSisDsaci(currentDsaGroupId, versionNumber, sectionNumber, lastSectionNumber, dsaci);
+
if (!CurrentNetworkId.HasValue)
return;
@@ -3429,11 +3431,9 @@ 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, ms);
+ ObjectStorage.StoreSisDsaci(CurrentNetworkId.Value, CurrentTransportStreamId.Value, currentDsaGroupId, versionNumber, dsaci);
dsaci.Dispose();
}
}
@@ -3474,6 +3474,7 @@ namespace skyscraper5.Skyscraper.Scraper
public void OnSisNit(int sourcePid, ushort sourceProgram, SisNitContainer nitContainer)
{
+ UiJunction?.OnDvbSisNit(sourcePid, nitContainer);
SkyscraperContext skyscraperContext = GetSisContext(sourceProgram);
if (nitContainer.NetworkId.HasValue)
skyscraperContext.SetNetworkId(nitContainer.NetworkId.Value);
@@ -3507,6 +3508,7 @@ namespace skyscraper5.Skyscraper.Scraper
public void OnSisPmt(int sourcePid, ushort sourceProgram, SisPmtContainer pmtContainer)
{
+ UiJunction?.OnDvbSisPmt(sourcePid, pmtContainer);
SkyscraperContext context = GetSisContext(sourceProgram);
context.PmtEvent(pmtContainer.ProgramMapping, 0);
}
@@ -3532,6 +3534,7 @@ namespace skyscraper5.Skyscraper.Scraper
public void OnSisTdt(int sourcePid, ushort sourceProgram, SisTdtContainer tdtContainer)
{
+ UiJunction?.OnDvbSisTdt(sourcePid, tdtContainer.UtcTime);
if (tdtContainer.UtcTime.HasValue)
{
SkyscraperContext context = GetSisContext(sourceProgram);