From 84a44ef80e1e17b91f38b02b2628728c16bd37ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aaro=CC=81n?= Date: Thu, 12 Mar 2026 16:44:07 +0000 Subject: [PATCH] fix: Safari playback stall with overrideNative and experimentalUseMMS Safari playback does not start when using overrideNative together with experimentalUseMMS. This appears to be caused by setting the segment metadata track mode to 'hidden', which can stall playback in Safari when using Managed Media Source. Disable the metadata track in this specific scenario to prevent Safari from processing it and allow playback to start normally. Fixes #1600 --- src/playlist-controller.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/playlist-controller.js b/src/playlist-controller.js index d4181509f..4e40db54d 100644 --- a/src/playlist-controller.js +++ b/src/playlist-controller.js @@ -254,7 +254,13 @@ export class PlaylistController extends videojs.EventTarget { label: 'segment-metadata' }, false).track; - this.segmentMetadataTrack_.mode = 'hidden'; + // Only disable segment metadata track in Safari/iOS when using overrideNative HLS + if ((videojs.browser.IS_ANY_SAFARI || videojs.browser.IS_IOS) && + this.sourceType_ === 'hls') { + this.segmentMetadataTrack_.mode = 'disabled'; + } else { + this.segmentMetadataTrack_.mode = 'hidden'; + } this.decrypter_ = new Decrypter(); this.sourceUpdater_ = new SourceUpdater(this.mediaSource);