diff --git a/skyscraper8.sln.DotSettings.user b/skyscraper8.sln.DotSettings.user
index b14be1c..d30f659 100644
--- a/skyscraper8.sln.DotSettings.user
+++ b/skyscraper8.sln.DotSettings.user
@@ -39,6 +39,7 @@
ForceIncluded
ForceIncluded
ForceIncluded
+ ForceIncluded
<AssemblyExplorer>
<Assembly Path="/home/schiemas/.dotnet/packs/Microsoft.NETCore.App.Ref/8.0.21/ref/net8.0/System.Windows.dll" />
<Assembly Path="/home/schiemas/.nuget/packages/allure.net.commons/2.14.1/lib/netstandard2.0/Allure.Net.Commons.dll" />
diff --git a/skyscraper8/Atsc/A331/Atsc3FilenameTable.cs b/skyscraper8/Atsc/A331/Atsc3FilenameTable.cs
index 549342e..7bd0cf0 100644
--- a/skyscraper8/Atsc/A331/Atsc3FilenameTable.cs
+++ b/skyscraper8/Atsc/A331/Atsc3FilenameTable.cs
@@ -4,27 +4,68 @@ using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
+using System.Xml;
+using skyscraper8.Atsc.A331.Schema;
namespace skyscraper8.Atsc.A331
{
internal class Atsc3FilenameTable
{
- private List> staticFilenames;
+ private List> staticTsiFilenames;
+ private List> dynamicTsiFilenames;
+ private List> staticTsiToiFilenames;
+
public void LearnFilename(IPEndPoint endpoint, Atsc3Fdt fdt)
{
foreach (Atsc3FdtFile file in fdt.Files)
{
- if (staticFilenames == null)
- staticFilenames = new List>();
- staticFilenames.Add(new Tuple(endpoint, file.TOI, file.ContentLocation));
+ if (staticTsiFilenames == null)
+ staticTsiFilenames = new List>();
+ staticTsiFilenames.Add(new Tuple(endpoint, file.TOI, file.ContentLocation));
}
}
public string GuessFilename(IPEndPoint destination, ulong tsi, ulong toi)
{
- if (staticFilenames != null)
+ if (staticTsiToiFilenames != null)
{
- foreach (Tuple staticFilename in staticFilenames)
+ foreach (Tuple staticFilename in staticTsiToiFilenames)
+ {
+ if (!staticFilename.Item1.Equals(destination))
+ continue;
+ if (staticFilename.Item2 != tsi)
+ continue;
+ if (staticFilename.Item3 != toi)
+ continue;
+
+ return staticFilename.Item4;
+ }
+ }
+
+ if (dynamicTsiFilenames != null)
+ {
+ foreach (Tuple dynamicFilename in dynamicTsiFilenames)
+ {
+ if (!dynamicFilename.Item1.Equals(destination))
+ continue;
+ if (dynamicFilename.Item2 != tsi)
+ continue;
+
+ string regex = dynamicFilename.Item3;
+ if (regex.Contains("$TOI$"))
+ {
+ regex = regex.Replace("$TOI$", toi.ToString());
+ }
+ if (regex.Contains("$"))
+ throw new NotImplementedException(regex);
+
+ return regex;
+ }
+ }
+
+ if (staticTsiFilenames != null)
+ {
+ foreach (Tuple staticFilename in staticTsiFilenames)
{
if (!staticFilename.Item1.Equals(destination))
continue;
@@ -37,5 +78,59 @@ namespace skyscraper8.Atsc.A331
return null;
}
+
+ public void LearnFilename(MbmsEnvelope mbmsEnvelope)
+ {
+ LearnFilename(mbmsEnvelope.Atsc3Stsid);
+ }
+
+ private void LearnFilename(STSIDType? stsid)
+ {
+ if (stsid == null)
+ return;
+
+ foreach (rSessionType rs in stsid.RS)
+ {
+ IPAddress dIpAddr = IPAddress.Parse(rs.dIpAddr);
+ ushort dPort = rs.dPort;
+ IPEndPoint destination = new IPEndPoint(dIpAddr, dPort);
+ foreach (lSessionType lSessionType in rs.LS)
+ {
+ uint tsi = lSessionType.tsi;
+ if (lSessionType.SrcFlow == null)
+ continue;
+ if (lSessionType.SrcFlow.EFDT == null)
+ continue;
+ LearnFilename(destination, tsi, lSessionType.SrcFlow.EFDT.FDTInstance);
+ }
+ }
+ }
+
+ private void LearnFilename(IPEndPoint destination, uint tsi, RFC6276FDTInstanceType efdtFdtInstance)
+ {
+ foreach (XmlAttribute xmlAttribute in efdtFdtInstance.AnyAttr)
+ {
+ switch (xmlAttribute.Name)
+ {
+ case "afdt:efdtVersion":
+ continue;
+ case "afdt:fileTemplate":
+ if (dynamicTsiFilenames == null)
+ dynamicTsiFilenames = new List>();
+ dynamicTsiFilenames.Add(new Tuple(destination, tsi, xmlAttribute.Value));
+ break;
+ default:
+ throw new NotImplementedException(xmlAttribute.Name);
+ }
+ }
+
+ foreach (RFC6276FileType rfc6276FileType in efdtFdtInstance.File)
+ {
+ ulong toi = ulong.Parse(rfc6276FileType.TOI);
+ if (staticTsiToiFilenames == null)
+ staticTsiToiFilenames = new List>();
+ staticTsiToiFilenames.Add(new Tuple(destination, tsi, toi, rfc6276FileType.ContentLocation));
+ }
+ }
}
}
diff --git a/skyscraper8/Atsc/A331/Atsc3Receiver.cs b/skyscraper8/Atsc/A331/Atsc3Receiver.cs
index ea2e69d..96d0a74 100644
--- a/skyscraper8/Atsc/A331/Atsc3Receiver.cs
+++ b/skyscraper8/Atsc/A331/Atsc3Receiver.cs
@@ -5,6 +5,7 @@ using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
+using MimeKit;
using skyscraper5.Ietf.Rfc768;
using skyscraper5.Ietf.Rfc971;
using skyscraper5.Skyscraper;
@@ -127,17 +128,27 @@ namespace skyscraper8.Atsc.A331
targetListener.PushPacket(lctFrame);
_stopProcessIndicator = true;
- if (targetListener.IsComplete())
+ if (lctFrame.CloseObjectFlag)
{
- GuessedFluteDataType guessedFluteDataType = FluteUtilities.GuessDataType(targetListener);
- ProcessMetafile(guessedFluteDataType, targetListener, destination);
-
- string outFileName = filenames.GuessFilename(destination, tsi, toi);
- if (!string.IsNullOrEmpty(outFileName))
+ if (targetListener.IsComplete())
{
- eventHandler.OnAtsc3FileDelivery(destination, tsi, toi, targetListener, guessedFluteDataType, outFileName);
+ GuessedFluteDataType guessedFluteDataType = FluteUtilities.GuessDataType(targetListener);
+ if (guessedFluteDataType == GuessedFluteDataType.Stuffing)
+ return;
+
+ ProcessMetafile(guessedFluteDataType, targetListener, destination);
+
+ string outFileName = filenames.GuessFilename(destination, tsi, toi);
+ if (!string.IsNullOrEmpty(outFileName))
+ {
+ eventHandler.OnAtsc3FileDelivery(destination, tsi, toi, targetListener, guessedFluteDataType, outFileName);
+ }
}
}
+ /*if (targetListener.IsComplete())
+ {
+
+ }*/
}
private bool ProcessMetafile(GuessedFluteDataType guessedFluteDataType, FluteListener targetListener, IPEndPoint destination)
@@ -152,11 +163,18 @@ namespace skyscraper8.Atsc.A331
filenames.LearnFilename(destination, fdt);
return true;
}
-
return false;
case GuessedFluteDataType.MultimediaContent:
return false;
+ case GuessedFluteDataType.Mime:
+ MimeMessage mimeMessage = MimeMessage.Load(targetListener.ToStream());
+ MbmsEnvelope mbmsEnvelope = new MbmsEnvelope(mimeMessage);
+ filenames.LearnFilename(mbmsEnvelope);
+ return true;
+ case GuessedFluteDataType.Stuffing:
+ return false;
default:
+ targetListener.WriteToFile("unknown.bin");
throw new NotImplementedException(guessedFluteDataType.ToString());
}
}
diff --git a/skyscraper8/Atsc/A331/Atsc3Utilities.cs b/skyscraper8/Atsc/A331/Atsc3Utilities.cs
index 9596a46..8a613c1 100644
--- a/skyscraper8/Atsc/A331/Atsc3Utilities.cs
+++ b/skyscraper8/Atsc/A331/Atsc3Utilities.cs
@@ -6,6 +6,7 @@ using System.Text;
using System.Threading.Tasks;
using System.Xml;
using System.Xml.Serialization;
+using Schemas;
namespace skyscraper8.Atsc.A331
{
@@ -13,6 +14,10 @@ namespace skyscraper8.Atsc.A331
{
private static XmlSerializer sltSerializer;
private static XmlSerializer systimeSerializer;
+ private static XmlSerializer htmlEntryPackageSerializer;
+ private static XmlSerializer stsIdSerializer;
+ private static XmlSerializer routeUsdSerializer;
+
public static sltType UnpackSlt(byte[] buffer)
{
@@ -126,5 +131,36 @@ namespace skyscraper8.Atsc.A331
return result;
}
+
+
+ public static HELDType? ParseHeld(Stream value)
+ {
+ if (htmlEntryPackageSerializer == null)
+ {
+ htmlEntryPackageSerializer = new XmlSerializer(typeof(HELDType));
+ }
+ object deserialize = htmlEntryPackageSerializer.Deserialize(value);
+ return deserialize as HELDType;
+ }
+
+ public static STSIDType? ParseStsId(Stream value)
+ {
+ if (stsIdSerializer == null)
+ {
+ stsIdSerializer = new XmlSerializer(typeof(STSIDType));
+ }
+ object deserialize = stsIdSerializer.Deserialize(value);
+ return deserialize as STSIDType;
+ }
+
+ public static BundleDescriptionROUTEType? ParseRouteUsd(Stream value)
+ {
+ if (routeUsdSerializer == null)
+ {
+ routeUsdSerializer = new XmlSerializer(typeof(BundleDescriptionROUTEType));
+ }
+ object deserialize = routeUsdSerializer.Deserialize(value);
+ return deserialize as BundleDescriptionROUTEType;
+ }
}
}
diff --git a/skyscraper8/Atsc/A331/Schema/HELD-1.0-20190122_RRT-1.0-20170209_SA-1.0-20170921.cs b/skyscraper8/Atsc/A331/Schema/HELD-1.0-20190122_RRT-1.0-20170209_SA-1.0-20170921.cs
new file mode 100644
index 0000000..8d9cfe8
--- /dev/null
+++ b/skyscraper8/Atsc/A331/Schema/HELD-1.0-20190122_RRT-1.0-20170209_SA-1.0-20170921.cs
@@ -0,0 +1,295 @@
+//------------------------------------------------------------------------------
+//
+// 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 MonoXSD
+//
+namespace skyscraper8.Atsc.A331.Schema {
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="tag:atsc.org,2016:XMLSchemas/ATSC3/AppSignaling/HELD/1.0/")]
+ public partial class HTMLEntryPackageType {
+
+ private System.Xml.XmlElement[] anyField;
+
+ private string appContextIdField;
+
+ private string requiredCapabilitiesField;
+
+ private bool appRenderingField;
+
+ private bool appRenderingFieldSpecified;
+
+ private System.DateTime clearAppContextCacheDateField;
+
+ private bool clearAppContextCacheDateFieldSpecified;
+
+ private string bcastEntryPackageUrlField;
+
+ private string bcastEntryPageUrlField;
+
+ private string bbandEntryPageUrlField;
+
+ private System.DateTime validFromField;
+
+ private bool validFromFieldSpecified;
+
+ private System.DateTime validUntilField;
+
+ private bool validUntilFieldSpecified;
+
+ private ushort[] coupledServicesField;
+
+ private uint[] lctTSIRefField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")]
+ public string appContextId {
+ get {
+ return this.appContextIdField;
+ }
+ set {
+ this.appContextIdField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string requiredCapabilities {
+ get {
+ return this.requiredCapabilitiesField;
+ }
+ set {
+ this.requiredCapabilitiesField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public bool appRendering {
+ get {
+ return this.appRenderingField;
+ }
+ set {
+ this.appRenderingField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool appRenderingSpecified {
+ get {
+ return this.appRenderingFieldSpecified;
+ }
+ set {
+ this.appRenderingFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public System.DateTime clearAppContextCacheDate {
+ get {
+ return this.clearAppContextCacheDateField;
+ }
+ set {
+ this.clearAppContextCacheDateField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool clearAppContextCacheDateSpecified {
+ get {
+ return this.clearAppContextCacheDateFieldSpecified;
+ }
+ set {
+ this.clearAppContextCacheDateFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")]
+ public string bcastEntryPackageUrl {
+ get {
+ return this.bcastEntryPackageUrlField;
+ }
+ set {
+ this.bcastEntryPackageUrlField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")]
+ public string bcastEntryPageUrl {
+ get {
+ return this.bcastEntryPageUrlField;
+ }
+ set {
+ this.bcastEntryPageUrlField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")]
+ public string bbandEntryPageUrl {
+ get {
+ return this.bbandEntryPageUrlField;
+ }
+ set {
+ this.bbandEntryPageUrlField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public System.DateTime validFrom {
+ get {
+ return this.validFromField;
+ }
+ set {
+ this.validFromField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool validFromSpecified {
+ get {
+ return this.validFromFieldSpecified;
+ }
+ set {
+ this.validFromFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public System.DateTime validUntil {
+ get {
+ return this.validUntilField;
+ }
+ set {
+ this.validUntilField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool validUntilSpecified {
+ get {
+ return this.validUntilFieldSpecified;
+ }
+ set {
+ this.validUntilFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public ushort[] coupledServices {
+ get {
+ return this.coupledServicesField;
+ }
+ set {
+ this.coupledServicesField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint[] lctTSIRef {
+ get {
+ return this.lctTSIRefField;
+ }
+ set {
+ this.lctTSIRefField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="tag:atsc.org,2016:XMLSchemas/ATSC3/AppSignaling/HELD/1.0/")]
+ [System.Xml.Serialization.XmlRootAttribute("HELD", Namespace="tag:atsc.org,2016:XMLSchemas/ATSC3/AppSignaling/HELD/1.0/", IsNullable=false)]
+ public partial class HELDType {
+
+ private HTMLEntryPackageType[] hTMLEntryPackageField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("HTMLEntryPackage")]
+ public HTMLEntryPackageType[] HTMLEntryPackage {
+ get {
+ return this.hTMLEntryPackageField;
+ }
+ set {
+ this.hTMLEntryPackageField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+}
diff --git a/skyscraper8/Atsc/A331/Schema/ROUTEUSD-1.0-20170920.cs b/skyscraper8/Atsc/A331/Schema/ROUTEUSD-1.0-20170920.cs
new file mode 100644
index 0000000..73320a9
--- /dev/null
+++ b/skyscraper8/Atsc/A331/Schema/ROUTEUSD-1.0-20170920.cs
@@ -0,0 +1,348 @@
+//------------------------------------------------------------------------------
+//
+// 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 MonoXSD
+//
+namespace Schemas {
+
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="tag:atsc.org,2016:XMLSchemas/ATSC3/Delivery/ROUTEUSD/1.0/")]
+ [System.Xml.Serialization.XmlRootAttribute("BundleDescriptionROUTE", Namespace="tag:atsc.org,2016:XMLSchemas/ATSC3/Delivery/ROUTEUSD/1.0/", IsNullable=false)]
+ public partial class BundleDescriptionROUTEType {
+
+ private UserServiceDescriptionType userServiceDescriptionField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ ///
+ public UserServiceDescriptionType UserServiceDescription {
+ get {
+ return this.userServiceDescriptionField;
+ }
+ set {
+ this.userServiceDescriptionField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="tag:atsc.org,2016:XMLSchemas/ATSC3/Delivery/ROUTEUSD/1.0/")]
+ public partial class UserServiceDescriptionType {
+
+ private NameType[] nameField;
+
+ private ServiceLangType[] serviceLanguageField;
+
+ private DeliveryMethodType[] deliveryMethodField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ private ushort serviceIdField;
+
+ private bool serviceStatusField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ public UserServiceDescriptionType() {
+ this.serviceStatusField = true;
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("Name")]
+ public NameType[] Name {
+ get {
+ return this.nameField;
+ }
+ set {
+ this.nameField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("ServiceLanguage")]
+ public ServiceLangType[] ServiceLanguage {
+ get {
+ return this.serviceLanguageField;
+ }
+ set {
+ this.serviceLanguageField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("DeliveryMethod")]
+ public DeliveryMethodType[] DeliveryMethod {
+ get {
+ return this.deliveryMethodField;
+ }
+ set {
+ this.deliveryMethodField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public ushort serviceId {
+ get {
+ return this.serviceIdField;
+ }
+ set {
+ this.serviceIdField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ [System.ComponentModel.DefaultValueAttribute(true)]
+ public bool serviceStatus {
+ get {
+ return this.serviceStatusField;
+ }
+ set {
+ this.serviceStatusField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="tag:atsc.org,2016:XMLSchemas/ATSC3/Delivery/ROUTEUSD/1.0/")]
+ public partial class NameType {
+
+ private string langField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ private string valueField;
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
+ public string lang {
+ get {
+ return this.langField;
+ }
+ set {
+ this.langField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlTextAttribute()]
+ public string Value {
+ get {
+ return this.valueField;
+ }
+ set {
+ this.valueField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="tag:atsc.org,2016:XMLSchemas/ATSC3/Delivery/ROUTEUSD/1.0/")]
+ public partial class AppServiceType {
+
+ private string[] basePatternField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("BasePattern")]
+ public string[] BasePattern {
+ get {
+ return this.basePatternField;
+ }
+ set {
+ this.basePatternField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="tag:atsc.org,2016:XMLSchemas/ATSC3/Delivery/ROUTEUSD/1.0/")]
+ public partial class DeliveryMethodType {
+
+ private AppServiceType[] broadcastAppServiceField;
+
+ private AppServiceType[] unicastAppServiceField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("BroadcastAppService")]
+ public AppServiceType[] BroadcastAppService {
+ get {
+ return this.broadcastAppServiceField;
+ }
+ set {
+ this.broadcastAppServiceField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("UnicastAppService")]
+ public AppServiceType[] UnicastAppService {
+ get {
+ return this.unicastAppServiceField;
+ }
+ set {
+ this.unicastAppServiceField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="tag:atsc.org,2016:XMLSchemas/ATSC3/Delivery/ROUTEUSD/1.0/")]
+ public partial class ServiceLangType {
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ private string valueField;
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlTextAttribute()]
+ public string Value {
+ get {
+ return this.valueField;
+ }
+ set {
+ this.valueField = value;
+ }
+ }
+ }
+}
diff --git a/skyscraper8/Atsc/A331/Schema/S-TSID-1.0-20190208_FDT.cs b/skyscraper8/Atsc/A331/Schema/S-TSID-1.0-20190208_FDT.cs
new file mode 100644
index 0000000..97477d7
--- /dev/null
+++ b/skyscraper8/Atsc/A331/Schema/S-TSID-1.0-20190208_FDT.cs
@@ -0,0 +1,1713 @@
+//------------------------------------------------------------------------------
+//
+// 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 MonoXSD
+//
+namespace skyscraper8.Atsc.A331.Schema {
+
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="tag:atsc.org,2016:XMLSchemas/ATSC3/Delivery/S-TSID/1.0/")]
+ [System.Xml.Serialization.XmlRootAttribute("S-TSID", Namespace="tag:atsc.org,2016:XMLSchemas/ATSC3/Delivery/S-TSID/1.0/", IsNullable=false)]
+ public partial class STSIDType {
+
+ private rSessionType[] rsField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("RS")]
+ public rSessionType[] RS {
+ get {
+ return this.rsField;
+ }
+ set {
+ this.rsField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="tag:atsc.org,2016:XMLSchemas/ATSC3/Delivery/S-TSID/1.0/")]
+ public partial class rSessionType {
+
+ private lSessionType[] lsField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ private string sIpAddrField;
+
+ private string dIpAddrField;
+
+ private ushort dPortField;
+
+ private bool dPortFieldSpecified;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("LS")]
+ public lSessionType[] LS {
+ get {
+ return this.lsField;
+ }
+ set {
+ this.lsField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="token")]
+ public string sIpAddr {
+ get {
+ return this.sIpAddrField;
+ }
+ set {
+ this.sIpAddrField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="token")]
+ public string dIpAddr {
+ get {
+ return this.dIpAddrField;
+ }
+ set {
+ this.dIpAddrField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public ushort dPort {
+ get {
+ return this.dPortField;
+ }
+ set {
+ this.dPortField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool dPortSpecified {
+ get {
+ return this.dPortFieldSpecified;
+ }
+ set {
+ this.dPortFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="tag:atsc.org,2016:XMLSchemas/ATSC3/Delivery/S-TSID/1.0/")]
+ public partial class lSessionType {
+
+ private srcFlowType srcFlowField;
+
+ private rprFlowType repairFlowField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ private uint tsiField;
+
+ private uint bwField;
+
+ private bool bwFieldSpecified;
+
+ private System.DateTime startTimeField;
+
+ private bool startTimeFieldSpecified;
+
+ private System.DateTime endTimeField;
+
+ private bool endTimeFieldSpecified;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ ///
+ public srcFlowType SrcFlow {
+ get {
+ return this.srcFlowField;
+ }
+ set {
+ this.srcFlowField = value;
+ }
+ }
+
+ ///
+ public rprFlowType RepairFlow {
+ get {
+ return this.repairFlowField;
+ }
+ set {
+ this.repairFlowField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint tsi {
+ get {
+ return this.tsiField;
+ }
+ set {
+ this.tsiField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint bw {
+ get {
+ return this.bwField;
+ }
+ set {
+ this.bwField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool bwSpecified {
+ get {
+ return this.bwFieldSpecified;
+ }
+ set {
+ this.bwFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public System.DateTime startTime {
+ get {
+ return this.startTimeField;
+ }
+ set {
+ this.startTimeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool startTimeSpecified {
+ get {
+ return this.startTimeFieldSpecified;
+ }
+ set {
+ this.startTimeFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public System.DateTime endTime {
+ get {
+ return this.endTimeField;
+ }
+ set {
+ this.endTimeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool endTimeSpecified {
+ get {
+ return this.endTimeFieldSpecified;
+ }
+ set {
+ this.endTimeFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="tag:atsc.org,2016:XMLSchemas/ATSC3/Delivery/S-TSID/1.0/")]
+ [System.Xml.Serialization.XmlRootAttribute("SrcFlow", Namespace="tag:atsc.org,2016:XMLSchemas/ATSC3/Delivery/S-TSID/1.0/", IsNullable=false)]
+ public partial class srcFlowType {
+
+ private EFDTType eFDTField;
+
+ private ContentInfoType contentInfoField;
+
+ private PayloadType[] payloadField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ private bool rtField;
+
+ private uint minBuffSizeField;
+
+ private bool minBuffSizeFieldSpecified;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ public srcFlowType() {
+ this.rtField = false;
+ }
+
+ ///
+ public EFDTType EFDT {
+ get {
+ return this.eFDTField;
+ }
+ set {
+ this.eFDTField = value;
+ }
+ }
+
+ ///
+ public ContentInfoType ContentInfo {
+ get {
+ return this.contentInfoField;
+ }
+ set {
+ this.contentInfoField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("Payload")]
+ public PayloadType[] Payload {
+ get {
+ return this.payloadField;
+ }
+ set {
+ this.payloadField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ [System.ComponentModel.DefaultValueAttribute(false)]
+ public bool rt {
+ get {
+ return this.rtField;
+ }
+ set {
+ this.rtField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint minBuffSize {
+ get {
+ return this.minBuffSizeField;
+ }
+ set {
+ this.minBuffSizeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool minBuffSizeSpecified {
+ get {
+ return this.minBuffSizeFieldSpecified;
+ }
+ set {
+ this.minBuffSizeFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="tag:atsc.org,2016:XMLSchemas/ATSC3/Delivery/S-TSID/1.0/")]
+ public partial class EFDTType {
+
+ private RFC6276FDTInstanceType fDTInstanceField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("FDT-Instance")]
+ public RFC6276FDTInstanceType FDTInstance {
+ get {
+ return this.fDTInstanceField;
+ }
+ set {
+ this.fDTInstanceField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(TypeName="FDT-InstanceType", Namespace="urn:ietf:params:xml:ns:fdt")]
+ [System.Xml.Serialization.XmlRootAttribute("FDT-Instance", Namespace="urn:ietf:params:xml:ns:fdt", IsNullable=false)]
+ public partial class RFC6276FDTInstanceType {
+
+ private RFC6276FileType[] fileField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ private string expiresField;
+
+ private bool completeField;
+
+ private bool completeFieldSpecified;
+
+ private string contentTypeField;
+
+ private string contentEncodingField;
+
+ private byte fECOTIFECEncodingIDField;
+
+ private bool fECOTIFECEncodingIDFieldSpecified;
+
+ private ulong fECOTIFECInstanceIDField;
+
+ private bool fECOTIFECInstanceIDFieldSpecified;
+
+ private ulong fECOTIMaximumSourceBlockLengthField;
+
+ private bool fECOTIMaximumSourceBlockLengthFieldSpecified;
+
+ private ulong fECOTIEncodingSymbolLengthField;
+
+ private bool fECOTIEncodingSymbolLengthFieldSpecified;
+
+ private ulong fECOTIMaxNumberofEncodingSymbolsField;
+
+ private bool fECOTIMaxNumberofEncodingSymbolsFieldSpecified;
+
+ private byte[] fECOTISchemeSpecificInfoField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("File")]
+ public RFC6276FileType[] File {
+ get {
+ return this.fileField;
+ }
+ set {
+ this.fileField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string Expires {
+ get {
+ return this.expiresField;
+ }
+ set {
+ this.expiresField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public bool Complete {
+ get {
+ return this.completeField;
+ }
+ set {
+ this.completeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool CompleteSpecified {
+ get {
+ return this.completeFieldSpecified;
+ }
+ set {
+ this.completeFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute("Content-Type")]
+ public string ContentType {
+ get {
+ return this.contentTypeField;
+ }
+ set {
+ this.contentTypeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute("Content-Encoding")]
+ public string ContentEncoding {
+ get {
+ return this.contentEncodingField;
+ }
+ set {
+ this.contentEncodingField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute("FEC-OTI-FEC-Encoding-ID")]
+ public byte FECOTIFECEncodingID {
+ get {
+ return this.fECOTIFECEncodingIDField;
+ }
+ set {
+ this.fECOTIFECEncodingIDField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool FECOTIFECEncodingIDSpecified {
+ get {
+ return this.fECOTIFECEncodingIDFieldSpecified;
+ }
+ set {
+ this.fECOTIFECEncodingIDFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute("FEC-OTI-FEC-Instance-ID")]
+ public ulong FECOTIFECInstanceID {
+ get {
+ return this.fECOTIFECInstanceIDField;
+ }
+ set {
+ this.fECOTIFECInstanceIDField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool FECOTIFECInstanceIDSpecified {
+ get {
+ return this.fECOTIFECInstanceIDFieldSpecified;
+ }
+ set {
+ this.fECOTIFECInstanceIDFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute("FEC-OTI-Maximum-Source-Block-Length")]
+ public ulong FECOTIMaximumSourceBlockLength {
+ get {
+ return this.fECOTIMaximumSourceBlockLengthField;
+ }
+ set {
+ this.fECOTIMaximumSourceBlockLengthField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool FECOTIMaximumSourceBlockLengthSpecified {
+ get {
+ return this.fECOTIMaximumSourceBlockLengthFieldSpecified;
+ }
+ set {
+ this.fECOTIMaximumSourceBlockLengthFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute("FEC-OTI-Encoding-Symbol-Length")]
+ public ulong FECOTIEncodingSymbolLength {
+ get {
+ return this.fECOTIEncodingSymbolLengthField;
+ }
+ set {
+ this.fECOTIEncodingSymbolLengthField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool FECOTIEncodingSymbolLengthSpecified {
+ get {
+ return this.fECOTIEncodingSymbolLengthFieldSpecified;
+ }
+ set {
+ this.fECOTIEncodingSymbolLengthFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute("FEC-OTI-Max-Number-of-Encoding-Symbols")]
+ public ulong FECOTIMaxNumberofEncodingSymbols {
+ get {
+ return this.fECOTIMaxNumberofEncodingSymbolsField;
+ }
+ set {
+ this.fECOTIMaxNumberofEncodingSymbolsField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool FECOTIMaxNumberofEncodingSymbolsSpecified {
+ get {
+ return this.fECOTIMaxNumberofEncodingSymbolsFieldSpecified;
+ }
+ set {
+ this.fECOTIMaxNumberofEncodingSymbolsFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute("FEC-OTI-Scheme-Specific-Info", DataType="base64Binary")]
+ public byte[] FECOTISchemeSpecificInfo {
+ get {
+ return this.fECOTISchemeSpecificInfoField;
+ }
+ set {
+ this.fECOTISchemeSpecificInfoField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:ietf:params:xml:ns:fdt")]
+ public partial class RFC6276FileType {
+
+ private System.Xml.XmlElement[] anyField;
+
+ private string contentLocationField;
+
+ private string tOIField;
+
+ private ulong contentLengthField;
+
+ private bool contentLengthFieldSpecified;
+
+ private ulong transferLengthField;
+
+ private bool transferLengthFieldSpecified;
+
+ private string contentTypeField;
+
+ private string contentEncodingField;
+
+ private byte[] contentMD5Field;
+
+ private byte fECOTIFECEncodingIDField;
+
+ private bool fECOTIFECEncodingIDFieldSpecified;
+
+ private ulong fECOTIFECInstanceIDField;
+
+ private bool fECOTIFECInstanceIDFieldSpecified;
+
+ private ulong fECOTIMaximumSourceBlockLengthField;
+
+ private bool fECOTIMaximumSourceBlockLengthFieldSpecified;
+
+ private ulong fECOTIEncodingSymbolLengthField;
+
+ private bool fECOTIEncodingSymbolLengthFieldSpecified;
+
+ private ulong fECOTIMaxNumberofEncodingSymbolsField;
+
+ private bool fECOTIMaxNumberofEncodingSymbolsFieldSpecified;
+
+ private byte[] fECOTISchemeSpecificInfoField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute("Content-Location", DataType="anyURI")]
+ public string ContentLocation {
+ get {
+ return this.contentLocationField;
+ }
+ set {
+ this.contentLocationField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="positiveInteger")]
+ public string TOI {
+ get {
+ return this.tOIField;
+ }
+ set {
+ this.tOIField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute("Content-Length")]
+ public ulong ContentLength {
+ get {
+ return this.contentLengthField;
+ }
+ set {
+ this.contentLengthField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool ContentLengthSpecified {
+ get {
+ return this.contentLengthFieldSpecified;
+ }
+ set {
+ this.contentLengthFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute("Transfer-Length")]
+ public ulong TransferLength {
+ get {
+ return this.transferLengthField;
+ }
+ set {
+ this.transferLengthField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool TransferLengthSpecified {
+ get {
+ return this.transferLengthFieldSpecified;
+ }
+ set {
+ this.transferLengthFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute("Content-Type")]
+ public string ContentType {
+ get {
+ return this.contentTypeField;
+ }
+ set {
+ this.contentTypeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute("Content-Encoding")]
+ public string ContentEncoding {
+ get {
+ return this.contentEncodingField;
+ }
+ set {
+ this.contentEncodingField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute("Content-MD5", DataType="base64Binary")]
+ public byte[] ContentMD5 {
+ get {
+ return this.contentMD5Field;
+ }
+ set {
+ this.contentMD5Field = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute("FEC-OTI-FEC-Encoding-ID")]
+ public byte FECOTIFECEncodingID {
+ get {
+ return this.fECOTIFECEncodingIDField;
+ }
+ set {
+ this.fECOTIFECEncodingIDField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool FECOTIFECEncodingIDSpecified {
+ get {
+ return this.fECOTIFECEncodingIDFieldSpecified;
+ }
+ set {
+ this.fECOTIFECEncodingIDFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute("FEC-OTI-FEC-Instance-ID")]
+ public ulong FECOTIFECInstanceID {
+ get {
+ return this.fECOTIFECInstanceIDField;
+ }
+ set {
+ this.fECOTIFECInstanceIDField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool FECOTIFECInstanceIDSpecified {
+ get {
+ return this.fECOTIFECInstanceIDFieldSpecified;
+ }
+ set {
+ this.fECOTIFECInstanceIDFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute("FEC-OTI-Maximum-Source-Block-Length")]
+ public ulong FECOTIMaximumSourceBlockLength {
+ get {
+ return this.fECOTIMaximumSourceBlockLengthField;
+ }
+ set {
+ this.fECOTIMaximumSourceBlockLengthField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool FECOTIMaximumSourceBlockLengthSpecified {
+ get {
+ return this.fECOTIMaximumSourceBlockLengthFieldSpecified;
+ }
+ set {
+ this.fECOTIMaximumSourceBlockLengthFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute("FEC-OTI-Encoding-Symbol-Length")]
+ public ulong FECOTIEncodingSymbolLength {
+ get {
+ return this.fECOTIEncodingSymbolLengthField;
+ }
+ set {
+ this.fECOTIEncodingSymbolLengthField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool FECOTIEncodingSymbolLengthSpecified {
+ get {
+ return this.fECOTIEncodingSymbolLengthFieldSpecified;
+ }
+ set {
+ this.fECOTIEncodingSymbolLengthFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute("FEC-OTI-Max-Number-of-Encoding-Symbols")]
+ public ulong FECOTIMaxNumberofEncodingSymbols {
+ get {
+ return this.fECOTIMaxNumberofEncodingSymbolsField;
+ }
+ set {
+ this.fECOTIMaxNumberofEncodingSymbolsField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool FECOTIMaxNumberofEncodingSymbolsSpecified {
+ get {
+ return this.fECOTIMaxNumberofEncodingSymbolsFieldSpecified;
+ }
+ set {
+ this.fECOTIMaxNumberofEncodingSymbolsFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute("FEC-OTI-Scheme-Specific-Info", DataType="base64Binary")]
+ public byte[] FECOTISchemeSpecificInfo {
+ get {
+ return this.fECOTISchemeSpecificInfoField;
+ }
+ set {
+ this.fECOTISchemeSpecificInfoField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="tag:atsc.org,2016:XMLSchemas/ATSC3/Delivery/S-TSID/1.0/")]
+ public partial class protectedObjectType {
+
+ private System.Xml.XmlElement[] anyField;
+
+ private string sessionDescriptionField;
+
+ private uint tsiField;
+
+ private string sourceTOIField;
+
+ private uint fecTransportObjectSizeField;
+
+ private bool fecTransportObjectSizeFieldSpecified;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string sessionDescription {
+ get {
+ return this.sessionDescriptionField;
+ }
+ set {
+ this.sessionDescriptionField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint tsi {
+ get {
+ return this.tsiField;
+ }
+ set {
+ this.tsiField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string sourceTOI {
+ get {
+ return this.sourceTOIField;
+ }
+ set {
+ this.sourceTOIField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint fecTransportObjectSize {
+ get {
+ return this.fecTransportObjectSizeField;
+ }
+ set {
+ this.fecTransportObjectSizeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool fecTransportObjectSizeSpecified {
+ get {
+ return this.fecTransportObjectSizeFieldSpecified;
+ }
+ set {
+ this.fecTransportObjectSizeFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="tag:atsc.org,2016:XMLSchemas/ATSC3/Delivery/S-TSID/1.0/")]
+ public partial class fecParametersType {
+
+ private protectedObjectType[] protectedObjectField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ private uint maximumDelayField;
+
+ private ushort overheadField;
+
+ private bool overheadFieldSpecified;
+
+ private uint minBuffSizeField;
+
+ private bool minBuffSizeFieldSpecified;
+
+ private byte[] fecOTIField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ public fecParametersType() {
+ this.maximumDelayField = ((uint)(0));
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("ProtectedObject")]
+ public protectedObjectType[] ProtectedObject {
+ get {
+ return this.protectedObjectField;
+ }
+ set {
+ this.protectedObjectField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ [System.ComponentModel.DefaultValueAttribute(typeof(uint), "0")]
+ public uint maximumDelay {
+ get {
+ return this.maximumDelayField;
+ }
+ set {
+ this.maximumDelayField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public ushort overhead {
+ get {
+ return this.overheadField;
+ }
+ set {
+ this.overheadField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool overheadSpecified {
+ get {
+ return this.overheadFieldSpecified;
+ }
+ set {
+ this.overheadFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint minBuffSize {
+ get {
+ return this.minBuffSizeField;
+ }
+ set {
+ this.minBuffSizeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool minBuffSizeSpecified {
+ get {
+ return this.minBuffSizeFieldSpecified;
+ }
+ set {
+ this.minBuffSizeFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="hexBinary")]
+ public byte[] fecOTI {
+ get {
+ return this.fecOTIField;
+ }
+ set {
+ this.fecOTIField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="tag:atsc.org,2016:XMLSchemas/ATSC3/Delivery/S-TSID/1.0/")]
+ public partial class PayloadType {
+
+ private byte codePointField;
+
+ private byte formatIdField;
+
+ private byte fragField;
+
+ private bool orderField;
+
+ private byte srcFecPayloadIdField;
+
+ private byte[] fecParamsField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ public PayloadType() {
+ this.codePointField = ((byte)(0));
+ this.fragField = ((byte)(0));
+ this.orderField = false;
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ [System.ComponentModel.DefaultValueAttribute(typeof(byte), "0")]
+ public byte codePoint {
+ get {
+ return this.codePointField;
+ }
+ set {
+ this.codePointField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public byte formatId {
+ get {
+ return this.formatIdField;
+ }
+ set {
+ this.formatIdField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ [System.ComponentModel.DefaultValueAttribute(typeof(byte), "0")]
+ public byte frag {
+ get {
+ return this.fragField;
+ }
+ set {
+ this.fragField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ [System.ComponentModel.DefaultValueAttribute(false)]
+ public bool order {
+ get {
+ return this.orderField;
+ }
+ set {
+ this.orderField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public byte srcFecPayloadId {
+ get {
+ return this.srcFecPayloadIdField;
+ }
+ set {
+ this.srcFecPayloadIdField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="hexBinary")]
+ public byte[] fecParams {
+ get {
+ return this.fecParamsField;
+ }
+ set {
+ this.fecParamsField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="tag:atsc.org,2016:XMLSchemas/ATSC3/Delivery/S-TSID/1.0/")]
+ public partial class AEAMediaType {
+
+ private string[] aEAIdField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("AEAId")]
+ public string[] AEAId {
+ get {
+ return this.aEAIdField;
+ }
+ set {
+ this.aEAIdField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="tag:atsc.org,2016:XMLSchemas/ATSC3/Delivery/S-TSID/1.0/")]
+ public partial class ContentRatingType {
+
+ private System.Xml.XmlElement[] anyField;
+
+ private string schemeIdUriField;
+
+ private string valueField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ public ContentRatingType() {
+ this.schemeIdUriField = "tag:atsc.org,2016:carating:1";
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")]
+ [System.ComponentModel.DefaultValueAttribute("tag:atsc.org,2016:carating:1")]
+ public string schemeIdUri {
+ get {
+ return this.schemeIdUriField;
+ }
+ set {
+ this.schemeIdUriField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string value {
+ get {
+ return this.valueField;
+ }
+ set {
+ this.valueField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="tag:atsc.org,2016:XMLSchemas/ATSC3/Delivery/S-TSID/1.0/")]
+ public partial class MediaInfoType {
+
+ private ContentRatingType[] contentRatingField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ private bool startupField;
+
+ private bool startupFieldSpecified;
+
+ private string langField;
+
+ private contentTypeType contentTypeField;
+
+ private bool contentTypeFieldSpecified;
+
+ private string repIdField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("ContentRating")]
+ public ContentRatingType[] ContentRating {
+ get {
+ return this.contentRatingField;
+ }
+ set {
+ this.contentRatingField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public bool startup {
+ get {
+ return this.startupField;
+ }
+ set {
+ this.startupField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool startupSpecified {
+ get {
+ return this.startupFieldSpecified;
+ }
+ set {
+ this.startupFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
+ public string lang {
+ get {
+ return this.langField;
+ }
+ set {
+ this.langField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public contentTypeType contentType {
+ get {
+ return this.contentTypeField;
+ }
+ set {
+ this.contentTypeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool contentTypeSpecified {
+ get {
+ return this.contentTypeFieldSpecified;
+ }
+ set {
+ this.contentTypeFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string repId {
+ get {
+ return this.repIdField;
+ }
+ set {
+ this.repIdField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="tag:atsc.org,2016:XMLSchemas/ATSC3/Delivery/S-TSID/1.0/")]
+ public enum contentTypeType {
+
+ ///
+ audio,
+
+ ///
+ video,
+
+ ///
+ subtitles,
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="tag:atsc.org,2016:XMLSchemas/ATSC3/Delivery/S-TSID/1.0/")]
+ public partial class ContentInfoType {
+
+ private object itemField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ [System.Xml.Serialization.XmlElementAttribute("AEAMedia", typeof(AEAMediaType))]
+ [System.Xml.Serialization.XmlElementAttribute("MediaInfo", typeof(MediaInfoType))]
+ public object Item {
+ get {
+ return this.itemField;
+ }
+ set {
+ this.itemField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="tag:atsc.org,2016:XMLSchemas/ATSC3/Delivery/S-TSID/1.0/")]
+ [System.Xml.Serialization.XmlRootAttribute("RepairFlow", Namespace="tag:atsc.org,2016:XMLSchemas/ATSC3/Delivery/S-TSID/1.0/", IsNullable=false)]
+ public partial class rprFlowType {
+
+ private fecParametersType fECParametersField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ ///
+ public fecParametersType FECParameters {
+ get {
+ return this.fECParametersField;
+ }
+ set {
+ this.fECParametersField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+}
diff --git a/skyscraper8/Ietf/FLUTE/FluteUtilities.cs b/skyscraper8/Ietf/FLUTE/FluteUtilities.cs
index 992a69d..795aa50 100644
--- a/skyscraper8/Ietf/FLUTE/FluteUtilities.cs
+++ b/skyscraper8/Ietf/FLUTE/FluteUtilities.cs
@@ -85,8 +85,24 @@ namespace skyscraper8.Ietf.FLUTE
byte[] firstBlock = targetListener.GetFirstBlock();
if (firstBlock[0] == 0x3c && firstBlock[1] == 0x3f && firstBlock[2] == 0x78 && firstBlock[3] == 0x6d && firstBlock[4] == 0x6c)
return GuessedFluteDataType.Xml;
- if (firstBlock[0] == 0x00 && firstBlock[1] == 0x00 && firstBlock[2] == 0x00)
+ if (firstBlock[0] == 0x00 && firstBlock[1] == 0x00 && firstBlock[2] == 0x00 && firstBlock[3] != 0x00)
return GuessedFluteDataType.MultimediaContent;
+ if (firstBlock[0] == 'C' && firstBlock[1] == 'o' && firstBlock[2] == 'n' && firstBlock[3] == 't' &&
+ firstBlock[4] == 'e' && firstBlock[5] == 'n' && firstBlock[6] == 't' && firstBlock[7] == '-' &&
+ firstBlock[8] == 'T' && firstBlock[9] == 'y' && firstBlock[10] == 'p' && firstBlock[11] == 'e' &&
+ firstBlock[12] == ':' && firstBlock[13] == ' ')
+ return GuessedFluteDataType.Mime;
+
+ bool allZeroes = true;
+ for (int i = 0; i < Math.Min(firstBlock.Length, 1000); i++)
+ {
+ if (firstBlock[i] != 0)
+ allZeroes = false;
+ }
+
+ if (allZeroes)
+ return GuessedFluteDataType.Stuffing;
+
return GuessedFluteDataType.Unknown;
}
}
@@ -95,6 +111,8 @@ namespace skyscraper8.Ietf.FLUTE
{
Unknown,
Xml,
- MultimediaContent
+ MultimediaContent,
+ Mime,
+ Stuffing
}
}
diff --git a/skyscraper8/MpegDash/MbmsEnvelope.cs b/skyscraper8/MpegDash/MbmsEnvelope.cs
new file mode 100644
index 0000000..e1cc3d8
--- /dev/null
+++ b/skyscraper8/MpegDash/MbmsEnvelope.cs
@@ -0,0 +1,51 @@
+using MimeKit;
+using Schemas;
+using skyscraper8.Atsc.A331.Schema;
+using skyscraper8.MpegDash.Schema;
+
+namespace skyscraper8.Atsc.A331;
+
+public class MbmsEnvelope
+{
+ public MbmsEnvelope(MimeMessage mimeMessage)
+ {
+ foreach (MimePart part in mimeMessage.BodyParts)
+ {
+ if (part.Content == null)
+ continue;
+
+ string key = part.ContentType.MimeType.ToLowerInvariant();
+ Stream value = part.Content.Open();
+
+ switch (key)
+ {
+ case "application/mbms-envelope+xml":
+ MetadataEnvelope = MpegDashUtilities.ParseMetadataEnvelope(value);
+ break;
+ case "application/dash+xml":
+ MediaPresentationDescription = MpegDashUtilities.ParseMPD(value);
+ break;
+ case "application/atsc-held+xml":
+ Atsc3Held = Atsc3Utilities.ParseHeld(value);
+ break;
+ case "application/route-s-tsid+xml":
+ Atsc3Stsid = Atsc3Utilities.ParseStsId(value);
+ break;
+ case "application/route-usd+xml":
+ Atsc3RouteUsd = Atsc3Utilities.ParseRouteUsd(value);
+ break;
+ default:
+ throw new NotImplementedException(key);
+ }
+ }
+ }
+
+ public BundleDescriptionROUTEType? Atsc3RouteUsd { get; private set; }
+ public STSIDType? Atsc3Stsid { get; private set; }
+
+ public HELDType Atsc3Held { get; private set; }
+
+ public MPDtype MediaPresentationDescription { get; private set; }
+
+ public metadataEnvelopeType MetadataEnvelope {get; private set;}
+}
diff --git a/skyscraper8/MpegDash/MpegDashUtilities.cs b/skyscraper8/MpegDash/MpegDashUtilities.cs
new file mode 100644
index 0000000..7f291d9
--- /dev/null
+++ b/skyscraper8/MpegDash/MpegDashUtilities.cs
@@ -0,0 +1,30 @@
+using System.Xml.Serialization;
+using skyscraper8.MpegDash.Schema;
+
+namespace skyscraper8.Atsc.A331;
+
+public static class MpegDashUtilities
+{
+ private static XmlSerializer metadataEnvelopeSerializer;
+ private static XmlSerializer mpdSerializer;
+
+ public static metadataEnvelopeType? ParseMetadataEnvelope(Stream value)
+ {
+ if (metadataEnvelopeSerializer == null)
+ {
+ metadataEnvelopeSerializer = new XmlSerializer(typeof(metadataEnvelopeType));
+ }
+ object deserialize = metadataEnvelopeSerializer.Deserialize(value);
+ return deserialize as metadataEnvelopeType;
+ }
+
+ public static MPDtype ParseMPD(Stream value)
+ {
+ if (mpdSerializer == null)
+ {
+ mpdSerializer = new XmlSerializer(typeof(MPDtype));
+ }
+ object deserialize = mpdSerializer.Deserialize(value);
+ return (MPDtype)deserialize;
+ }
+}
diff --git a/skyscraper8/MpegDash/Schema/DASH-MPD_xlink.cs b/skyscraper8/MpegDash/Schema/DASH-MPD_xlink.cs
new file mode 100644
index 0000000..35db5fc
--- /dev/null
+++ b/skyscraper8/MpegDash/Schema/DASH-MPD_xlink.cs
@@ -0,0 +1,3831 @@
+//------------------------------------------------------------------------------
+//
+// 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 MonoXSD
+//
+namespace skyscraper8.MpegDash.Schema {
+
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/1999/xlink")]
+ [System.Xml.Serialization.XmlRootAttribute("title", Namespace="http://www.w3.org/1999/xlink", IsNullable=false)]
+ public partial class titleEltType {
+
+ private System.Xml.XmlNode[] anyField;
+
+ private typeType typeField;
+
+ private string langField;
+
+ public titleEltType() {
+ this.typeField = typeType.title;
+ }
+
+ ///
+ [System.Xml.Serialization.XmlTextAttribute()]
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlNode[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)]
+ public typeType type {
+ get {
+ return this.typeField;
+ }
+ set {
+ this.typeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
+ public string lang {
+ get {
+ return this.langField;
+ }
+ set {
+ this.langField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/1999/xlink")]
+ public enum typeType {
+
+ ///
+ simple,
+
+ ///
+ extended,
+
+ ///
+ title,
+
+ ///
+ resource,
+
+ ///
+ locator,
+
+ ///
+ arc,
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:mpeg:dash:schema:mpd:2011")]
+ public partial class RangeType {
+
+ private string starttimeField;
+
+ private string durationField;
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="duration")]
+ public string starttime {
+ get {
+ return this.starttimeField;
+ }
+ set {
+ this.starttimeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="duration")]
+ public string duration {
+ get {
+ return this.durationField;
+ }
+ set {
+ this.durationField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:mpeg:dash:schema:mpd:2011")]
+ public partial class MetricsType {
+
+ private DescriptorType[] reportingField;
+
+ private RangeType[] rangeField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ private string metricsField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("Reporting")]
+ public DescriptorType[] Reporting {
+ get {
+ return this.reportingField;
+ }
+ set {
+ this.reportingField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("Range")]
+ public RangeType[] Range {
+ get {
+ return this.rangeField;
+ }
+ set {
+ this.rangeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string metrics {
+ get {
+ return this.metricsField;
+ }
+ set {
+ this.metricsField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:mpeg:dash:schema:mpd:2011")]
+ public partial class DescriptorType {
+
+ private System.Xml.XmlElement[] anyField;
+
+ private string schemeIdUriField;
+
+ private string valueField;
+
+ private string idField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")]
+ public string schemeIdUri {
+ get {
+ return this.schemeIdUriField;
+ }
+ set {
+ this.schemeIdUriField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string value {
+ get {
+ return this.valueField;
+ }
+ set {
+ this.valueField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string id {
+ get {
+ return this.idField;
+ }
+ set {
+ this.idField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:mpeg:dash:schema:mpd:2011")]
+ public partial class SubsetType {
+
+ private uint[] containsField;
+
+ private string idField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint[] contains {
+ get {
+ return this.containsField;
+ }
+ set {
+ this.containsField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string id {
+ get {
+ return this.idField;
+ }
+ set {
+ this.idField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:mpeg:dash:schema:mpd:2011")]
+ public partial class ContentComponentType {
+
+ private DescriptorType[] accessibilityField;
+
+ private DescriptorType[] roleField;
+
+ private DescriptorType[] ratingField;
+
+ private DescriptorType[] viewpointField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ private uint idField;
+
+ private bool idFieldSpecified;
+
+ private string langField;
+
+ private string contentTypeField;
+
+ private string parField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("Accessibility")]
+ public DescriptorType[] Accessibility {
+ get {
+ return this.accessibilityField;
+ }
+ set {
+ this.accessibilityField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("Role")]
+ public DescriptorType[] Role {
+ get {
+ return this.roleField;
+ }
+ set {
+ this.roleField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("Rating")]
+ public DescriptorType[] Rating {
+ get {
+ return this.ratingField;
+ }
+ set {
+ this.ratingField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("Viewpoint")]
+ public DescriptorType[] Viewpoint {
+ get {
+ return this.viewpointField;
+ }
+ set {
+ this.viewpointField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint id {
+ get {
+ return this.idField;
+ }
+ set {
+ this.idField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool idSpecified {
+ get {
+ return this.idFieldSpecified;
+ }
+ set {
+ this.idFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="language")]
+ public string lang {
+ get {
+ return this.langField;
+ }
+ set {
+ this.langField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string contentType {
+ get {
+ return this.contentTypeField;
+ }
+ set {
+ this.contentTypeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string par {
+ get {
+ return this.parField;
+ }
+ set {
+ this.parField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:mpeg:dash:schema:mpd:2011")]
+ public partial class SwitchingType {
+
+ private uint intervalField;
+
+ private SwitchingTypeType typeField;
+
+ private bool typeFieldSpecified;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint interval {
+ get {
+ return this.intervalField;
+ }
+ set {
+ this.intervalField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public SwitchingTypeType type {
+ get {
+ return this.typeField;
+ }
+ set {
+ this.typeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool typeSpecified {
+ get {
+ return this.typeFieldSpecified;
+ }
+ set {
+ this.typeFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:mpeg:dash:schema:mpd:2011")]
+ public enum SwitchingTypeType {
+
+ ///
+ media,
+
+ ///
+ bitstream,
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIncludeAttribute(typeof(SubRepresentationType))]
+ [System.Xml.Serialization.XmlIncludeAttribute(typeof(RepresentationType))]
+ [System.Xml.Serialization.XmlIncludeAttribute(typeof(AdaptationSetType))]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:mpeg:dash:schema:mpd:2011")]
+ public partial class RepresentationBaseType {
+
+ private DescriptorType[] framePackingField;
+
+ private DescriptorType[] audioChannelConfigurationField;
+
+ private DescriptorType[] contentProtectionField;
+
+ private DescriptorType[] essentialPropertyField;
+
+ private DescriptorType[] supplementalPropertyField;
+
+ private EventStreamType[] inbandEventStreamField;
+
+ private SwitchingType[] switchingField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ private string profilesField;
+
+ private uint widthField;
+
+ private bool widthFieldSpecified;
+
+ private uint heightField;
+
+ private bool heightFieldSpecified;
+
+ private string sarField;
+
+ private string frameRateField;
+
+ private string audioSamplingRateField;
+
+ private string mimeTypeField;
+
+ private string segmentProfilesField;
+
+ private string codecsField;
+
+ private double maximumSAPPeriodField;
+
+ private bool maximumSAPPeriodFieldSpecified;
+
+ private uint startWithSAPField;
+
+ private bool startWithSAPFieldSpecified;
+
+ private double maxPlayoutRateField;
+
+ private bool maxPlayoutRateFieldSpecified;
+
+ private bool codingDependencyField;
+
+ private bool codingDependencyFieldSpecified;
+
+ private VideoScanType scanTypeField;
+
+ private bool scanTypeFieldSpecified;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("FramePacking")]
+ public DescriptorType[] FramePacking {
+ get {
+ return this.framePackingField;
+ }
+ set {
+ this.framePackingField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("AudioChannelConfiguration")]
+ public DescriptorType[] AudioChannelConfiguration {
+ get {
+ return this.audioChannelConfigurationField;
+ }
+ set {
+ this.audioChannelConfigurationField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("ContentProtection")]
+ public DescriptorType[] ContentProtection {
+ get {
+ return this.contentProtectionField;
+ }
+ set {
+ this.contentProtectionField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("EssentialProperty")]
+ public DescriptorType[] EssentialProperty {
+ get {
+ return this.essentialPropertyField;
+ }
+ set {
+ this.essentialPropertyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("SupplementalProperty")]
+ public DescriptorType[] SupplementalProperty {
+ get {
+ return this.supplementalPropertyField;
+ }
+ set {
+ this.supplementalPropertyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("InbandEventStream")]
+ public EventStreamType[] InbandEventStream {
+ get {
+ return this.inbandEventStreamField;
+ }
+ set {
+ this.inbandEventStreamField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("Switching")]
+ public SwitchingType[] Switching {
+ get {
+ return this.switchingField;
+ }
+ set {
+ this.switchingField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string profiles {
+ get {
+ return this.profilesField;
+ }
+ set {
+ this.profilesField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint width {
+ get {
+ return this.widthField;
+ }
+ set {
+ this.widthField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool widthSpecified {
+ get {
+ return this.widthFieldSpecified;
+ }
+ set {
+ this.widthFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint height {
+ get {
+ return this.heightField;
+ }
+ set {
+ this.heightField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool heightSpecified {
+ get {
+ return this.heightFieldSpecified;
+ }
+ set {
+ this.heightFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string sar {
+ get {
+ return this.sarField;
+ }
+ set {
+ this.sarField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string frameRate {
+ get {
+ return this.frameRateField;
+ }
+ set {
+ this.frameRateField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string audioSamplingRate {
+ get {
+ return this.audioSamplingRateField;
+ }
+ set {
+ this.audioSamplingRateField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string mimeType {
+ get {
+ return this.mimeTypeField;
+ }
+ set {
+ this.mimeTypeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string segmentProfiles {
+ get {
+ return this.segmentProfilesField;
+ }
+ set {
+ this.segmentProfilesField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string codecs {
+ get {
+ return this.codecsField;
+ }
+ set {
+ this.codecsField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public double maximumSAPPeriod {
+ get {
+ return this.maximumSAPPeriodField;
+ }
+ set {
+ this.maximumSAPPeriodField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool maximumSAPPeriodSpecified {
+ get {
+ return this.maximumSAPPeriodFieldSpecified;
+ }
+ set {
+ this.maximumSAPPeriodFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint startWithSAP {
+ get {
+ return this.startWithSAPField;
+ }
+ set {
+ this.startWithSAPField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool startWithSAPSpecified {
+ get {
+ return this.startWithSAPFieldSpecified;
+ }
+ set {
+ this.startWithSAPFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public double maxPlayoutRate {
+ get {
+ return this.maxPlayoutRateField;
+ }
+ set {
+ this.maxPlayoutRateField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool maxPlayoutRateSpecified {
+ get {
+ return this.maxPlayoutRateFieldSpecified;
+ }
+ set {
+ this.maxPlayoutRateFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public bool codingDependency {
+ get {
+ return this.codingDependencyField;
+ }
+ set {
+ this.codingDependencyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool codingDependencySpecified {
+ get {
+ return this.codingDependencyFieldSpecified;
+ }
+ set {
+ this.codingDependencyFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public VideoScanType scanType {
+ get {
+ return this.scanTypeField;
+ }
+ set {
+ this.scanTypeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool scanTypeSpecified {
+ get {
+ return this.scanTypeFieldSpecified;
+ }
+ set {
+ this.scanTypeFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:mpeg:dash:schema:mpd:2011")]
+ public partial class EventStreamType {
+
+ private EventType[] eventField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ private string hrefField;
+
+ private actuateType actuateField;
+
+ private string messageDataField;
+
+ private string schemeIdUriField;
+
+ private string valueField;
+
+ private uint timescaleField;
+
+ private bool timescaleFieldSpecified;
+
+ public EventStreamType() {
+ this.actuateField = actuateType.onRequest;
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("Event")]
+ public EventType[] Event {
+ get {
+ return this.eventField;
+ }
+ set {
+ this.eventField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/1999/xlink", DataType="anyURI")]
+ public string href {
+ get {
+ return this.hrefField;
+ }
+ set {
+ this.hrefField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/1999/xlink")]
+ [System.ComponentModel.DefaultValueAttribute(actuateType.onRequest)]
+ public actuateType actuate {
+ get {
+ return this.actuateField;
+ }
+ set {
+ this.actuateField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")]
+ public string messageData {
+ get {
+ return this.messageDataField;
+ }
+ set {
+ this.messageDataField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")]
+ public string schemeIdUri {
+ get {
+ return this.schemeIdUriField;
+ }
+ set {
+ this.schemeIdUriField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string value {
+ get {
+ return this.valueField;
+ }
+ set {
+ this.valueField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint timescale {
+ get {
+ return this.timescaleField;
+ }
+ set {
+ this.timescaleField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool timescaleSpecified {
+ get {
+ return this.timescaleFieldSpecified;
+ }
+ set {
+ this.timescaleFieldSpecified = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:mpeg:dash:schema:mpd:2011")]
+ public partial class EventType {
+
+ private System.Xml.XmlElement[] anyField;
+
+ private ulong presentationTimeField;
+
+ private ulong durationField;
+
+ private bool durationFieldSpecified;
+
+ private uint idField;
+
+ private bool idFieldSpecified;
+
+ private string messageDataField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ public EventType() {
+ this.presentationTimeField = ((ulong)(0m));
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ [System.ComponentModel.DefaultValueAttribute(typeof(ulong), "0")]
+ public ulong presentationTime {
+ get {
+ return this.presentationTimeField;
+ }
+ set {
+ this.presentationTimeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public ulong duration {
+ get {
+ return this.durationField;
+ }
+ set {
+ this.durationField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool durationSpecified {
+ get {
+ return this.durationFieldSpecified;
+ }
+ set {
+ this.durationFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint id {
+ get {
+ return this.idField;
+ }
+ set {
+ this.idField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool idSpecified {
+ get {
+ return this.idFieldSpecified;
+ }
+ set {
+ this.idFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string messageData {
+ get {
+ return this.messageDataField;
+ }
+ set {
+ this.messageDataField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/1999/xlink")]
+ public enum actuateType {
+
+ ///
+ onLoad,
+
+ ///
+ onRequest,
+
+ ///
+ other,
+
+ ///
+ none,
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:mpeg:dash:schema:mpd:2011")]
+ public enum VideoScanType {
+
+ ///
+ progressive,
+
+ ///
+ interlaced,
+
+ ///
+ unknown,
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:mpeg:dash:schema:mpd:2011")]
+ public partial class SubRepresentationType : RepresentationBaseType {
+
+ private uint levelField;
+
+ private bool levelFieldSpecified;
+
+ private uint[] dependencyLevelField;
+
+ private uint bandwidthField;
+
+ private bool bandwidthFieldSpecified;
+
+ private string[] contentComponentField;
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint level {
+ get {
+ return this.levelField;
+ }
+ set {
+ this.levelField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool levelSpecified {
+ get {
+ return this.levelFieldSpecified;
+ }
+ set {
+ this.levelFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint[] dependencyLevel {
+ get {
+ return this.dependencyLevelField;
+ }
+ set {
+ this.dependencyLevelField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint bandwidth {
+ get {
+ return this.bandwidthField;
+ }
+ set {
+ this.bandwidthField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool bandwidthSpecified {
+ get {
+ return this.bandwidthFieldSpecified;
+ }
+ set {
+ this.bandwidthFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string[] contentComponent {
+ get {
+ return this.contentComponentField;
+ }
+ set {
+ this.contentComponentField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:mpeg:dash:schema:mpd:2011")]
+ public partial class RepresentationType : RepresentationBaseType {
+
+ private BaseURLType[] baseURLField;
+
+ private SubRepresentationType[] subRepresentationField;
+
+ private SegmentBaseType segmentBaseField;
+
+ private SegmentListType segmentListField;
+
+ private SegmentTemplateType segmentTemplateField;
+
+ private string idField;
+
+ private uint bandwidthField;
+
+ private uint qualityRankingField;
+
+ private bool qualityRankingFieldSpecified;
+
+ private string[] dependencyIdField;
+
+ private string[] mediaStreamStructureIdField;
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("BaseURL")]
+ public BaseURLType[] BaseURL {
+ get {
+ return this.baseURLField;
+ }
+ set {
+ this.baseURLField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("SubRepresentation")]
+ public SubRepresentationType[] SubRepresentation {
+ get {
+ return this.subRepresentationField;
+ }
+ set {
+ this.subRepresentationField = value;
+ }
+ }
+
+ ///
+ public SegmentBaseType SegmentBase {
+ get {
+ return this.segmentBaseField;
+ }
+ set {
+ this.segmentBaseField = value;
+ }
+ }
+
+ ///
+ public SegmentListType SegmentList {
+ get {
+ return this.segmentListField;
+ }
+ set {
+ this.segmentListField = value;
+ }
+ }
+
+ ///
+ public SegmentTemplateType SegmentTemplate {
+ get {
+ return this.segmentTemplateField;
+ }
+ set {
+ this.segmentTemplateField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string id {
+ get {
+ return this.idField;
+ }
+ set {
+ this.idField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint bandwidth {
+ get {
+ return this.bandwidthField;
+ }
+ set {
+ this.bandwidthField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint qualityRanking {
+ get {
+ return this.qualityRankingField;
+ }
+ set {
+ this.qualityRankingField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool qualityRankingSpecified {
+ get {
+ return this.qualityRankingFieldSpecified;
+ }
+ set {
+ this.qualityRankingFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string[] dependencyId {
+ get {
+ return this.dependencyIdField;
+ }
+ set {
+ this.dependencyIdField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string[] mediaStreamStructureId {
+ get {
+ return this.mediaStreamStructureIdField;
+ }
+ set {
+ this.mediaStreamStructureIdField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:mpeg:dash:schema:mpd:2011")]
+ public partial class BaseURLType {
+
+ private string serviceLocationField;
+
+ private string byteRangeField;
+
+ private double availabilityTimeOffsetField;
+
+ private bool availabilityTimeOffsetFieldSpecified;
+
+ private bool availabilityTimeCompleteField;
+
+ private bool availabilityTimeCompleteFieldSpecified;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ private string valueField;
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string serviceLocation {
+ get {
+ return this.serviceLocationField;
+ }
+ set {
+ this.serviceLocationField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string byteRange {
+ get {
+ return this.byteRangeField;
+ }
+ set {
+ this.byteRangeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public double availabilityTimeOffset {
+ get {
+ return this.availabilityTimeOffsetField;
+ }
+ set {
+ this.availabilityTimeOffsetField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool availabilityTimeOffsetSpecified {
+ get {
+ return this.availabilityTimeOffsetFieldSpecified;
+ }
+ set {
+ this.availabilityTimeOffsetFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public bool availabilityTimeComplete {
+ get {
+ return this.availabilityTimeCompleteField;
+ }
+ set {
+ this.availabilityTimeCompleteField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool availabilityTimeCompleteSpecified {
+ get {
+ return this.availabilityTimeCompleteFieldSpecified;
+ }
+ set {
+ this.availabilityTimeCompleteFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlTextAttribute(DataType="anyURI")]
+ public string Value {
+ get {
+ return this.valueField;
+ }
+ set {
+ this.valueField = value;
+ }
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIncludeAttribute(typeof(MultipleSegmentBaseType))]
+ [System.Xml.Serialization.XmlIncludeAttribute(typeof(SegmentTemplateType))]
+ [System.Xml.Serialization.XmlIncludeAttribute(typeof(SegmentListType))]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:mpeg:dash:schema:mpd:2011")]
+ public partial class SegmentBaseType {
+
+ private URLType initializationField;
+
+ private URLType representationIndexField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ private uint timescaleField;
+
+ private bool timescaleFieldSpecified;
+
+ private ulong presentationTimeOffsetField;
+
+ private bool presentationTimeOffsetFieldSpecified;
+
+ private string indexRangeField;
+
+ private bool indexRangeExactField;
+
+ private double availabilityTimeOffsetField;
+
+ private bool availabilityTimeOffsetFieldSpecified;
+
+ private bool availabilityTimeCompleteField;
+
+ private bool availabilityTimeCompleteFieldSpecified;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ public SegmentBaseType() {
+ this.indexRangeExactField = false;
+ }
+
+ ///
+ public URLType Initialization {
+ get {
+ return this.initializationField;
+ }
+ set {
+ this.initializationField = value;
+ }
+ }
+
+ ///
+ public URLType RepresentationIndex {
+ get {
+ return this.representationIndexField;
+ }
+ set {
+ this.representationIndexField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint timescale {
+ get {
+ return this.timescaleField;
+ }
+ set {
+ this.timescaleField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool timescaleSpecified {
+ get {
+ return this.timescaleFieldSpecified;
+ }
+ set {
+ this.timescaleFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public ulong presentationTimeOffset {
+ get {
+ return this.presentationTimeOffsetField;
+ }
+ set {
+ this.presentationTimeOffsetField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool presentationTimeOffsetSpecified {
+ get {
+ return this.presentationTimeOffsetFieldSpecified;
+ }
+ set {
+ this.presentationTimeOffsetFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string indexRange {
+ get {
+ return this.indexRangeField;
+ }
+ set {
+ this.indexRangeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ [System.ComponentModel.DefaultValueAttribute(false)]
+ public bool indexRangeExact {
+ get {
+ return this.indexRangeExactField;
+ }
+ set {
+ this.indexRangeExactField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public double availabilityTimeOffset {
+ get {
+ return this.availabilityTimeOffsetField;
+ }
+ set {
+ this.availabilityTimeOffsetField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool availabilityTimeOffsetSpecified {
+ get {
+ return this.availabilityTimeOffsetFieldSpecified;
+ }
+ set {
+ this.availabilityTimeOffsetFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public bool availabilityTimeComplete {
+ get {
+ return this.availabilityTimeCompleteField;
+ }
+ set {
+ this.availabilityTimeCompleteField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool availabilityTimeCompleteSpecified {
+ get {
+ return this.availabilityTimeCompleteFieldSpecified;
+ }
+ set {
+ this.availabilityTimeCompleteFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:mpeg:dash:schema:mpd:2011")]
+ public partial class URLType {
+
+ private System.Xml.XmlElement[] anyField;
+
+ private string sourceURLField;
+
+ private string rangeField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")]
+ public string sourceURL {
+ get {
+ return this.sourceURLField;
+ }
+ set {
+ this.sourceURLField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string range {
+ get {
+ return this.rangeField;
+ }
+ set {
+ this.rangeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIncludeAttribute(typeof(SegmentTemplateType))]
+ [System.Xml.Serialization.XmlIncludeAttribute(typeof(SegmentListType))]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:mpeg:dash:schema:mpd:2011")]
+ public partial class MultipleSegmentBaseType : SegmentBaseType {
+
+ private SegmentTimelineType segmentTimelineField;
+
+ private URLType bitstreamSwitchingField;
+
+ private uint durationField;
+
+ private bool durationFieldSpecified;
+
+ private uint startNumberField;
+
+ private bool startNumberFieldSpecified;
+
+ ///
+ public SegmentTimelineType SegmentTimeline {
+ get {
+ return this.segmentTimelineField;
+ }
+ set {
+ this.segmentTimelineField = value;
+ }
+ }
+
+ ///
+ public URLType BitstreamSwitching {
+ get {
+ return this.bitstreamSwitchingField;
+ }
+ set {
+ this.bitstreamSwitchingField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint duration {
+ get {
+ return this.durationField;
+ }
+ set {
+ this.durationField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool durationSpecified {
+ get {
+ return this.durationFieldSpecified;
+ }
+ set {
+ this.durationFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint startNumber {
+ get {
+ return this.startNumberField;
+ }
+ set {
+ this.startNumberField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool startNumberSpecified {
+ get {
+ return this.startNumberFieldSpecified;
+ }
+ set {
+ this.startNumberFieldSpecified = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:mpeg:dash:schema:mpd:2011")]
+ public partial class SegmentTimelineType {
+
+ private SegmentTimelineTypeS[] sField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("S")]
+ public SegmentTimelineTypeS[] S {
+ get {
+ return this.sField;
+ }
+ set {
+ this.sField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="urn:mpeg:dash:schema:mpd:2011")]
+ public partial class SegmentTimelineTypeS {
+
+ private ulong tField;
+
+ private bool tFieldSpecified;
+
+ private ulong nField;
+
+ private bool nFieldSpecified;
+
+ private ulong dField;
+
+ private string rField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ public SegmentTimelineTypeS() {
+ this.rField = "0";
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public ulong t {
+ get {
+ return this.tField;
+ }
+ set {
+ this.tField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool tSpecified {
+ get {
+ return this.tFieldSpecified;
+ }
+ set {
+ this.tFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public ulong n {
+ get {
+ return this.nField;
+ }
+ set {
+ this.nField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool nSpecified {
+ get {
+ return this.nFieldSpecified;
+ }
+ set {
+ this.nFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public ulong d {
+ get {
+ return this.dField;
+ }
+ set {
+ this.dField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="integer")]
+ [System.ComponentModel.DefaultValueAttribute("0")]
+ public string r {
+ get {
+ return this.rField;
+ }
+ set {
+ this.rField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:mpeg:dash:schema:mpd:2011")]
+ public partial class SegmentTemplateType : MultipleSegmentBaseType {
+
+ private string mediaField;
+
+ private string indexField;
+
+ private string initializationField;
+
+ private string bitstreamSwitchingField;
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string media {
+ get {
+ return this.mediaField;
+ }
+ set {
+ this.mediaField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string index {
+ get {
+ return this.indexField;
+ }
+ set {
+ this.indexField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string initialization {
+ get {
+ return this.initializationField;
+ }
+ set {
+ this.initializationField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string bitstreamSwitching {
+ get {
+ return this.bitstreamSwitchingField;
+ }
+ set {
+ this.bitstreamSwitchingField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:mpeg:dash:schema:mpd:2011")]
+ public partial class SegmentListType : MultipleSegmentBaseType {
+
+ private SegmentURLType[] segmentURLField;
+
+ private string hrefField;
+
+ private actuateType actuateField;
+
+ public SegmentListType() {
+ this.actuateField = actuateType.onRequest;
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("SegmentURL")]
+ public SegmentURLType[] SegmentURL {
+ get {
+ return this.segmentURLField;
+ }
+ set {
+ this.segmentURLField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/1999/xlink", DataType="anyURI")]
+ public string href {
+ get {
+ return this.hrefField;
+ }
+ set {
+ this.hrefField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/1999/xlink")]
+ [System.ComponentModel.DefaultValueAttribute(actuateType.onRequest)]
+ public actuateType actuate {
+ get {
+ return this.actuateField;
+ }
+ set {
+ this.actuateField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:mpeg:dash:schema:mpd:2011")]
+ public partial class SegmentURLType {
+
+ private System.Xml.XmlElement[] anyField;
+
+ private string mediaField;
+
+ private string mediaRangeField;
+
+ private string indexField;
+
+ private string indexRangeField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")]
+ public string media {
+ get {
+ return this.mediaField;
+ }
+ set {
+ this.mediaField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string mediaRange {
+ get {
+ return this.mediaRangeField;
+ }
+ set {
+ this.mediaRangeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")]
+ public string index {
+ get {
+ return this.indexField;
+ }
+ set {
+ this.indexField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string indexRange {
+ get {
+ return this.indexRangeField;
+ }
+ set {
+ this.indexRangeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:mpeg:dash:schema:mpd:2011")]
+ public partial class AdaptationSetType : RepresentationBaseType {
+
+ private DescriptorType[] accessibilityField;
+
+ private DescriptorType[] roleField;
+
+ private DescriptorType[] ratingField;
+
+ private DescriptorType[] viewpointField;
+
+ private ContentComponentType[] contentComponentField;
+
+ private BaseURLType[] baseURLField;
+
+ private SegmentBaseType segmentBaseField;
+
+ private SegmentListType segmentListField;
+
+ private SegmentTemplateType segmentTemplateField;
+
+ private RepresentationType[] representationField;
+
+ private string hrefField;
+
+ private actuateType actuateField;
+
+ private uint idField;
+
+ private bool idFieldSpecified;
+
+ private uint groupField;
+
+ private bool groupFieldSpecified;
+
+ private string langField;
+
+ private string contentTypeField;
+
+ private string parField;
+
+ private uint minBandwidthField;
+
+ private bool minBandwidthFieldSpecified;
+
+ private uint maxBandwidthField;
+
+ private bool maxBandwidthFieldSpecified;
+
+ private uint minWidthField;
+
+ private bool minWidthFieldSpecified;
+
+ private uint maxWidthField;
+
+ private bool maxWidthFieldSpecified;
+
+ private uint minHeightField;
+
+ private bool minHeightFieldSpecified;
+
+ private uint maxHeightField;
+
+ private bool maxHeightFieldSpecified;
+
+ private string minFrameRateField;
+
+ private string maxFrameRateField;
+
+ private string segmentAlignmentField;
+
+ private string subsegmentAlignmentField;
+
+ private uint subsegmentStartsWithSAPField;
+
+ private bool bitstreamSwitchingField;
+
+ private bool bitstreamSwitchingFieldSpecified;
+
+ public AdaptationSetType() {
+ this.actuateField = actuateType.onRequest;
+ this.segmentAlignmentField = "false";
+ this.subsegmentAlignmentField = "false";
+ this.subsegmentStartsWithSAPField = ((uint)(0));
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("Accessibility")]
+ public DescriptorType[] Accessibility {
+ get {
+ return this.accessibilityField;
+ }
+ set {
+ this.accessibilityField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("Role")]
+ public DescriptorType[] Role {
+ get {
+ return this.roleField;
+ }
+ set {
+ this.roleField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("Rating")]
+ public DescriptorType[] Rating {
+ get {
+ return this.ratingField;
+ }
+ set {
+ this.ratingField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("Viewpoint")]
+ public DescriptorType[] Viewpoint {
+ get {
+ return this.viewpointField;
+ }
+ set {
+ this.viewpointField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("ContentComponent")]
+ public ContentComponentType[] ContentComponent {
+ get {
+ return this.contentComponentField;
+ }
+ set {
+ this.contentComponentField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("BaseURL")]
+ public BaseURLType[] BaseURL {
+ get {
+ return this.baseURLField;
+ }
+ set {
+ this.baseURLField = value;
+ }
+ }
+
+ ///
+ public SegmentBaseType SegmentBase {
+ get {
+ return this.segmentBaseField;
+ }
+ set {
+ this.segmentBaseField = value;
+ }
+ }
+
+ ///
+ public SegmentListType SegmentList {
+ get {
+ return this.segmentListField;
+ }
+ set {
+ this.segmentListField = value;
+ }
+ }
+
+ ///
+ public SegmentTemplateType SegmentTemplate {
+ get {
+ return this.segmentTemplateField;
+ }
+ set {
+ this.segmentTemplateField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("Representation")]
+ public RepresentationType[] Representation {
+ get {
+ return this.representationField;
+ }
+ set {
+ this.representationField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/1999/xlink", DataType="anyURI")]
+ public string href {
+ get {
+ return this.hrefField;
+ }
+ set {
+ this.hrefField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/1999/xlink")]
+ [System.ComponentModel.DefaultValueAttribute(actuateType.onRequest)]
+ public actuateType actuate {
+ get {
+ return this.actuateField;
+ }
+ set {
+ this.actuateField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint id {
+ get {
+ return this.idField;
+ }
+ set {
+ this.idField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool idSpecified {
+ get {
+ return this.idFieldSpecified;
+ }
+ set {
+ this.idFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint group {
+ get {
+ return this.groupField;
+ }
+ set {
+ this.groupField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool groupSpecified {
+ get {
+ return this.groupFieldSpecified;
+ }
+ set {
+ this.groupFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="language")]
+ public string lang {
+ get {
+ return this.langField;
+ }
+ set {
+ this.langField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string contentType {
+ get {
+ return this.contentTypeField;
+ }
+ set {
+ this.contentTypeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string par {
+ get {
+ return this.parField;
+ }
+ set {
+ this.parField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint minBandwidth {
+ get {
+ return this.minBandwidthField;
+ }
+ set {
+ this.minBandwidthField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool minBandwidthSpecified {
+ get {
+ return this.minBandwidthFieldSpecified;
+ }
+ set {
+ this.minBandwidthFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint maxBandwidth {
+ get {
+ return this.maxBandwidthField;
+ }
+ set {
+ this.maxBandwidthField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool maxBandwidthSpecified {
+ get {
+ return this.maxBandwidthFieldSpecified;
+ }
+ set {
+ this.maxBandwidthFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint minWidth {
+ get {
+ return this.minWidthField;
+ }
+ set {
+ this.minWidthField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool minWidthSpecified {
+ get {
+ return this.minWidthFieldSpecified;
+ }
+ set {
+ this.minWidthFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint maxWidth {
+ get {
+ return this.maxWidthField;
+ }
+ set {
+ this.maxWidthField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool maxWidthSpecified {
+ get {
+ return this.maxWidthFieldSpecified;
+ }
+ set {
+ this.maxWidthFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint minHeight {
+ get {
+ return this.minHeightField;
+ }
+ set {
+ this.minHeightField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool minHeightSpecified {
+ get {
+ return this.minHeightFieldSpecified;
+ }
+ set {
+ this.minHeightFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public uint maxHeight {
+ get {
+ return this.maxHeightField;
+ }
+ set {
+ this.maxHeightField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool maxHeightSpecified {
+ get {
+ return this.maxHeightFieldSpecified;
+ }
+ set {
+ this.maxHeightFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string minFrameRate {
+ get {
+ return this.minFrameRateField;
+ }
+ set {
+ this.minFrameRateField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string maxFrameRate {
+ get {
+ return this.maxFrameRateField;
+ }
+ set {
+ this.maxFrameRateField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ [System.ComponentModel.DefaultValueAttribute("false")]
+ public string segmentAlignment {
+ get {
+ return this.segmentAlignmentField;
+ }
+ set {
+ this.segmentAlignmentField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ [System.ComponentModel.DefaultValueAttribute("false")]
+ public string subsegmentAlignment {
+ get {
+ return this.subsegmentAlignmentField;
+ }
+ set {
+ this.subsegmentAlignmentField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ [System.ComponentModel.DefaultValueAttribute(typeof(uint), "0")]
+ public uint subsegmentStartsWithSAP {
+ get {
+ return this.subsegmentStartsWithSAPField;
+ }
+ set {
+ this.subsegmentStartsWithSAPField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public bool bitstreamSwitching {
+ get {
+ return this.bitstreamSwitchingField;
+ }
+ set {
+ this.bitstreamSwitchingField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool bitstreamSwitchingSpecified {
+ get {
+ return this.bitstreamSwitchingFieldSpecified;
+ }
+ set {
+ this.bitstreamSwitchingFieldSpecified = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:mpeg:dash:schema:mpd:2011")]
+ public partial class PeriodType {
+
+ private BaseURLType[] baseURLField;
+
+ private SegmentBaseType segmentBaseField;
+
+ private SegmentListType segmentListField;
+
+ private SegmentTemplateType segmentTemplateField;
+
+ private DescriptorType assetIdentifierField;
+
+ private EventStreamType[] eventStreamField;
+
+ private AdaptationSetType[] adaptationSetField;
+
+ private SubsetType[] subsetField;
+
+ private DescriptorType[] supplementalPropertyField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ private string hrefField;
+
+ private actuateType actuateField;
+
+ private string idField;
+
+ private string startField;
+
+ private string durationField;
+
+ private bool bitstreamSwitchingField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ public PeriodType() {
+ this.actuateField = actuateType.onRequest;
+ this.bitstreamSwitchingField = false;
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("BaseURL")]
+ public BaseURLType[] BaseURL {
+ get {
+ return this.baseURLField;
+ }
+ set {
+ this.baseURLField = value;
+ }
+ }
+
+ ///
+ public SegmentBaseType SegmentBase {
+ get {
+ return this.segmentBaseField;
+ }
+ set {
+ this.segmentBaseField = value;
+ }
+ }
+
+ ///
+ public SegmentListType SegmentList {
+ get {
+ return this.segmentListField;
+ }
+ set {
+ this.segmentListField = value;
+ }
+ }
+
+ ///
+ public SegmentTemplateType SegmentTemplate {
+ get {
+ return this.segmentTemplateField;
+ }
+ set {
+ this.segmentTemplateField = value;
+ }
+ }
+
+ ///
+ public DescriptorType AssetIdentifier {
+ get {
+ return this.assetIdentifierField;
+ }
+ set {
+ this.assetIdentifierField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("EventStream")]
+ public EventStreamType[] EventStream {
+ get {
+ return this.eventStreamField;
+ }
+ set {
+ this.eventStreamField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("AdaptationSet")]
+ public AdaptationSetType[] AdaptationSet {
+ get {
+ return this.adaptationSetField;
+ }
+ set {
+ this.adaptationSetField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("Subset")]
+ public SubsetType[] Subset {
+ get {
+ return this.subsetField;
+ }
+ set {
+ this.subsetField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("SupplementalProperty")]
+ public DescriptorType[] SupplementalProperty {
+ get {
+ return this.supplementalPropertyField;
+ }
+ set {
+ this.supplementalPropertyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/1999/xlink", DataType="anyURI")]
+ public string href {
+ get {
+ return this.hrefField;
+ }
+ set {
+ this.hrefField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/1999/xlink")]
+ [System.ComponentModel.DefaultValueAttribute(actuateType.onRequest)]
+ public actuateType actuate {
+ get {
+ return this.actuateField;
+ }
+ set {
+ this.actuateField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string id {
+ get {
+ return this.idField;
+ }
+ set {
+ this.idField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="duration")]
+ public string start {
+ get {
+ return this.startField;
+ }
+ set {
+ this.startField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="duration")]
+ public string duration {
+ get {
+ return this.durationField;
+ }
+ set {
+ this.durationField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ [System.ComponentModel.DefaultValueAttribute(false)]
+ public bool bitstreamSwitching {
+ get {
+ return this.bitstreamSwitchingField;
+ }
+ set {
+ this.bitstreamSwitchingField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:mpeg:dash:schema:mpd:2011")]
+ public partial class ProgramInformationType {
+
+ private string titleField;
+
+ private string sourceField;
+
+ private string copyrightField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ private string langField;
+
+ private string moreInformationURLField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ ///
+ public string Title {
+ get {
+ return this.titleField;
+ }
+ set {
+ this.titleField = value;
+ }
+ }
+
+ ///
+ public string Source {
+ get {
+ return this.sourceField;
+ }
+ set {
+ this.sourceField = value;
+ }
+ }
+
+ ///
+ public string Copyright {
+ get {
+ return this.copyrightField;
+ }
+ set {
+ this.copyrightField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="language")]
+ public string lang {
+ get {
+ return this.langField;
+ }
+ set {
+ this.langField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")]
+ public string moreInformationURL {
+ get {
+ return this.moreInformationURLField;
+ }
+ set {
+ this.moreInformationURLField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/1999/xlink")]
+ [System.Xml.Serialization.XmlRootAttribute("resource", Namespace="http://www.w3.org/1999/xlink", IsNullable=false)]
+ public partial class resourceType {
+
+ private System.Xml.XmlNode[] anyField;
+
+ private typeType typeField;
+
+ private string roleField;
+
+ private string titleField;
+
+ private string labelField;
+
+ public resourceType() {
+ this.typeField = typeType.resource;
+ }
+
+ ///
+ [System.Xml.Serialization.XmlTextAttribute()]
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlNode[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)]
+ public typeType type {
+ get {
+ return this.typeField;
+ }
+ set {
+ this.typeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, DataType="anyURI")]
+ public string role {
+ get {
+ return this.roleField;
+ }
+ set {
+ this.roleField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)]
+ public string title {
+ get {
+ return this.titleField;
+ }
+ set {
+ this.titleField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, DataType="NCName")]
+ public string label {
+ get {
+ return this.labelField;
+ }
+ set {
+ this.labelField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/1999/xlink")]
+ [System.Xml.Serialization.XmlRootAttribute("locator", Namespace="http://www.w3.org/1999/xlink", IsNullable=false)]
+ public partial class locatorType {
+
+ private titleEltType[] titleField;
+
+ private typeType typeField;
+
+ private string hrefField;
+
+ private string roleField;
+
+ private string title1Field;
+
+ private string labelField;
+
+ public locatorType() {
+ this.typeField = typeType.locator;
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("title")]
+ public titleEltType[] title {
+ get {
+ return this.titleField;
+ }
+ set {
+ this.titleField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)]
+ public typeType type {
+ get {
+ return this.typeField;
+ }
+ set {
+ this.typeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, DataType="anyURI")]
+ public string href {
+ get {
+ return this.hrefField;
+ }
+ set {
+ this.hrefField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, DataType="anyURI")]
+ public string role {
+ get {
+ return this.roleField;
+ }
+ set {
+ this.roleField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute("title", Form=System.Xml.Schema.XmlSchemaForm.Qualified)]
+ public string title1 {
+ get {
+ return this.title1Field;
+ }
+ set {
+ this.title1Field = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, DataType="NCName")]
+ public string label {
+ get {
+ return this.labelField;
+ }
+ set {
+ this.labelField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/1999/xlink")]
+ [System.Xml.Serialization.XmlRootAttribute("arc", Namespace="http://www.w3.org/1999/xlink", IsNullable=false)]
+ public partial class arcType {
+
+ private titleEltType[] titleField;
+
+ private typeType typeField;
+
+ private string arcroleField;
+
+ private string title1Field;
+
+ private showType showField;
+
+ private bool showFieldSpecified;
+
+ private actuateType actuateField;
+
+ private bool actuateFieldSpecified;
+
+ private string fromField;
+
+ private string toField;
+
+ public arcType() {
+ this.typeField = typeType.arc;
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("title")]
+ public titleEltType[] title {
+ get {
+ return this.titleField;
+ }
+ set {
+ this.titleField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)]
+ public typeType type {
+ get {
+ return this.typeField;
+ }
+ set {
+ this.typeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, DataType="anyURI")]
+ public string arcrole {
+ get {
+ return this.arcroleField;
+ }
+ set {
+ this.arcroleField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute("title", Form=System.Xml.Schema.XmlSchemaForm.Qualified)]
+ public string title1 {
+ get {
+ return this.title1Field;
+ }
+ set {
+ this.title1Field = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)]
+ public showType show {
+ get {
+ return this.showField;
+ }
+ set {
+ this.showField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool showSpecified {
+ get {
+ return this.showFieldSpecified;
+ }
+ set {
+ this.showFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)]
+ public actuateType actuate {
+ get {
+ return this.actuateField;
+ }
+ set {
+ this.actuateField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool actuateSpecified {
+ get {
+ return this.actuateFieldSpecified;
+ }
+ set {
+ this.actuateFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, DataType="NCName")]
+ public string from {
+ get {
+ return this.fromField;
+ }
+ set {
+ this.fromField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, DataType="NCName")]
+ public string to {
+ get {
+ return this.toField;
+ }
+ set {
+ this.toField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/1999/xlink")]
+ public enum showType {
+
+ ///
+ @new,
+
+ ///
+ replace,
+
+ ///
+ embed,
+
+ ///
+ other,
+
+ ///
+ none,
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:mpeg:dash:schema:mpd:2011")]
+ [System.Xml.Serialization.XmlRootAttribute("MPD", Namespace="urn:mpeg:dash:schema:mpd:2011", IsNullable=false)]
+ public partial class MPDtype {
+
+ private ProgramInformationType[] programInformationField;
+
+ private BaseURLType[] baseURLField;
+
+ private string[] locationField;
+
+ private PeriodType[] periodField;
+
+ private MetricsType[] metricsField;
+
+ private DescriptorType[] essentialPropertyField;
+
+ private DescriptorType[] supplementalPropertyField;
+
+ private DescriptorType[] uTCTimingField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ private string idField;
+
+ private string profilesField;
+
+ private PresentationType typeField;
+
+ private System.DateTime availabilityStartTimeField;
+
+ private bool availabilityStartTimeFieldSpecified;
+
+ private System.DateTime availabilityEndTimeField;
+
+ private bool availabilityEndTimeFieldSpecified;
+
+ private System.DateTime publishTimeField;
+
+ private bool publishTimeFieldSpecified;
+
+ private string mediaPresentationDurationField;
+
+ private string minimumUpdatePeriodField;
+
+ private string minBufferTimeField;
+
+ private string timeShiftBufferDepthField;
+
+ private string suggestedPresentationDelayField;
+
+ private string maxSegmentDurationField;
+
+ private string maxSubsegmentDurationField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ public MPDtype() {
+ this.typeField = PresentationType.@static;
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("ProgramInformation")]
+ public ProgramInformationType[] ProgramInformation {
+ get {
+ return this.programInformationField;
+ }
+ set {
+ this.programInformationField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("BaseURL")]
+ public BaseURLType[] BaseURL {
+ get {
+ return this.baseURLField;
+ }
+ set {
+ this.baseURLField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("Location", DataType="anyURI")]
+ public string[] Location {
+ get {
+ return this.locationField;
+ }
+ set {
+ this.locationField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("Period")]
+ public PeriodType[] Period {
+ get {
+ return this.periodField;
+ }
+ set {
+ this.periodField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("Metrics")]
+ public MetricsType[] Metrics {
+ get {
+ return this.metricsField;
+ }
+ set {
+ this.metricsField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("EssentialProperty")]
+ public DescriptorType[] EssentialProperty {
+ get {
+ return this.essentialPropertyField;
+ }
+ set {
+ this.essentialPropertyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("SupplementalProperty")]
+ public DescriptorType[] SupplementalProperty {
+ get {
+ return this.supplementalPropertyField;
+ }
+ set {
+ this.supplementalPropertyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("UTCTiming")]
+ public DescriptorType[] UTCTiming {
+ get {
+ return this.uTCTimingField;
+ }
+ set {
+ this.uTCTimingField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string id {
+ get {
+ return this.idField;
+ }
+ set {
+ this.idField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string profiles {
+ get {
+ return this.profilesField;
+ }
+ set {
+ this.profilesField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ [System.ComponentModel.DefaultValueAttribute(PresentationType.@static)]
+ public PresentationType type {
+ get {
+ return this.typeField;
+ }
+ set {
+ this.typeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public System.DateTime availabilityStartTime {
+ get {
+ return this.availabilityStartTimeField;
+ }
+ set {
+ this.availabilityStartTimeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool availabilityStartTimeSpecified {
+ get {
+ return this.availabilityStartTimeFieldSpecified;
+ }
+ set {
+ this.availabilityStartTimeFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public System.DateTime availabilityEndTime {
+ get {
+ return this.availabilityEndTimeField;
+ }
+ set {
+ this.availabilityEndTimeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool availabilityEndTimeSpecified {
+ get {
+ return this.availabilityEndTimeFieldSpecified;
+ }
+ set {
+ this.availabilityEndTimeFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public System.DateTime publishTime {
+ get {
+ return this.publishTimeField;
+ }
+ set {
+ this.publishTimeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool publishTimeSpecified {
+ get {
+ return this.publishTimeFieldSpecified;
+ }
+ set {
+ this.publishTimeFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="duration")]
+ public string mediaPresentationDuration {
+ get {
+ return this.mediaPresentationDurationField;
+ }
+ set {
+ this.mediaPresentationDurationField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="duration")]
+ public string minimumUpdatePeriod {
+ get {
+ return this.minimumUpdatePeriodField;
+ }
+ set {
+ this.minimumUpdatePeriodField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="duration")]
+ public string minBufferTime {
+ get {
+ return this.minBufferTimeField;
+ }
+ set {
+ this.minBufferTimeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="duration")]
+ public string timeShiftBufferDepth {
+ get {
+ return this.timeShiftBufferDepthField;
+ }
+ set {
+ this.timeShiftBufferDepthField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="duration")]
+ public string suggestedPresentationDelay {
+ get {
+ return this.suggestedPresentationDelayField;
+ }
+ set {
+ this.suggestedPresentationDelayField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="duration")]
+ public string maxSegmentDuration {
+ get {
+ return this.maxSegmentDurationField;
+ }
+ set {
+ this.maxSegmentDurationField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="duration")]
+ public string maxSubsegmentDuration {
+ get {
+ return this.maxSubsegmentDurationField;
+ }
+ set {
+ this.maxSubsegmentDurationField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:mpeg:dash:schema:mpd:2011")]
+ public enum PresentationType {
+
+ ///
+ @static,
+
+ ///
+ dynamic,
+ }
+}
diff --git a/skyscraper8/MpegDash/Schema/envelope.cs b/skyscraper8/MpegDash/Schema/envelope.cs
new file mode 100644
index 0000000..28049a0
--- /dev/null
+++ b/skyscraper8/MpegDash/Schema/envelope.cs
@@ -0,0 +1,177 @@
+//------------------------------------------------------------------------------
+//
+// 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 MonoXSD
+//
+namespace skyscraper8.MpegDash.Schema {
+
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:3gpp:metadata:2005:MBMS:envelope")]
+ [System.Xml.Serialization.XmlRootAttribute("metadataEnvelope", Namespace="urn:3gpp:metadata:2005:MBMS:envelope", IsNullable=false)]
+ public partial class metadataEnvelopeType {
+
+ private metadataEnvelopeItemType[] itemField;
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("item")]
+ public metadataEnvelopeItemType[] item {
+ get {
+ return this.itemField;
+ }
+ set {
+ this.itemField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "0.0.0.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:3gpp:metadata:2005:MBMS:envelope")]
+ public partial class metadataEnvelopeItemType {
+
+ private string metadataFragmentField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ private string metadataURIField;
+
+ private string versionField;
+
+ private System.DateTime validFromField;
+
+ private bool validFromFieldSpecified;
+
+ private System.DateTime validUntilField;
+
+ private bool validUntilFieldSpecified;
+
+ private string contentTypeField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ ///
+ public string metadataFragment {
+ get {
+ return this.metadataFragmentField;
+ }
+ set {
+ this.metadataFragmentField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")]
+ public string metadataURI {
+ get {
+ return this.metadataURIField;
+ }
+ set {
+ this.metadataURIField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="positiveInteger")]
+ public string version {
+ get {
+ return this.versionField;
+ }
+ set {
+ this.versionField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public System.DateTime validFrom {
+ get {
+ return this.validFromField;
+ }
+ set {
+ this.validFromField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool validFromSpecified {
+ get {
+ return this.validFromFieldSpecified;
+ }
+ set {
+ this.validFromFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public System.DateTime validUntil {
+ get {
+ return this.validUntilField;
+ }
+ set {
+ this.validUntilField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool validUntilSpecified {
+ get {
+ return this.validUntilFieldSpecified;
+ }
+ set {
+ this.validUntilFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string contentType {
+ get {
+ return this.contentTypeField;
+ }
+ set {
+ this.contentTypeField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+}
diff --git a/skyscraper8/Skyscraper/Scraper/SkyscraperContext.cs b/skyscraper8/Skyscraper/Scraper/SkyscraperContext.cs
index dbacdbb..01d8921 100644
--- a/skyscraper8/Skyscraper/Scraper/SkyscraperContext.cs
+++ b/skyscraper8/Skyscraper/Scraper/SkyscraperContext.cs
@@ -3573,5 +3573,17 @@ namespace skyscraper5.Skyscraper.Scraper
}
}
}
+
+ public void OnAtsc3FileDelivery(IPEndPoint destination, ulong tsi, ulong toi, FluteListener targetListener,
+ GuessedFluteDataType guessedFluteDataType, string outFileName)
+ {
+ if (!ObjectStorage.TestForAtsc3Segment(destination, outFileName))
+ {
+ LogEvent(SkyscraperContextEvent.Atsc3Segment, String.Format("{0}/{1}", destination, outFileName));
+ Stream stream = targetListener.ToStream();
+ ObjectStorage.StoreAtsc3Segment(destination, outFileName, stream);
+ stream.Dispose();
+ }
+ }
}
}
diff --git a/skyscraper8/Skyscraper/Scraper/SkyscraperContextEvent.cs b/skyscraper8/Skyscraper/Scraper/SkyscraperContextEvent.cs
index 6b0dcf1..123d6e0 100644
--- a/skyscraper8/Skyscraper/Scraper/SkyscraperContextEvent.cs
+++ b/skyscraper8/Skyscraper/Scraper/SkyscraperContextEvent.cs
@@ -106,6 +106,7 @@
DvbSisTimestamp,
DvbSisDaughterSiteAdapterConfiguration,
Atsc3Detected,
- Atsc3ServiceFound
+ Atsc3ServiceFound,
+ Atsc3Segment
}
}
diff --git a/skyscraper8/Skyscraper/Scraper/Storage/Filesystem/FilesystemStorage.cs b/skyscraper8/Skyscraper/Scraper/Storage/Filesystem/FilesystemStorage.cs
index 6dd0398..50ec7ab 100644
--- a/skyscraper8/Skyscraper/Scraper/Storage/Filesystem/FilesystemStorage.cs
+++ b/skyscraper8/Skyscraper/Scraper/Storage/Filesystem/FilesystemStorage.cs
@@ -1823,5 +1823,28 @@ namespace skyscraper5.Skyscraper.Scraper.Storage.Filesystem
value.Dispose();
}
+
+ public bool TestForAtsc3Segment(IPEndPoint destination, string outFileName)
+ {
+ string outFilename = Path.Combine(rootDirectory.FullName, "atsc3", destination.ToString().SanitizeFileName(), outFileName);
+ FileInfo fi = new FileInfo(outFilename);
+ return fi.Exists;
+ }
+
+ public void StoreAtsc3Segment(IPEndPoint destination, string outFileName, Stream stream)
+ {
+ string outFilename = Path.Combine(rootDirectory.FullName, "atsc3", destination.ToString().SanitizeFileName(), outFileName);
+ FileInfo fi = new FileInfo(outFilename);
+ fi.Directory.EnsureExists();
+ if (stream.CanSeek)
+ stream.Position = 0;
+
+ FileStream fileStream = fi.OpenWrite();
+ stream.CopyTo(fileStream);
+ fileStream.Flush();
+ fileStream.Close();
+
+ stream.Dispose();
+ }
}
}
diff --git a/skyscraper8/Skyscraper/Scraper/Storage/NullObjectStorage.cs b/skyscraper8/Skyscraper/Scraper/Storage/NullObjectStorage.cs
index efbe5a9..3331030 100644
--- a/skyscraper8/Skyscraper/Scraper/Storage/NullObjectStorage.cs
+++ b/skyscraper8/Skyscraper/Scraper/Storage/NullObjectStorage.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using System.Net;
using System.Text;
using System.Threading.Tasks;
using skyscraper5.Dvb.DataBroadcasting.SkyscraperVfs;
@@ -178,5 +179,15 @@ namespace skyscraper8.Skyscraper.Scraper.Storage
{
throw new NotImplementedException();
}
- }
+
+ public bool TestForAtsc3Segment(IPEndPoint destination, string outFileName)
+ {
+ throw new NotImplementedException();
+ }
+
+ public void StoreAtsc3Segment(IPEndPoint destination, string outFileName, Stream stream)
+ {
+ throw new NotImplementedException();
+ }
+ }
}
diff --git a/skyscraper8/Skyscraper/Scraper/Storage/ObjectStorage.cs b/skyscraper8/Skyscraper/Scraper/Storage/ObjectStorage.cs
index 2e40f51..1b8275f 100644
--- a/skyscraper8/Skyscraper/Scraper/Storage/ObjectStorage.cs
+++ b/skyscraper8/Skyscraper/Scraper/Storage/ObjectStorage.cs
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
+using System.Net;
using System.Text;
using System.Threading.Tasks;
using skyscraper5.Dvb.DataBroadcasting.SkyscraperVfs;
@@ -47,5 +48,7 @@ namespace skyscraper8.Skyscraper.Scraper.Storage
byte[] DvbNipGetFile(string path);
bool TestForWneStory(uint sessionId, string filename);
void StoreWneStory(uint sessionId, string filename, Stream value);
+ bool TestForAtsc3Segment(IPEndPoint destination, string outFileName);
+ void StoreAtsc3Segment(IPEndPoint destination, string outFileName, Stream stream);
}
}
diff --git a/skyscraper8/Skyscraper/Scraper/Storage/Tar/TarObjectStorage.cs b/skyscraper8/Skyscraper/Scraper/Storage/Tar/TarObjectStorage.cs
index 3f32ca4..93b7a1f 100644
--- a/skyscraper8/Skyscraper/Scraper/Storage/Tar/TarObjectStorage.cs
+++ b/skyscraper8/Skyscraper/Scraper/Storage/Tar/TarObjectStorage.cs
@@ -10,6 +10,7 @@ using skyscraper8.Skyscraper.Drawing;
using System;
using System.Collections.Generic;
using System.Linq;
+using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
@@ -246,5 +247,15 @@ namespace skyscraper8.Skyscraper.Scraper.Storage.Tar
{
throw new NotImplementedException();
}
- }
+
+ public bool TestForAtsc3Segment(IPEndPoint destination, string outFileName)
+ {
+ throw new NotImplementedException();
+ }
+
+ public void StoreAtsc3Segment(IPEndPoint destination, string outFileName, Stream stream)
+ {
+ throw new NotImplementedException();
+ }
+ }
}