diff --git a/lib/media/streaming_engine.js b/lib/media/streaming_engine.js index 3bb58f5194..2df842d6f5 100644 --- a/lib/media/streaming_engine.js +++ b/lib/media/streaming_engine.js @@ -813,6 +813,11 @@ shaka.media.StreamingEngine = class { await originalStream.createSegmentIndex(); } + const dependencyStream = originalStream.dependencyStream; + if (dependencyStream && !dependencyStream.segmentIndex) { + await dependencyStream.createSegmentIndex(); + } + if (mediaState.operation != originalOperation) { // The original operation completed while we were getting a segment index, // so there's nothing to do now. @@ -1377,6 +1382,18 @@ shaka.media.StreamingEngine = class { } } + // If the stream has a dependency, make sure its segment index exists. + if (mediaState.dependencyMediaState) { + if (!mediaState.dependencyMediaState.stream.segmentIndex) { + try { + await mediaState.dependencyMediaState.stream.createSegmentIndex(); + } catch (error) { + shaka.log.warning( + 'Could not create segment index for dependency', error); + } + } + } + // Update the MediaState. try { const delay = this.update_(mediaState);