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);