From d030148f2a726418838384f7ab961561124d3e5b Mon Sep 17 00:00:00 2001 From: Jeff Cunat Date: Thu, 11 Jun 2020 11:15:59 +0200 Subject: [PATCH 1/3] Fix regression with enableText --- samples/captioning/multi-track-captions.html | 1 + src/streaming/text/TextController.js | 25 ++++++++++++++++---- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/samples/captioning/multi-track-captions.html b/samples/captioning/multi-track-captions.html index af43391da7..ce33bb9412 100644 --- a/samples/captioning/multi-track-captions.html +++ b/samples/captioning/multi-track-captions.html @@ -28,6 +28,7 @@ player = dashjs.MediaPlayer().create(); player.initialize(videoElement, url, true); + player.setTextDefaultEnabled(true); player.setInitialMediaSettingsFor('fragmentedText', { lang: 'swe' }); diff --git a/src/streaming/text/TextController.js b/src/streaming/text/TextController.js index 162ceceeff..a894b00811 100644 --- a/src/streaming/text/TextController.js +++ b/src/streaming/text/TextController.js @@ -59,6 +59,8 @@ function TextController() { textDefaultEnabled, // this is used for default settings (each time a file is loaded, we check value of this settings ) allTracksAreDisabled, // this is used for one session (when a file has been loaded, we use this settings to enable/disable text) forceTextStreaming, + textTracksAdded, + disableTextBeforeTextTracksAdded, previousPeriodSelectedTrack; function setup() { @@ -67,6 +69,8 @@ function TextController() { lastEnabledIndex = -1; textDefaultEnabled = false; forceTextStreaming = false; + textTracksAdded = false; + disableTextBeforeTextTracksAdded = false; textTracks = TextTracks(context).getInstance(); vttParser = VTTParser(context).getInstance(); ttmlParser = TTMLParser(context).getInstance(); @@ -196,7 +200,7 @@ function TextController() { }); } - if (!textDefaultEnabled) { + if (!textDefaultEnabled || disableTextBeforeTextTracksAdded) { // disable text at startup this.setTextTrack(-1); } @@ -207,6 +211,7 @@ function TextController() { index: index, tracks: tracks }); + textTracksAdded = true; } function setTextDefaultEnabled(enable) { @@ -216,6 +221,8 @@ function TextController() { if (!textDefaultEnabled) { // disable text at startup this.setTextTrack(-1); + } else { + allTracksAreDisabled = false; } } @@ -225,18 +232,24 @@ function TextController() { function enableText(enable) { checkParameterType(enable,'boolean'); - + if (!textDefaultEnabled && enable) { + textDefaultEnabled = true; + } if (isTextEnabled() !== enable) { // change track selection if (enable) { - // apply last enabled tractk + // apply last enabled track this.setTextTrack(lastEnabledIndex); } if (!enable) { // keep last index and disable text track lastEnabledIndex = this.getCurrentTrackIdx(); - this.setTextTrack(-1); + if (!textTracksAdded) { + disableTextBeforeTextTracksAdded = true; + } else { + this.setTextTrack(-1); + } } } } @@ -331,7 +344,9 @@ function TextController() { } function resetInitialSettings() { - allTracksAreDisabled = false; + allTracksAreDisabled = true; + textTracksAdded = false; + disableTextBeforeTextTracksAdded = false; } function reset() { From 008228e0c2723987187b2fbaecd4dbf33f38ddec Mon Sep 17 00:00:00 2001 From: Jeff Cunat Date: Thu, 11 Jun 2020 16:23:56 +0200 Subject: [PATCH 2/3] [TextController] change unit test because subtitles are now disabled by default --- samples/captioning/caption_vtt.html | 1 + test/unit/streaming.text.TextController.js | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/samples/captioning/caption_vtt.html b/samples/captioning/caption_vtt.html index 5744478985..eaee61ff88 100644 --- a/samples/captioning/caption_vtt.html +++ b/samples/captioning/caption_vtt.html @@ -18,6 +18,7 @@ player; player = dashjs.MediaPlayer({}).create(); + player.setTextDefaultEnabled(true); player.initialize(video, url, true); } diff --git a/test/unit/streaming.text.TextController.js b/test/unit/streaming.text.TextController.js index cbe181485b..cffca5278e 100644 --- a/test/unit/streaming.text.TextController.js +++ b/test/unit/streaming.text.TextController.js @@ -148,13 +148,13 @@ describe('TextController', function () { it('should enable/disable text', function () { let textEnabled = textController.isTextEnabled(); - expect(textEnabled).to.equal(true); // jshint ignore:line - - textController.enableText(false); - expect(textController.isTextEnabled()).to.equal(false); // jshint ignore:line + expect(textEnabled).to.equal(false); // jshint ignore:line textController.enableText(true); expect(textController.isTextEnabled()).to.equal(true); // jshint ignore:line + + textController.enableText(false); + expect(textController.isTextEnabled()).to.equal(false); // jshint ignore:line }); }); From 3f3d6821f8d8d61f046606e51e602d83c9e5a21e Mon Sep 17 00:00:00 2001 From: Jeff Cunat Date: Fri, 12 Jun 2020 09:16:50 +0200 Subject: [PATCH 3/3] enable text in captioning samples --- samples/captioning/caption_vtt.html | 2 +- samples/captioning/ttml-ebutt-sample.html | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/samples/captioning/caption_vtt.html b/samples/captioning/caption_vtt.html index eaee61ff88..a7539868d9 100644 --- a/samples/captioning/caption_vtt.html +++ b/samples/captioning/caption_vtt.html @@ -18,8 +18,8 @@ player; player = dashjs.MediaPlayer({}).create(); - player.setTextDefaultEnabled(true); player.initialize(video, url, true); + player.setTextDefaultEnabled(true); } diff --git a/samples/captioning/ttml-ebutt-sample.html b/samples/captioning/ttml-ebutt-sample.html index 388b4df1f5..f80f371699 100644 --- a/samples/captioning/ttml-ebutt-sample.html +++ b/samples/captioning/ttml-ebutt-sample.html @@ -33,6 +33,7 @@ player = dashjs.MediaPlayer().create(); player.initialize(videoElement, url, true); + player.setTextDefaultEnabled(true); player.attachTTMLRenderingDiv(TTMLRenderingDiv); controlbar = new ControlBar(player); // Checkout ControlBar.js for more info on how to target/add text tracks to UI controlbar.initialize();