shaka-player 3.3.14 → 3.3.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/build-and-test.yaml +13 -0
- package/AUTHORS +1 -0
- package/CHANGELOG.md +9 -0
- package/CONTRIBUTORS +1 -0
- package/dist/locales.js +29 -29
- package/dist/shaka-player.compiled.debug.js +14 -14
- package/dist/shaka-player.compiled.debug.map +2 -2
- package/dist/shaka-player.compiled.js +138 -138
- package/dist/shaka-player.compiled.map +2 -2
- package/dist/shaka-player.ui.debug.js +16 -16
- package/dist/shaka-player.ui.debug.map +2 -2
- package/dist/shaka-player.ui.js +154 -154
- package/dist/shaka-player.ui.map +2 -2
- package/lib/ads/ad_manager.js +2 -2
- package/lib/media/streaming_engine.js +20 -8
- package/lib/player.js +11 -2
- package/package.json +1 -1
- package/test/player_integration.js +10 -3
- package/test/test/boot.js +29 -11
- package/test/test/util/test_scheme.js +2 -2
|
@@ -87,6 +87,19 @@ jobs:
|
|
|
87
87
|
if: matrix.os == 'ubuntu-latest' && matrix.browser == 'Firefox'
|
|
88
88
|
run: sudo apt -y update && sudo apt -y install ffmpeg
|
|
89
89
|
|
|
90
|
+
# Edge 107 fails DRM tests due to an outdated Widevine CDM. Force Edge
|
|
91
|
+
# to update to 108+.
|
|
92
|
+
- name: Upgrade Edge
|
|
93
|
+
if: matrix.os == 'ubuntu-latest' && matrix.browser == 'Edge'
|
|
94
|
+
run: |
|
|
95
|
+
# If it's Edge 107, update it. Otherwise, don't. This way, we don't
|
|
96
|
+
# break something later when Edge 108+ is available by default in
|
|
97
|
+
# GitHub Actions.
|
|
98
|
+
if apt show microsoft-edge-stable | grep -q '^Version: 107'; then
|
|
99
|
+
wget https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_108.0.1462.46-1_amd64.deb
|
|
100
|
+
sudo dpkg -i microsoft-edge-stable_108.0.1462.46-1_amd64.deb
|
|
101
|
+
fi
|
|
102
|
+
|
|
90
103
|
- name: Checkout code
|
|
91
104
|
uses: actions/checkout@v3
|
|
92
105
|
with:
|
package/AUTHORS
CHANGED
|
@@ -63,6 +63,7 @@ Prakash <duggaraju@gmail.com>
|
|
|
63
63
|
Robert Colantuoni <rgc@colantuoni.com>
|
|
64
64
|
Robert Galluccio <robertnw5@gmail.com>
|
|
65
65
|
Rodolphe Breton <robloche@gmail.com>
|
|
66
|
+
Rohan Gupta <rohangupta1528@gmail.com>
|
|
66
67
|
Roi Lipman <roilipman@gmail.com>
|
|
67
68
|
Roksolana Ivanyshyn <roksolana.ivanyshyn.pub@gmail.com>
|
|
68
69
|
Rostislav Hejduk <Ross-cz@users.noreply.github.com>
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [3.3.15](https://github.com/shaka-project/shaka-player/compare/v3.3.14...v3.3.15) (2022-12-14)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* **chapters:** removed duplicate chapters by id ([#4810](https://github.com/shaka-project/shaka-player/issues/4810)) ([8fc7883](https://github.com/shaka-project/shaka-player/commit/8fc78835147dfee13749c2f09a1b27e0df5939b9))
|
|
9
|
+
* Fix duplicate updates in StreamingEngine ([#4840](https://github.com/shaka-project/shaka-player/issues/4840)) ([ca72438](https://github.com/shaka-project/shaka-player/commit/ca724387488ca6f8943b3caa9c63fe241d517a77)), closes [#4831](https://github.com/shaka-project/shaka-player/issues/4831)
|
|
10
|
+
* Fix rare exception after StreamingEngine teardown ([#4830](https://github.com/shaka-project/shaka-player/issues/4830)) ([6e170c6](https://github.com/shaka-project/shaka-player/commit/6e170c61768aa3946f3b2ab630b4f0cf214c825d)), closes [#4813](https://github.com/shaka-project/shaka-player/issues/4813)
|
|
11
|
+
|
|
3
12
|
## [3.3.14](https://github.com/shaka-project/shaka-player/compare/v3.3.13...v3.3.14) (2022-12-08)
|
|
4
13
|
|
|
5
14
|
|
package/CONTRIBUTORS
CHANGED
|
@@ -94,6 +94,7 @@ Robert Colantuoni <rgc@colantuoni.com>
|
|
|
94
94
|
Robert Galluccio <robertnw5@gmail.com>
|
|
95
95
|
Rodolphe Breton <robloche@gmail.com>
|
|
96
96
|
Rohit Makasana <rohitbm@google.com>
|
|
97
|
+
Rohan Gupta <rohangupta1528@gmail.com>
|
|
97
98
|
Roi Lipman <roilipman@gmail.com>
|
|
98
99
|
Roksolana Ivanyshyn <roksolana.ivanyshyn.pub@gmail.com>
|
|
99
100
|
Rostislav Hejduk <Ross-cz@users.noreply.github.com>
|
package/dist/locales.js
CHANGED
|
@@ -720,44 +720,44 @@ shaka.ui.Locales.addTo = function(localization) {
|
|
|
720
720
|
* @const
|
|
721
721
|
*/
|
|
722
722
|
shaka.ui.Locales.Ids = {
|
|
723
|
-
|
|
723
|
+
ENTER_PICTURE_IN_PICTURE: 'ENTER_PICTURE_IN_PICTURE',
|
|
724
|
+
AD_PROGRESS: 'AD_PROGRESS',
|
|
725
|
+
PLAYBACK_RATE: 'PLAYBACK_RATE',
|
|
726
|
+
LANGUAGE: 'LANGUAGE',
|
|
727
|
+
ON: 'ON',
|
|
724
728
|
CAST: 'CAST',
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
PAUSE: 'PAUSE',
|
|
729
|
-
OFF: 'OFF',
|
|
730
|
-
REWIND: 'REWIND',
|
|
731
|
-
UNMUTE: 'UNMUTE',
|
|
732
|
-
AD_TIME: 'AD_TIME',
|
|
729
|
+
ENTER_LOOP_MODE: 'ENTER_LOOP_MODE',
|
|
730
|
+
PLAY: 'PLAY',
|
|
731
|
+
EXIT_LOOP_MODE: 'EXIT_LOOP_MODE',
|
|
733
732
|
EXIT_FULL_SCREEN: 'EXIT_FULL_SCREEN',
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
ON: 'ON',
|
|
733
|
+
AD_DURATION: 'AD_DURATION',
|
|
734
|
+
REWIND: 'REWIND',
|
|
737
735
|
CAPTIONS: 'CAPTIONS',
|
|
738
|
-
|
|
739
|
-
|
|
736
|
+
LIVE: 'LIVE',
|
|
737
|
+
PAUSE: 'PAUSE',
|
|
740
738
|
UNRECOGNIZED_LANGUAGE: 'UNRECOGNIZED_LANGUAGE',
|
|
739
|
+
EXIT_PICTURE_IN_PICTURE: 'EXIT_PICTURE_IN_PICTURE',
|
|
740
|
+
VOLUME: 'VOLUME',
|
|
741
741
|
SUBTITLE_FORCED: 'SUBTITLE_FORCED',
|
|
742
|
-
|
|
743
|
-
|
|
742
|
+
PICTURE_IN_PICTURE: 'PICTURE_IN_PICTURE',
|
|
743
|
+
AIRPLAY: 'AIRPLAY',
|
|
744
|
+
REPLAY: 'REPLAY',
|
|
744
745
|
MUTE: 'MUTE',
|
|
745
|
-
PLAY: 'PLAY',
|
|
746
|
-
EXIT_LOOP_MODE: 'EXIT_LOOP_MODE',
|
|
747
|
-
PLAYBACK_RATE: 'PLAYBACK_RATE',
|
|
748
|
-
LIVE: 'LIVE',
|
|
749
746
|
BACK: 'BACK',
|
|
750
|
-
|
|
747
|
+
NOT_APPLICABLE: 'NOT_APPLICABLE',
|
|
748
|
+
STATISTICS: 'STATISTICS',
|
|
749
|
+
AUTO_QUALITY: 'AUTO_QUALITY',
|
|
751
750
|
MULTIPLE_LANGUAGES: 'MULTIPLE_LANGUAGES',
|
|
752
751
|
MORE_SETTINGS: 'MORE_SETTINGS',
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
FAST_FORWARD: 'FAST_FORWARD',
|
|
757
|
-
ENTER_PICTURE_IN_PICTURE: 'ENTER_PICTURE_IN_PICTURE',
|
|
752
|
+
SKIP_AD: 'SKIP_AD',
|
|
753
|
+
UNMUTE: 'UNMUTE',
|
|
754
|
+
OFF: 'OFF',
|
|
758
755
|
FULL_SCREEN: 'FULL_SCREEN',
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
756
|
+
FAST_FORWARD: 'FAST_FORWARD',
|
|
757
|
+
SKIP_TO_LIVE: 'SKIP_TO_LIVE',
|
|
758
|
+
UNDETERMINED_LANGUAGE: 'UNDETERMINED_LANGUAGE',
|
|
759
|
+
AD_TIME: 'AD_TIME',
|
|
762
760
|
SEEK: 'SEEK',
|
|
761
|
+
RESOLUTION: 'RESOLUTION',
|
|
762
|
+
LOOP: 'LOOP',
|
|
763
763
|
};
|
|
@@ -749,8 +749,8 @@ shaka.media.StreamingEngine.prototype.makeAbortDecision_=function(a){var b=this,
|
|
|
749
749
|
a.operation.abort());e.jumpToEnd()})};
|
|
750
750
|
shaka.media.StreamingEngine.prototype.shouldAbortCurrentRequest_=function(a){goog.asserts.assert(a.operation,"Abort logic requires an ongoing operation!");goog.asserts.assert(a.stream&&a.stream.segmentIndex,"Abort logic requires a segment index");var b=this.playerInterface_.getPresentationTime(),c=this.playerInterface_.mediaSourceEngine.bufferEnd(a.type),d=this.getTimeNeeded_(a,b);d=a.stream.segmentIndex.find(d);var e=null==d?null:a.stream.segmentIndex.get(d);d=e?e.getSize():null;e&&!d&&(d=(e.getEndTime()-
|
|
751
751
|
e.getStartTime())*(a.stream.bandwidth||0)/8);if(!d)return!1;(e=e.initSegmentReference)&&(d+=e.getSize()||0);e=this.playerInterface_.getBandwidthEstimate();return 8*d/e<(c||0)-b-Math.max(this.manifest_.minBufferTime||0,this.config_.rebufferingGoal)||a.operation.getBytesRemaining()>d?!0:!1};
|
|
752
|
-
shaka.media.StreamingEngine.prototype.seeked=function(){for(var a=this.playerInterface_.getPresentationTime(),b=this.config_.smallGapLimit,c=shaka.util.ManifestParserUtils.ContentType,d=!1,e=$jscomp.makeIterator(this.mediaStates_.keys()),f=e.next();!f.done;f=e.next()){f=f.value;var g=this.mediaStates_.get(f),h=shaka.media.StreamingEngine.logPrefix_(g);g.segmentIterator=null;if(!this.playerInterface_.mediaSourceEngine.isBuffered(f,a,b)){if(null!=this.playerInterface_.mediaSourceEngine.bufferEnd(f)||
|
|
753
|
-
g.performingUpdate)this.forceClearBuffer_(g),d=!0;g.operation&&(g.operation.abort(),shaka.log.debug(h,"Aborting operation due to seek"),g.operation=null);f===c.TEXT&&this.playerInterface_.mediaSourceEngine.resetCaptionParser()}}d||shaka.log.debug("(all): seeked: buffered seek: presentationTime="+a)};
|
|
752
|
+
shaka.media.StreamingEngine.prototype.seeked=function(){if(this.playerInterface_){for(var a=this.playerInterface_.getPresentationTime(),b=this.config_.smallGapLimit,c=shaka.util.ManifestParserUtils.ContentType,d=!1,e=$jscomp.makeIterator(this.mediaStates_.keys()),f=e.next();!f.done;f=e.next()){f=f.value;var g=this.mediaStates_.get(f),h=shaka.media.StreamingEngine.logPrefix_(g);g.segmentIterator=null;if(!this.playerInterface_.mediaSourceEngine.isBuffered(f,a,b)){if(null!=this.playerInterface_.mediaSourceEngine.bufferEnd(f)||
|
|
753
|
+
g.performingUpdate)this.forceClearBuffer_(g),d=!0;g.operation&&(g.operation.abort(),shaka.log.debug(h,"Aborting operation due to seek"),g.operation=null);f===c.TEXT&&this.playerInterface_.mediaSourceEngine.resetCaptionParser()}}d||shaka.log.debug("(all): seeked: buffered seek: presentationTime="+a)}};
|
|
754
754
|
shaka.media.StreamingEngine.prototype.forceClearBuffer_=function(a){var b=this,c=shaka.media.StreamingEngine.logPrefix_(a);a.clearingBuffer?shaka.log.debug(c,"clear: already clearing the buffer"):a.waitingToClearBuffer?shaka.log.debug(c,"clear: already waiting"):a.performingUpdate?(shaka.log.debug(c,"clear: currently updating"),a.waitingToClearBuffer=!0,a.clearBufferSafeMargin=0):null==this.playerInterface_.mediaSourceEngine.bufferStart(a.type)?(shaka.log.debug(c,"clear: nothing buffered"),null==
|
|
755
755
|
a.updateTimer&&this.scheduleUpdate_(a,0)):(shaka.log.debug(c,"clear: handling right now"),this.cancelUpdate_(a),this.clearBuffer_(a,!1,0)["catch"](function(d){b.playerInterface_&&(goog.asserts.assert(d instanceof shaka.util.Error,"Wrong error type!"),b.playerInterface_.onError(d))}))};
|
|
756
756
|
shaka.media.StreamingEngine.prototype.initStreams_=function(){var a=this,b,c,d,e,f,g,h,k,l,m;return $jscomp.asyncExecutePromiseGeneratorProgram(function(n){if(1==n.nextAddress){b=shaka.util.ManifestParserUtils.ContentType;goog.asserts.assert(a.config_,"StreamingEngine configure() must be called before init()!");if(!a.currentVariant_)throw shaka.log.error("init: no Streams chosen"),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STREAMING,shaka.util.Error.Code.STREAMING_ENGINE_STARTUP_INVALID_STATE);
|
|
@@ -760,7 +760,7 @@ shaka.media.StreamingEngine.prototype.createMediaState_=function(a){return{strea
|
|
|
760
760
|
shaka.media.StreamingEngine.prototype.setDuration_=function(){var a=this.manifest_.presentationTimeline.getDuration();Infinity>a?this.playerInterface_.mediaSourceEngine.setDuration(a):this.playerInterface_.mediaSourceEngine.setDuration(Math.pow(2,32))};
|
|
761
761
|
shaka.media.StreamingEngine.prototype.onUpdate_=function(a){var b=this,c,d,e,f,g,h;return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){switch(k.nextAddress){case 1:b.destroyer_.ensureNotDestroyed();c=shaka.media.StreamingEngine.logPrefix_(a);goog.asserts.assert(!a.performingUpdate&&null!=a.updateTimer,c+" unexpected call to onUpdate_()");if(a.performingUpdate||null==a.updateTimer)return k["return"]();goog.asserts.assert(!a.clearingBuffer,c+" onUpdate_() should not be called when clearing the buffer");
|
|
762
762
|
if(a.clearingBuffer)return k["return"]();a.updateTimer=null;if(!a.waitingToClearBuffer){k.jumpTo(2);break}shaka.log.debug(c,"skipping update and clearing the buffer");return k.yield(b.clearBuffer_(a,a.waitingToFlushBuffer,a.clearBufferSafeMargin),3);case 3:return k["return"]();case 2:if(a.stream.segmentIndex){k.jumpTo(4);break}d=a.stream;return k.yield(a.stream.createSegmentIndex(),5);case 5:if(d!=a.stream)return d.closeSegmentIndex&&(goog.asserts.assert(!a.stream.segmentIndex,"mediastate.stream should not have segmentIndex yet."),
|
|
763
|
-
d.closeSegmentIndex()),
|
|
763
|
+
d.closeSegmentIndex()),a.performingUpdate||a.updateTimer||b.scheduleUpdate_(a,0),k["return"]();case 4:k.setCatchFinallyBlocks(6);e=b.update_(a);null!=e&&(b.scheduleUpdate_(a,e),a.hasError=!1);k.leaveTryBlock(7);break;case 6:return f=k.enterCatchBlock(),k.yield(b.handleStreamingError_(f),8);case 8:return k["return"]();case 7:g=Array.from(b.mediaStates_.values());if(!b.startupComplete_||!g.every(function(l){return l.endOfStream})){k.jumpTo(0);break}shaka.log.v1(c,"calling endOfStream()...");return k.yield(b.playerInterface_.mediaSourceEngine.endOfStream(),
|
|
764
764
|
10);case 10:b.destroyer_.ensureNotDestroyed(),h=b.playerInterface_.mediaSourceEngine.getDuration(),0!=h&&h<b.manifest_.presentationTimeline.getDuration()&&b.manifest_.presentationTimeline.setDuration(h),k.jumpToEnd()}})};
|
|
765
765
|
shaka.media.StreamingEngine.prototype.update_=function(a){goog.asserts.assert(this.manifest_,"manifest_ should not be null");goog.asserts.assert(this.config_,"config_ should not be null");var b=shaka.util.ManifestParserUtils.ContentType;if(shaka.media.StreamingEngine.isEmbeddedText_(a))return this.playerInterface_.mediaSourceEngine.setSelectedClosedCaptionId(a.stream.originalId||""),null;a.type==b.TEXT&&this.playerInterface_.mediaSourceEngine.clearSelectedClosedCaptionId();var c=shaka.media.StreamingEngine.logPrefix_(a),
|
|
766
766
|
d=this.playerInterface_.getPresentationTime(),e=this.getTimeNeeded_(a,d);shaka.log.v2(c,"timeNeeded="+e);var f=this.playerInterface_.mediaSourceEngine.bufferedAheadOf(a.type,d);shaka.log.v2(c,"update_:","presentationTime="+d,"bufferedAhead="+f);var g=Math.max(this.manifest_.minBufferTime||0,this.config_.rebufferingGoal,this.config_.bufferingGoal)*this.bufferingGoalScale_,h=this.manifest_.presentationTimeline.getDuration()-e,k=this.playerInterface_.mediaSourceEngine.bufferEnd(a.type);if(1E-6>h&&k)return shaka.log.debug(c,
|
|
@@ -775,10 +775,10 @@ z.yield(d.initSourceBuffer_(a,c),4);case 4:d.destroyer_.ensureNotDestroyed();if(
|
|
|
775
775
|
C);D=!1;F=0;(new shaka.util.Mp4Parser).box("mdat",function(G){F=G.size+G.start;D=!0}).parse(q,!1,!0);if(!D)return E.jumpTo(0);B=q.subarray(0,F);q=q.subarray(F);return E.yield(d.append_(a,b,h,c,B),0)})},z.yield(d.fetch_(a,c,u),9);d.config_.lowLatencyMode&&!m&&shaka.log.warning("Low latency streaming mode is enabled, but ReadableStream is not supported by the browser.");n=d.fetch_(a,c);return z.yield(n,7);case 7:return p=z.yieldResult,d.destroyer_.ensureNotDestroyed(),d.fatalError_?z["return"]():a.waitingToClearBuffer?
|
|
776
776
|
(shaka.log.info(g,"waitingToClearBuffer, skip append"),a.performingUpdate=!1,d.scheduleUpdate_(a,0),z["return"]()):z.yield(d.append_(a,b,h,c,p),6);case 9:v=z.yieldResult;if(t){z.jumpTo(6);break}r=!0;d.destroyer_.ensureNotDestroyed();return d.fatalError_?z["return"]():a.waitingToClearBuffer?(shaka.log.info(g,"waitingToClearBuffer, skip append"),a.performingUpdate=!1,d.scheduleUpdate_(a,0),z["return"]()):z.yield(d.append_(a,b,h,c,v),6);case 6:d.destroyer_.ensureNotDestroyed();if(d.fatalError_)return z["return"]();
|
|
777
777
|
a.lastSegmentReference=c;y=k.next().value;shaka.log.v2(g,"advancing to next segment",y);a.performingUpdate=!1;a.recovering=!1;w=d.playerInterface_.mediaSourceEngine.getBufferedInfo();x=w[a.type];shaka.log.v1(g,"finished fetch and append",JSON.stringify(x));if(!a.waitingToClearBuffer)d.playerInterface_.onSegmentAppended();d.scheduleUpdate_(a,0);z.leaveTryBlock(0);break;case 2:A=z.enterCatchBlock();d.destroyer_.ensureNotDestroyed(A);if(d.fatalError_)return z["return"]();goog.asserts.assert(A instanceof
|
|
778
|
-
shaka.util.Error,"Should only receive a Shaka error");a.performingUpdate=!1;if(A.code==shaka.util.Error.Code.OPERATION_ABORTED)a.performingUpdate=!1,a
|
|
778
|
+
shaka.util.Error,"Should only receive a Shaka error");a.performingUpdate=!1;if(A.code==shaka.util.Error.Code.OPERATION_ABORTED)a.performingUpdate=!1,d.cancelUpdate_(a),d.scheduleUpdate_(a,0),z.jumpTo(0);else if(a.type==e.TEXT&&d.config_.ignoreTextStreamFailures)A.code==shaka.util.Error.Code.BAD_HTTP_STATUS?shaka.log.warning(g,"Text stream failed to download. Proceeding without it."):shaka.log.warning(g,"Text stream failed to parse. Proceeding without it."),d.mediaStates_["delete"](e.TEXT),z.jumpTo(0);
|
|
779
779
|
else if(A.code==shaka.util.Error.Code.QUOTA_EXCEEDED_ERROR)d.handleQuotaExceeded_(a,A),z.jumpTo(0);else return shaka.log.error(g,"failed fetch and append: code="+A.code),a.hasError=!0,A.severity=shaka.util.Error.Severity.CRITICAL,z.yield(d.handleStreamingError_(A),0)}})};
|
|
780
|
-
shaka.media.StreamingEngine.prototype.retry=function(a){if(this.destroyer_.destroyed())return shaka.log.error("Unable to retry after StreamingEngine is destroyed!"),!1;if(this.fatalError_)return shaka.log.error("Unable to retry after StreamingEngine encountered a fatal error!"),!1;for(var b=$jscomp.makeIterator(this.mediaStates_.values()),c=b.next();!c.done;c=b.next()){c=c.value;var d=shaka.media.StreamingEngine.logPrefix_(c)
|
|
781
|
-
this.scheduleUpdate_(c,a))}return!0};shaka.media.StreamingEngine.prototype.concatArray_=function(a,b){var c=new Uint8Array(a.length+b.length);c.set(a);c.set(b,a.length);return c};
|
|
780
|
+
shaka.media.StreamingEngine.prototype.retry=function(a){if(this.destroyer_.destroyed())return shaka.log.error("Unable to retry after StreamingEngine is destroyed!"),!1;if(this.fatalError_)return shaka.log.error("Unable to retry after StreamingEngine encountered a fatal error!"),!1;for(var b=$jscomp.makeIterator(this.mediaStates_.values()),c=b.next();!c.done;c=b.next()){c=c.value;var d=shaka.media.StreamingEngine.logPrefix_(c);!c.hasError||c.performingUpdate||c.updateTimer||(shaka.log.info(d,"Retrying after failure..."),
|
|
781
|
+
c.hasError=!1,this.scheduleUpdate_(c,a))}return!0};shaka.media.StreamingEngine.prototype.concatArray_=function(a,b){var c=new Uint8Array(a.length+b.length);c.set(a);c.set(b,a.length);return c};
|
|
782
782
|
shaka.media.StreamingEngine.prototype.handleQuotaExceeded_=function(a,b){var c=shaka.media.StreamingEngine.logPrefix_(a);if(Array.from(this.mediaStates_.values()).some(function(e){return e!=a&&e.recovering}))shaka.log.debug(c,"MediaSource threw QuotaExceededError:","waiting for another stream to recover...");else{var d=Math.round(100*this.bufferingGoalScale_);if(20<d)this.bufferingGoalScale_-=.2;else if(4<d)this.bufferingGoalScale_-=.04;else{shaka.log.error(c,"MediaSource threw QuotaExceededError too many times");
|
|
783
783
|
this.fatalError_=a.hasError=!0;this.playerInterface_.onError(b);return}shaka.log.warning(c,"MediaSource threw QuotaExceededError:","reducing buffering goals by "+(100-Math.round(100*this.bufferingGoalScale_))+"%");a.recovering=!0}this.scheduleUpdate_(a,4)};
|
|
784
784
|
shaka.media.StreamingEngine.prototype.initSourceBuffer_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n;return $jscomp.asyncExecutePromiseGeneratorProgram(function(p){d=shaka.media.StreamingEngine;e=d.logPrefix_(a);f=[];g=Math.max(0,b.appendWindowStart-d.APPEND_WINDOW_START_FUDGE_);h=b.appendWindowEnd+d.APPEND_WINDOW_END_FUDGE_;goog.asserts.assert(b.startTime<=h,e+" segment should start before append window end");k=b.timestampOffset;if(k!=a.lastTimestampOffset||g!=a.lastAppendWindowStart||h!=a.lastAppendWindowEnd)shaka.log.v1(e,
|
|
@@ -795,10 +795,10 @@ shaka.media.StreamingEngine.isEmbeddedText_=function(a){var b=shaka.util.MimeUti
|
|
|
795
795
|
shaka.media.StreamingEngine.prototype.fetch_=function(a,b,c){var d=this,e,f,g,h,k;return $jscomp.asyncExecutePromiseGeneratorProgram(function(l){if(1==l.nextAddress)return e=shaka.net.NetworkingEngine.RequestType.SEGMENT,f=shaka.util.Networking.createSegmentRequest(b.getUris(),b.startByte,b.endByte,d.config_.retryParameters,c),shaka.log.v2("fetching: reference=",b),g=a.stream,d.playerInterface_.modifySegmentRequest(f,{type:g.type,init:b instanceof shaka.media.InitSegmentReference,duration:b.endTime-
|
|
796
796
|
b.startTime,mimeType:g.mimeType,codecs:g.codecs,bandwidth:g.bandwidth}),h=d.playerInterface_.netEngine.request(e,f),a.operation=h,l.yield(h.promise,2);k=l.yieldResult;a.operation=null;return l["return"](k.data)})};
|
|
797
797
|
shaka.media.StreamingEngine.prototype.clearBuffer_=function(a,b,c){var d=this,e,f,g;return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){if(1==h.nextAddress)return e=shaka.media.StreamingEngine.logPrefix_(a),goog.asserts.assert(!a.performingUpdate&&null==a.updateTimer,e+" unexpected call to clearBuffer_()"),a.waitingToClearBuffer=!1,a.waitingToFlushBuffer=!1,a.clearBufferSafeMargin=0,a.clearingBuffer=!0,a.lastSegmentReference=null,a.lastInitSegmentReference=null,a.segmentIterator=null,shaka.log.debug(e,
|
|
798
|
-
"clearing buffer"),c?(f=d.playerInterface_.getPresentationTime(),g=d.playerInterface_.mediaSourceEngine.getDuration(),h.yield(d.playerInterface_.mediaSourceEngine.remove(a.type,f+c,g),3)):h.yield(d.playerInterface_.mediaSourceEngine.clear(a.type),4);if(3!=h.nextAddress)return d.destroyer_.ensureNotDestroyed(),b?h.yield(d.playerInterface_.mediaSourceEngine.flush(a.type),3):h.jumpTo(3);d.destroyer_.ensureNotDestroyed();shaka.log.debug(e,"cleared buffer");a.clearingBuffer=!1;a.endOfStream=!1;
|
|
799
|
-
0);h.jumpToEnd()})};
|
|
800
|
-
shaka.media.StreamingEngine.prototype.scheduleUpdate_=function(a,b){var c=this,d=shaka.media.StreamingEngine.logPrefix_(a),e=a.type;e!=shaka.util.ManifestParserUtils.ContentType.TEXT||this.mediaStates_.has(e)?(shaka.log.v2(d,"updating in "+b+" seconds"),goog.asserts.assert(null==a.updateTimer,d+" did not expect update to be scheduled"),a.updateTimer=(new shaka.util.DelayedTick(function(){var f;return $jscomp.asyncExecutePromiseGeneratorProgram(function(g){if(1==g.nextAddress)return g.setCatchFinallyBlocks(2),
|
|
801
|
-
4);if(2!=g.nextAddress)return g.leaveTryBlock(0);f=g.enterCatchBlock();if(c.playerInterface_)c.playerInterface_.onError(f);g.jumpToEnd()})})).tickAfter(b)):shaka.log.v1(d,"Text stream is unloaded. No update is needed.")};shaka.media.StreamingEngine.prototype.cancelUpdate_=function(a){null!=a.updateTimer&&(a.updateTimer.stop(),a.updateTimer=null)};
|
|
798
|
+
"clearing buffer"),c?(f=d.playerInterface_.getPresentationTime(),g=d.playerInterface_.mediaSourceEngine.getDuration(),h.yield(d.playerInterface_.mediaSourceEngine.remove(a.type,f+c,g),3)):h.yield(d.playerInterface_.mediaSourceEngine.clear(a.type),4);if(3!=h.nextAddress)return d.destroyer_.ensureNotDestroyed(),b?h.yield(d.playerInterface_.mediaSourceEngine.flush(a.type),3):h.jumpTo(3);d.destroyer_.ensureNotDestroyed();shaka.log.debug(e,"cleared buffer");a.clearingBuffer=!1;a.endOfStream=!1;a.performingUpdate||
|
|
799
|
+
a.updateTimer||d.scheduleUpdate_(a,0);h.jumpToEnd()})};
|
|
800
|
+
shaka.media.StreamingEngine.prototype.scheduleUpdate_=function(a,b){var c=this,d=shaka.media.StreamingEngine.logPrefix_(a),e=a.type;e!=shaka.util.ManifestParserUtils.ContentType.TEXT||this.mediaStates_.has(e)?(shaka.log.v2(d,"updating in "+b+" seconds"),goog.asserts.assert(null==a.updateTimer,d+" did not expect update to be scheduled"),a.updateTimer=(new shaka.util.DelayedTick(function(){var f;return $jscomp.asyncExecutePromiseGeneratorProgram(function(g){if(1==g.nextAddress)return g.setCatchFinallyBlocks(2),
|
|
801
|
+
g.yield(c.onUpdate_(a),4);if(2!=g.nextAddress)return g.leaveTryBlock(0);f=g.enterCatchBlock();if(c.playerInterface_)c.playerInterface_.onError(f);g.jumpToEnd()})})).tickAfter(b)):shaka.log.v1(d,"Text stream is unloaded. No update is needed.")};shaka.media.StreamingEngine.prototype.cancelUpdate_=function(a){null!=a.updateTimer&&(a.updateTimer.stop(),a.updateTimer=null)};
|
|
802
802
|
shaka.media.StreamingEngine.prototype.abortOperations_=function(a){return $jscomp.asyncExecutePromiseGeneratorProgram(function(b){return a.operation?b.yield(a.operation.abort(),0):b.jumpTo(0)})};
|
|
803
803
|
shaka.media.StreamingEngine.prototype.handleStreamingError_=function(a){var b=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){if(1==c.nextAddress)return c.yield(b.failureCallbackBackoff_.attempt(),2);b.destroyer_.ensureNotDestroyed();b.playerInterface_.onError(a);a.handled||b.config_.failureCallback(a);c.jumpToEnd()})};shaka.media.StreamingEngine.logPrefix_=function(a){return"("+a.type+":"+a.stream.id+")"};shaka.media.StreamingEngine.APPEND_WINDOW_START_FUDGE_=.1;
|
|
804
804
|
shaka.media.StreamingEngine.APPEND_WINDOW_END_FUDGE_=.01;shaka.media.StreamingEngine.MAX_RUN_AHEAD_SEGMENTS_=1;shaka.routing={};shaka.routing.Node={};shaka.routing.Payload={};shaka.routing.Walker=function(a,b,c){var d=this;this.implementation_=c;this.currentlyAt_=a;this.currentlyWith_=b;this.waitForWork_=null;this.requests_=[];this.currentStep_=this.currentRoute_=null;this.mainLoopPromise_=Promise.resolve().then(function(){return d.mainLoop_()});this.destroyer_=new shaka.util.Destroyer(function(){return d.doDestroy_()})};shaka.routing.Walker.prototype.getCurrentPayload=function(){return this.currentlyWith_};shaka.routing.Walker.prototype.destroy=function(){return this.destroyer_.destroy()};
|
|
@@ -1009,9 +1009,9 @@ shaka.Player.prototype.selectTextLanguage=function(a,b,c){c=void 0===c?!1:c;var
|
|
|
1009
1009
|
shaka.Player.prototype.selectVariantsByLabel=function(a){if(this.manifest_&&this.playhead_){for(var b=null,c=$jscomp.makeIterator(this.manifest_.variants),d=c.next();!d.done;d=c.next())if(d=d.value,d.audio.label==a){b=d;break}null==b?shaka.log.warning("No variants were found with label: "+a+". Ignoring the request to switch."):(this.currentAdaptationSetCriteria_=new shaka.media.PreferenceBasedCriteria(b.language,"",0,a),this.chooseVariantAndSwitch_())}};
|
|
1010
1010
|
shaka.Player.prototype.isTextTrackVisible=function(){var a=this.isTextVisible_;if(this.mediaSourceEngine_){var b=this.mediaSourceEngine_.getTextDisplayer().isTextVisible();goog.asserts.assert(b==a,"text visibility has fallen out of sync");return b}return this.video_&&this.video_.src&&this.video_.textTracks?this.getFilteredTextTracks_().some(function(c){return"showing"==c.mode}):a};
|
|
1011
1011
|
shaka.Player.prototype.getChaptersTracks=function(){if(this.video_&&this.video_.src&&this.video_.textTracks){var a=this.getChaptersTracks_(),b=shaka.util.StreamUtils;return a.map(function(c){return b.html5TextTrackToTrack(c)})}return[]};
|
|
1012
|
-
shaka.Player.prototype.getChapters=function(a){var b=shaka.util.LanguageUtils,c=b.normalize(a),d=this.getChaptersTracks_().filter(function(
|
|
1013
|
-
shaka.Player.prototype.getFilteredTextTracks_=function(){goog.asserts.assert(this.video_.textTracks,"TextTracks should be valid.");return Array.from(this.video_.textTracks).filter(function(a){return"metadata"!=a.kind&&"chapters"!=a.kind&&a.label!=shaka.Player.TextTrackLabel})};
|
|
1014
|
-
shaka.Player.prototype.getChaptersTracks_=function(){goog.asserts.assert(this.video_.textTracks,"TextTracks should be valid.");return Array.from(this.video_.textTracks).filter(function(a){return"chapters"==a.kind})};
|
|
1012
|
+
shaka.Player.prototype.getChapters=function(a){var b=shaka.util.LanguageUtils,c=b.normalize(a),d=this.getChaptersTracks_().filter(function(k){return b.normalize(k.language)==c});if(!d||!d.length)return[];a=[];var e=new Set;d=$jscomp.makeIterator(d);for(var f=d.next();!f.done;f=d.next())if((f=f.value)&&f.cues){f=$jscomp.makeIterator(f.cues);for(var g=f.next();!g.done;g=f.next()){var h=g.value;(g=h.id)&&""!=g||(g=h.startTime+"-"+h.endTime+"-"+h.text);h={id:g,title:h.text,startTime:h.startTime,endTime:h.endTime};
|
|
1013
|
+
e.has(g)||(a.push(h),e.add(g))}}return a};shaka.Player.prototype.getFilteredTextTracks_=function(){goog.asserts.assert(this.video_.textTracks,"TextTracks should be valid.");return Array.from(this.video_.textTracks).filter(function(a){return"metadata"!=a.kind&&"chapters"!=a.kind&&a.label!=shaka.Player.TextTrackLabel})};
|
|
1014
|
+
shaka.Player.prototype.getMetadataTracks_=function(){goog.asserts.assert(this.video_.textTracks,"TextTracks should be valid.");return Array.from(this.video_.textTracks).filter(function(a){return"metadata"==a.kind})};shaka.Player.prototype.getChaptersTracks_=function(){goog.asserts.assert(this.video_.textTracks,"TextTracks should be valid.");return Array.from(this.video_.textTracks).filter(function(a){return"chapters"==a.kind})};
|
|
1015
1015
|
shaka.Player.prototype.setTextTrackVisibility=function(a){a=!!a;if(this.isTextVisible_!=a){this.isTextVisible_=a;if(this.loadMode_==shaka.Player.LoadMode.MEDIA_SOURCE)this.mediaSourceEngine_.getTextDisplayer().setTextVisibility(a),this.config_.streaming.alwaysStreamText||(a?this.streamingEngine_.getCurrentTextStream()||(a=shaka.util.StreamUtils.filterStreamsByLanguageAndRole(this.manifest_.textStreams,this.currentTextLanguage_,this.currentTextRole_,this.currentTextForced_),0<a.length&&(this.streamingEngine_.switchTextStream(a[0]),
|
|
1016
1016
|
this.onTextChanged_())):this.streamingEngine_.unloadTextStream());else if(this.video_&&this.video_.src&&this.video_.textTracks){var b=this.getFilteredTextTracks_();b=$jscomp.makeIterator(b);for(var c=b.next();!c.done;c=b.next())c=c.value,"disabled"!=c.mode&&(c.mode=a?"showing":"hidden")}this.onTextTrackVisibility_()}};
|
|
1017
1017
|
shaka.Player.prototype.getPlayheadTimeAsDate=function(){if(!this.isLive())return shaka.log.warning("getPlayheadTimeAsDate is for live streams!"),null;var a=this.walker_.getCurrentPayload(),b=0;if(this.playhead_)b=this.playhead_.getTime();else if(a){if(null==a.startTime)return new Date;b=a.startTime}if(this.manifest_)return a=this.manifest_.presentationTimeline.getPresentationStartTime(),new Date(1E3*(a+b));if(this.video_&&this.video_.getStartDate)return a=this.video_.getStartDate(),isNaN(a.getTime())?
|
|
@@ -1106,7 +1106,7 @@ goog.exportProperty(shaka.Player.prototype,"configure",shaka.Player.prototype.co
|
|
|
1106
1106
|
goog.exportProperty(shaka.Player,"probeSupport",shaka.Player.probeSupport);goog.exportProperty(shaka.Player,"isBrowserSupported",shaka.Player.isBrowserSupported);goog.exportProperty(shaka.Player,"setAdManagerFactory",shaka.Player.setAdManagerFactory);goog.exportProperty(shaka.Player,"registerSupportPlugin",shaka.Player.registerSupportPlugin);goog.exportProperty(shaka.Player.prototype,"destroy",shaka.Player.prototype.destroy);
|
|
1107
1107
|
shaka.Player.EventName={AbrStatusChanged:"abrstatuschanged",Adaptation:"adaptation",Buffering:"buffering",DownloadFailed:"downloadfailed",DownloadHeadersReceived:"downloadheadersreceived",DrmSessionUpdate:"drmsessionupdate",Emsg:"emsg",Error:"error",ExpirationUpdated:"expirationupdated",LargeGap:"largegap",Loaded:"loaded",Loading:"loading",ManifestParsed:"manifestparsed",MediaQualityChanged:"mediaqualitychanged",Metadata:"metadata",OnStateChange:"onstatechange",OnStateIdle:"onstateidle",RateChange:"ratechange",
|
|
1108
1108
|
SessionDataEvent:"sessiondata",Streaming:"streaming",TextChanged:"textchanged",TextTrackVisibility:"texttrackvisibility",TimelineRegionAdded:"timelineregionadded",TimelineRegionEnter:"timelineregionenter",TimelineRegionExit:"timelineregionexit",TracksChanged:"trackschanged",Unloading:"unloading",VariantChanged:"variantchanged"};shaka.Player.LoadMode={DESTROYED:0,NOT_LOADED:1,MEDIA_SOURCE:2,SRC_EQUALS:3};goog.exportProperty(shaka.Player,"LoadMode",shaka.Player.LoadMode);
|
|
1109
|
-
shaka.Player.TYPICAL_BUFFERING_THRESHOLD_=.5;shaka.Player.version="v3.3.
|
|
1109
|
+
shaka.Player.TYPICAL_BUFFERING_THRESHOLD_=.5;shaka.Player.version="v3.3.15-debug";goog.exportProperty(shaka.Player,"version",shaka.Player.version);shaka.Deprecate.init(shaka.Player.version);shaka.Player.restrictedStatuses_=["output-restricted","internal-error"];shaka.Player.supportPlugins_={};shaka.Player.adManagerFactory_=null;
|
|
1110
1110
|
shaka.Player.SRC_EQUAL_EXTENSIONS_TO_MIME_TYPES_={mp4:"video/mp4",m4v:"video/mp4",m4a:"audio/mp4",webm:"video/webm",weba:"audio/webm",mkv:"video/webm",ts:"video/mp2t",ogv:"video/ogg",ogg:"audio/ogg",mpg:"video/mpeg",mpeg:"video/mpeg",m3u8:"application/x-mpegurl",mpd:"application/dash+xml",mp3:"audio/mpeg",aac:"audio/aac",flac:"audio/flac",wav:"audio/wav"};
|
|
1111
1111
|
shaka.Player.TEXT_EXTENSIONS_TO_MIME_TYPES_={sbv:"text/x-subviewer",srt:"text/srt",vtt:"text/vtt",webvtt:"text/vtt",ttml:"application/ttml+xml",lrc:"application/x-subtitle-lrc",ssa:"text/x-ssa",ass:"text/x-ssa"};shaka.Player.TextTrackLabel="Shaka Player TextTrack";shaka.ads={};shaka.ads.AdsStats=function(){this.loadTimes_=[];this.skipped_=this.playedCompletely_=this.started_=0};shaka.ads.AdsStats.prototype.addLoadTime=function(a){this.loadTimes_.push(a)};shaka.ads.AdsStats.prototype.incrementStarted=function(){this.started_++};shaka.ads.AdsStats.prototype.incrementPlayedCompletely=function(){this.playedCompletely_++};shaka.ads.AdsStats.prototype.incrementSkipped=function(){this.skipped_++};
|
|
1112
1112
|
shaka.ads.AdsStats.prototype.getBlob=function(){return{loadTimes:this.loadTimes_,started:this.started_,playedCompletely:this.playedCompletely_,skipped:this.skipped_}};shaka.ads.ClientSideAd=function(a,b){var c=this;this.ad_=a;this.manager_=b;this.isPaused_=!1;this.volume_=this.manager_.getVolume();this.eventManager_=new shaka.util.EventManager;this.eventManager_.listen(this.manager_,google.ima.AdEvent.Type.PAUSED,function(){c.isPaused_=!0});this.eventManager_.listen(this.manager_,google.ima.AdEvent.Type.RESUMED,function(){c.isPaused_=!1})};shaka.ads.ClientSideAd.prototype.getDuration=function(){return this.ad_.getDuration()};
|