shaka-player 3.2.16 → 3.2.17

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.
@@ -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
@@ -61,6 +61,7 @@ Prakash <duggaraju@gmail.com>
61
61
  Robert Colantuoni <rgc@colantuoni.com>
62
62
  Robert Galluccio <robertnw5@gmail.com>
63
63
  Rodolphe Breton <robloche@gmail.com>
64
+ Rohan Gupta <rohangupta1528@gmail.com>
64
65
  Roi Lipman <roilipman@gmail.com>
65
66
  Roksolana Ivanyshyn <roksolana.ivanyshyn.pub@gmail.com>
66
67
  Rostislav Hejduk <Ross-cz@users.noreply.github.com>
package/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## [3.2.17](https://github.com/shaka-project/shaka-player/compare/v3.2.16...v3.2.17) (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)) ([992f9d6](https://github.com/shaka-project/shaka-player/commit/992f9d61be5750f59a022b02d609fb392ddc9560))
9
+ * Fix duplicate updates in StreamingEngine ([#4840](https://github.com/shaka-project/shaka-player/issues/4840)) ([0404fd3](https://github.com/shaka-project/shaka-player/commit/0404fd3c61ea9594af57de6622d25d976fb0dba4)), 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)) ([9887612](https://github.com/shaka-project/shaka-player/commit/988761246a188c2d58142430a15975b24f9a46ee)), closes [#4813](https://github.com/shaka-project/shaka-player/issues/4813)
11
+
3
12
  ## [3.2.16](https://github.com/shaka-project/shaka-player/compare/v3.2.15...v3.2.16) (2022-12-08)
4
13
 
5
14
 
package/CONTRIBUTORS CHANGED
@@ -91,6 +91,7 @@ Robert Colantuoni <rgc@colantuoni.com>
91
91
  Robert Galluccio <robertnw5@gmail.com>
92
92
  Rodolphe Breton <robloche@gmail.com>
93
93
  Rohit Makasana <rohitbm@google.com>
94
+ Rohan Gupta <rohangupta1528@gmail.com>
94
95
  Roi Lipman <roilipman@gmail.com>
95
96
  Roksolana Ivanyshyn <roksolana.ivanyshyn.pub@gmail.com>
96
97
  Rostislav Hejduk <Ross-cz@users.noreply.github.com>
package/dist/locales.js CHANGED
@@ -719,43 +719,43 @@ shaka.ui.Locales.addTo = function(localization) {
719
719
  * @const
720
720
  */
721
721
  shaka.ui.Locales.Ids = {
722
- SKIP_TO_LIVE: 'SKIP_TO_LIVE',
723
- UNMUTE: 'UNMUTE',
724
- AD_PROGRESS: 'AD_PROGRESS',
725
- PLAYBACK_RATE: 'PLAYBACK_RATE',
726
- ON: 'ON',
727
- PICTURE_IN_PICTURE: 'PICTURE_IN_PICTURE',
728
- AIRPLAY: 'AIRPLAY',
729
- PAUSE: 'PAUSE',
730
- FAST_FORWARD: 'FAST_FORWARD',
731
- OFF: 'OFF',
722
+ UNDETERMINED_LANGUAGE: 'UNDETERMINED_LANGUAGE',
723
+ REPLAY: 'REPLAY',
724
+ EXIT_FULL_SCREEN: 'EXIT_FULL_SCREEN',
732
725
  CAPTIONS: 'CAPTIONS',
733
- EXIT_LOOP_MODE: 'EXIT_LOOP_MODE',
726
+ SKIP_TO_LIVE: 'SKIP_TO_LIVE',
727
+ UNRECOGNIZED_LANGUAGE: 'UNRECOGNIZED_LANGUAGE',
734
728
  BACK: 'BACK',
735
729
  NOT_APPLICABLE: 'NOT_APPLICABLE',
736
730
  SUBTITLE_FORCED: 'SUBTITLE_FORCED',
737
- UNDETERMINED_LANGUAGE: 'UNDETERMINED_LANGUAGE',
738
- VOLUME: 'VOLUME',
731
+ MUTE: 'MUTE',
732
+ PAUSE: 'PAUSE',
733
+ LOOP: 'LOOP',
734
+ PLAY: 'PLAY',
735
+ CAST: 'CAST',
736
+ REWIND: 'REWIND',
737
+ AIRPLAY: 'AIRPLAY',
738
+ LIVE: 'LIVE',
739
+ AD_DURATION: 'AD_DURATION',
740
+ ENTER_PICTURE_IN_PICTURE: 'ENTER_PICTURE_IN_PICTURE',
741
+ OFF: 'OFF',
742
+ MULTIPLE_LANGUAGES: 'MULTIPLE_LANGUAGES',
739
743
  FULL_SCREEN: 'FULL_SCREEN',
740
- RESOLUTION: 'RESOLUTION',
741
- SKIP_AD: 'SKIP_AD',
744
+ PLAYBACK_RATE: 'PLAYBACK_RATE',
745
+ PICTURE_IN_PICTURE: 'PICTURE_IN_PICTURE',
746
+ AD_PROGRESS: 'AD_PROGRESS',
747
+ ON: 'ON',
742
748
  ENTER_LOOP_MODE: 'ENTER_LOOP_MODE',
749
+ AUTO_QUALITY: 'AUTO_QUALITY',
750
+ SKIP_AD: 'SKIP_AD',
751
+ VOLUME: 'VOLUME',
752
+ EXIT_LOOP_MODE: 'EXIT_LOOP_MODE',
753
+ EXIT_PICTURE_IN_PICTURE: 'EXIT_PICTURE_IN_PICTURE',
743
754
  LANGUAGE: 'LANGUAGE',
744
- EXIT_FULL_SCREEN: 'EXIT_FULL_SCREEN',
745
- CAST: 'CAST',
746
- REPLAY: 'REPLAY',
747
- AD_DURATION: 'AD_DURATION',
755
+ SEEK: 'SEEK',
756
+ RESOLUTION: 'RESOLUTION',
748
757
  MORE_SETTINGS: 'MORE_SETTINGS',
749
- UNRECOGNIZED_LANGUAGE: 'UNRECOGNIZED_LANGUAGE',
750
- ENTER_PICTURE_IN_PICTURE: 'ENTER_PICTURE_IN_PICTURE',
751
- LOOP: 'LOOP',
752
758
  AD_TIME: 'AD_TIME',
753
- PLAY: 'PLAY',
754
- SEEK: 'SEEK',
755
- EXIT_PICTURE_IN_PICTURE: 'EXIT_PICTURE_IN_PICTURE',
756
- AUTO_QUALITY: 'AUTO_QUALITY',
757
- MUTE: 'MUTE',
758
- LIVE: 'LIVE',
759
- MULTIPLE_LANGUAGES: 'MULTIPLE_LANGUAGES',
760
- REWIND: 'REWIND',
759
+ UNMUTE: 'UNMUTE',
760
+ FAST_FORWARD: 'FAST_FORWARD',
761
761
  };
@@ -738,8 +738,8 @@ shaka.media.StreamingEngine.prototype.makeAbortDecision_=function(a){var b=this,
738
738
  a.operation.abort());e.jumpToEnd()})};
739
739
  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()-
740
740
  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};
741
- 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)||
742
- 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)};
741
+ 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)||
742
+ 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)}};
743
743
  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==
744
744
  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))}))};
745
745
  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);
@@ -748,7 +748,7 @@ g.next())k=h.value,l=c.get(k),a.mediaStates_.has(k)||(m=a.createMediaState_(l),a
748
748
  shaka.media.StreamingEngine.prototype.createMediaState_=function(a){return{stream:a,type:a.type,segmentIterator:null,lastSegmentReference:null,lastInitSegmentReference:null,lastTimestampOffset:null,lastAppendWindowStart:null,lastAppendWindowEnd:null,restoreStreamAfterTrickPlay:null,endOfStream:!1,performingUpdate:!1,updateTimer:null,waitingToClearBuffer:!1,clearBufferSafeMargin:0,waitingToFlushBuffer:!1,clearingBuffer:!1,recovering:!1,hasError:!1,operation:null}};
749
749
  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))};
750
750
  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");
751
- 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 null==a.updateTimer&&b.scheduleUpdate_(a,0),k["return"]();case 4:k.setCatchFinallyBlocks(6);
751
+ 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 a.performingUpdate||a.updateTimer||b.scheduleUpdate_(a,0),k["return"]();case 4:k.setCatchFinallyBlocks(6);
752
752
  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(),10);case 10:b.destroyer_.ensureNotDestroyed(),h=b.playerInterface_.mediaSourceEngine.getDuration(),
753
753
  0!=h&&h<b.manifest_.presentationTimeline.getDuration()&&b.manifest_.presentationTimeline.setDuration(h),k.jumpToEnd()}})};
754
754
  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),
@@ -764,10 +764,10 @@ A.yield(d.initSourceBuffer_(a,c),4);case 4:d.destroyer_.ensureNotDestroyed();if(
764
764
  C);D=!1;G=0;(new shaka.util.Mp4Parser).box("mdat",function(F){G=F.size+F.start;D=!0}).parse(q,!1,!0);if(!D)return E.jumpTo(0);B=q.subarray(0,G);q=q.subarray(G);return E.yield(d.append_(a,b,h,c,B),0)})},A.yield(d.fetch_(a,c,t),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 A.yield(n,7);case 7:return p=A.yieldResult,d.destroyer_.ensureNotDestroyed(),d.fatalError_?A["return"]():a.waitingToClearBuffer?
765
765
  (shaka.log.info(g,"waitingToClearBuffer, skip append"),a.performingUpdate=!1,d.scheduleUpdate_(a,0),A["return"]()):A.yield(d.append_(a,b,h,c,p),6);case 9:u=A.yieldResult;if(v){A.jumpTo(6);break}r=!0;d.destroyer_.ensureNotDestroyed();return d.fatalError_?A["return"]():a.waitingToClearBuffer?(shaka.log.info(g,"waitingToClearBuffer, skip append"),a.performingUpdate=!1,d.scheduleUpdate_(a,0),A["return"]()):A.yield(d.append_(a,b,h,c,u),6);case 6:d.destroyer_.ensureNotDestroyed();if(d.fatalError_)return A["return"]();
766
766
  a.lastSegmentReference=c;x=k.next().value;shaka.log.v2(g,"advancing to next segment",x);a.performingUpdate=!1;a.recovering=!1;w=d.playerInterface_.mediaSourceEngine.getBufferedInfo();y=w[a.type];shaka.log.v1(g,"finished fetch and append",JSON.stringify(y));if(!a.waitingToClearBuffer)d.playerInterface_.onSegmentAppended();d.scheduleUpdate_(a,0);A.leaveTryBlock(0);break;case 2:z=A.enterCatchBlock();d.destroyer_.ensureNotDestroyed(z);if(d.fatalError_)return A["return"]();goog.asserts.assert(z instanceof
767
- shaka.util.Error,"Should only receive a Shaka error");a.performingUpdate=!1;if(z.code==shaka.util.Error.Code.OPERATION_ABORTED)a.performingUpdate=!1,a.updateTimer=null,d.scheduleUpdate_(a,0),A.jumpTo(0);else if(a.type==e.TEXT&&d.config_.ignoreTextStreamFailures)z.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),A.jumpTo(0);
767
+ shaka.util.Error,"Should only receive a Shaka error");a.performingUpdate=!1;if(z.code==shaka.util.Error.Code.OPERATION_ABORTED)a.performingUpdate=!1,d.cancelUpdate_(a),d.scheduleUpdate_(a,0),A.jumpTo(0);else if(a.type==e.TEXT&&d.config_.ignoreTextStreamFailures)z.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),A.jumpTo(0);
768
768
  else if(z.code==shaka.util.Error.Code.QUOTA_EXCEEDED_ERROR)d.handleQuotaExceeded_(a,z),A.jumpTo(0);else return shaka.log.error(g,"failed fetch and append: code="+z.code),a.hasError=!0,z.severity=shaka.util.Error.Severity.CRITICAL,A.yield(d.handleStreamingError_(z),0)}})};
769
- 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&&(shaka.log.info(d,"Retrying after failure..."),c.hasError=!1,
770
- 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};
769
+ 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..."),
770
+ 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};
771
771
  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");
772
772
  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)};
773
773
  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,
@@ -783,10 +783,10 @@ shaka.media.StreamingEngine.prototype.evict_=function(a,b){var c=this,d,e,f,g,h;
783
783
  shaka.media.StreamingEngine.isEmbeddedText_=function(a){var b=shaka.util.MimeUtils,c=b.CEA608_CLOSED_CAPTION_MIMETYPE;b=b.CEA708_CLOSED_CAPTION_MIMETYPE;return a&&a.type==shaka.util.ManifestParserUtils.ContentType.TEXT&&(a.stream.mimeType==c||a.stream.mimeType==b)};
784
784
  shaka.media.StreamingEngine.prototype.fetch_=function(a,b,c){var d=this,e,f,g,h;return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){if(1==k.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=d.playerInterface_.netEngine.request(e,f),a.operation=g,k.yield(g.promise,2);h=k.yieldResult;a.operation=null;return k["return"](h.data)})};
785
785
  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,
786
- "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;d.scheduleUpdate_(a,
787
- 0);h.jumpToEnd()})};
788
- 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),g.yield(c.onUpdate_(a),
789
- 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)};
786
+ "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||
787
+ a.updateTimer||d.scheduleUpdate_(a,0);h.jumpToEnd()})};
788
+ 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),
789
+ 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)};
790
790
  shaka.media.StreamingEngine.prototype.abortOperations_=function(a){return $jscomp.asyncExecutePromiseGeneratorProgram(function(b){return a.operation?b.yield(a.operation.abort(),0):b.jumpTo(0)})};
791
791
  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;
792
792
  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()};
@@ -975,9 +975,9 @@ shaka.Player.prototype.selectTextLanguage=function(a,b,c){c=void 0===c?!1:c;var
975
975
  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_())}};
976
976
  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};
977
977
  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[]};
978
- shaka.Player.prototype.getChapters=function(a){var b=shaka.util.LanguageUtils,c=b.normalize(a),d=this.getChaptersTracks_().filter(function(g){return b.normalize(g.language)==c});if(!d||!d.length)return[];a=[];d=$jscomp.makeIterator(d);for(var e=d.next();!e.done;e=d.next())if((e=e.value)&&e.cues){e=$jscomp.makeIterator(e.cues);for(var f=e.next();!f.done;f=e.next())f=f.value,a.push({title:f.text,startTime:f.startTime,endTime:f.endTime})}return a};
979
- 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})};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})};
980
- 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})};
978
+ 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};
979
+ 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})};
980
+ 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})};
981
981
  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]),
982
982
  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_()}};
983
983
  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())?
@@ -1070,7 +1070,7 @@ goog.exportProperty(shaka.Player.prototype,"getMediaElement",shaka.Player.protot
1070
1070
  goog.exportProperty(shaka.Player.prototype,"configure",shaka.Player.prototype.configure);goog.exportProperty(shaka.Player.prototype,"load",shaka.Player.prototype.load);goog.exportProperty(shaka.Player.prototype,"unload",shaka.Player.prototype.unload);goog.exportProperty(shaka.Player.prototype,"detach",shaka.Player.prototype.detach);goog.exportProperty(shaka.Player.prototype,"attach",shaka.Player.prototype.attach);goog.exportProperty(shaka.Player,"probeSupport",shaka.Player.probeSupport);
1071
1071
  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);
1072
1072
  shaka.Player.EventName={AbrStatusChanged:"abrstatuschanged",Adaptation:"adaptation",Buffering:"buffering",DrmSessionUpdate:"drmsessionupdate",Emsg:"emsg",Error:"error",ExpirationUpdated:"expirationupdated",LargeGap:"largegap",Loaded:"loaded",Loading:"loading",ManifestParsed:"manifestparsed",Metadata:"metadata",OnStateChange:"onstatechange",OnStateIdle:"onstateidle",RateChange:"ratechange",SessionDataEvent:"sessiondata",Streaming:"streaming",TextChanged:"textchanged",TextTrackVisibility:"texttrackvisibility",
1073
- 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);shaka.Player.TYPICAL_BUFFERING_THRESHOLD_=.5;shaka.Player.version="v3.2.16-debug";goog.exportProperty(shaka.Player,"version",shaka.Player.version);shaka.Deprecate.init(shaka.Player.version);
1073
+ 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);shaka.Player.TYPICAL_BUFFERING_THRESHOLD_=.5;shaka.Player.version="v3.2.17-debug";goog.exportProperty(shaka.Player,"version",shaka.Player.version);shaka.Deprecate.init(shaka.Player.version);
1074
1074
  shaka.Player.restrictedStatuses_=["output-restricted","internal-error"];shaka.Player.supportPlugins_={};shaka.Player.adManagerFactory_=null;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"};
1075
1075
  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_++};
1076
1076
  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()};