diff --git a/src/dash/DashAdapter.js b/src/dash/DashAdapter.js index 35ccb88ce0..83e11b5f0f 100644 --- a/src/dash/DashAdapter.js +++ b/src/dash/DashAdapter.js @@ -66,7 +66,7 @@ function DashAdapter() { } function getAdaptationForMediaInfo(mediaInfo) { - if (!adaptations) return null; + if (!adaptations || !mediaInfo || !adaptations[mediaInfo.streamInfo.id]) return null; return adaptations[mediaInfo.streamInfo.id][mediaInfo.index]; } diff --git a/src/dash/DashMetrics.js b/src/dash/DashMetrics.js index 0bc2b8a1de..2e73965ad6 100644 --- a/src/dash/DashMetrics.js +++ b/src/dash/DashMetrics.js @@ -341,17 +341,19 @@ function DashMetrics() { adaptationSetArrayIndex, representationArrayIndex; - adaptationSetArray = period.AdaptationSet_asArray; - for (adaptationSetArrayIndex = 0; adaptationSetArrayIndex < adaptationSetArray.length; adaptationSetArrayIndex = adaptationSetArrayIndex + 1) { - adaptationSet = adaptationSetArray[adaptationSetArrayIndex]; - representationArray = adaptationSet.Representation_asArray; - for (representationArrayIndex = 0; representationArrayIndex < representationArray.length; representationArrayIndex = representationArrayIndex + 1) { - representation = representationArray[representationArrayIndex]; - if (representationId === representation.id) { - if (returnIndex) { - return representationArrayIndex; - } else { - return representation; + if (period) { + adaptationSetArray = period.AdaptationSet_asArray; + for (adaptationSetArrayIndex = 0; adaptationSetArrayIndex < adaptationSetArray.length; adaptationSetArrayIndex = adaptationSetArrayIndex + 1) { + adaptationSet = adaptationSetArray[adaptationSetArrayIndex]; + representationArray = adaptationSet.Representation_asArray; + for (representationArrayIndex = 0; representationArrayIndex < representationArray.length; representationArrayIndex = representationArrayIndex + 1) { + representation = representationArray[representationArrayIndex]; + if (representationId === representation.id) { + if (returnIndex) { + return representationArrayIndex; + } else { + return representation; + } } } } diff --git a/src/dash/models/DashManifestModel.js b/src/dash/models/DashManifestModel.js index 826908d6c6..f0c80d90f1 100644 --- a/src/dash/models/DashManifestModel.js +++ b/src/dash/models/DashManifestModel.js @@ -729,6 +729,7 @@ function DashManifestModel() { } function getEventStreamForAdaptationSet(manifest, adaptation) { + if (!adaptation || !manifest) return []; var inbandStreams = manifest.Period_asArray[adaptation.period.index]. AdaptationSet_asArray[adaptation.index].InbandEventStream_asArray;