Skip to content

Commit 3c4bbf1

Browse files
authored
fix: playlists wrongfully excluded on iOS when using ManagedMediaSource (#1555)
1 parent 390cdfd commit 3c4bbf1

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

src/playlist-controller.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@ export class PlaylistController extends videojs.EventTarget {
198198
this.playlistExclusionDuration = playlistExclusionDuration;
199199
this.maxPlaylistRetries = maxPlaylistRetries;
200200
this.enableLowInitialPlaylist = enableLowInitialPlaylist;
201+
this.usingManagedMediaSource_ = false;
201202

202203
if (this.useCueTags_) {
203204
this.cueTagsTrack_ = this.tech_.addTextTrack(
@@ -221,6 +222,7 @@ export class PlaylistController extends videojs.EventTarget {
221222
// Airplay source not yet implemented. Remote playback must be disabled.
222223
this.tech_.el_.disableRemotePlayback = true;
223224
this.mediaSource = new window.ManagedMediaSource();
225+
this.usingManagedMediaSource_ = true;
224226

225227
videojs.log('Using ManagedMediaSource');
226228
} else if (window.MediaSource) {
@@ -1997,7 +1999,7 @@ export class PlaylistController extends videojs.EventTarget {
19971999
}
19982000

19992001
// fmp4 relies on browser support, while ts relies on muxer support
2000-
const supportFunction = (isFmp4, codec) => (isFmp4 ? browserSupportsCodec(codec) : muxerSupportsCodec(codec));
2002+
const supportFunction = (isFmp4, codec) => (isFmp4 ? browserSupportsCodec(codec, this.usingManagedMediaSource_) : muxerSupportsCodec(codec));
20012003
const unsupportedCodecs = {};
20022004
let unsupportedAudio;
20032005

@@ -2139,11 +2141,11 @@ export class PlaylistController extends videojs.EventTarget {
21392141
const codecs = codecsForPlaylist(this.main, variant);
21402142
const unsupported = [];
21412143

2142-
if (codecs.audio && !muxerSupportsCodec(codecs.audio) && !browserSupportsCodec(codecs.audio)) {
2144+
if (codecs.audio && !muxerSupportsCodec(codecs.audio) && !browserSupportsCodec(codecs.audio, this.usingManagedMediaSource_)) {
21432145
unsupported.push(`audio codec ${codecs.audio}`);
21442146
}
21452147

2146-
if (codecs.video && !muxerSupportsCodec(codecs.video) && !browserSupportsCodec(codecs.video)) {
2148+
if (codecs.video && !muxerSupportsCodec(codecs.video) && !browserSupportsCodec(codecs.video, this.usingManagedMediaSource_)) {
21472149
unsupported.push(`video codec ${codecs.video}`);
21482150
}
21492151

0 commit comments

Comments
 (0)