Skip to content

Commit c1d3186

Browse files
fix: Ensure native segment metadata track has mode hidden (#1550)
Co-authored-by: Dzianis Dashkevich <98566601+dzianis-dashkevich@users.noreply.github.com>
1 parent bc9e667 commit c1d3186

File tree

4 files changed

+32
-2
lines changed

4 files changed

+32
-2
lines changed

index.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,11 @@
192192
<label class="form-check-label" for="forced-subtitles">Use Forced Subtitles (reloads player)</label>
193193
</div>
194194

195+
<div class="form-check">
196+
<input id="native-text-tracks" type="checkbox" class="form-check-input">
197+
<label class="form-check-label" for="native-text-tracks">Use native text tracks (reloads player)</label>
198+
</div>
199+
195200
<div class="input-group">
196201
<span class="input-group-text"><label for=preload>Preload (reloads player)</label></span>
197202
<select id=preload class="form-select">

scripts/index.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -474,7 +474,8 @@
474474
'use-mms',
475475
'preload',
476476
'mirror-source',
477-
'forced-subtitles'
477+
'forced-subtitles',
478+
'native-text-tracks'
478479
].forEach(function(name) {
479480
stateEls[name] = document.getElementById(name);
480481
});
@@ -528,7 +529,8 @@
528529
'network-info',
529530
'dts-offset',
530531
'exact-manifest-timings',
531-
'forced-subtitles'
532+
'forced-subtitles',
533+
'native-text-tracks'
532534
].forEach(function(name) {
533535
stateEls[name].addEventListener('change', function(event) {
534536
saveState();
@@ -603,6 +605,7 @@
603605
liveui: stateEls.liveui.checked,
604606
enableSourceset: mirrorSource,
605607
html5: {
608+
nativeTextTracks: getInputValue(stateEls['native-text-tracks']),
606609
vhs: {
607610
overrideNative: getInputValue(stateEls['override-native']),
608611
experimentalUseMMS: getInputValue(stateEls['use-mms']),

src/playlist-controller.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,8 @@ export class PlaylistController extends videojs.EventTarget {
254254
label: 'segment-metadata'
255255
}, false).track;
256256

257+
this.segmentMetadataTrack_.mode = 'hidden';
258+
257259
this.decrypter_ = new Decrypter();
258260
this.sourceUpdater_ = new SourceUpdater(this.mediaSource);
259261
this.inbandTextTracks_ = {};

test/playlist-controller.test.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7787,3 +7787,23 @@ QUnit.test('ManagedMediaSource startstreaming and endstreaming events start and
77877787

77887788
mms.restore();
77897789
});
7790+
7791+
QUnit.module('Native tracks', {
7792+
beforeEach(assert) {
7793+
this.playerOptions = {
7794+
html5: {
7795+
nativeTextTracks: true
7796+
}
7797+
};
7798+
sharedHooks.beforeEach.call(this, assert);
7799+
this.pc = this.playlistController;
7800+
7801+
},
7802+
afterEach(assert) {
7803+
sharedHooks.afterEach.call(this, assert);
7804+
}
7805+
});
7806+
7807+
QUnit.test('Native text track mode is hidden', function(assert) {
7808+
assert.strictEqual(this.pc.segmentMetadataTrack_.mode, 'hidden', 'track mode is hidden');
7809+
});

0 commit comments

Comments
 (0)