shaka-player 4.3.11 → 4.3.13
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/deflake.yaml +8 -5
- package/.github/workflows/release-please.yaml +47 -7
- package/.github/workflows/shaka-bot-commands/command-test.sh +1 -1
- package/CHANGELOG.md +34 -0
- package/CONTRIBUTORS +1 -0
- package/demo/common/asset.js +5 -0
- package/demo/common/assets.js +16 -1
- package/demo/common/message_ids.js +1 -0
- package/demo/custom.js +5 -5
- package/demo/locales/en.json +1 -0
- package/demo/locales/source.json +4 -0
- package/demo/main.js +1 -1
- package/dist/demo.compiled.debug.js +58 -56
- package/dist/demo.compiled.debug.map +3 -3
- package/dist/demo.compiled.js +58 -56
- package/dist/demo.compiled.map +3 -3
- package/dist/locales.js +30 -30
- package/dist/receiver.compiled.debug.js +24 -22
- package/dist/receiver.compiled.debug.map +3 -3
- package/dist/receiver.compiled.js +24 -22
- package/dist/receiver.compiled.map +3 -3
- package/dist/shaka-player.compiled.d.ts +258 -258
- package/dist/shaka-player.compiled.debug.d.ts +258 -258
- package/dist/shaka-player.compiled.debug.externs.js +6 -4
- package/dist/shaka-player.compiled.debug.js +58 -59
- package/dist/shaka-player.compiled.debug.map +3 -3
- package/dist/shaka-player.compiled.externs.js +6 -4
- package/dist/shaka-player.compiled.js +700 -699
- package/dist/shaka-player.compiled.map +3 -3
- package/dist/shaka-player.ui.d.ts +302 -302
- package/dist/shaka-player.ui.debug.d.ts +302 -302
- package/dist/shaka-player.ui.debug.externs.js +6 -4
- package/dist/shaka-player.ui.debug.js +205 -206
- package/dist/shaka-player.ui.debug.map +3 -3
- package/dist/shaka-player.ui.externs.js +6 -4
- package/dist/shaka-player.ui.js +867 -866
- package/dist/shaka-player.ui.map +3 -3
- package/docs/tutorials/faq.md +1 -1
- package/docs/tutorials/offline.md +1 -1
- package/lib/dash/dash_parser.js +4 -1
- package/lib/hls/hls_parser.js +60 -24
- package/lib/media/segment_reference.js +11 -5
- package/lib/media/streaming_engine.js +15 -25
- package/lib/player.js +8 -57
- package/lib/text/ttml_text_parser.js +2 -1
- package/lib/text/ui_text_displayer.js +49 -3
- package/lib/util/cmcd_manager.js +6 -1
- package/lib/util/manifest_parser_utils.js +10 -4
- package/lib/util/player_configuration.js +2 -2
- package/lib/util/stream_utils.js +13 -11
- package/lib/util/ts_parser.js +3 -3
- package/package.json +2 -2
- package/test/dash/dash_parser_manifest_unit.js +5 -0
- package/test/dash/dash_parser_segment_base_unit.js +5 -0
- package/test/dash/dash_parser_segment_list_unit.js +21 -17
- package/test/dash/dash_parser_segment_template_unit.js +5 -0
- package/test/hls/hls_live_unit.js +33 -0
- package/test/hls/hls_parser_unit.js +2 -57
- package/test/test/util/dash_parser_util.js +16 -7
- package/test/text/ttml_text_parser_unit.js +3 -4
- package/test/text/web_vtt_layout_integration.js +0 -1
- package/test/util/ts_parser_unit.js +1 -1
|
@@ -1664,11 +1664,13 @@ shaka.media.InitSegmentReference = class {
|
|
|
1664
1664
|
* @param {?number} endByte The offset from the start of the resource
|
|
1665
1665
|
* to the end of the segment, inclusive. A value of null indicates that the
|
|
1666
1666
|
* segment extends to the end of the resource.
|
|
1667
|
-
* @param {null|shaka.extern.MediaQualityInfo=} mediaQuality Information
|
|
1668
|
-
* the quality of the media associated with this init segment.
|
|
1669
|
-
* @param {number=} timescale
|
|
1667
|
+
* @param {(null|shaka.extern.MediaQualityInfo)=} mediaQuality Information
|
|
1668
|
+
* about the quality of the media associated with this init segment.
|
|
1669
|
+
* @param {(null|number)=} timescale
|
|
1670
|
+
* @param {?shaka.extern.HlsAes128Key=} aes128Key
|
|
1671
|
+
* The segment's AES-128-CBC full segment encryption key and iv.
|
|
1670
1672
|
*/
|
|
1671
|
-
constructor(uris, startByte, endByte, mediaQuality, timescale) {}
|
|
1673
|
+
constructor(uris, startByte, endByte, mediaQuality, timescale, aes128Key) {}
|
|
1672
1674
|
/**
|
|
1673
1675
|
* Returns the offset from the start of the resource to the
|
|
1674
1676
|
* start of the segment.
|
|
@@ -193,7 +193,7 @@ goog.Uri.reDisallowedInQuery_=/[#\?@]/g;goog.Uri.reDisallowedInFragment_=/#/g;go
|
|
|
193
193
|
goog.Uri.QueryData.prototype.ensureKeyMapInitialized_=function(){if(!this.keyMap_&&(this.keyMap_={},this.count_=0,this.encodedQuery_))for(var a=this.encodedQuery_.split("&"),b=0;b<a.length;b++){var c=a[b].indexOf("="),d=null;if(0<=c){var e=a[b].substring(0,c);d=a[b].substring(c+1)}else e=a[b];e=decodeURIComponent(e.replace(/\+/g," "));d=d||"";this.add(e,decodeURIComponent(d.replace(/\+/g," ")))}};goog.Uri.QueryData.prototype.keyMap_=null;goog.Uri.QueryData.prototype.count_=null;
|
|
194
194
|
goog.Uri.QueryData.prototype.getCount=function(){this.ensureKeyMapInitialized_();return this.count_};goog.Uri.QueryData.prototype.add=function(a,b){this.ensureKeyMapInitialized_();this.encodedQuery_=null;var c=this.keyMap_.hasOwnProperty(a)?this.keyMap_[a]:null;c||(this.keyMap_[a]=c=[]);c.push(b);goog.asserts.assert(null!=this.count_,"Should not be null.");this.count_++;return this};
|
|
195
195
|
goog.Uri.QueryData.prototype.set=function(a,b){this.ensureKeyMapInitialized_();this.encodedQuery_=null;this.keyMap_.hasOwnProperty(a)?this.keyMap_[a]=[b]:this.add(a,b);return this};goog.Uri.QueryData.prototype.toString=function(){if(this.encodedQuery_)return this.encodedQuery_;if(!this.keyMap_)return"";var a=[],b;for(b in this.keyMap_)for(var c=encodeURIComponent(b),d=this.keyMap_[b],e=0;e<d.length;e++){var f=c;""!==d[e]&&(f+="="+encodeURIComponent(d[e]));a.push(f)}return this.encodedQuery_=a.join("&")};
|
|
196
|
-
goog.Uri.QueryData.prototype.toDecodedString=function(){return goog.Uri.decodeOrEmpty_(this.toString())};goog.Uri.QueryData.prototype.clone=function(){var a=new goog.Uri.QueryData;a.encodedQuery_=this.encodedQuery_;if(this.keyMap_){var b={},c;for(c in this.keyMap_)b[c]=this.keyMap_[c].concat();a.keyMap_=b;a.count_=this.count_}return a};shaka.util.Functional=function(){};shaka.util.Functional.createFallbackPromiseChain=function(a,b){return a.reduce(function(c,d){return c.catch(function(){return b(d)})},Promise.reject())};shaka.util.Functional.collapseArrays=function(a,b){return a.concat(b)};shaka.util.Functional.ignored=function(){};shaka.util.Functional.noop=function(){};shaka.util.Functional.isNotNull=function(a){return null!=a};shaka.util.ManifestParserUtils=function(){};shaka.util.ManifestParserUtils.resolveUris=function(a,b){var c=shaka.util.Functional;if(0==b.length)return a;var d=b.map(function(e){return new goog.Uri(e)});return a.map(function(e){
|
|
196
|
+
goog.Uri.QueryData.prototype.toDecodedString=function(){return goog.Uri.decodeOrEmpty_(this.toString())};goog.Uri.QueryData.prototype.clone=function(){var a=new goog.Uri.QueryData;a.encodedQuery_=this.encodedQuery_;if(this.keyMap_){var b={},c;for(c in this.keyMap_)b[c]=this.keyMap_[c].concat();a.keyMap_=b;a.count_=this.count_}return a};shaka.util.Functional=function(){};shaka.util.Functional.createFallbackPromiseChain=function(a,b){return a.reduce(function(c,d){return c.catch(function(){return b(d)})},Promise.reject())};shaka.util.Functional.collapseArrays=function(a,b){return a.concat(b)};shaka.util.Functional.ignored=function(){};shaka.util.Functional.noop=function(){};shaka.util.Functional.isNotNull=function(a){return null!=a};shaka.util.ManifestParserUtils=function(){};shaka.util.ManifestParserUtils.resolveUris=function(a,b){var c=shaka.util.Functional;if(0==b.length)return a;if(1==a.length&&1==b.length)return a=new goog.Uri(a[0]),b=new goog.Uri(b[0]),[a.resolve(b).toString()];var d=b.map(function(e){return new goog.Uri(e)});return a.map(function(e){var f=new goog.Uri(e);return d.map(function(g){return f.resolve(g).toString()})}).reduce(c.collapseArrays,[])};
|
|
197
197
|
shaka.util.ManifestParserUtils.createDrmInfo=function(a,b){return{keySystem:a,licenseServerUri:"",distinctiveIdentifierRequired:!1,persistentStateRequired:!1,audioRobustness:"",videoRobustness:"",serverCertificate:null,serverCertificateUri:"",sessionType:"",initData:b||[],keyIds:new Set}};
|
|
198
198
|
shaka.util.ManifestParserUtils.guessCodecs=function(a,b){if(1==b.length)return b[0];a=shaka.util.ManifestParserUtils.guessCodecsSafe(a,b);if(null!=a)return a;throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_COULD_NOT_GUESS_CODECS,b);};
|
|
199
199
|
shaka.util.ManifestParserUtils.guessCodecsSafe=function(a,b){for(var c=$jscomp.makeIterator(shaka.util.ManifestParserUtils.CODEC_REGEXPS_BY_CONTENT_TYPE_[a]),d=c.next();!d.done;d=c.next()){d=d.value;for(var e=$jscomp.makeIterator(b),f=e.next();!f.done;f=e.next())if(f=f.value,d.test(f.trim()))return f.trim()}return a==shaka.util.ManifestParserUtils.ContentType.TEXT?"":null};shaka.util.ManifestParserUtils.ContentType={VIDEO:"video",AUDIO:"audio",TEXT:"text",IMAGE:"image",APPLICATION:"application"};
|
|
@@ -308,8 +308,8 @@ shaka.util.StreamUtils.html5TrackToGenericShakaTrack_=function(a){var b=a.langua
|
|
|
308
308
|
spatialAudio:!1,tilesLayout:null,audioBandwidth:null,videoBandwidth:null,originalVideoId:null,originalAudioId:null,originalTextId:null,originalImageId:null,originalLanguage:b}};shaka.util.StreamUtils.isPlayable=function(a){return a.allowedByApplication&&a.allowedByKeySystem};shaka.util.StreamUtils.getPlayableVariants=function(a){return a.filter(function(b){return shaka.util.StreamUtils.isPlayable(b)})};
|
|
309
309
|
shaka.util.StreamUtils.filterVariantsByAudioChannelCount=function(a,b){var c=a.filter(function(g){return g.audio&&g.audio.channelsCount}),d=new Map;c=$jscomp.makeIterator(c);for(var e=c.next();!e.done;e=c.next()){e=e.value;var f=e.audio.channelsCount;goog.asserts.assert(null!=f,"Must have count after filtering!");d.has(f)||d.set(f,[]);d.get(f).push(e)}c=Array.from(d.keys());if(0==c.length)return a;a=c.filter(function(g){return g<=b});return a.length?d.get(Math.max.apply(Math,$jscomp.arrayFromIterable(a))):
|
|
310
310
|
d.get(Math.min.apply(Math,$jscomp.arrayFromIterable(c)))};
|
|
311
|
-
shaka.util.StreamUtils.filterStreamsByLanguageAndRole=function(a,b,c,d){var e=shaka.util.LanguageUtils,f=a,g=a.filter(function(l){return l.primary});g.length&&(f=g);var h=f.length?f[0].language:"";f=f.filter(function(l){return l.language==h});if(b){var k=e.findClosestLocale(e.normalize(b),a.map(function(l){return l.language}));k&&(f=a.filter(function(l){return e.normalize(l.language)==k}))}f=f.filter(function(l){return l.forced==d});if(c){a=shaka.util.StreamUtils.
|
|
312
|
-
shaka.log.warning("No exact match for the text role could be found.")}else if(a=f.filter(function(l){return 0==l.roles.length}),a.length)return a;a=f.map(function(l){return l.roles}).reduce(shaka.util.Functional.collapseArrays,[]);return a.length?shaka.util.StreamUtils.
|
|
311
|
+
shaka.util.StreamUtils.filterStreamsByLanguageAndRole=function(a,b,c,d){var e=shaka.util.LanguageUtils,f=a,g=a.filter(function(l){return l.primary});g.length&&(f=g);var h=f.length?f[0].language:"";f=f.filter(function(l){return l.language==h});if(b){var k=e.findClosestLocale(e.normalize(b),a.map(function(l){return l.language}));k&&(f=a.filter(function(l){return e.normalize(l.language)==k}))}f=f.filter(function(l){return l.forced==d});if(c){a=shaka.util.StreamUtils.filterStreamsByRole_(f,c);if(a.length)return a;
|
|
312
|
+
shaka.log.warning("No exact match for the text role could be found.")}else if(a=f.filter(function(l){return 0==l.roles.length}),a.length)return a;a=f.map(function(l){return l.roles}).reduce(shaka.util.Functional.collapseArrays,[]);return a.length?shaka.util.StreamUtils.filterStreamsByRole_(f,a[0]):f};shaka.util.StreamUtils.filterStreamsByRole_=function(a,b){return a.filter(function(c){return c.roles.includes(b)})};shaka.util.StreamUtils.isAudio=function(a){return a.type==shaka.util.ManifestParserUtils.ContentType.AUDIO};
|
|
313
313
|
shaka.util.StreamUtils.isVideo=function(a){return a.type==shaka.util.ManifestParserUtils.ContentType.VIDEO};shaka.util.StreamUtils.getVariantStreams=function(a){var b=[];a.audio&&b.push(a.audio);a.video&&b.push(a.video);return b};shaka.util.StreamUtils.getVariantSummaryString_=function(a){var b=[];a.audio&&b.push(shaka.util.StreamUtils.getStreamSummaryString_(a.audio));a.video&&b.push(shaka.util.StreamUtils.getStreamSummaryString_(a.video));return b.join(", ")};
|
|
314
314
|
shaka.util.StreamUtils.getStreamSummaryString_=function(a){return shaka.util.StreamUtils.isAudio(a)?"type=audio codecs="+a.codecs+" bandwidth="+a.bandwidth+" channelsCount="+a.channelsCount+" audioSamplingRate="+a.audioSamplingRate:shaka.util.StreamUtils.isVideo(a)?"type=video codecs="+a.codecs+" bandwidth="+a.bandwidth+" frameRate="+a.frameRate+" width="+a.width+" height="+a.height:"unexpected stream type"};shaka.util.StreamUtils.nextTrackId_=0;
|
|
315
315
|
shaka.util.StreamUtils.DecodingAttributes={SMOOTH:"smooth",POWER:"powerEfficient",BANDWIDTH:"bandwidth"};shaka.util.StreamUtils.supportedImageMimeTypes_=(new Map).set("image/svg+xml",!0).set("image/png",!0).set("image/jpeg",!0).set("image/jpg",!0);shaka.util.StreamUtils.minWebPImage_="data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAACyAgCdASoCAAIALmk0mk0iIiIiIgBoSygABc6WWgAA/veff/0PP8bA//LwYAAA";shaka.util.StreamUtils.minAvifImage_="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A=";
|
|
@@ -613,7 +613,7 @@ shaka.cea.Mp4CeaParser.prototype.parseMdat_=function(a,b,c,d,e,f,g,h){var k=shak
|
|
|
613
613
|
q&31;r=r==l.H264_NALU_TYPE_SEI;break;case k.H265:g=2;a.skip(1);r=q>>1&63;r=r==l.H265_PREFIX_NALU_TYPE_SEI||r==l.H265_SUFFIX_NALU_TYPE_SEI;break;default:return}if(r)for(q=0,m<p.length&&(q=p[m].sampleCompositionTimeOffset||0),q=(b+q)/c,g=$jscomp.makeIterator(this.seiProcessor_.process(a.readBytes(f-g))),r=g.next();!r.done;r=g.next())h.push({packet:r.value,pts:q});else try{a.skip(f-g)}catch(v){break}n-=f+4;0==n&&(b=m<p.length?b+(p[m].sampleDuration||d):b+d,m++,n=m<p.length?p[m].sampleSize||e:e)}};
|
|
614
614
|
shaka.cea.Mp4CeaParser.prototype.setBitstreamFormat_=function(a){a in shaka.cea.Mp4CeaParser.CodecBitstreamMap_&&(this.bitstreamFormat_=shaka.cea.Mp4CeaParser.CodecBitstreamMap_[a])};shaka.cea.Mp4CeaParser.BitstreamFormat={UNKNOWN:0,H264:1,H265:2};
|
|
615
615
|
shaka.cea.Mp4CeaParser.CodecBitstreamMap_={avc1:shaka.cea.Mp4CeaParser.BitstreamFormat.H264,avc3:shaka.cea.Mp4CeaParser.BitstreamFormat.H264,hev1:shaka.cea.Mp4CeaParser.BitstreamFormat.H265,hvc1:shaka.cea.Mp4CeaParser.BitstreamFormat.H265,dvh1:shaka.cea.Mp4CeaParser.BitstreamFormat.H265,dvhe:shaka.cea.Mp4CeaParser.BitstreamFormat.H265};shaka.media.IClosedCaptionParser=function(){};shaka.media.IClosedCaptionParser.prototype.init=function(a){};shaka.media.IClosedCaptionParser.prototype.parseFrom=function(a){};shaka.media.IClosedCaptionParser.prototype.reset=function(){};shaka.media.ClosedCaptionParser=function(a){this.ceaParser_=new shaka.cea.DummyCeaParser;a.includes("video/mp4")&&(this.ceaParser_=new shaka.cea.Mp4CeaParser);this.ceaDecoder_=new shaka.cea.CeaDecoder};shaka.media.ClosedCaptionParser.prototype.init=function(a){this.ceaParser_.init(a)};
|
|
616
|
-
shaka.media.ClosedCaptionParser.prototype.parseFrom=function(a){a=this.ceaParser_.parse(a);a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next()){b=b.value;var c=shaka.util.BufferUtils.toUint8(b.packet);0<c.length&&this.ceaDecoder_.extract(c,b.pts)}return this.ceaDecoder_.decode()};shaka.media.ClosedCaptionParser.prototype.reset=function(){this.ceaDecoder_.clear()};shaka.media.InitSegmentReference=function(a,b,c,d,e){this.getUris=a;this.startByte=b;this.endByte=c;this.mediaQuality=void 0===d?null:d;this.timescale=e};shaka.media.InitSegmentReference.prototype.getStartByte=function(){return this.startByte};shaka.media.InitSegmentReference.prototype.getEndByte=function(){return this.endByte};shaka.media.InitSegmentReference.prototype.getSize=function(){return this.endByte?this.endByte-this.startByte:null};
|
|
616
|
+
shaka.media.ClosedCaptionParser.prototype.parseFrom=function(a){a=this.ceaParser_.parse(a);a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next()){b=b.value;var c=shaka.util.BufferUtils.toUint8(b.packet);0<c.length&&this.ceaDecoder_.extract(c,b.pts)}return this.ceaDecoder_.decode()};shaka.media.ClosedCaptionParser.prototype.reset=function(){this.ceaDecoder_.clear()};shaka.media.InitSegmentReference=function(a,b,c,d,e,f){this.getUris=a;this.startByte=b;this.endByte=c;this.mediaQuality=void 0===d?null:d;this.timescale=void 0===e?null:e;this.hlsAes128Key=void 0===f?null:f};shaka.media.InitSegmentReference.prototype.getStartByte=function(){return this.startByte};shaka.media.InitSegmentReference.prototype.getEndByte=function(){return this.endByte};shaka.media.InitSegmentReference.prototype.getSize=function(){return this.endByte?this.endByte-this.startByte:null};
|
|
617
617
|
shaka.media.InitSegmentReference.prototype.getMediaQuality=function(){return this.mediaQuality};shaka.media.InitSegmentReference.equal=function(a,b){var c=shaka.util.ArrayUtils;return a&&b?a.getStartByte()==b.getStartByte()&&a.getEndByte()==b.getEndByte()&&c.equal(a.getUris(),b.getUris()):a==b};goog.exportSymbol("shaka.media.InitSegmentReference",shaka.media.InitSegmentReference);goog.exportProperty(shaka.media.InitSegmentReference.prototype,"getEndByte",shaka.media.InitSegmentReference.prototype.getEndByte);
|
|
618
618
|
goog.exportProperty(shaka.media.InitSegmentReference.prototype,"getStartByte",shaka.media.InitSegmentReference.prototype.getStartByte);
|
|
619
619
|
shaka.media.SegmentReference=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r){l=void 0===l?[]:l;m=void 0===m?"":m;n=void 0===n?null:n;p=void 0===p?null:p;q=void 0===q?shaka.media.SegmentReference.Status.AVAILABLE:q;r=void 0===r?null:r;goog.asserts.assert(a<=b,"startTime must be less than or equal to endTime");goog.asserts.assert(null==e||d<e,"startByte must be < endByte");this.startTime=a;this.trueEndTime=this.endTime=b;this.getUrisInner=c;this.startByte=d;this.endByte=e;this.initSegmentReference=f;this.timestampOffset=
|
|
@@ -641,8 +641,8 @@ a.type){if(2>a.size)return null;if(a.data[0]!==shaka.util.Id3Utils.UTF8_encoding
|
|
|
641
641
|
1));d.description=c;d.data=a;return d}if("T"===a.type[0]){if(2>a.size)return null;if(a.data[0]!==shaka.util.Id3Utils.UTF8_encoding)return shaka.log.warning("Ignore frame with unrecognized character encoding"),null;a=c.fromUTF8(a.data.subarray(1)).replace(/\0*$/,"");d.data=a;return d}return"W"===a.type[0]?(a=c.fromUTF8(a.data).replace(/\0*$/,""),d.data=a,d):a.data?(shaka.log.warning("Unrecognized ID3 frame type:",a.type),d.data=b.toArrayBuffer(a.data),d):null};
|
|
642
642
|
shaka.util.Id3Utils.getID3Frames=function(a){for(var b=shaka.util.Id3Utils,c=0,d=[];b.isHeader_(a,c);){var e=b.readSize_(a,c+6);a[c+5]>>6&1&&(c+=10);c+=10;for(e=c+e;c+10<e;){var f=b.getFrameData_(a.subarray(c)),g=b.decodeFrame_(f);g&&d.push(g);c+=f.size+10}b.isFooter_(a,c)&&(c+=10)}return d};goog.exportSymbol("shaka.util.Id3Utils",shaka.util.Id3Utils);goog.exportProperty(shaka.util.Id3Utils,"getID3Frames",shaka.util.Id3Utils.getID3Frames);shaka.util.Id3Utils.UTF8_encoding=3;shaka.util.TsParser=function(){this.pmtId_=null;this.pmtParsed_=!1;this.videoCodec_=this.videoPid_=this.videoStartTime_=null;this.videoData_=[];this.audioCodec_=this.audioPid_=this.audioStartTime_=null;this.audioData_=[];this.id3Pid_=null;this.id3Data_=[]};
|
|
643
643
|
shaka.util.TsParser.prototype.parse=function(a){var b=shaka.util.TsParser.Timescale_,c=shaka.util.TsParser.PacketLength_;if(a.length<3*c)return this;for(var d=Math.max(0,shaka.util.TsParser.syncOffset(a)),e=a.length-(a.length+d)%c,f=!1,g=d;g<e;g+=c)if(71===a[g]){var h=!!(a[g+1]&64),k=((a[g+1]&31)<<8)+a[g+2];if(1<(a[g+3]&48)>>4){var l=g+5+a[g+4];if(l===g+c)continue}else l=g+4;switch(k){case 0:h&&(l+=a[l]+1);this.pmtId_=this.getPmtId_(a,l);break;case 17:case 8191:break;case this.pmtId_:h&&(l+=a[l]+
|
|
644
|
-
1);h=this.parsePMT(a,l)
|
|
645
|
-
|
|
644
|
+
1);h=this.parsePMT(a,l);-1!=h.video&&(this.videoPid_=h.video,this.videoCodec_=h.videoCodec);-1!=h.audio&&(this.audioPid_=h.audio,this.audioCodec_=h.audioCodec);-1!=h.id3&&(this.id3Pid_=h.id3);f&&!this.pmtParsed_&&(shaka.log.debug("reparse from beginning"),f=!1,g=d-c);this.pmtParsed_=!0;break;case this.videoPid_:h=a.subarray(l,g+c);null==this.videoStartTime_&&(k=this.parsePES(h))&&null!=k.pts&&(this.videoStartTime_=k.pts/b);this.videoData_.push(h);break;case this.audioPid_:h=a.subarray(l,g+c);null==
|
|
645
|
+
this.audioStartTime_&&(k=this.parsePES(h))&&null!=k.pts&&(this.audioStartTime_=k.pts/b);this.audioData_.push(h);break;case this.id3Pid_:this.id3Data_.push(a.subarray(l,g+c));break;default:f=!0}}else shaka.log.warning("Found TS packet that do not start with 0x47");return this};shaka.util.TsParser.prototype.getPmtId_=function(a,b){return(a[b+10]&31)<<8|a[b+11]};
|
|
646
646
|
shaka.util.TsParser.prototype.parsePMT=function(a,b){var c={audio:-1,video:-1,id3:-1,audioCodec:"",videoCodec:""},d=b+3+((a[b+1]&15)<<8|a[b+2])-4;for(b+=12+((a[b+10]&15)<<8|a[b+11]);b<d;){var e=(a[b+1]&31)<<8|a[b+2];switch(a[b]){case 15:-1===c.audio&&(c.audio=e,c.audioCodec="aac");break;case 21:-1===c.id3&&(c.id3=e);break;case 27:-1===c.video&&(c.video=e,c.videoCodec="avc");break;case 3:case 4:-1===c.audio&&(c.audio=e,c.audioCodec="mp3");break;case 36:-1===c.video&&(c.video=e,c.videoCodec="hvc")}b+=
|
|
647
647
|
((a[b+3]&15)<<8|a[b+4])+5}return c};shaka.util.TsParser.prototype.parsePES=function(a){if(1!==(a[0]<<16|a[1]<<8|a[2]))return null;var b={data:new Uint8Array(0),packetLength:6+(a[4]<<8|a[5]),pts:null,dts:null},c=a[7];c&192&&(b.pts=536870912*(a[9]&14)+4194304*(a[10]&255)+16384*(a[11]&254)+128*(a[12]&255)+(a[13]&254)/2,b.dts=b.pts,c&64&&(b.dts=536870912*(a[14]&14)+4194304*(a[15]&255)+16384*(a[16]&254)+128*(a[17]&255)+(a[18]&254)/2));b.data=a.subarray(9+a[8]);return b};
|
|
648
648
|
shaka.util.TsParser.prototype.getMetadata=function(){for(var a=shaka.util.TsParser.Timescale_,b=shaka.util.Uint8ArrayUtils,c=[],d=new Uint8Array(0),e=this.id3Data_.length-1;0<=e;e--){var f=this.id3Data_[e];goog.asserts.assert(f,"We should have a data");d=b.concat(f,d);if(f=this.parsePES(d))c.unshift({cueTime:f.pts?f.pts/a:null,data:f.data,frames:shaka.util.Id3Utils.getID3Frames(f.data),dts:f.dts,pts:f.pts}),d=new Uint8Array(0)}return c};
|
|
@@ -835,13 +835,12 @@ shaka.media.StreamingEngine.prototype.getSegmentReferenceNeeded_=function(a,b,c)
|
|
|
835
835
|
f=a.segmentIterator&&a.segmentIterator.next().value);null==f&&shaka.log.warning(d,"cannot find segment","lookupTime:",e,"presentationTime:",b);return f};
|
|
836
836
|
shaka.media.StreamingEngine.prototype.fetchAndAppend_=function(a,b,c){var d=this,e,f,g,h,k,l,m,n,p,q,r,v,u,w,z,t,x,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(y){switch(y.nextAddress){case 1:e=shaka.util.ManifestParserUtils.ContentType;f=shaka.media.StreamingEngine;g=f.logPrefix_(a);shaka.log.v1(g,"fetchAndAppend_:","presentationTime="+b,"reference.startTime="+c.startTime,"reference.endTime="+c.endTime);h=a.stream;k=a.segmentIterator;a.performingUpdate=!0;y.setCatchFinallyBlocks(2);
|
|
837
837
|
if(c.getStatus()==shaka.media.SegmentReference.Status.MISSING)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.SEGMENT_MISSING);return y.yield(d.initSourceBuffer_(a,c),4);case 4:d.destroyer_.ensureNotDestroyed();if(d.fatalError_)return y.return();shaka.log.v2(g,"fetching segment");l="video/mp4"==h.mimeType||"audio/mp4"==h.mimeType;m=window.ReadableStream;if(d.config_.lowLatencyMode&&m&&l&&!c.hlsAes128Key)return q=new Uint8Array(0),
|
|
838
|
-
v=r=!1,u=function(B){var D,G,C;return $jscomp.asyncExecutePromiseGeneratorProgram(function(E){if(r)return E.return();v=!0;d.destroyer_.ensureNotDestroyed();if(d.fatalError_)return E.return();q=d.concatArray_(q,B);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);C=q.subarray(0,G);q=q.subarray(G);return E.yield(d.append_(a,b,h,c,C,!0),0)})},y.yield(d.fetch_(a,c,u),
|
|
839
|
-
n=d.fetch_(a,c);return y.yield(n,7);case 7:p=y.yieldResult
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
a
|
|
844
|
-
shaka.media.StreamingEngine.prototype.aes128Decrypt_=function(a,b,c){var d,e,f,g;return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){if(1==h.nextAddress){d=b.hlsAes128Key;if(d.cryptoKey)return h.jumpTo(2);goog.asserts.assert(d.fetchKey,"If AES-128 cryptoKey was not preloaded, fetchKey function should be provided");return h.yield(d.fetchKey(),3)}2!=h.nextAddress&&goog.asserts.assert(d.cryptoKey,"AES-128 cryptoKey should now be set");e=d.iv;if(!e)for(e=shaka.util.BufferUtils.toUint8(new ArrayBuffer(16)),
|
|
838
|
+
v=r=!1,u=function(B){var D,G,C;return $jscomp.asyncExecutePromiseGeneratorProgram(function(E){if(r)return E.return();v=!0;d.destroyer_.ensureNotDestroyed();if(d.fatalError_)return E.return();q=d.concatArray_(q,B);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);C=q.subarray(0,G);q=q.subarray(G);return E.yield(d.append_(a,b,h,c,C,!0),0)})},y.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.");
|
|
839
|
+
n=d.fetch_(a,c);return y.yield(n,7);case 7:return p=y.yieldResult,d.destroyer_.ensureNotDestroyed(),d.fatalError_?y.return():a.waitingToClearBuffer?(shaka.log.info(g,"waitingToClearBuffer, skip append"),a.performingUpdate=!1,d.scheduleUpdate_(a,0),y.return()):y.yield(d.append_(a,b,h,c,p),6);case 9:w=y.yieldResult;if(v){y.jumpTo(6);break}r=!0;d.destroyer_.ensureNotDestroyed();return d.fatalError_?y.return():a.waitingToClearBuffer?(shaka.log.info(g,"waitingToClearBuffer, skip append"),a.performingUpdate=
|
|
840
|
+
!1,d.scheduleUpdate_(a,0),y.return()):y.yield(d.append_(a,b,h,c,w),6);case 6:d.destroyer_.ensureNotDestroyed();if(d.fatalError_)return y.return();a.lastSegmentReference=c;z=k.next().value;shaka.log.v2(g,"advancing to next segment",z);a.performingUpdate=!1;a.recovering=!1;t=d.playerInterface_.mediaSourceEngine.getBufferedInfo();x=t[a.type];shaka.log.v1(g,"finished fetch and append",JSON.stringify(x));if(!a.waitingToClearBuffer)d.playerInterface_.onSegmentAppended(c.startTime,c.endTime,a.type);d.scheduleUpdate_(a,
|
|
841
|
+
0);y.leaveTryBlock(0);break;case 2:A=y.enterCatchBlock();d.destroyer_.ensureNotDestroyed(A);if(d.fatalError_)return y.return();goog.asserts.assert(A instanceof 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),y.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."):
|
|
842
|
+
shaka.log.warning(g,"Text stream failed to parse. Proceeding without it."),d.mediaStates_.delete(e.TEXT),y.jumpTo(0);else if(A.code==shaka.util.Error.Code.QUOTA_EXCEEDED_ERROR)d.handleQuotaExceeded_(a,A),y.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,y.yield(d.handleStreamingError_(A),0)}})};
|
|
843
|
+
shaka.media.StreamingEngine.prototype.aes128Decrypt_=function(a,b,c){var d,e,f,g;return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){if(1==h.nextAddress){d=b;if(d.cryptoKey)return h.jumpTo(2);goog.asserts.assert(d.fetchKey,"If AES-128 cryptoKey was not preloaded, fetchKey function should be provided");return h.yield(d.fetchKey(),3)}2!=h.nextAddress&&goog.asserts.assert(d.cryptoKey,"AES-128 cryptoKey should now be set");e=d.iv;if(!e)for(e=shaka.util.BufferUtils.toUint8(new ArrayBuffer(16)),
|
|
845
844
|
f=d.firstMediaSequenceNumber+c.currentPosition(),g=e.byteLength-1;0<=g;g--)e[g]=f&255,f>>=8;return h.return(window.crypto.subtle.decrypt({name:"AES-CBC",iv:e},d.cryptoKey,a))})};
|
|
846
845
|
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..."),
|
|
847
846
|
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};
|
|
@@ -851,8 +850,7 @@ shaka.media.StreamingEngine.prototype.initSourceBuffer_=function(a,b){var c=this
|
|
|
851
850
|
"setting timestamp offset to "+k),shaka.log.v1(e,"setting append window start to "+g),shaka.log.v1(e,"setting append window end to "+h),l=function(){var r;return $jscomp.asyncExecutePromiseGeneratorProgram(function(v){if(1==v.nextAddress)return v.setCatchFinallyBlocks(2),a.lastAppendWindowStart=g,a.lastAppendWindowEnd=h,a.lastTimestampOffset=k,v.yield(c.playerInterface_.mediaSourceEngine.setStreamProperties(a.type,k,g,h,c.manifest_.sequenceMode),4);if(2!=v.nextAddress)return v.leaveTryBlock(0);r=
|
|
852
851
|
v.enterCatchBlock();a.lastAppendWindowStart=null;a.lastAppendWindowEnd=null;a.lastTimestampOffset=null;throw r;})},f.push(l());!shaka.media.InitSegmentReference.equal(b.initSegmentReference,a.lastInitSegmentReference)&&(a.lastInitSegmentReference=b.initSegmentReference)&&(shaka.log.v1(e,"fetching init segment"),m=c.fetch_(a,b.initSegmentReference),n=function(){var r,v,u,w,z;return $jscomp.asyncExecutePromiseGeneratorProgram(function(t){switch(t.nextAddress){case 1:return t.setCatchFinallyBlocks(2),
|
|
853
852
|
t.yield(m,4);case 4:return r=t.yieldResult,c.destroyer_.ensureNotDestroyed(),v=new shaka.util.Mp4Parser,u=shaka.util.Mp4Parser,v.box("moov",u.children).box("trak",u.children).box("mdia",u.children).fullBox("mdhd",function(x){c.parseMDHD_(b,x)}).parse(r),shaka.log.v1(e,"appending init segment"),w=a.stream.closedCaptions&&0<a.stream.closedCaptions.size,t.yield(c.playerInterface_.beforeAppendSegment(a.type,r),5);case 5:return t.yield(c.playerInterface_.mediaSourceEngine.appendBuffer(a.type,r,null,w),
|
|
854
|
-
6);case 6:t.leaveTryBlock(0);break;case 2:throw z=t.enterCatchBlock(),a.lastInitSegmentReference=null,z;}})},c.playerInterface_.onInitSegmentAppended(b.startTime,b.initSegmentReference),f.push(n()));p=a.lastSegmentReference?a.lastSegmentReference.discontinuitySequence:null
|
|
855
|
-
b.timestampOffset));return q.yield(Promise.all(f),0)})};
|
|
853
|
+
6);case 6:t.leaveTryBlock(0);break;case 2:throw z=t.enterCatchBlock(),a.lastInitSegmentReference=null,z;}})},c.playerInterface_.onInitSegmentAppended(b.startTime,b.initSegmentReference),f.push(n()));c.manifest_.sequenceMode&&(p=a.lastSegmentReference?a.lastSegmentReference.discontinuitySequence:null,b.discontinuitySequence!=p||a.needsResync)&&(a.needsResync=!1,f.push(c.playerInterface_.mediaSourceEngine.resync(a.type,b.startTime)));return q.yield(Promise.all(f),0)})};
|
|
856
854
|
shaka.media.StreamingEngine.prototype.append_=function(a,b,c,d,e,f){f=void 0===f?!1:f;var g=this,h,k,l,m,n,p,q;return $jscomp.asyncExecutePromiseGeneratorProgram(function(r){switch(r.nextAddress){case 1:h=shaka.media.StreamingEngine.logPrefix_(a);k=c.closedCaptions&&0<c.closedCaptions.size;m=null!=c.emsgSchemeIdUris&&0<c.emsgSchemeIdUris.length||g.config_.dispatchAllEmsgBoxes;n=g.config_.parsePrftBox&&!g.parsedPrftEventRaised_;if(m||n)l=new shaka.util.Mp4Parser;m&&l.fullBox("emsg",function(v){return g.parseEMSG_(d,
|
|
857
855
|
c.emsgSchemeIdUris,v)});n&&l.fullBox("prft",function(v){return g.parsePrft_(d,v)});(m||n)&&l.parse(e);return r.yield(g.evict_(a,b),2);case 2:return g.destroyer_.ensureNotDestroyed(),p=a.seeked,a.seeked=!1,q=a.adaptation,a.adaptation=!1,r.yield(g.playerInterface_.beforeAppendSegment(a.type,e),3);case 3:return r.yield(g.playerInterface_.mediaSourceEngine.appendBuffer(a.type,e,d,k,p,q,f),4);case 4:g.destroyer_.ensureNotDestroyed(),shaka.log.v2(h,"appended media segment"),r.jumpToEnd()}})};
|
|
858
856
|
shaka.media.StreamingEngine.prototype.parseEMSG_=function(a,b,c){if(0===c.version){var d=c.reader.readTerminatedString();var e=c.reader.readTerminatedString();var f=c.reader.readUint32();var g=c.reader.readUint32();var h=c.reader.readUint32();var k=c.reader.readUint32();var l=a.startTime+g/f}else f=c.reader.readUint32(),l=c.reader.readUint64()/f+a.timestampOffset,g=l-a.startTime,h=c.reader.readUint32(),k=c.reader.readUint32(),d=c.reader.readTerminatedString(),e=c.reader.readTerminatedString();c=c.reader.readBytes(c.reader.getLength()-
|
|
@@ -863,8 +861,8 @@ a={wallClockTime:b,programStartDate:new Date(b-e/a*1E3)};e=shaka.util.FakeEvent.
|
|
|
863
861
|
shaka.media.StreamingEngine.prototype.evict_=function(a,b){var c=this,d,e,f,g,h;return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){if(1==k.nextAddress){d=shaka.media.StreamingEngine.logPrefix_(a);shaka.log.v2(d,"checking buffer length");e=Math.max(c.config_.bufferBehind,c.manifest_.presentationTimeline.getMaxSegmentDuration());f=c.playerInterface_.mediaSourceEngine.bufferStart(a.type);if(null==f)return shaka.log.v2(d,"buffer behind okay because nothing buffered:","presentationTime="+b,
|
|
864
862
|
"bufferBehind="+e),k.return();g=b-f;h=g-e;if(.01>=h)return shaka.log.v2(d,"buffer behind okay:","presentationTime="+b,"bufferedBehind="+g,"bufferBehind="+e,"underflow="+Math.abs(h)),k.return();shaka.log.v1(d,"buffer behind too large:","presentationTime="+b,"bufferedBehind="+g,"bufferBehind="+e,"overflow="+h);return k.yield(c.playerInterface_.mediaSourceEngine.remove(a.type,f,f+h),2)}c.destroyer_.ensureNotDestroyed();shaka.log.v1(d,"evicted "+h+" seconds");k.jumpToEnd()})};
|
|
865
863
|
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)};
|
|
866
|
-
shaka.media.StreamingEngine.prototype.fetch_=function(a,b,c){var d=this,e,f,g,h,k;return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
867
|
-
b.startTime,mimeType:g.mimeType,codecs:g.codecs,bandwidth:g.bandwidth}),h=d.playerInterface_.netEngine.request(e,f),a.operation=h,
|
|
864
|
+
shaka.media.StreamingEngine.prototype.fetch_=function(a,b,c){var d=this,e,f,g,h,k,l,m;return $jscomp.asyncExecutePromiseGeneratorProgram(function(n){switch(n.nextAddress){case 1: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-
|
|
865
|
+
b.startTime,mimeType:g.mimeType,codecs:g.codecs,bandwidth:g.bandwidth}),h=d.playerInterface_.netEngine.request(e,f),a.operation=h,n.yield(h.promise,2);case 2:k=n.yieldResult;a.operation=null;l=k.data;if(!b.hlsAes128Key){n.jumpTo(3);break}m=a.segmentIterator;goog.asserts.assert(m,"mediaState.segmentIterator should exist");return n.yield(d.aes128Decrypt_(l,b.hlsAes128Key,m),4);case 4:l=n.yieldResult;case 3:return n.return(l)}})};
|
|
868
866
|
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,
|
|
869
867
|
"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||
|
|
870
868
|
a.updateTimer||d.scheduleUpdate_(a,0);h.jumpToEnd()})};
|
|
@@ -908,12 +906,14 @@ shaka.text.UITextDisplayer.prototype.getRegionElement_=function(a){var b=a.regio
|
|
|
908
906
|
b.viewportAnchorY+e;d.style.left=b.viewportAnchorX+e;d.style.display="flex";d.style.flexDirection="column";d.style.alignItems="center";d.style.justifyContent=a.displayAlign==shaka.text.Cue.displayAlign.BEFORE?"flex-start":a.displayAlign==shaka.text.Cue.displayAlign.CENTER?"center":"flex-end";this.regionElements_.set(c,d);return d};
|
|
909
907
|
shaka.text.UITextDisplayer.prototype.createCue_=function(a,b){var c=1<b.length,d=c?"span":"div";a.lineBreak&&(d="br");c=!c&&0<a.nestedCues.length;var e=shaka.util.Dom.createHTMLElement(d);"br"!=d&&this.setCaptionStyles_(e,a,b,c);b=null;a.region&&a.region.id&&(b=this.getRegionElement_(a));d=e;c&&(d=shaka.util.Dom.createHTMLElement("span"),d.classList.add("shaka-text-wrapper"),d.style.backgroundColor=a.backgroundColor,d.style.lineHeight="normal",e.appendChild(d));this.currentCuesMap_.set(a,{cueElement:e,
|
|
910
908
|
wrapper:d,regionElement:b})};
|
|
909
|
+
shaka.text.UITextDisplayer.prototype.computeCuePositionAlignment_=function(a){var b=shaka.text.Cue,c=a.direction,d=a.positionAlign;a=a.textAlign;return d!==b.positionAlign.AUTO?d:a===b.textAlign.LEFT||a===b.textAlign.START&&c===b.direction.HORIZONTAL_LEFT_TO_RIGHT||a===b.textAlign.END&&c===b.direction.HORIZONTAL_RIGHT_TO_LEFT?b.positionAlign.LEFT:a===b.textAlign.RIGHT||a===b.textAlign.START&&c===b.direction.HORIZONTAL_RIGHT_TO_LEFT||a===b.textAlign.END&&c===b.direction.HORIZONTAL_LEFT_TO_RIGHT?b.positionAlign.RIGHT:
|
|
910
|
+
b.positionAlign.CENTER};
|
|
911
911
|
shaka.text.UITextDisplayer.prototype.setCaptionStyles_=function(a,b,c,d){var e=shaka.text.Cue,f=a.style,g=0==b.nestedCues.length,h=1<c.length;f.whiteSpace="pre-wrap";var k=b.payload.replace(/\s+$/g,function(m){return"\u00a0".repeat(m.length)});f.webkitTextStrokeColor=b.textStrokeColor;f.webkitTextStrokeWidth=b.textStrokeWidth;f.color=b.color;f.direction=b.direction;f.opacity=b.opacity;f.paddingLeft=shaka.text.UITextDisplayer.convertLengthValue_(b.linePadding,b,this.videoContainer_);f.paddingRight=
|
|
912
912
|
shaka.text.UITextDisplayer.convertLengthValue_(b.linePadding,b,this.videoContainer_);f.textShadow=b.textShadow;if(b.backgroundImage)f.backgroundImage="url('"+b.backgroundImage+"')",f.backgroundRepeat="no-repeat",f.backgroundSize="contain",f.backgroundPosition="center",f.width="100%",f.height="100%";else{if(b.nestedCues.length)var l=a;else l=shaka.util.Dom.createHTMLElement("span"),a.appendChild(l);b.border&&(l.style.border=b.border);d||((a=shaka.text.UITextDisplayer.inheritProperty_(c,function(m){return m.backgroundColor}))?
|
|
913
913
|
l.style.backgroundColor=a:k&&(l.style.backgroundColor="rgba(0, 0, 0, 0.8)"));k&&(l.textContent=k)}h&&!c[c.length-1].isContainer?f.display="inline":(f.display="flex",f.flexDirection="column",f.alignItems="center",f.justifyContent=b.displayAlign==e.displayAlign.BEFORE?"flex-start":b.displayAlign==e.displayAlign.CENTER?"center":"flex-end");g||(f.margin="0");f.fontFamily=b.fontFamily;f.fontWeight=b.fontWeight.toString();f.fontStyle=b.fontStyle;f.letterSpacing=b.letterSpacing;f.fontSize=shaka.text.UITextDisplayer.convertLengthValue_(b.fontSize,
|
|
914
|
-
b,this.videoContainer_);null!=b.line&&b.lineInterpretation==e.lineInterpretation.PERCENTAGE&&(f.position="absolute",b.writingMode==e.writingMode.HORIZONTAL_TOP_TO_BOTTOM?(f.width="100%",b.lineAlign==e.lineAlign.START?f.top=b.line+"%":b.lineAlign==e.lineAlign.END&&(f.bottom=100-b.line+"%")):b.writingMode==e.writingMode.VERTICAL_LEFT_TO_RIGHT?(f.height="100%",b.lineAlign==e.lineAlign.START?f.left=b.line+"%":b.lineAlign==
|
|
915
|
-
f.right=b.line+"%":b.lineAlign==e.lineAlign.END&&(f.left=100-b.line+"%")));f.lineHeight=b.lineHeight;null!=b.position&&(b.writingMode==e.writingMode.HORIZONTAL_TOP_TO_BOTTOM?f.paddingLeft=b.position:f.paddingTop=b.position);b
|
|
916
|
-
(f.webkitWritingMode=b.writingMode);b.size&&(b.writingMode==e.writingMode.HORIZONTAL_TOP_TO_BOTTOM?f.width=b.size+"%":f.height=b.size+"%")};shaka.text.UITextDisplayer.getLengthValueInfo_=function(a){return(a=(new RegExp(/(\d*\.?\d+)([a-z]+|%+)/)).exec(a))?{value:Number(a[1]),unit:a[2]}:null};
|
|
914
|
+
b,this.videoContainer_);null!=b.line&&(c=b.lineInterpretation,0==b.line&&c==e.lineInterpretation.LINE_NUMBER&&(c=e.lineInterpretation.PERCENTAGE),c==e.lineInterpretation.PERCENTAGE&&(f.position="absolute",b.writingMode==e.writingMode.HORIZONTAL_TOP_TO_BOTTOM?(f.width="100%",b.lineAlign==e.lineAlign.START?f.top=b.line+"%":b.lineAlign==e.lineAlign.END&&(f.bottom=100-b.line+"%")):b.writingMode==e.writingMode.VERTICAL_LEFT_TO_RIGHT?(f.height="100%",b.lineAlign==e.lineAlign.START?f.left=b.line+"%":b.lineAlign==
|
|
915
|
+
e.lineAlign.END&&(f.right=100-b.line+"%")):(f.height="100%",b.lineAlign==e.lineAlign.START?f.right=b.line+"%":b.lineAlign==e.lineAlign.END&&(f.left=100-b.line+"%"))));f.lineHeight=b.lineHeight;null!=b.position&&(b.writingMode==e.writingMode.HORIZONTAL_TOP_TO_BOTTOM?f.paddingLeft=b.position:f.paddingTop=b.position);c=this.computeCuePositionAlignment_(b);c==e.positionAlign.LEFT?f.cssFloat="left":c==e.positionAlign.RIGHT&&(f.cssFloat="right");f.textAlign=b.textAlign;f.textDecoration=b.textDecoration.join(" ");
|
|
916
|
+
f.writingMode=b.writingMode;"writingMode"in document.documentElement.style&&f.writingMode==b.writingMode||(f.webkitWritingMode=b.writingMode);b.size&&(b.writingMode==e.writingMode.HORIZONTAL_TOP_TO_BOTTOM?f.width=b.size+"%":f.height=b.size+"%")};shaka.text.UITextDisplayer.getLengthValueInfo_=function(a){return(a=(new RegExp(/(\d*\.?\d+)([a-z]+|%+)/)).exec(a))?{value:Number(a[1]),unit:a[2]}:null};
|
|
917
917
|
shaka.text.UITextDisplayer.convertLengthValue_=function(a,b,c){var d=shaka.text.UITextDisplayer.getLengthValueInfo_(a);if(!d)return a;var e=d.value;switch(d.unit){case "%":return shaka.text.UITextDisplayer.getAbsoluteLengthInPixels_(e/100,b,c);case "c":return shaka.text.UITextDisplayer.getAbsoluteLengthInPixels_(e,b,c);default:return a}};shaka.text.UITextDisplayer.getAbsoluteLengthInPixels_=function(a,b,c){return c.clientHeight*a/b.cellResolution.rows+"px"};
|
|
918
918
|
shaka.text.UITextDisplayer.inheritProperty_=function(a,b){for(var c=a.length-1;0<=c;c--){var d=b(a[c]);if(d||0===d)return d}return null};goog.exportSymbol("shaka.text.UITextDisplayer",shaka.text.UITextDisplayer);goog.exportProperty(shaka.text.UITextDisplayer.prototype,"setTextVisibility",shaka.text.UITextDisplayer.prototype.setTextVisibility);goog.exportProperty(shaka.text.UITextDisplayer.prototype,"isTextVisible",shaka.text.UITextDisplayer.prototype.isTextVisible);
|
|
919
919
|
goog.exportProperty(shaka.text.UITextDisplayer.prototype,"remove",shaka.text.UITextDisplayer.prototype.remove);goog.exportProperty(shaka.text.UITextDisplayer.prototype,"destroy",shaka.text.UITextDisplayer.prototype.destroy);goog.exportProperty(shaka.text.UITextDisplayer.prototype,"append",shaka.text.UITextDisplayer.prototype.append);shaka.text.WebVttGenerator=function(){};
|
|
@@ -929,8 +929,8 @@ shaka.util.CmcdManager.prototype.createData_=function(){this.sid_||(this.sid_=th
|
|
|
929
929
|
shaka.util.CmcdManager.prototype.apply_=function(a,b,c){b=void 0===b?{}:b;c=void 0===c?this.config_.useHeaders:c;if(this.config_.enabled){Object.assign(b,this.createData_());b.pr=this.playerInterface_.getPlaybackRate();var d=b.ot===shaka.util.CmcdManager.ObjectType.VIDEO||b.ot===shaka.util.CmcdManager.ObjectType.MUXED;this.starved_&&d&&(b.bs=!0,b.su=!0,this.starved_=!1);null==b.su&&(b.su=this.buffering_);if(c)b=shaka.util.CmcdManager.toHeaders(b),Object.keys(b).length&&Object.assign(a.headers,b);
|
|
930
930
|
else{var e=shaka.util.CmcdManager.toQuery(b);e&&(a.uris=a.uris.map(function(f){return shaka.util.CmcdManager.appendQueryToUri(f,e)}))}}};
|
|
931
931
|
shaka.util.CmcdManager.prototype.getObjectType_=function(a){var b=a.type;if(a.init)return shaka.util.CmcdManager.ObjectType.INIT;if("video"==b)return a.codecs.includes(",")?shaka.util.CmcdManager.ObjectType.MUXED:shaka.util.CmcdManager.ObjectType.VIDEO;if("audio"==b)return shaka.util.CmcdManager.ObjectType.AUDIO;if("text"==b)return"application/mp4"===a.mimeType?shaka.util.CmcdManager.ObjectType.TIMED_TEXT:shaka.util.CmcdManager.ObjectType.CAPTION};
|
|
932
|
-
shaka.util.CmcdManager.prototype.getObjectTypeFromMimeType_=function(a){switch(a){case "video/webm":case "video/mp4":return shaka.util.CmcdManager.ObjectType.MUXED;case "application/x-mpegurl":
|
|
933
|
-
shaka.util.CmcdManager.prototype.getStreamType_=function(){return this.playerInterface_.isLive()?shaka.util.CmcdManager.StreamType.LIVE:shaka.util.CmcdManager.StreamType.VOD};
|
|
932
|
+
shaka.util.CmcdManager.prototype.getObjectTypeFromMimeType_=function(a){switch(a.toLowerCase()){case "video/webm":case "video/mp4":case "video/mpeg":case "video/mp2t":return shaka.util.CmcdManager.ObjectType.MUXED;case "application/x-mpegurl":case "application/vnd.apple.mpegurl":case "application/dash+xml":case "video/vnd.mpeg.dash.mpd":return shaka.util.CmcdManager.ObjectType.MANIFEST}};
|
|
933
|
+
shaka.util.CmcdManager.prototype.getBufferLength_=function(a){a=this.playerInterface_.getBufferedInfo()[a];if(!a.length)return NaN;var b=this.playerInterface_.getCurrentTime();return(a=a.find(function(c){return c.start<=b&&c.end>=b}))?1E3*(a.end-b):NaN};shaka.util.CmcdManager.prototype.getStreamType_=function(){return this.playerInterface_.isLive()?shaka.util.CmcdManager.StreamType.LIVE:shaka.util.CmcdManager.StreamType.VOD};
|
|
934
934
|
shaka.util.CmcdManager.prototype.getTopBandwidth_=function(a){var b=this.playerInterface_.getVariantTracks();if(!b.length)return NaN;var c=b[0];b=$jscomp.makeIterator(b);for(var d=b.next();!d.done;d=b.next())d=d.value,"variant"===d.type&&d.bandwidth>c.bandwidth&&(c=d);b=shaka.util.CmcdManager.ObjectType;switch(a){case b.VIDEO:return c.videoBandwidth||NaN;case b.AUDIO:return c.audioBandwidth||NaN;default:return c.bandwidth}};
|
|
935
935
|
shaka.util.CmcdManager.serialize=function(a){var b=[],c=function(m){return!Number.isNaN(m)&&null!=m&&""!==m&&!1!==m},d=function(m){return Math.round(m)},e=function(m){return 100*d(m/100)};e={br:d,d:d,bl:e,dl:e,mtp:e,nor:function(m){return encodeURIComponent(m)},rtp:e,tb:d};var f=Object.keys(a||{}).sort();f=$jscomp.makeIterator(f);for(var g=f.next();!g.done;g=f.next()){g=g.value;var h=a[g];if(c(h)&&("v"!==g||1!==h)&&("pr"!=g||1!==h)){var k=e[g];k&&(h=k(h));k=typeof h;var l=void 0;l="string"===k&&"ot"!==
|
|
936
936
|
g&&"sf"!==g&&"st"!==g?g+"="+JSON.stringify(h):"boolean"===k?g:"symbol"===k?g+"="+h.description:g+"="+h;b.push(l)}}return b.join(",")};
|
|
@@ -952,9 +952,9 @@ shaka.util.FairPlayUtils.commonFairPlayResponse=function(a,b){if(a===shaka.net.N
|
|
|
952
952
|
goog.exportSymbol("shaka.util.FairPlayUtils",shaka.util.FairPlayUtils);goog.exportProperty(shaka.util.FairPlayUtils,"commonFairPlayResponse",shaka.util.FairPlayUtils.commonFairPlayResponse);goog.exportProperty(shaka.util.FairPlayUtils,"conaxFairPlayRequest",shaka.util.FairPlayUtils.conaxFairPlayRequest);goog.exportProperty(shaka.util.FairPlayUtils,"ezdrmFairPlayRequest",shaka.util.FairPlayUtils.ezdrmFairPlayRequest);goog.exportProperty(shaka.util.FairPlayUtils,"verimatrixFairPlayRequest",shaka.util.FairPlayUtils.verimatrixFairPlayRequest);
|
|
953
953
|
goog.exportProperty(shaka.util.FairPlayUtils,"conaxInitDataTransform",shaka.util.FairPlayUtils.conaxInitDataTransform);goog.exportProperty(shaka.util.FairPlayUtils,"ezdrmInitDataTransform",shaka.util.FairPlayUtils.ezdrmInitDataTransform);goog.exportProperty(shaka.util.FairPlayUtils,"verimatrixInitDataTransform",shaka.util.FairPlayUtils.verimatrixInitDataTransform);goog.exportProperty(shaka.util.FairPlayUtils,"initDataTransform",shaka.util.FairPlayUtils.initDataTransform);
|
|
954
954
|
goog.exportProperty(shaka.util.FairPlayUtils,"defaultGetContentId",shaka.util.FairPlayUtils.defaultGetContentId);goog.exportProperty(shaka.util.FairPlayUtils,"isFairPlaySupported",shaka.util.FairPlayUtils.isFairPlaySupported);shaka.util.PlayerConfiguration=function(){};
|
|
955
|
-
shaka.util.PlayerConfiguration.createDefault=function(){var a=Infinity;navigator.connection&&navigator.connection.saveData&&(a=360);var b={retryParameters:shaka.net.NetworkingEngine.defaultRetryParameters(),servers:{},clearKeys:{},advanced:{},delayLicenseRequestUntilPlayed:!1,initDataTransform:function(g,h,k){
|
|
956
|
-
updateExpirationTime:1,preferredKeySystems:[],keySystemsMapping:{},parseInbandPsshEnabled:shaka.util.Platform.isXboxOne()},c={retryParameters:shaka.net.NetworkingEngine.defaultRetryParameters(),availabilityWindowOverride:NaN,disableAudio:!1,disableVideo:!1,disableText:!1,disableThumbnails:!1,defaultPresentationDelay:0,segmentRelativeVttTiming:!1,dash:{clockSyncUri:"",ignoreDrmInfo:!1,disableXlinkProcessing:!1,xlinkFailGracefully:!1,ignoreMinBufferTime:!1,autoCorrectDrift:!0,
|
|
957
|
-
ignoreSuggestedPresentationDelay:!1,ignoreEmptyAdaptationSet:!1,ignoreMaxSegmentDuration:!1,keySystemsByURI:{"urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b":"org.w3.clearkey","urn:uuid:e2719d58-a985-b3c9-781a-b030af78d30e":"org.w3.clearkey","urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed":"com.widevine.alpha","urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95":"com.microsoft.playready","urn:uuid:79f0049a-4098-8642-ab92-e65be0885f95":"com.microsoft.playready","urn:uuid:f239e769-efa3-4850-9c16-a903c6932efb":"com.adobe.primetime"},
|
|
955
|
+
shaka.util.PlayerConfiguration.createDefault=function(){var a=Infinity;navigator.connection&&navigator.connection.saveData&&(a=360);var b={retryParameters:shaka.net.NetworkingEngine.defaultRetryParameters(),servers:{},clearKeys:{},advanced:{},delayLicenseRequestUntilPlayed:!1,initDataTransform:function(g,h,k){shaka.util.Platform.isMediaKeysPolyfilled()&&"skd"==h&&(h=k.serverCertificate,k=shaka.util.FairPlayUtils.defaultGetContentId(g),g=shaka.util.FairPlayUtils.initDataTransform(g,k,h));return g},
|
|
956
|
+
logLicenseExchange:!1,updateExpirationTime:1,preferredKeySystems:[],keySystemsMapping:{},parseInbandPsshEnabled:shaka.util.Platform.isXboxOne()},c={retryParameters:shaka.net.NetworkingEngine.defaultRetryParameters(),availabilityWindowOverride:NaN,disableAudio:!1,disableVideo:!1,disableText:!1,disableThumbnails:!1,defaultPresentationDelay:0,segmentRelativeVttTiming:!1,dash:{clockSyncUri:"",ignoreDrmInfo:!1,disableXlinkProcessing:!1,xlinkFailGracefully:!1,ignoreMinBufferTime:!1,autoCorrectDrift:!0,
|
|
957
|
+
initialSegmentLimit:1E3,ignoreSuggestedPresentationDelay:!1,ignoreEmptyAdaptationSet:!1,ignoreMaxSegmentDuration:!1,keySystemsByURI:{"urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b":"org.w3.clearkey","urn:uuid:e2719d58-a985-b3c9-781a-b030af78d30e":"org.w3.clearkey","urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed":"com.widevine.alpha","urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95":"com.microsoft.playready","urn:uuid:79f0049a-4098-8642-ab92-e65be0885f95":"com.microsoft.playready","urn:uuid:f239e769-efa3-4850-9c16-a903c6932efb":"com.adobe.primetime"},
|
|
958
958
|
manifestPreprocessor:function(g){return shaka.util.ConfigUtils.referenceParametersAndReturn([g],g)},sequenceMode:!1},hls:{ignoreTextStreamFailures:!1,ignoreImageStreamFailures:!1,defaultAudioCodec:"mp4a.40.2",defaultVideoCodec:"avc1.42E01E",ignoreManifestProgramDateTime:!1,mediaPlaylistFullMimeType:'video/mp2t; codecs="avc1.42E01E, mp4a.40.2"',useSafariBehaviorForLive:!0,liveSegmentsDelay:3}},d={retryParameters:shaka.net.NetworkingEngine.defaultRetryParameters(),failureCallback:function(g){shaka.log.error("Unhandled streaming error",
|
|
959
959
|
g);return shaka.util.ConfigUtils.referenceParametersAndReturn([g],void 0)},rebufferingGoal:2,bufferingGoal:10,bufferBehind:30,ignoreTextStreamFailures:!1,alwaysStreamText:!1,startAtSegmentBoundary:!1,gapDetectionThreshold:.5,durationBackoff:1,forceTransmux:!1,safeSeekOffset:5,stallEnabled:!0,stallThreshold:1,stallSkip:.1,useNativeHlsOnSafari:!0,inaccurateManifestTolerance:2,lowLatencyMode:!1,autoLowLatencyMode:!1,forceHTTPS:!1,preferNativeHls:!1,updateIntervalSeconds:1,dispatchAllEmsgBoxes:!1,observeQualityChanges:!1,
|
|
960
960
|
maxDisabledTime:30,parsePrftBox:!1};if(shaka.util.Platform.isWebOS()||shaka.util.Platform.isTizen()||shaka.util.Platform.isChromecast())d.stallSkip=0;var e={trackSelectionCallback:function(g){return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){return h.return(g)})},downloadSizeCallback:function(g){var h;return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){if(1==k.nextAddress)return navigator.storage&&navigator.storage.estimate?k.yield(navigator.storage.estimate(),3):k.return(!0);
|
|
@@ -1043,7 +1043,7 @@ this.loadEventManager_.listen(d,"playing",f);this.loadEventManager_.listen(d,"pa
|
|
|
1043
1043
|
shaka.util.MediaReadyState.waitForReadyState(d,HTMLMediaElement.HAVE_METADATA,this.loadEventManager_,function(){c.playhead_.ready();g.resolve()});shaka.util.MediaReadyState.waitForReadyState(d,HTMLMediaElement.HAVE_CURRENT_DATA,this.loadEventManager_,function(){var h;return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){if(1==k.nextAddress)return c.setupPreferredAudioOnSrc_(),h=c.getFilteredTextTracks_(),h.find(function(l){return"disabled"!=l.mode})?(0<h.length&&(c.isTextVisible_=!0),k.jumpTo(2)):
|
|
1044
1044
|
k.yield(new Promise(function(l){c.loadEventManager_.listenOnce(d.textTracks,"change",l);(new shaka.util.Timer(l)).tickAfter(1)}),2);if(e)return k.return();c.setupPreferredTextOnSrc_();k.jumpToEnd()})});d.error?g.reject(this.videoErrorToShakaError_()):"none"==d.preload&&(shaka.log.alwaysWarn('With <video preload="none">, the browser will not load anything until play() is called. We are unable to measure load latency in a meaningful way, and we cannot provide track info yet. Please do not use preload="none" with Shaka Player.'),
|
|
1045
1045
|
g.resolve());this.loadEventManager_.listenOnce(d,"error",function(){g.reject(c.videoErrorToShakaError_())});return(new shaka.util.AbortableOperation(g,function(){var h=new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.OPERATION_ABORTED);g.reject(h);return Promise.resolve()})).chain(function(){c.fullyLoaded_=!0})};
|
|
1046
|
-
shaka.Player.prototype.setupPreferredAudioOnSrc_=function(){var a=this.config_.preferredAudioLanguage;
|
|
1046
|
+
shaka.Player.prototype.setupPreferredAudioOnSrc_=function(){var a=this.config_.preferredAudioLanguage;""!=a&&this.selectAudioLanguage(a,this.config_.preferredVariantRole)};shaka.Player.prototype.setupPreferredTextOnSrc_=function(){var a=this.config_.preferredTextLanguage;""!=a&&this.selectTextLanguage(a,this.config_.preferredTextRole,this.config_.preferForcedSubs)};
|
|
1047
1047
|
shaka.Player.prototype.processTimedMetadataSrcEqls_=function(a){var b=this;if("metadata"==a.kind){a.mode="hidden";this.loadEventManager_.listen(a,"cuechange",function(){if(a.activeCues)for(var d=$jscomp.makeIterator(a.activeCues),e=d.next();!e.done;e=d.next())if(e=e.value,b.dispatchMetadataEvent_(e.startTime,e.endTime,e.type,e.value),b.adManager_)b.adManager_.onCueMetadataChange(e.value)});var c=(new shaka.util.Timer(function(){var d=b.getMetadataTracks_();d=$jscomp.makeIterator(d);for(var e=d.next();!e.done;e=
|
|
1048
1048
|
d.next())e.value.mode="hidden"})).tickNow().tickAfter(.5);this.cleanupOnUnload_.push(function(){c.stop()})}};shaka.Player.prototype.processTimedMetadataMediaSrc_=function(a,b,c){a=$jscomp.makeIterator(a);for(var d=a.next();!d.done;d=a.next())if(d=d.value,d.data&&d.cueTime&&d.frames){var e=d.cueTime+b,f=c;f&&e>f&&(f=e);for(var g=$jscomp.makeIterator(d.frames),h=g.next();!h.done;h=g.next())this.dispatchMetadataEvent_(e,f,"org.id3",h.value);if(this.adManager_)this.adManager_.onHlsTimedMetadata(d,e)}};
|
|
1049
1049
|
shaka.Player.prototype.dispatchMetadataEvent_=function(a,b,c,d){goog.asserts.assert(!b||a<=b,"Metadata start time should be less or equal to the end time!");var e=shaka.util.FakeEvent.EventName.Metadata;a=(new Map).set("startTime",a).set("endTime",b).set("metadataType",c).set("payload",d);this.dispatchEvent(this.makeEvent_(e,a))};
|
|
@@ -1088,11 +1088,10 @@ this.getFilteredTextTracks_();b=$jscomp.makeIterator(b);for(var c=b.next();!c.do
|
|
|
1088
1088
|
shaka.Player.prototype.selectVariantTrack=function(a,b,c){b=void 0===b?!1:b;c=void 0===c?0:c;if(this.manifest_&&this.streamingEngine_){this.config_.abr.enabled&&shaka.log.alwaysWarn("Changing tracks while abr manager is enabled will likely result in the selected track being overriden. Consider disabling abr before calling selectVariantTrack().");var d=this.manifest_.variants.find(function(e){return e.id==a.id});d?shaka.util.StreamUtils.isPlayable(d)?(this.switchVariant_(d,!1,b,c),this.currentAdaptationSetCriteria_=
|
|
1089
1089
|
new shaka.media.ExampleBasedCriteria(d),this.updateAbrManagerVariants_()):shaka.log.error("Unable to switch to restricted track",a.id):shaka.log.error("No variant with id",a.id)}else if(this.video_&&this.video_.audioTracks)for(b=Array.from(this.video_.audioTracks),b=$jscomp.makeIterator(b),c=b.next();!c.done;c=b.next())if(c=c.value,shaka.util.StreamUtils.html5TrackId(c)==a.id){this.switchHtml5Track_(c);break}};shaka.Player.prototype.getAudioLanguagesAndRoles=function(){return shaka.Player.getLanguageAndRolesFrom_(this.getVariantTracks())};
|
|
1090
1090
|
shaka.Player.prototype.getTextLanguagesAndRoles=function(){return shaka.Player.getLanguageAndRolesFrom_(this.getTextTracks())};shaka.Player.prototype.getAudioLanguages=function(){return Array.from(shaka.Player.getLanguagesFrom_(this.getVariantTracks()))};shaka.Player.prototype.getTextLanguages=function(){return Array.from(shaka.Player.getLanguagesFrom_(this.getTextTracks()))};
|
|
1091
|
-
shaka.Player.prototype.selectAudioLanguage=function(a,b,c){c=void 0===c?0:c;
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
(a=this.getTextTracks().find(function(f){return d.normalize(f.language)==e&&(!b||f.roles.includes(b))&&f.forced==c}))&&this.selectTextTrack(a)}};
|
|
1091
|
+
shaka.Player.prototype.selectAudioLanguage=function(a,b,c){c=void 0===c?0:c;if(this.manifest_&&this.playhead_){this.currentAdaptationSetCriteria_=new shaka.media.PreferenceBasedCriteria(a,b||"",c,"");a=function(f,g){return f.video||g.video?f.video&&g.video?Math.abs((f.video.height||0)-(g.video.height||0))+Math.abs((f.video.width||0)-(g.video.width||0)):Infinity:0};b=this.streamingEngine_.getCurrentVariant();var d=this.currentAdaptationSetCriteria_.create(this.manifest_.variants);c=null;d=$jscomp.makeIterator(d.values());
|
|
1092
|
+
for(var e=d.next();!e.done;e=d.next())if(e=e.value,!c||a(c,b)>a(e,b))c=e;c?(a=shaka.util.StreamUtils.variantToTrack(c),this.selectVariantTrack(a,!0)):this.chooseVariantAndSwitch_()}else this.video_&&this.video_.audioTracks&&(a=shaka.util.StreamUtils.filterStreamsByLanguageAndRole(this.getVariantTracks(),a,b||"",!1)[0])&&this.selectVariantTrack(a)};
|
|
1093
|
+
shaka.Player.prototype.selectTextLanguage=function(a,b,c){c=void 0===c?!1:c;if(this.manifest_&&this.playhead_){if(this.currentTextLanguage_=a,this.currentTextRole_=b||"",this.currentTextForced_=c,a=this.chooseTextStream_())a==this.streamingEngine_.getCurrentTextStream()?shaka.log.debug("Text track already selected."):(this.addTextStreamToSwitchHistory_(a,!1),this.shouldStreamText_()&&(this.streamingEngine_.switchTextStream(a),this.onTextChanged_()))}else(a=shaka.util.StreamUtils.filterStreamsByLanguageAndRole(this.getTextTracks(),
|
|
1094
|
+
a,b||"",c)[0])&&this.selectTextTrack(a)};
|
|
1096
1095
|
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_())}else if(this.video_&&this.video_.audioTracks){c=
|
|
1097
1096
|
Array.from(this.video_.audioTracks);b=null;c=$jscomp.makeIterator(c);for(d=c.next();!d.done;d=c.next())d=d.value,d.label==a&&(b=d);b&&this.switchHtml5Track_(b)}};
|
|
1098
1097
|
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};
|
|
@@ -1199,7 +1198,7 @@ goog.exportProperty(shaka.Player.prototype,"isInProgress",shaka.Player.prototype
|
|
|
1199
1198
|
goog.exportProperty(shaka.Player.prototype,"getMediaElement",shaka.Player.prototype.getMediaElement);goog.exportProperty(shaka.Player.prototype,"getLoadMode",shaka.Player.prototype.getLoadMode);goog.exportProperty(shaka.Player.prototype,"resetConfiguration",shaka.Player.prototype.resetConfiguration);goog.exportProperty(shaka.Player.prototype,"getBufferFullness",shaka.Player.prototype.getBufferFullness);goog.exportProperty(shaka.Player.prototype,"getConfiguration",shaka.Player.prototype.getConfiguration);
|
|
1200
1199
|
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,"updateStartTime",shaka.Player.prototype.updateStartTime);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,"attachCanvas",shaka.Player.prototype.attachCanvas);
|
|
1201
1200
|
goog.exportProperty(shaka.Player.prototype,"attach",shaka.Player.prototype.attach);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);
|
|
1202
|
-
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="v4.3.
|
|
1201
|
+
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="v4.3.13-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;
|
|
1203
1202
|
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"};
|
|
1204
1203
|
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_++};
|
|
1205
1204
|
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,c){var d=this;this.ad_=a;this.manager_=b;this.video_=c;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(){d.isPaused_=!0});this.eventManager_.listen(this.manager_,google.ima.AdEvent.Type.RESUMED,function(){d.isPaused_=!1})};shaka.ads.ClientSideAd.prototype.getDuration=function(){return this.ad_.getDuration()};
|
|
@@ -1531,13 +1530,13 @@ shaka.dash.DashParser.prototype.requestManifest_=function(){var a=this,b,c,d,e,f
|
|
|
1531
1530
|
m.yield(g.promise,2);if(3!=m.nextAddress){h=m.yieldResult;if(!a.playerInterface_)return m.return(0);h.uri&&!a.manifestUris_.includes(h.uri)&&a.manifestUris_.unshift(h.uri);return m.yield(a.parseManifest_(h.data,h.uri),3)}k=Date.now();l=(k-f)/1E3;a.averageUpdateDuration_.sample(1,l);return m.return(l)})};
|
|
1532
1531
|
shaka.dash.DashParser.prototype.parseManifest_=function(a,b){var c=this,d,e,f,g,h,k,l;return $jscomp.asyncExecutePromiseGeneratorProgram(function(m){if(1==m.nextAddress){d=shaka.util.Error;e=shaka.dash.MpdUtils;f=shaka.util.XmlUtils.parseXml(a,"MPD");if(!f)throw new d(d.Severity.CRITICAL,d.Category.MANIFEST,d.Code.DASH_INVALID_XML,b);if(g=c.config_.dash.disableXlinkProcessing)return m.return(c.processManifest_(f,b));h=c.config_.dash.xlinkFailGracefully;k=e.processXlinks(f,c.config_.retryParameters,
|
|
1533
1532
|
h,b,c.playerInterface_.networkingEngine);c.operationManager_.manage(k);return m.yield(k.promise,2)}l=m.yieldResult;return m.return(c.processManifest_(l,b))})};
|
|
1534
|
-
shaka.dash.DashParser.prototype.processManifest_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,v,u,w,z,t,x,A,y,B,D,G,C,E,F,I,H,J,L,K,N,O,M,P;return $jscomp.asyncExecutePromiseGeneratorProgram(function(Q){switch(Q.nextAddress){case 1:d=shaka.util.Functional;e=shaka.util.XmlUtils;(f=c.config_.dash.manifestPreprocessor)&&f(a);g=[b];h=e.findChildren(a,"Location").map(e.getContents).filter(d.isNotNull);0<h.length&&(k=shaka.util.ManifestParserUtils.resolveUris(g,h),g=c.manifestUris_=k);l=e.findChildren(a,
|
|
1533
|
+
shaka.dash.DashParser.prototype.processManifest_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,v,u,w,z,t,x,A,y,B,D,G,C,E,F,I,H,J,L,K,N,O,M,P,R;return $jscomp.asyncExecutePromiseGeneratorProgram(function(Q){switch(Q.nextAddress){case 1:d=shaka.util.Functional;e=shaka.util.XmlUtils;(f=c.config_.dash.manifestPreprocessor)&&f(a);g=[b];h=e.findChildren(a,"Location").map(e.getContents).filter(d.isNotNull);0<h.length&&(k=shaka.util.ManifestParserUtils.resolveUris(g,h),g=c.manifestUris_=k);l=e.findChildren(a,
|
|
1535
1534
|
"BaseURL");m=l.map(e.getContents);n=shaka.util.ManifestParserUtils.resolveUris(g,m);p=0;l&&l.length&&(p=e.parseAttr(l[0],"availabilityTimeOffset",e.parseFloat)||0);q=c.config_.dash.ignoreMinBufferTime;r=0;q||(r=e.parseAttr(a,"minBufferTime",e.parseDuration)||0);c.updatePeriod_=e.parseAttr(a,"minimumUpdatePeriod",e.parseDuration,-1);v=e.parseAttr(a,"availabilityStartTime",e.parseDate);u=e.parseAttr(a,"timeShiftBufferDepth",e.parseDuration);w=c.config_.dash.ignoreSuggestedPresentationDelay;z=null;w||
|
|
1536
1535
|
(z=e.parseAttr(a,"suggestedPresentationDelay",e.parseDuration));t=c.config_.dash.ignoreMaxSegmentDuration;x=null;t||(x=e.parseAttr(a,"maxSegmentDuration",e.parseDuration));A=a.getAttribute("type")||"static";if(c.manifest_)for(y=c.manifest_.presentationTimeline,B=$jscomp.makeIterator(Object.values(c.streamMap_)),D=B.next();!D.done;D=B.next())G=D.value,G.segmentIndex&&G.segmentIndex.evict(y.getSegmentAvailabilityStart());else C=c.config_.defaultPresentationDelay||1.5*r,E=null!=z?z:C,y=new shaka.media.PresentationTimeline(v,
|
|
1537
1536
|
E,c.config_.dash.autoCorrectDrift);y.setStatic("static"==A);(F=y.isLive())&&!isNaN(c.config_.availabilityWindowOverride)&&(u=c.config_.availabilityWindowOverride);null==u&&(u=Infinity);y.setSegmentAvailabilityDuration(u);I=a.getAttribute("profiles")||"";H={dynamic:"static"!=A,presentationTimeline:y,period:null,periodInfo:null,adaptationSet:null,representation:null,bandwidth:0,indexRangeWarningGiven:!1,availabilityTimeOffset:p,profiles:I.split(",")};J=c.parsePeriods_(H,n,a);L=J.duration;K=J.periods;
|
|
1538
1537
|
"static"!=A&&J.durationDerivedFromPeriods||y.setDuration(L||Infinity);c.minTotalAvailabilityTimeOffset_&&!c.lowLatencyMode_&&(N=c.playerInterface_.isAutoLowLatencyMode())&&(c.playerInterface_.enableLowLatencyMode(),c.lowLatencyMode_=c.playerInterface_.isLowLatencyMode());c.lowLatencyMode_?y.setAvailabilityTimeOffset(c.minTotalAvailabilityTimeOffset_):c.minTotalAvailabilityTimeOffset_&&shaka.log.alwaysWarn("Low-latency DASH live stream detected, but low-latency streaming mode is not enabled in Shaka Player. Set streaming.lowLatencyMode configuration to true, and see https://bit.ly/3clctcj for details.");
|
|
1539
|
-
y.notifyMaxSegmentDuration(x||1);goog.DEBUG&&y.assertIsValid();return Q.yield(c.periodCombiner_.combinePeriods(K,H.dynamic),2);case 2:if(c.manifest_){c.manifest_.variants=c.periodCombiner_.getVariants();
|
|
1540
|
-
imageStreams:c.periodCombiner_.getImageStreams(),offlineSessionIds:[],minBufferTime:r||0,sequenceMode:c.config_.dash.sequenceMode};if(!y.usingPresentationStartTime()){Q.jumpTo(4);break}
|
|
1538
|
+
y.notifyMaxSegmentDuration(x||1);goog.DEBUG&&y.assertIsValid();return Q.yield(c.periodCombiner_.combinePeriods(K,H.dynamic),2);case 2:if(c.manifest_){c.manifest_.variants=c.periodCombiner_.getVariants();O=c.periodCombiner_.getTextStreams();0<O.length&&(c.manifest_.textStreams=O);c.manifest_.imageStreams=c.periodCombiner_.getImageStreams();c.playerInterface_.filter(c.manifest_);Q.jumpTo(3);break}c.manifest_={presentationTimeline:y,variants:c.periodCombiner_.getVariants(),textStreams:c.periodCombiner_.getTextStreams(),
|
|
1539
|
+
imageStreams:c.periodCombiner_.getImageStreams(),offlineSessionIds:[],minBufferTime:r||0,sequenceMode:c.config_.dash.sequenceMode};if(!y.usingPresentationStartTime()){Q.jumpTo(4);break}M=shaka.util.XmlUtils;P=M.findChildren(a,"UTCTiming");return Q.yield(c.parseUtcTiming_(n,P),5);case 5:R=Q.yieldResult;if(!c.playerInterface_)return Q.return();y.setClockOffset(R);case 4:y.lockStartTime();case 3:c.playerInterface_.makeTextStreamsForClosedCaptions(c.manifest_),Q.jumpToEnd()}})};
|
|
1541
1540
|
shaka.dash.DashParser.prototype.parsePeriods_=function(a,b,c){var d=shaka.util.XmlUtils,e=d.parseAttr(c,"mediaPresentationDuration",d.parseDuration),f=[],g=0;c=d.findChildren(c,"Period");for(var h=0;h<c.length;h++){var k=c[h],l=c[h+1],m=d.parseAttr(k,"start",d.parseDuration,g),n=k.id,p=d.parseAttr(k,"duration",d.parseDuration),q=null;if(l){var r=d.parseAttr(l,"start",d.parseDuration);null!=r&&(q=r-m)}else null!=e&&(q=e-m);r=shaka.util.ManifestParserUtils.GAP_OVERLAP_TOLERANCE_SECONDS;q&&p&&Math.abs(q-
|
|
1542
1541
|
p)>r&&shaka.log.warning("There is a gap/overlap between Periods",k);null==q&&(q=p);if(null!==this.largestPeriodStartTime_&&null!==n&&null!==m&&m<this.largestPeriodStartTime_&&!this.lastManifestUpdatePeriodIds_.includes(n)&&h+1!=c.length)shaka.log.debug("Skipping Period with ID "+n+" as its start time is smaller than the largest period start time that has been seen, and ID is unseen before");else{null!==m&&(null===this.largestPeriodStartTime_||m>this.largestPeriodStartTime_)&&(this.largestPeriodStartTime_=
|
|
1543
1542
|
m);g=this.parsePeriod_(a,b,{start:m,duration:q,node:k,isLastPeriod:null==q||!l});f.push(g);a.period.id&&q&&(this.periodDurations_[a.period.id]=q);if(null==q){l&&shaka.log.warning("Skipping Period",h+1,"and any subsequent Periods:","Period",h+1,"does not have a valid start time.",l);g=null;break}g=m+q}}this.lastManifestUpdatePeriodIds_=f.map(function(v){return v.id});return null!=e?(g!=e&&shaka.log.warning("@mediaPresentationDuration does not match the total duration of ","all Periods."),{periods:f,
|
|
@@ -1622,8 +1621,8 @@ h=[];k=[];l=[];if(f.type==shaka.hls.PlaylistType.MEDIA)return D=c.config_.hls.me
|
|
|
1622
1621
|
D=E+'; codecs="'+I+'"'))),H=shaka.util.MimeUtils.getBasicType(D),J=H.split("/")[0],L=shaka.util.MimeUtils.getCodecs(D),K=new Map,P.yield(c.convertParsedPlaylistIntoStreamInfo_(f,b,b,L,J,"",!0,"Media Playlist",null,K,null,!1,!1,H),5);m=e.filterTagsByName(f.tags,"EXT-X-MEDIA");n=e.filterTagsByName(f.tags,"EXT-X-STREAM-INF");p=e.filterTagsByName(f.tags,"EXT-X-IMAGE-STREAM-INF");q=e.filterTagsByName(f.tags,"EXT-X-SESSION-KEY");c.parseCodecs_(n);r=e.filterTagsByName(f.tags,"EXT-X-SESSION-DATA");v=$jscomp.makeIterator(r);
|
|
1623
1622
|
for(u=v.next();!u.done;u=v.next())if(w=u.value,z=w.getAttributeValue("DATA-ID"),t=w.getAttributeValue("URI"),x=w.getAttributeValue("LANGUAGE"),A=w.getAttributeValue("VALUE"),y=(new Map).set("id",z),t&&y.set("uri",shaka.hls.Utils.constructAbsoluteUri(c.masterPlaylistUri_,t)),x&&y.set("language",x),A&&y.set("value",A),B=new shaka.util.FakeEvent("sessiondata",y),c.playerInterface_)c.playerInterface_.onEvent(B);c.createStreamInfosFromMediaTags_(m);c.parseClosedCaptions_(m);h=c.createVariantsForTags_(n,
|
|
1624
1623
|
q);k=c.parseTexts_(m);return P.yield(c.parseImages_(p),4);case 4:l=P.yieldResult;P.jumpTo(3);break;case 5:N=P.yieldResult,c.uriToStreamInfosMap_.set(b,N),h.push({id:0,language:"und",disabledUntilTime:0,primary:!0,audio:"audio"==J?N.stream:null,video:"video"==J?N.stream:null,bandwidth:0,allowedByApplication:!0,allowedByKeySystem:!0,decodingInfos:[]});case 3:if(!c.playerInterface_)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.OPERATION_ABORTED);
|
|
1625
|
-
goog.asserts.assert(null==c.presentationTimeline_,"Presentation timeline created early!");c.presentationTimeline_=new shaka.media.PresentationTimeline(null,0);c.presentationTimeline_.setStatic(!0);f.type==shaka.hls.PlaylistType.MEDIA&&(c.isLive_()&&(c.changePresentationTimelineToLive_(),O=c.updatePlaylistDelay_,c.updatePlaylistTimer_.tickAfter(O)),M=Array.from(c.uriToStreamInfosMap_.values()),c.finalizeStreams_(M),c.determineDuration_());c.manifest_={presentationTimeline:c.presentationTimeline_,
|
|
1626
|
-
textStreams:k,imageStreams:l,offlineSessionIds:[],minBufferTime:0,sequenceMode:!0};c.playerInterface_.makeTextStreamsForClosedCaptions(c.manifest_);P.jumpToEnd()}})};
|
|
1624
|
+
goog.asserts.assert(null==c.presentationTimeline_,"Presentation timeline created early!");c.presentationTimeline_=new shaka.media.PresentationTimeline(null,0);c.presentationTimeline_.setStatic(!0);f.type==shaka.hls.PlaylistType.MEDIA&&(c.isLive_()&&(c.changePresentationTimelineToLive_(f),O=c.updatePlaylistDelay_,c.updatePlaylistTimer_.tickAfter(O)),M=Array.from(c.uriToStreamInfosMap_.values()),c.finalizeStreams_(M),c.determineDuration_());c.manifest_={presentationTimeline:c.presentationTimeline_,
|
|
1625
|
+
variants:h,textStreams:k,imageStreams:l,offlineSessionIds:[],minBufferTime:0,sequenceMode:!0};c.playerInterface_.makeTextStreamsForClosedCaptions(c.manifest_);P.jumpToEnd()}})};
|
|
1627
1626
|
shaka.hls.HlsParser.prototype.determineDuration_=function(){goog.asserts.assert(this.presentationTimeline_,"Presentation timeline not created!");if(this.isLive_()){if(this.updatePlaylistDelay_=this.minTargetDuration_,this.presentationType_==shaka.hls.HlsParser.PresentationType_.LIVE){var a=this.getLiveDuration_();this.config_.hls.useSafariBehaviorForLive&&(a=this.presentationTimeline_.getDelay());isNaN(this.config_.availabilityWindowOverride)||(a=this.config_.availabilityWindowOverride);this.presentationTimeline_.setSegmentAvailabilityDuration(a)}}else this.presentationTimeline_.setDuration(this.getMinDuration_());
|
|
1628
1627
|
this.presentationTimeline_.lockStartTime();goog.asserts.assert(!this.presentationTimeline_.usingPresentationStartTime(),"We should not be using the presentation start time in HLS!")};shaka.hls.HlsParser.prototype.parseMasterVariables_=function(a){a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next()){var c=b.value;b=c.getAttributeValue("NAME");c=c.getAttributeValue("VALUE");b&&c&&(this.globalVariables_.has(b)||this.globalVariables_.set(b,c))}};
|
|
1629
1628
|
shaka.hls.HlsParser.prototype.parseMediaVariables_=function(a){var b=new Map;a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next()){var d=c.value;c=d.getAttributeValue("NAME");var e=d.getAttributeValue("VALUE");d=d.getAttributeValue("IMPORT");c&&e&&b.set(c,e);d&&(c=this.globalVariables_.get(d))&&b.set(d,c)}return b};
|
|
@@ -1646,10 +1645,10 @@ shaka.hls.HlsParser.prototype.getType_=function(a){a=a.getRequiredAttrValue("TYP
|
|
|
1646
1645
|
shaka.hls.HlsParser.prototype.createVariants_=function(a,b,c,d,e,f,g,h,k){for(var l=shaka.util.ManifestParserUtils.ContentType,m=shaka.media.DrmEngine,n=$jscomp.makeIterator(b),p=n.next();!p.done;p=n.next())this.addVideoAttributes_(p.value.stream,d,e,f,g);d=this.config_.disableAudio;if(!a.length||d)a=[null];d=this.config_.disableVideo;if(!b.length||d)b=[null];d=[];a=$jscomp.makeIterator(a);for(e=a.next();!e.done;e=a.next())for(e=e.value,f=$jscomp.makeIterator(b),g=f.next();!g.done;g=f.next()){var q=
|
|
1647
1646
|
g.value;if(g=e?e.stream:null)g.drmInfos=h,g.keyIds=k;if(n=q?q.stream:null)n.drmInfos=h,n.keyIds=k;p=e?e.stream.drmInfos:null;var r=q?q.stream.drmInfos:null;q=(q?q.verbatimMediaPlaylistUri:"")+" - "+(e?e.verbatimMediaPlaylistUri:"");g&&n&&!m.areDrmCompatible(p,r)?shaka.log.warning("Incompatible DRM info in HLS variant. Skipping."):this.variantUriSet_.has(q)?shaka.log.debug("Skipping variant which only differs in text streams."):(goog.asserts.assert(!g||g.type==l.AUDIO,"Audio parameter mismatch!"),
|
|
1648
1647
|
goog.asserts.assert(!n||n.type==l.VIDEO,"Video parameter mismatch!"),g={id:this.globalId_++,language:g?g.language:"und",primary:!!g&&g.primary||!!n&&n.primary,audio:g,video:n,bandwidth:c,allowedByApplication:!0,allowedByKeySystem:!0,decodingInfos:[]},d.push(g),this.variantUriSet_.add(q))}return d};
|
|
1649
|
-
shaka.hls.HlsParser.prototype.parseClosedCaptions_=function(a){a=shaka.hls.Utils.filterTagsByType(a,"CLOSED-CAPTIONS");a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next()){var c=b.value;goog.asserts.assert("EXT-X-MEDIA"==c.name,"Should only be called on media tags!");b=this.getLanguage_(c);
|
|
1650
|
-
b)}};
|
|
1651
|
-
shaka.hls.HlsParser.prototype.createStreamInfoFromMediaTag_=function(a){goog.asserts.assert("EXT-X-MEDIA"==a.name,"Should only be called on media tags!");var b=a.getRequiredAttrValue("GROUP-ID"),c="",d=this.getType_(a);d==shaka.util.ManifestParserUtils.ContentType.TEXT?c=a.getAttributeValue("CODECS")||"":b&&this.groupIdToCodecsMap_.has(b)&&(c=this.groupIdToCodecsMap_.get(b));var e=this.variableSubstitution_(a.getRequiredAttrValue("URI"),this.globalVariables_);if(this.uriToStreamInfosMap_.has(e))return this.uriToStreamInfosMap_.get(e);
|
|
1652
|
-
this.getLanguage_(a),g=a.getAttributeValue("NAME"),h="YES"==a.getAttributeValue("DEFAULT"),k="audio"==d?this.getChannelsCount_(a):null,l="audio"==d?this.isSpatialAudio_(a):!1,m=a.getAttributeValue("CHARACTERISTICS");a=a.getAttributeValue("FORCED");c=this.createStreamInfo_(e,c,d,f,h,g,k,null,m,"YES"==a,l);this.groupIdToStreamInfosMap_.has(b)?this.groupIdToStreamInfosMap_.get(b).push(c):this.groupIdToStreamInfosMap_.set(b,[c]);if(this.uriToStreamInfosMap_.has(e))return this.uriToStreamInfosMap_.get(e);
|
|
1648
|
+
shaka.hls.HlsParser.prototype.parseClosedCaptions_=function(a){a=shaka.hls.Utils.filterTagsByType(a,"CLOSED-CAPTIONS");a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next()){var c=b.value;goog.asserts.assert("EXT-X-MEDIA"==c.name,"Should only be called on media tags!");var d=c.getAttributeValue("LANGUAGE");b=this.getLanguage_(c);d||(d=c.getAttributeValue("NAME"))&&(b=d);d=c.getRequiredAttrValue("GROUP-ID");c=c.getRequiredAttrValue("INSTREAM-ID").replace("SERVICE","svc");this.groupIdToClosedCaptionsMap_.get(d)||
|
|
1649
|
+
this.groupIdToClosedCaptionsMap_.set(d,new Map);this.groupIdToClosedCaptionsMap_.get(d).set(c,b)}};
|
|
1650
|
+
shaka.hls.HlsParser.prototype.createStreamInfoFromMediaTag_=function(a){goog.asserts.assert("EXT-X-MEDIA"==a.name,"Should only be called on media tags!");var b=a.getRequiredAttrValue("GROUP-ID"),c="",d=this.getType_(a);d==shaka.util.ManifestParserUtils.ContentType.TEXT?c=a.getAttributeValue("CODECS")||"":b&&this.groupIdToCodecsMap_.has(b)&&(c=this.groupIdToCodecsMap_.get(b));var e=this.variableSubstitution_(a.getRequiredAttrValue("URI"),this.globalVariables_);if(this.uriToStreamInfosMap_.has(e))return this.uriToStreamInfosMap_.get(e);
|
|
1651
|
+
var f=this.getLanguage_(a),g=a.getAttributeValue("NAME"),h="YES"==a.getAttributeValue("DEFAULT"),k="audio"==d?this.getChannelsCount_(a):null,l="audio"==d?this.isSpatialAudio_(a):!1,m=a.getAttributeValue("CHARACTERISTICS");a=a.getAttributeValue("FORCED");c=this.createStreamInfo_(e,c,d,f,h,g,k,null,m,"YES"==a,l);this.groupIdToStreamInfosMap_.has(b)?this.groupIdToStreamInfosMap_.get(b).push(c):this.groupIdToStreamInfosMap_.set(b,[c]);if(this.uriToStreamInfosMap_.has(e))return this.uriToStreamInfosMap_.get(e);
|
|
1653
1652
|
this.uriToStreamInfosMap_.set(e,c);return c};
|
|
1654
1653
|
shaka.hls.HlsParser.prototype.createStreamInfoFromImageTag_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p;return $jscomp.asyncExecutePromiseGeneratorProgram(function(q){if(1==q.nextAddress){goog.asserts.assert("EXT-X-IMAGE-STREAM-INF"==a.name,"Should only be called on image tags!");c=shaka.util.ManifestParserUtils.ContentType.IMAGE;d=b.variableSubstitution_(a.getRequiredAttrValue("URI"),b.globalVariables_);e=a.getAttributeValue("CODECS","jpeg")||"";if(b.uriToStreamInfosMap_.has(d))return q.return(b.uriToStreamInfosMap_.get(d));f=
|
|
1655
1654
|
b.getLanguage_(a);g=a.getAttributeValue("NAME");h=a.getAttributeValue("CHARACTERISTICS");k=b.createStreamInfo_(d,e,c,f,!1,g,null,null,h,!1,!1);return b.uriToStreamInfosMap_.has(d)?q.return(b.uriToStreamInfosMap_.get(d)):(l=a.getAttributeValue("RESOLUTION"))?q.yield(k.stream.createSegmentIndex(),3):q.jumpTo(2)}2!=q.nextAddress&&(m=k.stream.segmentIndex.get(0),n=m.getTilesLayout())&&(k.stream.width=Number(l.split("x")[0])*Number(n.split("x")[0]),k.stream.height=Number(l.split("x")[1])*Number(n.split("x")[1]));
|
|
@@ -1657,7 +1656,7 @@ if(p=a.getAttributeValue("BANDWIDTH"))k.stream.bandwidth=Number(p);b.uriToStream
|
|
|
1657
1656
|
shaka.hls.HlsParser.prototype.createStreamInfoFromVariantTag_=function(a,b,c){goog.asserts.assert("EXT-X-STREAM-INF"==a.name,"Should only be called on variant tags!");var d=this.variableSubstitution_(a.getRequiredAttrValue("URI"),this.globalVariables_);if(this.uriToStreamInfosMap_.has(d))return this.uriToStreamInfosMap_.get(d);a=this.getClosedCaptions_(a,c);b=shaka.util.ManifestParserUtils.guessCodecs(c,b);c=this.createStreamInfo_(d,b,c,"und",!1,null,null,a,null,!1,!1);if(this.uriToStreamInfosMap_.has(d))return this.uriToStreamInfosMap_.get(d);
|
|
1658
1657
|
this.uriToStreamInfosMap_.set(d,c);return c};
|
|
1659
1658
|
shaka.hls.HlsParser.prototype.createStreamInfo_=function(a,b,c,d,e,f,g,h,k,l,m){var n=this,p=shaka.hls.Utils.constructAbsoluteUri(this.masterPlaylistUri_,a),q=this.makeStreamObject_(b,c,d,e,f,g,h,k,l,m);shaka.media.MediaSourceEngine.RAW_FORMATS.includes(q.mimeType)&&(q.codecs="");var r={stream:q,type:c,verbatimMediaPlaylistUri:a,absoluteMediaPlaylistUri:p,minTimestamp:0,maxTimestamp:0,mediaSequenceToStartTime:new Map,canSkipSegments:!1,hasEndList:!1,firstSequenceNumber:-1,loadedOnce:!1},v=function(z){var t,
|
|
1660
|
-
x,A,y,B,D,G,C,E,F,I,H,J,L;return $jscomp.asyncExecutePromiseGeneratorProgram(function(K){if(1==K.nextAddress)return K.yield(n.requestManifest_(r.absoluteMediaPlaylistUri),2);if(3!=K.nextAddress){t=K.yieldResult;if(z.aborted)return K.return();x=t.uri;A=n.manifestTextParser_.parsePlaylist(t.data,x);y=n.isLive_();return K.yield(n.convertParsedPlaylistIntoStreamInfo_(A,a,x,b,c,d,e,f,g,h,k,l,m),3)}B=K.yieldResult;if(z.aborted)return K.return();D=B.stream;n.isLive_()&&!y&&n.changePresentationTimelineToLive_();
|
|
1659
|
+
x,A,y,B,D,G,C,E,F,I,H,J,L;return $jscomp.asyncExecutePromiseGeneratorProgram(function(K){if(1==K.nextAddress)return K.yield(n.requestManifest_(r.absoluteMediaPlaylistUri),2);if(3!=K.nextAddress){t=K.yieldResult;if(z.aborted)return K.return();x=t.uri;A=n.manifestTextParser_.parsePlaylist(t.data,x);y=n.isLive_();return K.yield(n.convertParsedPlaylistIntoStreamInfo_(A,a,x,b,c,d,e,f,g,h,k,l,m),3)}B=K.yieldResult;if(z.aborted)return K.return();D=B.stream;n.isLive_()&&!y&&n.changePresentationTimelineToLive_(A);
|
|
1661
1660
|
r.absoluteMediaPlaylistUri=x;r.minTimestamp=B.minTimestamp;r.maxTimestamp=B.maxTimestamp;r.canSkipSegments=B.canSkipSegments;r.hasEndList=B.hasEndList;r.mediaSequenceToStartTime=B.mediaSequenceToStartTime;r.loadedOnce=!0;q.segmentIndex=D.segmentIndex;q.encrypted=D.encrypted;q.drmInfos=D.drmInfos;q.keyIds=D.keyIds;q.mimeType=D.mimeType;shaka.media.MediaSourceEngine.RAW_FORMATS.includes(q.mimeType)&&(q.codecs="");q.drmInfos.length&&n.playerInterface_.newDrmInfo(q);G=shaka.util.ManifestParserUtils.ContentType;
|
|
1662
1661
|
if(c==G.VIDEO||c==G.AUDIO)for(C=$jscomp.makeIterator(n.uriToStreamInfosMap_.values()),E=C.next();!E.done;E=C.next())F=E.value,F.loadedOnce||F.type!=c||(F.stream.mimeType=D.mimeType,shaka.media.MediaSourceEngine.RAW_FORMATS.includes(F.stream.mimeType)&&(F.stream.codecs=""));c==G.TEXT&&(I=D.segmentIndex.get(0))&&I.initSegmentReference&&(q.mimeType="application/mp4");n.hasEnoughInfoToFinalizeStreams_()&&(n.streamsFinalized_?n.finalizeStreams_([r]):(n.streamsFinalized_=!0,H=Array.from(n.uriToStreamInfosMap_.values()),
|
|
1663
1662
|
J=H.filter(function(N){return N.stream.segmentIndex}),n.finalizeStreams_(J),n.determineDuration_(),L=n.updatePlaylistDelay_,0<L&&n.updatePlaylistTimer_.tickAfter(L)));K.jumpToEnd()})},u=null,w=new AbortController;q.createSegmentIndex=function(){if(u)return u;w=new AbortController;return u=new Promise(function(z){z(v(w.signal))})};q.closeSegmentIndex=function(){u&&!q.segmentIndex&&w.abort();q.segmentIndex&&(q.segmentIndex.release(),q.segmentIndex=null);u=null};return r};
|
|
@@ -1679,20 +1678,20 @@ shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_AES_128_INVALID_IV_
|
|
|
1679
1678
|
p.nextAddress)return p.yield(c.makeNetworkRequest_(h,g),2);if(3!=p.nextAddress){l=p.yieldResult;if(!l.data||16!=l.data.byteLength)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_AES_128_INVALID_KEY_LENGTH);m={name:"AES-CBC"};n=k;return p.yield(window.crypto.subtle.importKey("raw",l.data,m,!0,["decrypt"]),3)}n.cryptoKey=p.yieldResult;k.fetchKey=void 0;p.jumpToEnd()})}};return k};
|
|
1680
1679
|
shaka.hls.HlsParser.prototype.determinePresentationType_=function(a){var b=shaka.hls.HlsParser.PresentationType_,c=shaka.hls.Utils.getFirstTagWithName(a.tags,"EXT-X-PLAYLIST-TYPE"),d=shaka.hls.Utils.getFirstTagWithName(a.tags,"EXT-X-ENDLIST");d=c&&"VOD"==c.value||d;c=c&&"EVENT"==c.value&&!d;c=!d&&!c;d?this.setPresentationType_(b.VOD):(c?this.setPresentationType_(b.LIVE):this.setPresentationType_(b.EVENT),b=this.getRequiredTag_(a.tags,"EXT-X-TARGETDURATION"),b=Number(b.value),d=shaka.hls.Utils.getFirstTagWithName(a.tags,
|
|
1681
1680
|
"EXT-X-PART-INF"),this.lowLatencyMode_&&d?(this.partialTargetDuration_=Number(d.getRequiredAttrValue("PART-TARGET")),this.minTargetDuration_=Math.min(this.partialTargetDuration_,this.minTargetDuration_),this.lowLatencyPresentationDelay_=(a=shaka.hls.Utils.getFirstTagWithName(a.tags,"EXT-X-SERVER-CONTROL"))?Number(a.getRequiredAttrValue("PART-HOLD-BACK")):0):this.minTargetDuration_=Math.min(b,this.minTargetDuration_),this.maxTargetDuration_=Math.max(b,this.maxTargetDuration_))};
|
|
1682
|
-
shaka.hls.HlsParser.prototype.changePresentationTimelineToLive_=function(){
|
|
1683
|
-
shaka.hls.HlsParser.prototype.getInitSegmentReference_=function(a,b,c){
|
|
1684
|
-
shaka.hls.HlsParser.prototype.createInitSegmentReference_=function(a,b){var
|
|
1685
|
-
shaka.hls.HlsParser.prototype.createSegmentReference_=function(a,b,c,d,e,f,g,h
|
|
1686
|
-
shaka.hls.Utils.getFirstTagWithName(
|
|
1687
|
-
"EXTINF");if(!this.lowLatencyMode_)return null}var
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
Number(g)));return new shaka.media.SegmentReference(d,
|
|
1681
|
+
shaka.hls.HlsParser.prototype.changePresentationTimelineToLive_=function(a){if(this.config_.defaultPresentationDelay)a=this.config_.defaultPresentationDelay;else if(this.lowLatencyPresentationDelay_)a=this.lowLatencyPresentationDelay_;else{a=a.segments.length;var b=this.config_.hls.liveSegmentsDelay;b>a-2&&(b=Math.max(1,a-2));a=this.maxTargetDuration_*b}this.presentationTimeline_.setPresentationStartTime(0);this.presentationTimeline_.setDelay(a);this.presentationTimeline_.setStatic(!1)};
|
|
1682
|
+
shaka.hls.HlsParser.prototype.getInitSegmentReference_=function(a,b,c){var d=shaka.hls.Utils.getFirstTagWithName(b,"EXT-X-MAP");if(!d)return null;var e=d.getRequiredAttrValue("URI");e=this.variableSubstitution_(shaka.hls.Utils.constructAbsoluteUri(a.absoluteUri,e),c);c=[e,d.getAttributeValue("BYTERANGE","")].join("-");if(!this.mapTagToInitSegmentRefMap_.has(c)){var f=void 0;b=$jscomp.makeIterator(b);for(var g=b.next();!g.done;g=b.next())g=g.value,"EXT-X-KEY"==g.name&&"AES-128"==g.getRequiredAttrValue("METHOD")&&
|
|
1683
|
+
g.id<d.id&&(f=this.parseAES128DrmTag_(g,a));a=this.createInitSegmentReference_(e,d,f);this.mapTagToInitSegmentRefMap_.set(c,a)}return this.mapTagToInitSegmentRefMap_.get(c)};shaka.hls.HlsParser.prototype.createInitSegmentReference_=function(a,b,c){var d=0,e=null;if(b=b.getAttributeValue("BYTERANGE"))d=b.split("@"),e=Number(d[0]),d=Number(d[1]),e=d+e-1,c&&(b=e+1-d,b%16&&(e+=16-b%16));return new shaka.media.InitSegmentReference(function(){return[a]},d,e,null,null,c)};
|
|
1684
|
+
shaka.hls.HlsParser.prototype.createSegmentReference_=function(a,b,c,d,e,f,g,h){var k=c.tags,l=this.variableSubstitution_(c.absoluteUri,e),m=shaka.hls.Utils.getFirstTagWithName(k,"EXTINF"),n=0;e=0;var p=null;c.partialSegments.length&&!this.lowLatencyMode_&&shaka.log.alwaysWarn("Low-latency HLS live stream detected, but low-latency streaming mode is not enabled in Shaka Player. Set streaming.lowLatencyMode configuration to true, and see https://bit.ly/3clctcj for details.");var q=null;if(!this.config_.hls.ignoreManifestProgramDateTime){var r=
|
|
1685
|
+
shaka.hls.Utils.getFirstTagWithName(k,"EXT-X-PROGRAM-DATE-TIME");r&&r.value&&(q=shaka.util.XmlUtils.parseDate(r.value),goog.asserts.assert(null!=q,"EXT-X-PROGRAM-DATE-TIME format not valid"))}r=shaka.media.SegmentReference.Status.AVAILABLE;shaka.hls.Utils.getFirstTagWithName(k,"EXT-X-GAP")&&(r=shaka.media.SegmentReference.Status.MISSING);if(!m){if(0==c.partialSegments.length)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_REQUIRED_TAG_MISSING,
|
|
1686
|
+
"EXTINF");if(!this.lowLatencyMode_)return null}var v=[];if(this.lowLatencyMode_){n={};for(var u=0;u<c.partialSegments.length;n={$jscomp$loop$prop$pAbsoluteUri$681:n.$jscomp$loop$prop$pAbsoluteUri$681},u++){var w=c.partialSegments[u],z=0==u?b:v[v.length-1],t=0==u?d:z.endTime,x=Number(w.getAttributeValue("DURATION"))||this.partialTargetDuration_;if(x){x=t+x;var A=0,y=null;"EXT-X-PRELOAD-HINT"==w.name?A=(A=w.getAttributeValue("BYTERANGE-START"))?Number(A):0:(A=w.getAttributeValue("BYTERANGE"),y=$jscomp.makeIterator(this.parseByteRange_(z,
|
|
1687
|
+
A)),A=y.next().value,y=y.next().value);if(z=w.getAttributeValue("URI"))n.$jscomp$loop$prop$pAbsoluteUri$681=shaka.hls.Utils.constructAbsoluteUri(f,z),z=shaka.media.SegmentReference.Status.AVAILABLE,"YES"==w.getAttributeValue("GAP")&&(z=shaka.media.SegmentReference.Status.MISSING),t=new shaka.media.SegmentReference(t,x,function(B){return function(){return[B.$jscomp$loop$prop$pAbsoluteUri$681]}}(n),A,y,a,0,0,Infinity,[],"",null,null,z),"EXT-X-PRELOAD-HINT"==w.name&&t.markAsPreload(),v.push(t)}}}if(m){c=
|
|
1688
|
+
m.value.split(",");c=Number(c[0]);if(0==c)return null;n=d+c}else if(v.length)n=v[v.length-1].endTime;else return null;(c=shaka.hls.Utils.getFirstTagWithName(k,"EXT-X-BYTERANGE"))?(p=$jscomp.makeIterator(this.parseByteRange_(b,c.value)),e=p.next().value,p=p.next().value):v.length&&(e=v[0].startByte,p=v[v.length-1].endByte);b="";c=null;g==shaka.util.ManifestParserUtils.ContentType.IMAGE&&(b="1x1",g=shaka.hls.Utils.getFirstTagWithName(k,"EXT-X-TILES"))&&(b=g.getRequiredAttrValue("LAYOUT"),(g=g.getAttributeValue("DURATION"))&&
|
|
1689
|
+
(c=Number(g)));return new shaka.media.SegmentReference(d,n,function(){return l.length?[l]:[]},e,p,a,0,0,Infinity,v,b,c,q,r,h)};shaka.hls.HlsParser.prototype.parseByteRange_=function(a,b){var c=0,d=null;b&&(c=b.split("@"),b=Number(c[0]),c[1]?c=Number(c[1]):(goog.asserts.assert(a,"Cannot refer back to previous HLS segment!"),c=a.endByte+1),d=c+b-1);return[c,d]};
|
|
1691
1690
|
shaka.hls.HlsParser.prototype.createSegments_=function(a,b,c,d,e,f){a=b.segments;goog.asserts.assert(a.length,"Playlist should have segments!");d=void 0;var g=shaka.hls.Utils.getFirstTagWithNameAsNumber(b.tags,"EXT-X-DISCONTINUITY-SEQUENCE",0),h=shaka.hls.Utils.getFirstTagWithNameAsNumber(b.tags,"EXT-X-MEDIA-SEQUENCE",0),k=shaka.hls.Utils.getFirstTagWithName(b.tags,"EXT-X-SKIP");k=k?Number(k.getAttributeValue("SKIPPED-SEGMENTS")):0;var l=h+k,m=0;this.isLive_()&&e.has(l)&&(m=e.get(l));for(var n=[],
|
|
1692
|
-
p=null,q=
|
|
1693
|
-
this.
|
|
1694
|
-
$jscomp$loop$prop$reference$574$686:c.$jscomp$loop$prop$reference$574$686,$jscomp$loop$prop$backwardAdd$687:c.$jscomp$loop$prop$backwardAdd$687},e++)if(c.$jscomp$loop$prop$reference$574$686=n[e],null==c.$jscomp$loop$prop$reference$574$686.syncTime)for(c.$jscomp$loop$prop$forwardAdd$684=0,c.$jscomp$loop$prop$forwardI$683=e,f=function(
|
|
1695
|
-
|
|
1691
|
+
p=null,q=0;q<a.length;q++){var r=a[q],v=0==q?m:p.endTime;l=h+k+q;shaka.hls.Utils.getFirstTagWithName(r.tags,"EXT-X-DISCONTINUITY")&&g++;var u=$jscomp.makeIterator(r.tags);for(var w=u.next();!w.done;w=u.next())w=w.value,"EXT-X-KEY"==w.name&&(d="AES-128"==w.getRequiredAttrValue("METHOD")?this.parseAES128DrmTag_(w,b):void 0);e.set(l,v);u=this.getInitSegmentReference_(b,r.tags,f);!this.lowLatencyMode_&&this.playerInterface_.isAutoLowLatencyMode()&&(this.playerInterface_.enableLowLatencyMode(),this.lowLatencyMode_=
|
|
1692
|
+
this.playerInterface_.isLowLatencyMode());if(r=this.createSegmentReference_(u,p,r,v,f,b.absoluteUri,c,d))p=r,r.discontinuitySequence=g,this.config_.hls.ignoreManifestProgramDateTime&&null!=this.minSequenceNumber_&&l<this.minSequenceNumber_||n.push(r)}if(b=n.some(function(z){return null!=z.syncTime}))for(c={},e=0;e<n.length;c={$jscomp$loop$prop$forwardI$683:c.$jscomp$loop$prop$forwardI$683,$jscomp$loop$prop$forwardAdd$684:c.$jscomp$loop$prop$forwardAdd$684,$jscomp$loop$prop$backwardI$685:c.$jscomp$loop$prop$backwardI$685,
|
|
1693
|
+
$jscomp$loop$prop$reference$574$686:c.$jscomp$loop$prop$reference$574$686,$jscomp$loop$prop$backwardAdd$687:c.$jscomp$loop$prop$backwardAdd$687},e++)if(c.$jscomp$loop$prop$reference$574$686=n[e],null==c.$jscomp$loop$prop$reference$574$686.syncTime)for(c.$jscomp$loop$prop$forwardAdd$684=0,c.$jscomp$loop$prop$forwardI$683=e,f=function(z){return function(){var t=n[z.$jscomp$loop$prop$forwardI$683];if(t){if(null!=t.syncTime)return t.syncTime+z.$jscomp$loop$prop$forwardAdd$684;z.$jscomp$loop$prop$forwardAdd$684-=
|
|
1694
|
+
t.endTime-t.startTime;z.$jscomp$loop$prop$forwardI$683+=1}return null}}(c),c.$jscomp$loop$prop$backwardAdd$687=0,c.$jscomp$loop$prop$backwardI$685=e,a=function(z){return function(){var t=n[z.$jscomp$loop$prop$backwardI$685];if(t){t!=z.$jscomp$loop$prop$reference$574$686&&(z.$jscomp$loop$prop$backwardAdd$687+=t.endTime-t.startTime);if(null!=t.syncTime)return t.syncTime+z.$jscomp$loop$prop$backwardAdd$687;--z.$jscomp$loop$prop$backwardI$685}return null}}(c);null==c.$jscomp$loop$prop$reference$574$686.syncTime;)c.$jscomp$loop$prop$reference$574$686.syncTime=
|
|
1696
1695
|
a(),null==c.$jscomp$loop$prop$reference$574$686.syncTime&&(c.$jscomp$loop$prop$reference$574$686.syncTime=f());if(b)for(c=$jscomp.makeIterator(n),e=c.next();!e.done;e=c.next())for(f=e.value,e=f.syncTime,f=$jscomp.makeIterator(f.partialReferences),a=f.next();!a.done;a=f.next())a=a.value,a.syncTime=e,e+=a.endTime-a.startTime;c=this.lowestSyncTime_;if(b&&Infinity!=c)for(b=$jscomp.makeIterator(n),e=b.next();!e.done;e=b.next())e.value.syncAgainst(c);return n};
|
|
1697
1696
|
shaka.hls.HlsParser.prototype.variableSubstitution_=function(a,b){if(!b.size)return a;a=String(a).replace(/%7B/g,"{").replace(/%7D/g,"}");var c=a.match(/{\$\w*}/g);if(c){c=$jscomp.makeIterator(c);for(var d=c.next();!d.done;d=c.next()){d=d.value;var e=d.slice(2,d.length-1),f=b.get(e);if(f)a=a.replace(d,f);else throw shaka.log.error("A variable has been found that is not declared",e),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_VARIABLE_NOT_FOUND,
|
|
1698
1697
|
e);}}return a};shaka.hls.HlsParser.prototype.guessMimeTypeBeforeLoading_=function(a,b){if(a==shaka.util.ManifestParserUtils.ContentType.TEXT){if("vtt"==b||"wvtt"==b)return"text/vtt";if(b&&""!==b)return"application/mp4"}return a!=shaka.util.ManifestParserUtils.ContentType.IMAGE||b&&"jpeg"!=b?a==shaka.util.ManifestParserUtils.ContentType.AUDIO&&"mp4a.40.34"==b?"audio/mpeg":null:"image/jpeg"};
|
|
@@ -2009,10 +2008,10 @@ e,"subFrameRate"),m=d.getAttributeNSList(h,e,"frameRateMultiplier"),n=d.getAttri
|
|
|
2009
2008
|
d.getChildren(m):[];n=Array.from(h.getElementsByTagName("style"));h=Array.from(h.getElementsByTagName("region"));p=[];q=$jscomp.makeIterator(h);for(var r=q.next();!r.done;r=q.next())(r=c.parseCueRegion_(r.value,n,e))&&p.push(r);if(d.findChildren(g,"p").length)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.INVALID_TEXT_CUE,"<p> can only be inside <div> in TTML");e=$jscomp.makeIterator(d.findChildren(g,"div"));for(q=e.next();!q.done;q=
|
|
2010
2009
|
e.next())if(d.findChildren(q.value,"span").length)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.INVALID_TEXT_CUE,"<span> can only be inside <p> in TTML");if(b=c.parseCue_(g,b,k,m,n,h,p,f,l,null,!1))b.backgroundColor||(b.backgroundColor="transparent"),a.push(b);return a};
|
|
2011
2010
|
shaka.text.TtmlTextParser.parseCue_=function(a,b,c,d,e,f,g,h,k,l,m){var n=a.parentNode;if(a.nodeType==Node.COMMENT_NODE)return null;if(a.nodeType==Node.TEXT_NODE){if(!m)return null;var p=document.createElement("span");p.textContent=a.textContent}else goog.asserts.assert(a.nodeType==Node.ELEMENT_NODE,"nodeType should be ELEMENT_NODE!"),p=a;goog.asserts.assert(p,"cueElement should be non-null!");for(var q=null,r=$jscomp.makeIterator(shaka.text.TtmlTextParser.smpteNsList_),v=r.next();!v.done&&!(q=shaka.text.TtmlTextParser.getElementsFromCollection_(p,
|
|
2012
|
-
"backgroundImage",d,"#",v.value)[0]);v=r.next());
|
|
2013
|
-
if(!(z||u||"br"==p.tagName||0!=
|
|
2014
|
-
w=Math.max(w,c.endTime);if("br"==p.tagName)return e=new shaka.text.Cue(u,w,""),e.lineBreak=!0,e;b="";v&&(b=p.textContent,
|
|
2015
|
-
!p.getAttribute("style")&&(g=shaka.text.TtmlTextParser.getElementsFromCollection_(l,"region",f,"")[0]);shaka.text.TtmlTextParser.addStyle_(b,p,g,q,e,
|
|
2011
|
+
"backgroundImage",d,"#",v.value)[0]);v=r.next());if("p"==a.nodeName||q)m=!0;a=m;r="default"==(p.getAttribute("xml:space")||(h?"default":"preserve"));v=Array.from(p.childNodes).every(function(x){return x.nodeType==Node.TEXT_NODE});h=[];if(!v)for(var u=$jscomp.makeIterator(p.childNodes),w=u.next();!w.done;w=u.next())(w=shaka.text.TtmlTextParser.parseCue_(w.value,b,c,d,e,f,g,r,k,p,m))&&h.push(w);d=null!=l;u=/\S/.test(p.textContent);var z=p.hasAttribute("begin")||p.hasAttribute("end")||p.hasAttribute("dur");
|
|
2012
|
+
if(!(z||u||"br"==p.tagName||0!=h.length||d&&!r))return null;w=shaka.text.TtmlTextParser.parseTime_(p,c);u=w.start;for(w=w.end;n&&n.nodeType==Node.ELEMENT_NODE&&"tt"!=n.tagName;)w=shaka.text.TtmlTextParser.resolveTime_(n,c,u,w),u=w.start,w=w.end,n=n.parentNode;null==u&&(u=0);u+=b.periodStart;w=null==w?Infinity:w+b.periodStart;u=Math.max(u,b.segmentStart);w=Math.min(w,b.segmentEnd);if(!z&&0<h.length)for(u=Infinity,w=0,b=$jscomp.makeIterator(h),c=b.next();!c.done;c=b.next())c=c.value,u=Math.min(u,c.startTime),
|
|
2013
|
+
w=Math.max(w,c.endTime);if("br"==p.tagName)return e=new shaka.text.Cue(u,w,""),e.lineBreak=!0,e;b="";v&&(b=p.textContent,r&&(b=b.trim(),b=b.replace(/\s+/g," ")));b=new shaka.text.Cue(u,w,b);b.nestedCues=h;m||(b.isContainer=!0);k&&(b.cellResolution=k);k=shaka.text.TtmlTextParser.getElementsFromCollection_(p,"region",f,"")[0];if(p.hasAttribute("region")&&k&&k.getAttribute("xml:id")){var t=k.getAttribute("xml:id");b.region=g.filter(function(x){return x.id==t})[0]}g=k;l&&d&&!p.getAttribute("region")&&
|
|
2014
|
+
!p.getAttribute("style")&&(g=shaka.text.TtmlTextParser.getElementsFromCollection_(l,"region",f,"")[0]);shaka.text.TtmlTextParser.addStyle_(b,p,g,q,e,a,0==h.length);return b};
|
|
2016
2015
|
shaka.text.TtmlTextParser.parseCueRegion_=function(a,b,c){var d=shaka.text.TtmlTextParser,e=new shaka.text.CueRegion,f=a.getAttribute("xml:id");if(!f)return shaka.log.warning("TtmlTextParser parser encountered a region with no id. Region will be ignored."),null;e.id=f;f=null;c&&(f=d.percentValues_.exec(c)||d.pixelValues_.exec(c));c=f?Number(f[1]):null;f=f?Number(f[2]):null;var g,h;if(g=d.getStyleAttributeFromRegion_(a,b,"extent"))g=(h=d.percentValues_.exec(g))||d.pixelValues_.exec(g),null!=g&&(e.width=
|
|
2017
2016
|
Number(g[1]),e.height=Number(g[2]),h||(null!=c&&(e.width=100*e.width/c),null!=f&&(e.height=100*e.height/f)),e.widthUnits=h||null!=c?shaka.text.CueRegion.units.PERCENTAGE:shaka.text.CueRegion.units.PX,e.heightUnits=h||null!=f?shaka.text.CueRegion.units.PERCENTAGE:shaka.text.CueRegion.units.PX);if(a=d.getStyleAttributeFromRegion_(a,b,"origin"))g=(h=d.percentValues_.exec(a))||d.pixelValues_.exec(a),null!=g&&(e.viewportAnchorX=Number(g[1]),e.viewportAnchorY=Number(g[2]),h||(null!=f&&(e.viewportAnchorY=
|
|
2018
2017
|
100*e.viewportAnchorY/f),null!=c&&(e.viewportAnchorX=100*e.viewportAnchorX/c)),e.viewportAnchorUnits=h||null!=c?shaka.text.CueRegion.units.PERCENTAGE:shaka.text.CueRegion.units.PX);return e};
|