extractMultiSegmentInfo method
_MsInfo
extractMultiSegmentInfo(
- XmlElement element,
- _MsInfo msParentInfo
Implementation
_MsInfo extractMultiSegmentInfo(
xml.XmlElement element,
_MsInfo msParentInfo,
) {
final msInfo = msParentInfo.copy(); // Copy
final segmentList = element.getElement('SegmentList');
if (segmentList != null) {
msInfo.segmentTimeline =
extractSegmentTimeline(segmentList) ?? msParentInfo.segmentTimeline;
msInfo.initializationUrl =
segmentList.getElement('Initialization')?.getAttribute('sourceURL');
final segmentUrlsSE = segmentList.findAllElements('SegmentURL');
if (segmentUrlsSE.isNotEmpty) {
msInfo.segmentUrls = [
for (final segment in segmentUrlsSE) segment.getAttribute('media')!,
];
}
} else {
final segmentTemplate = element.getElement('SegmentTemplate');
if (segmentTemplate != null) {
// Note: Currently SegmentTemplates are not supported.
/* final segmentTimeLine = extractSegmentTimeline(segmentTemplate);
if (segmentTimeLine != null) {
msInfo['s'] = segmentTimeLine;
}
final timeScale = segmentTemplate.getAttribute('timescale');
if (timeScale != null) {
msInfo['timescale'] = int.parse(timeScale);
}
final media = segmentTemplate.getAttribute('media');
if (media != null) {
msInfo['media'] = media;
}
final initialization = segmentTemplate.getAttribute('initialization');
if (initialization != null) {
msInfo['initialization'] = initialization;
} else {
extractInitialization(segmentTemplate);
}*/
}
}
return msInfo;
}