@@ -81,13 +81,50 @@ type Period struct {
8181 AdaptationSets []* AdaptationSet `xml:"AdaptationSet,omitempty"`
8282}
8383
84+ type DescriptorType struct {
85+ SchemeIDURI * string `xml:"schemeIDURI,attr"`
86+ Value * string `xml:"value,attr"`
87+ ID * string `xml:"id,attr"`
88+ }
89+
90+ // ISO 23009-1-2014 5.3.7
91+ type CommonAttributesAndElements struct {
92+ Profiles * string `xml:"profiles,attr"`
93+ Width * string `xml:"width,attr"`
94+ Height * string `xml:"height,attr"`
95+ Sar * string `xml:"sar,attr"`
96+ FrameRate * string `xml:"frameRate,attr"`
97+ AudioSamplingRate * string `xml:"audioSamplingRate,attr"`
98+ MimeType * string `xml:"mimeType,attr"`
99+ SegmentProfiles * string `xml:"segmentProfiles,attr"`
100+ Codecs * string `xml:"codecs,attr"`
101+ MaximumSAPPeriod * string `xml:"MaximumSAPPeriod,attr"`
102+ StartWithSAP * string `xml:"startWithSAP,attr"`
103+ MaxPlayoutRate * string `xml:"maxPlayoutRate,attr"`
104+ ScanType * string `xml:"scanType,attr"`
105+ FramePacking * DescriptorType `xml:"framePacking,attr"`
106+ AudioChannelConfiguration * DescriptorType `xml:"audioChannelConfiguration,attr"`
107+ ContentProtection * DescriptorType `xml:"contentProtection,attr"`
108+ EssentialProperty * DescriptorType `xml:"essentialProperty,attr"`
109+ SupplementalProperty * DescriptorType `xml:"supplmentalProperty,attr"`
110+ InbandEventStream * DescriptorType `xml:"inbandEventStream,attr"`
111+ }
112+
84113type AdaptationSet struct {
85- MimeType * string `xml:"mimeType,attr"`
86- ScanType * string `xml:"scanType,attr"`
114+ CommonAttributesAndElements
115+ MimeType * string `xml:"mimeType,attr"` // Common attribute, can be deprecated here
116+ ScanType * string `xml:"scanType,attr"` // Common attribute, can be deprecated here
87117 SegmentAlignment * bool `xml:"segmentAlignment,attr"`
88- StartWithSAP * int64 `xml:"startWithSAP,attr"`
118+ StartWithSAP * int64 `xml:"startWithSAP,attr"` // Common attribute, can be deprecated here
89119 Lang * string `xml:"lang,attr"`
90- ContentProtection []ContentProtectioner `xml:"ContentProtection,omitempty"`
120+ ID * string `xml:"id,attr"`
121+ Group * string `xml:"group,attr"`
122+ PAR * string `xml:"par,attr"`
123+ MinBandwidth * string `xml:"minBandwidth,attr"`
124+ MaxBandwidth * string `xml:"maxBandwidth,attr"`
125+ MinWidth * string `xml:"minWidth,attr"`
126+ MaxWidth * string `xml:"maxWidth,attr"`
127+ ContentProtection []ContentProtectioner `xml:"ContentProtection,omitempty"` // Common attribute, can be deprecated here
91128 Roles []* Role `xml:"Role,omitempty"`
92129 SegmentBase * SegmentBase `xml:"SegmentBase,omitempty"`
93130 SegmentList * SegmentList `xml:"SegmentList,omitempty"`
@@ -159,6 +196,7 @@ type SegmentTemplate struct {
159196}
160197
161198type Representation struct {
199+ CommonAttributesAndElements
162200 AdaptationSet * AdaptationSet `xml:"-"`
163201 AudioChannelConfiguration * AudioChannelConfiguration `xml:"AudioChannelConfiguration,omitempty"`
164202 AudioSamplingRate * int64 `xml:"audioSamplingRate,attr"` // Audio
0 commit comments