@castlabs/prestoplay 6.19.0 → 6.19.1

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.
Files changed (62) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/cjs/cl.adobe.js +3 -3
  3. package/cjs/cl.airplay.js +3 -3
  4. package/cjs/cl.broadpeak.js +7 -7
  5. package/cjs/cl.cast.js +106 -106
  6. package/cjs/cl.conviva.js +32 -32
  7. package/cjs/cl.core.js +536 -534
  8. package/cjs/cl.crypto.js +9 -9
  9. package/cjs/cl.dash.js +77 -77
  10. package/cjs/cl.externs.js +1 -1
  11. package/cjs/cl.freewheel.js +18 -19
  12. package/cjs/cl.hls.js +69 -69
  13. package/cjs/cl.hlssmpte.js +6 -6
  14. package/cjs/cl.htmlcue.js +28 -29
  15. package/cjs/cl.ima.js +23 -23
  16. package/cjs/cl.mse.js +305 -307
  17. package/cjs/cl.muxdata.js +15 -15
  18. package/cjs/cl.onboard.js +3 -3
  19. package/cjs/cl.persistent.js +13 -13
  20. package/cjs/cl.playlist.js +6 -6
  21. package/cjs/cl.sessions.js +16 -16
  22. package/cjs/cl.simid.js +15 -15
  23. package/cjs/cl.smooth.js +70 -71
  24. package/cjs/cl.thumbnails.js +26 -26
  25. package/cjs/cl.tizen.js +69 -69
  26. package/cjs/cl.ttml.js +28 -29
  27. package/cjs/cl.verimatrix.js +5 -5
  28. package/cjs/cl.vimond.js +11 -12
  29. package/cjs/cl.vr.js +18 -18
  30. package/cjs/cl.vtt.js +14 -14
  31. package/cjs/cl.youbora.js +16 -16
  32. package/cl.adobe.js +3 -3
  33. package/cl.airplay.js +3 -3
  34. package/cl.broadpeak.js +5 -5
  35. package/cl.cast.js +84 -84
  36. package/cl.conviva.js +26 -26
  37. package/cl.core.js +386 -386
  38. package/cl.crypto.js +6 -6
  39. package/cl.dash.js +71 -71
  40. package/cl.externs.js +1 -1
  41. package/cl.freewheel.js +15 -15
  42. package/cl.hls.js +74 -74
  43. package/cl.hlssmpte.js +5 -5
  44. package/cl.htmlcue.js +25 -26
  45. package/cl.ima.js +14 -14
  46. package/cl.mse.js +271 -270
  47. package/cl.muxdata.js +11 -11
  48. package/cl.onboard.js +4 -4
  49. package/cl.persistent.js +10 -10
  50. package/cl.playlist.js +5 -5
  51. package/cl.sessions.js +10 -10
  52. package/cl.simid.js +13 -13
  53. package/cl.smooth.js +58 -58
  54. package/cl.thumbnails.js +17 -17
  55. package/cl.tizen.js +56 -56
  56. package/cl.ttml.js +22 -22
  57. package/cl.verimatrix.js +4 -4
  58. package/cl.vimond.js +9 -8
  59. package/cl.vr.js +14 -14
  60. package/cl.vtt.js +12 -12
  61. package/cl.youbora.js +12 -12
  62. package/package.json +1 -1
package/cl.hls.js CHANGED
@@ -1,74 +1,74 @@
1
- import {clpp} from "./cl.core.js";import './cl.mse.js';let g={};const _ = clpp._;var f=function(window){'use strict';var HH="CLOSED-CAPTIONS",IH="Could not parse MP4 segment start time.",JH="DURATION",KH="EXT-X-STREAM-INF",LH="Failed to infer discontinuity number",MH="Guessing audio-only",NH="METHOD",OH="SAMPLE-AES-CTR",PH="SUBTITLES",QH="Two EXT-X-KEY tags, one with METHOD\x3dAES-128 are applied to one ",RH="application/vnd.apple.mpegurl",SH="sample",TH="whole-segment",UH=function(a,b){return _.H(a,b,void 0,{required:!0})},VH=function(a){if(1>a.a)throw _.zl();--a.a},WH=function(a,b){for(const c in a){if(!(c in
2
- b))return!1;const d=a[c],e=b[c];if(d&&typeof d===_.Fe&&e&&typeof e===_.Fe){if(!WH(d,e))return!1}else if(void 0!==d&&void 0!==e&&d!==e)return!1}return!0},XH=function(a,b){if(!WH(a,b))return!1;for(const c in b){if(!(c in a))return!0;const d=a[c],e=b[c];if(!d&&e||d&&typeof d===_.Fe&&e&&typeof e===_.Fe&&XH(d,e))return!0}return!1},YH=function(a){if(null!==a&&void 0!==a)return Number(a)},ZH=function*(a){let b=-1,c=void 0,d=void 0;for(const e of a)0<=b&&(yield{rf:b,item:d,hh:c,next:e}),b++,c=d,d=e;-1!==
3
- b&&(yield{rf:b,hh:c,item:d,next:void 0})},$H=function(a,b){return a.filter(c=>c.name===b)},aI=function(a){const b=/^[a-zA-Z0-9_-]+$/,c=new Set;a.forEach(d=>{const e=_.H(d,"VALUE"),f=_.H(d,"NAME"),g=_.H(d,"IMPORT"),h=_.H(d,"QUERYPARAM");if(1!==[f,g,h].filter(Boolean).length||f&&null==e)throw new _.G(_.E,4,4044,{message:"Invalid tag.",text:d.toString()});d=f||g||h;if(c.has(d))throw new _.G(_.E,4,4044,`EXT-X-DEFINE redefined variable "${d}".`);if(!b.test(d))throw new _.G(_.E,4,4044,`EXT-X-DEFINE invalid variable name "${d}".`);
4
- c.add(d)})},bI=function(a,b){const c=Array.isArray(b)?b:[b];return a.filter(d=>{d=UH(d,_.Kb);return c.includes(d)})},cI=function(a,b){return a.some(c=>c.name===b)},dI=function(a,b,c){c=void 0===c?{}:c;a=a.find(d=>d.name===b)||null;if(!a&&c.required)throw new _.G(_.E,4,4024,{missingTag:b});return a},eI=function(a){var b=dI(a,"EXT-X-TILES");if(!b)return{Vc:1,kd:1,durationPerTile:null};a=_.H(b,"LAYOUT")||"1x1";b=_.H(b,JH);a=_.kB(a);return{Vc:a.Vc,kd:a.kd,durationPerTile:b?Number(b):null}},fI=function(a,
5
- b,c){c=void 0===c?!0:c;a=new _.Rh(a);b=new _.Rh(b);b=a.resolve(b).toString();return c?b:decodeURI(b)},gI=function(a){const b=new Set;a.variants.forEach(c=>{c.audio&&b.add(c.audio);c.video&&b.add(c.video)});a.textStreams.forEach(c=>b.add(c));a.thumbStreams.forEach(c=>b.add(c));return Array.from(b)},hI=function(a,b){Array.isArray(a)||(a=[a]);a.forEach(c=>{for(const d of gI(c))b(d,c)})},iI=function(a){return a.some(b=>cI(b.aa,_.Fa))},jI=function(a){return a.type===_.p||a.type===_.t},kI=function(a,b){const c=
6
- dI(a,_.Fa);if(b&&c)return _.Ub;a=dI(a,_.La);if(!a)return"LIVE";if(a.value===_.Ub)return _.Ub;if("EVENT"===a.value)return"EVENT";throw new _.G(_.E,4,4044,`Invalid EXT-X-PLAYLIST-TYPE value: ${a.value}`);},lI=function(a){a={AUDIO:_.p,VIDEO:_.t,SUBTITLES:_.F,"CLOSED-CAPTIONS":_.F}[a.toUpperCase()];if(!a)throw new _.G(_.E,4,4044,"EXT-X-MEDIA tag has an invalid TYPE attribute.");return a},mI=function(a,b,c){c=void 0===c?!1:c;var d=0;let e=null;if(a){d=a.split("@");a=Number(d[0]);if(0>=a)throw new _.G(_.E,
7
- 4,4044,"Byte range length must be positive.");if(d[1]){if(d=Number(d[1]),0>d)throw new _.G(_.E,4,4044,"Byte range start byte must not be negative.");}else{if(c)throw new _.G(_.E,4,4044,"Invalid byte range, offset is required but missing.");if(null==b)throw new _.G(_.E,4,4044,"Invalid byte range, cannot calculate offset based on previous byte ranges.");d=b+1}e=d+a-1}return{wa:d,ka:e}},nI=function(a,b){a=dI(a,_.Ba);return mI(a?a.value:null,b)},oI=function(a){a=dI(a,"EXTINF",{required:!0}).value.split(",");
8
- return{duration:Number(a[0]),title:a[1]||null}},pI=function(a,b){b=void 0===b?{}:b;const c={od:!1,lg:!1,mg:null,Og:null,Ef:null};a=dI(a,_.Oa,{required:b.Kf});if(!a)return c;const d=e=>null==e?null:Number(e);c.od="YES"===_.H(a,"CAN-BLOCK-RELOAD");c.lg="YES"===_.H(a,"CAN-SKIP-DATERANGES");c.mg=d(_.H(a,"CAN-SKIP-UNTIL"));c.Og=d(_.H(a,"HOLD-BACK"));c.Ef=d(_.H(a,"PART-HOLD-BACK",void 0,{required:b.Kf}));return c},qI=function(a,b,c){c=void 0===c?!1:c;a=_.H(a,"BYTERANGE");return mI(a,b,c)},sI=function(a,
9
- b){const c=nI(a.aa,null);return new rI(0,0,0,()=>[a.a],c.wa,c.ka,0,b)},tI=function(a,b){if(null==a)return null;a=Object.assign({},a);null==a.iv&&(a.iv=_.Mi(new Uint8Array(12),new Uint8Array([b>>24&255,b>>16&255,b>>8&255,b&255])));return a},uI=function(a){let b=Infinity,c=Infinity;gI(a).filter(jI).forEach(d=>{{d=d.U;var e=d[0].startTime;const f=d[d.length-1].endTime;d=e;e=f-e}b=Math.min(b,d);c=Math.min(c,e)});return{Ic:b,duration:c}},vI=function(a){return a.map(b=>{({duration:b}=uI(b));return b}).reduce((b,
10
- c)=>b+c,0)},wI=function(a){return(a.video?a.video.Ca:"")+" - "+(a.audio?a.audio.Ca:"")},xI=function(a,b,c,d){if(b===_.Ub)return{delay:0,qc:0};b=dI(a,_.Ja);if(c&&b){c=Number(UH(b,"PART-TARGET"));if(null!=d)return{delay:d,qc:c};({Ef:d}=pI(a,{Kf:!0}));return{delay:d,qc:c}}a=dI(a,_.Qa,{required:!0});a=Number(a.value);return null!=d?{delay:d,qc:a}:{delay:3*a,qc:a}},yI=function(a){const b=[];hI(a,c=>{b.push(c.Wg)});return{delay:Math.max(...b.map(c=>c.delay)),qc:Math.min(...b.map(c=>c.qc))}},AI=function(a){const b=
11
- new Map;a.forEach(c=>{var d=`${zI(c).type}:${zI(c).groupId}`;b.has(d)?(d=b.get(d),d.includes(c)||d.push(c)):b.set(d,[c])});return b},BI=function(a){const b=new Map;for(const c of a){a=_.H(c,_.cb);a=_.ei(a||_.ag);const d=UH(c,_.Wa),e=UH(c,"INSTREAM-ID");b.has(d)||b.set(d,new Map);b.get(d).set(e,a)}return b},DI=function(a){a=a.audio.concat(a.video);for(const b of a)a=zI(b).codecs.split(",").filter(c=>"mp4a.40.34"!==c),CI(b,a)},EI=function(a,b){if(!a)return null;const c=a.Ca;return b.find(d=>zI(d).Ca===
12
- c)||null},FI=function(a){for(const b of a)if(b.startsWith("#EXT-")&&(a=_.Ri(0,b),_.at.has(a.name)))return 1;return 0},GI=function(a,b){return a.replace(/\{\$([a-zA-Z0-9_-]+)\}/g,(c,d)=>{c=b.get(d);if(null==c)throw new _.G(_.E,4,4044,`Undefined variable '${d}'`);return c})},HI=function(a,b){a.forEach(c=>{c.attributes.forEach(d=>{d.value=GI(d.value,b)})})},II=function(a,b,c){HI(a,c);b.forEach(d=>{d.a&&(d.a=GI(d.a,c));HI(d.aa,c);HI(d.f,c)})},JI=function(a,b){const c=new Map,d=new URL(b);a.forEach(e=>
13
- {var f=_.H(e,"NAME"),g=_.H(e,"QUERYPARAM");if(f)g=UH(e,"VALUE"),c.set(f,g);else if(g){f=d.searchParams.get(g);if(null==f)throw new _.G(_.E,4,4044,`Query param '${g}' missing in playlist URI.`);if(!f)throw new _.G(_.E,4,4044,`Query param '${g}' has no associated value`+" in playlist URI.");c.set(g,decodeURIComponent(f))}});return c},MI=function(a,b,c){const d=[];for(let e=1;e<b.length;e++){const f=KI(a,b[e]);d.push(f);if(f.name===KH){const g=b[e+1];if(!g)throw new _.G(_.E,4,4044,"EXT-X-STREAM-INF is not followed by a URI.");
14
- f.attributes.push(new _.Pi(_.Mb,g));e++}}b=$H(d,"EXT-X-DEFINE");aI(b);b=JI(b,c);a.a=b;II(d,[],a.a);return new LI(c,0,d)},PI=function(a,b,c){let d=[];for(var e=1;e<b.length;){const f=KI(a,b[e]);if(_.bt.has(f.name))break;d.push(f);e++}b=NI(a,c,b.slice(e));e=b.U;d=d.concat(b.aa);a=OI(a,d,c);II(d,e,a);return new LI(c,1,d,b.U)},QI=function(a,b,c){b=b.trim().split(/\n+/m).map(d=>d.trim()).filter(d=>d.length&&!/^#(?!EXT)/m.test(d));if(!/^#EXTM3U($|[ \t\n])/m.test(b[0]))throw new _.G(_.E,4,4015);return 0===
15
- FI(b)?MI(a,b,c):PI(a,b,c)},KI=function(a,b){return _.Ri(a.f++,b)},NI=function(a,b,c){const d=[],e=[];let f=[],g=[];c.forEach(h=>{/^(#EXT)/.test(h)?(h=KI(a,h),_.at.has(h.name)||_.dt.has(h.name)?d.push(h):_.ct.has(h.name)?"EXT-X-PART"===h.name?g.push(h):h.name===_.Ma&&"PART"===_.H(h,_.Kb)&&g.push(h):f.push(h)):/^#(?!EXT)/m.test(h)||(h=fI(b,h.trim(),!1),e.push(new RI(h,f,g)),f=[],g=[])});0<g.length&&e.push(new RI(null,f,g));return{U:e,aa:d}},OI=function(a,b,c){b=$H(b,"EXT-X-DEFINE");aI(b);const d=JI(b,
16
- c);b.map(e=>_.H(e,"IMPORT")).filter(Boolean).forEach(e=>{const f=a.a.get(e);if(null==f)throw new _.G(_.E,4,4044,`Cannot import variable '${e}' as it is not defined `+"in the master playlist");d.set(e,f)});return d},SI=function(a){return 0>a?[]:Array.from({length:a},(b,c)=>c)},TI=function(a,b=0){return b+10<=a.length&&73===a[b]&&68===a[b+1]&&51===a[b+2]&&255>a[b+3]&&255>a[b+4]&&128>a[b+6]&&128>a[b+7]&&128>a[b+8]&&128>a[b+9]?!0:!1},UI=function(a){function b(h,k,l){let m="";for(;k<l;k++)m+="%"+("00"+
17
- h[k].toString(16)).slice(-2);return m}function c(h){return h[0]<<21|h[1]<<14|h[2]<<7|h[3]}function d(){throw new _.G(_.E,4,4030);}TI(a)||d();let e=10;a[5]&64&&(e=e+4+c(a.subarray(10,14)));do{var f=c(a.subarray(e+4,e+8));1>f&&d();var g=String.fromCharCode(a[e],a[e+1],a[e+2],a[e+3]);if("PRIV"===g){g=a.subarray(e+10,e+f+10);for(let h=0;h<g.byteLength;h++)if(0===g[h]){if("com.apple.streaming.transportStreamTimestamp"===unescape(b(g,0,h)))return a=g.subarray(h+1),f=(a[3]&1)<<30|a[4]<<22|a[5]<<14|a[6]<<
18
- 6|a[7]>>>2,f*=4,f+=a[7]&3,Math.round(f/9E4);break}}TI(a,e)||d();e+=10;e+=f}while(e<a.byteLength);return d()},VI=function(a,b){let c=null,d=0;try{(new _.Pl).N(_.Be,_.Il).N(_.Yf,_.Il).N(_.we,_.Il).ca("mdhd",g=>{g.reader.skip(0===g.version?8:16);d=_.O(g.reader);g.parser.stop()}).parse(b,!0)}catch(g){c=g}if(c||!d)throw _.vu.error("Unable to find timescale in init segment!"),new _.G(_.E,4,4030,IH,c);let e=0,f=!1;try{(new _.Pl).N("moof",_.Il).N("traf",_.Il).ca("tfdt",g=>{var h=d;if(0===g.version)h=_.O(g.reader)/
19
- h;else{{const k=_.O(g.reader),l=_.O(g.reader);if(!(2097151>=k||h>=Math.pow(2,12)))throw Error("Cannot accurately parse MP4 timestamp, base time is too high and timescale is \x3c\x3d 2^12");h=k/h*Math.pow(2,32)+l/h}}e=h;f=!0;g.parser.stop()}).parse(a,!0)}catch(g){c=g}if(c||!f)throw new _.G(_.E,4,4030,IH,c);return e},WI=function(a){for(;a.getPosition()<a.Ja()-1;){const b=a.getPosition();if(71===_.Al(a))return VH(a),b}return-1},XI=function(a){function b(){d.seek(e+188);f=_.Al(d);71!==f&&(d.seek(e+192),
20
- f=_.Al(d));71!==f&&(d.seek(e+204),f=_.Al(d));71!==f&&c();VH(d)}function c(){throw new _.G(_.E,4,4030);}const d=new _.Bm(new DataView(a),!1);let e=0,f=0;e=WI(d);0>e&&(_.vu.error("Unable to find sync byte in TS after scanning."),c());for(;;){e=d.getPosition();f=_.Al(d);71!==f&&c();a=_.Bl(d);if(8191===(a&8191)){b();continue}if(!(a&16384)){b();continue}a=(_.Al(d)&48)>>4;0!==a&&2!==a||c();3===a&&(a=_.Al(d),d.skip(a));if(1!==_.O(d)>>8){b();continue}d.skip(3);a=_.Al(d)>>6;0!==a&&1!==a||c();0===_.Al(d)&&
21
- c();a=_.Al(d);const g=_.Bl(d),h=_.Bl(d);return(1073741824*((a&14)>>1)+((g&65534)<<14|(h&65534)>>1))/9E4}},$I=function(a){const b=YI(a),c=ZI(a);a.forEach(d=>{const e=d.U,f=e.findIndex(h=>h.ja===b);let g=e.findIndex(h=>h.ja===c+1);-1===g&&(g=e.length);d.U=e.slice(f,g)})},ZI=function(a){a=a.map(b=>b.U[b.U.length-1].ja);return Math.min(...a)},YI=function(a){a=a.map(b=>b.U[0].ja);return Math.max(...a)},cJ=function(a){var b=UH(a,NH);if(!aJ.includes(b))return bJ.error("PlayReady in HLS is only supported with [",
22
- aJ.join(", "),"], not",b),null;a=UH(a,_.Mb);b=_.ls(a);a=null;b=_.I(b.data);try{a=_.UA(_.Im(b))}catch(c){a=b}return _.gB(_.wd,[{initDataType:_.bd,initData:a}],"")},eJ=function(a){if(0===a.length)return dJ();if(a.some(c=>c.type===TH)||a.every(c=>c.type===_.Ee))return a[0];a=a.filter(c=>c.type===SH);const b=_.Gh(a.flatMap(c=>c.drmInfos));return{keyInfo:null,keyId:a[a.length-1].keyId,type:SH,drmInfos:b}},hJ=function(a){a=fJ(a);if(a.some(b=>gJ(b))&&1<a.length)throw new _.G(_.E,4,4046,"Two EXT-X-KEY tags, one with METHOD\x3dAES-128 are applied to one playlist.");
23
- },gJ=function(a){return $H(a.aa,_.Ga).some(b=>"AES-128"===_.H(b,NH))},jJ=function(a,b,c){return fJ(a).map(d=>iJ(d.aa,b,c))},kJ=function(a){return a.filter(b=>cI(b.aa,_.Ga)).length},fJ=function(a){return a.filter(b=>cI(b.aa,_.Ga))},iJ=function(a,b,c){a=$H(a,_.Ga);if(0===a.length)return null;var d=UH(a[0],NH);if(1===a.length){if("NONE"===d)return dJ();if("AES-128"===d)return a=a[0],d=_.H(a,"IV",""),{type:TH,keyInfo:{method:"AES-128",url:fI(b,UH(a,_.Mb)),iv:d?_.Ji((d||"0x").slice(2)):null},drmInfos:[],
24
- keyId:null}}b=a.map(e=>UH(e,NH));if(!b.every(e=>"SAMPLE-AES"===e)&&!b.every(e=>e===OH))throw lJ.warn(`EXT-X-KEY methods ${b.join(", ")} are incompatible.`),new _.G(_.E,4,4044,"Multiple EXT-X-KEY tags with incompatible METHOD values.");b=a.map(e=>{const f=_.H(e,"KEYFORMAT","identity");{const g=mJ[f]||null;e=g?g(e,c):null}e||lJ.warn("Unsupported HLS KEYFORMAT",f);return e}).filter(Boolean);if(0===b.length)throw new _.G(_.E,4,4026);return{keyInfo:null,keyId:b.map(e=>e.keyIds).reduce((e,f)=>e.concat(f),
25
- []).reverse()[0]||null,type:SH,drmInfos:b}},dJ=function(){return{type:_.Ee,keyInfo:null,drmInfos:[],keyId:null}},nJ=function(a,b,c){return _.w(function*(){const d=b.f(),e=_.JB(b.Va(),b.wa,b.wa+2048-1,a.a.attemptParameters);e.type=2;const f=_.JB(b.Va(),b.wa,b.ka,a.a.attemptParameters);f.type=2;d&&(f.keyInfo=d);try{return yield a.f(c?f:e)}catch(g){if(7001===g.code||c)throw g;a.g.warn("Unable to fetch a partial HLS segment! Falling back to a full segment request, which is expensive! Your server should support Range requests and CORS pre-flights.",
26
- e.uris[0]);try{return yield a.f(f)}catch(h){throw a.g.error("Failed to fetch media segment to parse its start timestamp.",f.uris[0],h),new _.G(_.E,4,4030,"Failed to fetch the media segment.");}}})},oJ=function(a,b,c,d,e,f){return _.w(function*(){a.g.debug("Fetching segment to find start time");if("audio/mpeg"===d||d===_.Kc||d===_.Jc)return 0;if(d===_.Ic){var g=yield nJ(a,c,f);const h=_.I(g.data);return TI(h)?UI(h):XI(g.data)}if(d===_.qg||d===_.Lc)return g=[nJ(a,c,f)],b&&g.push(nJ(a,b,!0)),g=yield Promise.all(g),
27
- VI(g[0].data,(g[1]||g[0]).data);if(d===_.mg)return g=yield nJ(a,c,f),XI(g.data);if(!_.kr(`${d.split("/")[0]||""}/mp4;codecs="${e}"`))return 0;throw new _.G(_.E,4,4030);})},pJ=function(a,b){a=a.map(c=>c.streams[b]);return a.some(c=>null==c)?null:a},CI=function(a,b){a.streams.forEach(c=>{c.codecs=b.join(",")})},qJ=function(a,b){a=a.streams.find(c=>{c=c.U;return c[0].position<=b&&b<=c[c.length-1].position});return null==a?null:a.U.find(c=>c.position===b)||null},zI=function(a){return a.streams[0]},rJ=
28
- function(a,b){a.streams.forEach(c=>{c.Od=b})},sJ=function(a,b){a.streams.forEach(c=>{c.width=b})},tJ=function(a,b){a.streams.forEach(c=>{c.height=b})},uJ=function(a,b){a.streams.forEach(c=>{c.frameRate=b})},vJ=function(a,b){a.streams.forEach(c=>{c.bandwidth=b})},wJ=function(a,b){a=a.map(c=>c.a[b]);return a.some(c=>null==c)?null:a},xJ=function(a,b){const c=new Set(a.map(d=>d.ja));return b.filter(d=>!c.has(d.ja))},zJ=function(a,b){for(;a[0].ja<b[0].ja;)a.splice(0,1);var c=a[0];let d=b[0];c.startTime===
29
- d.startTime&&c.endTime===d.endTime||yJ(c,d);const e=a.length-1;c=a[e];d=b[e];0<e&&(c.startTime!==d.startTime||c.endTime!==d.endTime)&&yJ(c,d);for(c=e+1;c<b.length;)a.push(b[c]),c++},EJ=function(a,b,c,d,e){var f=b[0].length();f=SI(f).map(g=>{var h=wJ(b,g)||[];const k=pJ(c,g)||[];g=pJ(d,g)||[];{const l=[...AJ(h),...k,...g].filter(Boolean);BJ(l);const {ja:m,duration:n}=l[0];h={configurationId:a,variants:h,textStreams:k,thumbStreams:g,startTime:0,id:`P${m}`,endTime:n,duration:n,ja:m}}return h});e&&CJ(f[0]);
30
- DJ(f);return f},AJ=function(a){a=new Set(a.flatMap(b=>[b.video,b.audio]).filter(Boolean));return Array.from(a)},CJ=function(a){const b=AJ(a.variants)[0].U[0].Ba;a.startTime+=b;a.endTime+=b},DJ=function(a){for(let b=0;b<a.length;b++){const c=a[b],d=a[b-1];c.startTime=d?d.endTime:c.startTime;c.endTime=c.startTime+c.duration}},yJ=function(a,b){a.startTime=b.startTime;a.endTime=b.endTime;a.duration=b.duration;FJ(a.variants,b.variants);GJ(gI(a),gI(b))},FJ=function(a,b){const c=new Map(a.map(d=>[wI(d),
31
- d]));b.forEach(d=>{c.get(wI(d)).drmInfos=d.drmInfos})},GJ=function(a,b){const c=new Map(a.map(d=>[d.Ca,d]));b.forEach(d=>{const e=c.get(d.Ca);e.U=d.U;e.segmentIndex.replace(d.U);e.Ic=d.Ic;e.fe=d.fe;e.duration=d.duration;e.df=d.df;e.encrypted=d.encrypted;e.drmInfos=d.drmInfos;e.keyId=d.keyId})},BJ=function(a){const b=HJ(a);a.forEach(c=>{_.FB(c.segmentIndex,b);c.duration=b;c.fe=c.Ic+b})},HJ=function(a){let b=Infinity;a.filter(jI).forEach(c=>{b=Math.min(b,c.duration)});return b},IJ=function(a,b){hI(b,
32
- (c,d)=>{_.SB(a,c.U,d.startTime)});_.KB(a.a,b[0].startTime,b[b.length-1].endTime)},JJ=function(a){return null===a.j?[]:[a.j.audio,a.j.video].filter(b=>b).map(b=>b.Ca)},KJ=function(a,b){return _.w(function*(){var c=_.Wi([b],a.a.attemptParameters);c.type=1;c=yield a.G(c);let d="";try{d=_.si(c.data)}catch(e){throw new _.G(_.E,4,4042);}d=d.replace(/\r\n|\r(?=[^\n]|$)/gm,"\n");d=d.trim();return{text:d,response:c}})},QJ=function(a,b){return _.w(function*(){var c=LJ(a,b,a.A,"");if(1===c.type){c=_.Xs(c.U[0].a)||
33
- "";c=null!=_.Ws.video[c]?_.t:null!=_.Ws.audio[c]?_.p:null;var d="";c===_.t?d="avc1.42E01E":c===_.p&&(d="mp4a.40.2");c=a.L;var e=a.A;d=a.a.hlsDefaultCodecs||d;var f=[],g=[];g.push(new _.Pi(_.ma,"0"));g.push(new _.Pi(_.Mb,e));d.length&&g.push(new _.Pi(_.pa,d));f.push(new _.Qi(c.f++,KH,g));c=new LI(e,0,f)}d=c.aa;c=$H(d,"EXT-X-MEDIA");e=$H(d,KH);d=$H(d,"EXT-X-IMAGE-STREAM-INF");c={Hc:{gg:bI(c,["AUDIO",_.Tb]),closedCaptions:bI(c,HH),Ah:bI(c,PH)},ld:e,be:d};const {periods:h,jh:k,Ch:l}=yield MJ(a,c);if(!a.D)throw new _.G(_.E,
34
- 7,7001);e=yI(h[0]);NJ(a,h);c=!0;d=null;f=0;OJ(a)||(c=!1,d=0,f=e.delay);g=a.a.timeline||{};g.type=void 0;d=new _.sH(g,d,f,!0,void 0,!!a.a.lowLatencyMode);_.OB(d,c);IJ(d,h);k&&_.NB(d,k);c=d;if(!OJ(a)){a.F=e.qc;e=0;for(var m of a.f.values())e=Math.max(e,m.streams[0].Ic);for(m=0;95443.7176888889<=e;)m+=95443.7176888889,e-=95443.7176888889;if(m){a.g.debug("Offsetting live streams by",m,"to compensate for rollover");for(var n of a.f.values())e=n.streams[0],95443.7176888889>e.Ic?(a.g.debug("Offset applied to",
35
- e.type),e.segmentIndex.offset(m)):a.g.debug("Offset NOT applied to",e.type)}}n=vI(h);"LIVE"===a.l||"EVENT"===a.l?(n=Math.max(n,c.J),isNaN(a.a.availabilityWindowOverride)||(n=a.a.availabilityWindowOverride),c.A=n):a.l===_.Ub&&(c.f=n);n=PJ(a,l);n={presentationTimeline:c,periods:h,minBufferTime:0,cues:n};a.g.debug("HLS playlist parsed",n);return n})},SJ=function(a,b){return Promise.all(b.map(c=>RJ(a,c)))},UJ=function(a,b){b.forEach(c=>{a:{var d=a.f.get(c.a),e=!OJ(a),f=dI(c.aa,_.Ea);if(f)var g=Number(f.value);
36
- else{d?(f=d.streams[d.streams.length-1].U,f=f[f.length-1].ja):f=0;if(e&&0<f)try{{const k=dI(c.aa,_.Ia);if(!k)throw TJ.error("Failed to infer discontinuity number, because EXT-X-MEDIA-SEQUENCE tag is missing."),Error(LH);const l=Number(k.value),m=qJ(d,l);if(!m)throw TJ.error("Failed to infer discontinuity number, could not find the appropriate segment in the previous playlist"+` (segment position = ${l})`),Error(LH);var h=m.ja}g=h;break a}catch(k){throw new _.G(_.E,4,4024,"EXT-X-DISCONTINUITY-SEQUENCE tag is required for discontinuous HLS live streams.");
37
- }g=0}}c=c.U||[];for(const k of c)cI(k.aa,_.Da)&&g++,k.ja=g});$I(b)},XJ=function(a,b){return _.w(function*(){const {textStreams:c,thumbStreams:d,hg:e}=yield VJ(a,b);var f=a.o.periods[0].variants;a.a.lowLatencyMode&&null!==a.j&&(f=f.filter(g=>g.id===a.j.id));f=f.map(g=>{const h=EI(g.audio,e),k=EI(g.video,e);g=WJ(a,h,k,g.bandwidth);if(!g)throw new _.G(_.E,4,4047,{message:"Video and audio are encrypted in an incompatible way.",gi:k?zI(k).Ca:void 0,audio:h?zI(h).Ca:void 0});return g});return EJ(a.D.configurationId,
38
- f,c,d,!0)})},NJ=function(a,b){OJ(a)||2!==a.a.timeline.version||(a.H||(a.H=b[0].startTime),_.pD(b,-a.H))},YJ=function(a,b){b=b.flatMap(d=>d.U[0].aa);b=dI(b,_.Na);if(!b)return null;const c=(new Date(b.value)).getTime();return isNaN(c)?(a.g.warn("Failed to parse EXT-X-PROGRAM-DATE-TIME tag "+`value (value: ${b.value}).`),null):c/1E3},ZJ=function(a,b,c){b=b.find(d=>null!==dI(d.aa,_.Ca));if(!b)return[];if(null===c)throw new _.G(_.E,4,4024,"EXT-X-PROGRAM-DATE-TIME tag is required when EXT-X-DATERANGE tags are present");
39
- return b.aa.filter(d=>d.name===_.Ca).map(d=>{a:{var e=a.B,f=!OJ(a),g=_.H(d,"ID"),h=_.H(d,"START-DATE");if(null===g||null===h)_.$s.warn("Invalid EXT-X-DATERANGE missing mandatory ID or START-DATE attribute, ignoring the EXT-X-DATERANGE tag.",d),d=null;else{e=f?e-c:-c;var k=new Date(h);h=k.getTime()/1E3+e;g={id:g,startTime:h,startDate:k};f=YH(_.H(d,JH));void 0!==f&&0<=f&&(g.duration=f);var l=YH(_.H(d,"PLANNED-DURATION"));void 0!==l&&0<=l&&(g.plannedDuration=l);var m=_.H(d,"CLASS");null!==m&&(g.schemeIdUri=
40
- m);var n=_.H(d,"END-DATE");n=n?new Date(n):null;null!==n&&n.getTime()>=k.getTime()&&(g.endDate=n);{const v=d.attributes;if(null==v)var q=null;else{k={};for(q of v)q.name.trim().startsWith("X-")&&(k[q.name]=q.value);q=_.Tg(k)?k:null}}q=q||{};if(k=_.H(d,"CUE"))q.Kh=k.split(",");if(m===_.vd){k=d.attributes;if(null==k)var u=null;else{m={};for(u of k)switch(u.name){case _.$b:m[_.$b]=u.value;break;case _.Zb:m[_.Zb]=u.value;break;case _.bc:m[_.bc]=YH(u.value);break;case _.ac:m[_.ac]=YH(u.value);break;case "X-SNAP":m["X-SNAP"]=
41
- u.value.split(",");break;case "X-RESTRICT":m["X-RESTRICT"]=u.value.split(",")}m[_.$b]&&m[_.Zb]||!m[_.$b]&&!m[_.Zb]?(_.$s.warn("Invalid EXT-X-DATERANGE Interstitial attributes X-ASSET-URI, X-ASSET-LIST"),u=null):u=_.Tg(m)?m:null}if(null===u){_.$s.warn("Invalid interstitial attributes, ignoring the EXT-X-DATERANGE tag.",d);d=null;break a}q=Object.assign(q,u)}_.Tg(q)&&(g.customAttributes=q);g.endTime=n?n.getTime()/1E3+e:f?h+f:l?h+l:h;g.type=_.be;d=g}}return d}).filter(Boolean)},PJ=function(a,b){const c=
42
- new Set(b.map(d=>d.id));a.w.forEach((d,e)=>{c.has(e)||a.w.delete(e)});for(const d of b){if((b=a.w.get(d.id))&&b.startTime!==d.startTime)a.D.onError(new _.G(1,4,4044,"EXT-X-DATERANGE START-DATE has changed for"+` ID=${d.id}`));const e={configurationId:a.D.configurationId,schemeIdUri:d.schemeIdUri,customAttributes:d.customAttributes,value:"",startTime:d.startTime,endTime:d.endTime,id:d.id,type:_.be,eventElement:null};b&&!XH(b,e)||a.w.set(d.id,e)}return Array.from(a.w.values())},$J=function(a,b,c){a.l=
43
- _.Ub;_.OB(b,!0);b.f=c[c.length-1].endTime},LJ=function(a,b,c,d){a=QI(a.L,b,c);a.a=d;return a},MJ=function(a,b){return _.w(function*(){var c=BI(b.Hc.closedCaptions),d=aK(a,b.ld),e=yield bK(a,b),f=Object.values(e).flat().map(g=>g.playlist);UJ(a,f);f=yield cK(a,e.We,d);c=yield dK(a,e.ld,f,c);d=yield eK(a,e.zh,d);f=yield fK(a,e.be);d=EJ(a.D.configurationId,c,d,f,!OJ(a));a.D.filterAllPeriods(d);c=[...e.ld,...e.We].map(g=>g.playlist);e=YJ(a,c);c=ZJ(a,c,e);return{periods:d,jh:e,Ch:c}})},VJ=function(a,b){return _.w(function*(){const c=
44
- g=>zI(g.stream).type===_.t||zI(g.stream).type===_.p;var d=b.filter(c),e=b.filter(g=>!c(g)),f=g=>{g=g.map(h=>{var k=zI(h.stream);k={language:k.language,channelsCount:k.channelsCount,spatialAudio:k.spatialAudio,closedCaptions:k.closedCaptions,primary:k.primary,kind:k.kind||null,groupId:k.groupId,type:k.type,codecs:k.codecs,name:k.originalId,uri:k.Ca,Md:{width:k.width,height:k.height,frameRate:k.frameRate}};h=Object.assign({},{playlist:h.playlist},k);return gK(a,h)});return Promise.all(g)};d=yield f(d);
45
- f=yield f(e);hK(a,d.concat(f));e=f.filter(g=>zI(g).type===_.PA);f=f.filter(g=>zI(g).type===_.de);return{textStreams:e,thumbStreams:f,hg:d}})},WJ=function(a,b,c,d){const e=[],f=(c||b).length();for(let m=0;m<f;m++){var g=b?b.streams[m]||null:null,h=c?c.streams[m]||null:null,k=g,l=h;k=k&&l?_.nB(k.drmInfos,l.drmInfos)?_.mB(k.drmInfos,l.drmInfos):null:k?k.drmInfos:l?l.drmInfos:null;if(!k)return null;l=d;g={id:a.O++,language:g?g.language:_.ag,primary:!!g&&g.primary||!!h&&h.primary,audio:g,video:h,bandwidth:l,
46
- drmInfos:k,allowedByApplication:!0,allowedByKeySystem:!0};e.push(g)}return new iK(e)},gK=function(a,b){return _.w(function*(){const c=b.playlist,d=b.codecs,e=b.type,f=b.$c,g=b.groupId,h=b.primary;var k=b.kind;const l=b.name,m=b.channelsCount,n=b.spatialAudio,q=b.closedCaptions,u=b.Md,v=_.ei(f||_.ag);if(1!==c.type)throw new _.G(_.E,4,4017);var y=kI(c.aa,null==a.o);a.l=y;const A=xI(c.aa,y,a.a.lowLatencyMode||!1,a.a.suggestedPresentationDelay);y=yield jK(a,c,e,d);const D=a.a.lowLatencyMode?_.EA:_.DA;
47
- let M=k;e!==_.F||k||(M=_.PA);const {od:ea}=pI(c.aa);k=y.map(sb=>{const Sb=sb.U,od=sb.sg,jg=sb.mimeType;sb=sb.ja;const Ua=Sb[0].startTime,ke=Sb[Sb.length-1].endTime,Qc=ke-Ua,fa=new _.tH(Sb),Za=Sb[0].initSegment||null;return{id:_.xH++,originalId:l,createSegmentIndex:Promise.resolve.bind(Promise),findSegmentPosition:fa.f.bind(fa),getSegmentReference:fa.get.bind(fa),adjustSegmentDurations:fa.h.bind(fa),getDuration:fa.getDuration.bind(fa),segmentIndex:fa,segmentLookupStrategy:D,initSegmentReference:Za,
48
- mimeType:jg,codecs:d,kind:M,df:od.type,encrypted:od.type===SH,keyId:od.keyId,language:v,originalLanguage:f||_.ag,label:l,type:e,primary:h,trickModeVideo:null,emsgSchemeIdUris:null,frameRate:u?u.frameRate:void 0,width:u?u.width:void 0,height:u?u.height:void 0,bandwidth:void 0,roles:[],channelsCount:m,spatialAudio:n,closedCaptions:q,keyInfo:od.keyInfo,U:Sb,drmInfos:od.drmInfos,ja:sb,Ca:c.a,Od:c.f,Ic:Ua,fe:ke,duration:Qc,od:ea,groupId:g,Wg:A}});return new kK(k)})},hK=function(a,b){b.forEach(c=>{a.f.a.set(zI(c).Ca,
49
- c)})},aK=function(a,b){const c=new Map;for(const f of b){var d=_.H(f,"AUDIO");b=_.H(f,_.Tb);var e=_.H(f,PH);const g=lK(a,f);if(e){const h=_.Cj(_.F,g);c.set(`${_.F}:${e}`,h);e=g.indexOf(h);-1<e&&g.splice(e,1)}d&&(e=mK(_.p,g),c.set(`${"audio"}:${d}`,e));b&&(d=mK(_.t,g),c.set(`${"video"}:${b}`,d))}return c},bK=function(a,b){return _.w(function*(){const c=yield Promise.all([nK(a,b.Hc.gg),nK(a,b.Hc.Ah),nK(a,b.ld),nK(a,b.be)]),[d,e,f,g]=c;return{We:d,zh:e,ld:f,be:g}})},cK=function(a,b,c){return _.w(function*(){if(0===
50
- b.length)return new Map;var d=[oK(a,b[0],c)];yield d[0];d=d.concat(b.slice(1).map(e=>oK(a,e,c)));d=yield Promise.all(d);return AI(d)})},dK=function(a,b,c,d){return _.w(function*(){const e=new Set;var f=[...b];let g=0;var h=Infinity;for(let k=0;k<f.length;++k){const l=Number(UH(f[k].tag,_.ma));l<h&&(h=l,g=k)}h=f.splice(g,1).pop();h=yield pK(a,h,c,d,e);f=f.map(k=>pK(a,k,c,d,e));f=yield Promise.all(f);f.splice(g,0,h);return f.reduce(_.dB,[])})},eK=function(a,b,c){return Promise.all(b.map(d=>oK(a,d,c)))},
51
- fK=function(a,b){return Promise.all(b.map(c=>qK(a,c)))},OJ=function(a){return a.l===_.Ub},nK=function(a,b){return _.w(function*(){return(yield Promise.all(b.map(c=>_.w(function*(){const d=yield rK(a,c);return d?{tag:c,playlist:d}:null})))).filter(Boolean)})},RJ=function(a,b){return _.w(function*(){var c=new _.Rh(zI(b).Od);if(a.a.lowLatencyMode&&zI(b).od){var d=b.streams[b.streams.length-1].segmentIndex;if(d=d.a[d.a.length-1]){var e=d.a,f=e.length-1;d={Xg:d.position,dh:e&&0<e.length?f:null}}else d=
52
- null;if(e=d)d=e.Xg,e=e.dh,f=_.oj(c.a.toString()),f._HLS_msn=d.toString(),null===e&&f._HLS_part&&delete f._HLS_part,null!==e&&(f._HLS_part=e.toString()),d=_.nj(f,!0),d=new _.Yh(d),_.Uh(c,d)}const {response:g,text:h}=yield KJ(a,c.toString());c=zI(b).Ca;d=zI(b).Od;e=g.uri;d!==e&&(d=e,rJ(b,d));c=LJ(a,h,d,c);return{stream:b,playlist:c}})},lK=function(a,b){var c=_.H(b,_.pa,a.a.hlsDefaultCodecs||"avc1.42E01E,mp4a.40.2").split(/\s*,\s*/);b=new Set;const d=[];for(const e of c)c=_.sB(e),b.has(c)?a.g.debug("Ignoring duplicate codec"):
53
- (d.push(e),b.add(c));return d},mK=function(a,b){if(1===b.length)return b[0];a=_.Cj(a,b);if(null!=a)return a;throw new _.G(_.E,4,4025,{codecList:b});},oK=function(a,b,c){return _.w(function*(){const d=b.tag,e=b.playlist;return sK(a,e.a,()=>_.w(function*(){const f=UH(d,_.Wa),g=lI(UH(d,_.Kb));var h=UH(d,_.Kb).toUpperCase();if(lI(h)!==_.F)h=null;else{var k=d.getAttribute("FORCED");k=!(!k||!k.value||"YES"!==k.value.toUpperCase());var l=_.PA;h===HH&&(l=_.zA);k&&(l=_.Xd);h=l}k=c.get(`${g}:${f}`)||"";l=_.H(d,
54
- _.cb);const m=_.H(d,"NAME"),n=d.getAttribute("DEFAULT"),q=d.getAttribute("AUTOSELECT");var u=_.H(d,"CHANNELS");u=g===_.p?u?parseInt(u.split("/")[0],10):null:null;var v=g===_.p?(v=_.H(d,"CHANNELS"))?v.includes("/JOC"):!1:!1;return yield gK(a,{playlist:e,codecs:k,type:g,$c:l,primary:!!n&&!!q,name:m,channelsCount:u,spatialAudio:v,groupId:f,kind:h,closedCaptions:null,Md:null})}))})},qK=function(a,b){return _.w(function*(){const c=b.tag,d=b.playlist;return sK(a,d.a,()=>_.w(function*(){var e=_.H(c,_.pa)||
55
- "jpg",f=_.H(c,_.cb);const g=_.H(c,"NAME");e=yield gK(a,{playlist:d,codecs:e,type:_.de,$c:f,name:g,primary:!1,kind:null,channelsCount:null,spatialAudio:!1,closedCaptions:null,groupId:null,Md:null});(f=_.H(c,_.ma))&&vJ(e,Number(f));return e}))})},pK=function(a,b,c,d,e){return _.w(function*(){var f=b.tag,g=Number(UH(f,_.ma));if(null!=f.getAttribute("FRAME-RATE")||null!=f.getAttribute(_.Cb)){var h=_.H(f,"FRAME-RATE");f=_.H(f,_.Cb);var [k,l]=f?f.split("x"):[null,null];h={frameRate:YH(h),width:YH(k),height:YH(l)}}else h=
56
- null;if(f=yield tK(a,b,h,c,d)){h=f.video;f=f.audio;var m=0<f.length?f:[null];h=0<h.length?h:[null];f=[];for(const n of m)for(const q of h){m=(q?zI(q).Ca:"")+" - "+(n?zI(n).Ca:"");if(e.has(m)){a.g.debug("Skipping variant which only differs in text streams.");continue}const u=WJ(a,n,q,g);null==u?a.g.warn("Incompatible DRM info in HLS variant. Skipping."):(f.push(u),e.add(m))}g=f}else g=[];return g})},tK=function(a,b,c,d,e){return _.w(function*(){var f=b.tag,g=b.playlist;let h=lK(a,f);var k=_.H(f,"AUDIO"),
57
- l=_.H(f,_.Tb);k=k?d.get(`${"audio"}:${k}`)||[]:[];var m=l?d.get(`${"video"}:${l}`)||[]:[];l=[...k,...m];k={audio:k,video:m};a.g.debug("Guessing stream type for",f.toString());f=!1;const n=g.a;g=k.audio.find(q=>zI(q).Ca===n);m=_.Cj(_.t,h);m=c||m;1!==h.length||m?!l.length&&1<h.length?(a.g.debug("Guessing multiplexed audio+video"),g=_.t,h=[h.join(",")]):k.audio.length&&g?(a.g.debug(MH),g=_.p,f=!0):k.video.length?(a.g.debug(MH),g=_.p):(a.g.debug("Guessing video-only"),g=_.t):(g=_.p,a.g.debug(MH));m=null;
58
- f||(m=yield uK(a,b,h,g,e,c));if(null==m)return null;k[g]=[m];g===_.p&&c&&l.forEach(q=>{sJ(q,c.width);tJ(q,c.height);uJ(q,c.frameRate)});DI(k);return k})},uK=function(a,b,c,d,e,f){return _.w(function*(){const g=b.tag,h=b.playlist;return sK(a,h.a,()=>_.w(function*(){var k=_.H(g,HH);let l=null;d===_.t&&k&&"NONE"!==k&&(l=e.get(k));k=mK(d,c);return yield gK(a,{playlist:h,codecs:k,type:d,closedCaptions:l,primary:!1,kind:null,$c:null,name:null,channelsCount:null,spatialAudio:!1,groupId:null,Md:f})}))})},
59
- sK=function(a,b,c){if(a.f.has(b))return a=a.f.get(b),Promise.resolve(a);if(a.f.f.has(b))return a.f.f.get(b)||null;c=c();a.f.set(b,c);return c},jK=function(a,b,c,d){return _.w(function*(){var e=b.a,f=b.U;var g=void 0===g?0:g;var h=(h=dI(b.aa,_.Ia))?Number(h.value):g;g=[];!OJ(a)&&hJ(f);e=yield vK(a,b.f,e,f,h,c,d);if(0===f.length)f=[];else{var k=[],l=[];for(var m of f)cI(m.aa,_.Da)&&0<l.length&&(k.push(l),l=[]),l.push(m);k.push(l);f=k}for(m=0;m<f.length;m++)k=f[m],l=yield wK(a,b.f,k,h,e,c,d,g[g.length-
60
- 1]||null,f.length),g.push(l),h+=k.length;xK(g);return g})},rK=function(a,b){return _.w(function*(){var c="EXT-X-MEDIA"!==b.name?!0:_.H(b,_.Kb)===PH;c=_.H(b,_.Mb,void 0,{required:c});if(!c)return null;const d=fI(a.A,c),{response:e,text:f}=yield KJ(a,d);return LJ(a,f,e.uri,c)})},xK=function(a){if(1<(new Set(a.map(b=>b.mimeType))).size)throw new _.G(_.E,4,4045,"Media playlist contains discontinuities with different MIME types. This is valid, but not yet supported.");},yK=function(a){a=a.map(b=>b.a?b.a:
61
- b.f.map(c=>_.H(c,_.Mb))||null).map(b=>_.Xs(b));if(1<(new Set(a)).size)throw new _.G(_.E,4,4044,"Unexpected change in file format.");},zK=function(a,b,c){a=$H(a.aa,_.Ha);if(1<a.length)throw new _.G(_.E,4,4020);a=a[0];if(!a)return null;const d=UH(a,_.Mb),e=fI(b,d);b=qI(a,null,!0);return new _.pH(()=>[e],b.wa,b.ka,c)},AK=function(a,b,c,d,e,f,g){const h=[];for(const q of ZH(b.f)){b=q.rf;const u=q.item;{var k=0===b,l=k?a:h[h.length-1],m=k?d:l.endTime,n=Number(_.H(u,JH));n=m+n;k=qI(u,k?null:l.ka,k);l=_.H(u,
62
- _.Mb);const v=(l=fI(g,l))?[l]:[];m=new rI(c,m,n,()=>v,k.wa,k.ka,e,f,!1,null,null,null,null);if("YES"===_.H(u,"INDEPENDENT")||0===b)m.h=!0;h.push(m)}}return h},BK=function(a,b,c,d,e,f,g,h,k,l,m){const n=c.aa;var q=c.a;0<$H(n,_.Ha).length&&(m=zK(c,k,g));const u=null!=q,v=q?[q]:[];if(!u&&!a.a.lowLatencyMode)return null;a=0;q={wa:0,ka:null};let y=null;u?({duration:c}=oI(n),a=e+c,q=nI(n,b?b.ka:null)):(b=AK(b,c,d,e,f,g,k),a=b[b.length-1].endTime,y=b);h=h===_.de?eI(n):null;d=new rI(d,e,a,()=>v,q.wa,q.ka,
63
- f,g,!1,null,h?h.Vc:null,h?h.kd:null,h?h.durationPerTile:null,y,m);d.ja=l;return d},vK=function(a,b,c,d,e,f,g){return _.w(function*(){var h=d[0];if(null!=a.B)return a.B;if(!OJ(a)&&a.o)try{var k=a.f.get(c);var l=k?qJ(k,e)||null:null;if(!l)throw new _.G(_.E,4,4030,"Segment not found in pervious playlist update.");var m=l.startTime+l.Ba;a.g.debug(`Setting playlist start time to ${m}.`);return a.B=m}catch(n){if(h=a.f.get(c))m=h.streams[h.streams.length-1].U,m=m[m.length-1],a.g.warn(`Last #EXT-X-MEDIA-SEQUENCE values ${h.streams[0].U[0].position} - ${m.position}`+
64
- `, new values ${e} - ${e+d.length-1}.`,b,h);throw new _.G(_.E,4,4047,{message:"The updated playlist does not share any segments with the previous one.",uri:c});}m=yield CK(a,f,g,h);k=iJ(h.aa,a.A,m)||dJ();l=zK(h,b,k.keyInfo);k=tI(k.keyInfo,e);h=yield DK(a,l,h,k,m,g);a.g.debug(`Setting playlist start time to ${h}.`);return a.B=h})},wK=function(a,b,c,d,e,f,g,h,k){return _.w(function*(){var l=c[0],m=null==h;yK(c);const n=yield CK(a,f,g,l);var q=a.A,u=h?h.Vg:null;var v=1===k;if(c.slice(1).some(gJ))throw new _.G(_.E,
65
- 4,4046,v?"Media playlist contains an EXT-X-KEY tag with METHOD\x3dAES-128 which is not at the beginning of the playlist.":"Media playlist contains an EXT-X-KEY tag with METHOD\x3dAES-128 which is not marked by an EXT-X-DISCONTINUITY tag and is not at the beginning of the playlist.");if(cI(c[0].aa,_.Ga)||null===u)if((u=iJ(c[0].aa,q,n))&&u.type===TH){if(1<kJ(c))throw new _.G(_.E,4,4046,QH+`${v?"playlist":"discontinuity"}.`);v=[u]}else v=jJ(c,q,n),v=0===v.length?[dJ()]:v;else if(q=jJ(c,q,n),u.type===
66
- _.Ee||u.type===SH)v=[u,...q];else{if(0<kJ(c))throw new _.G(_.E,4,4046,QH+`${v?"playlist":"discontinuity"}.`);v=[u]}q=v;v=q[q.length-1];q=eJ(q);u=zK(l,b,q.keyInfo)||(h?h.Pg:null);var y=tI(q.keyInfo,d);const A=l.ja;l=m?e:yield EK(a,A,u,l,d,y,n,g);m=[];for(y=0;y<c.length;y++){var D=c[y];const M=m[m.length-1]||null,ea=0===y?0:M.endTime,sb=d+y,Sb=tI(q.keyInfo,sb);if(D=BK(a,M,D,sb,ea,l,Sb,f,b,A,u))u=D.initSegment,m.push(D)}return{U:m,sg:q,Vg:v,mimeType:n,endTime:m[m.length-1].endTime,ja:A,Pg:u}})},CK=function(a,
67
- b,c,d){return _.w(function*(){const e=d.a;var f=dI(d.aa,_.Ha);f=f?UH(f,_.Mb):null;return FK(a,b,c,e,f)})},DK=function(a,b,c,d,e,f){return _.w(function*(){if(null==c.a)return 0;const g=sI(c,d);return oJ(a.M,b,g,e,f,null!=d)})},EK=function(a,b,c,d,e,f,g,h){return _.w(function*(){if(a.I.has(b))return a.I.get(b);const k=yield DK(a,c,d,f,g,h);a.g.debug(`Segment #${e} has raw media timestamp `+`${k} s.`);a.I.set(b,k);return k})},FK=function(a,b,c,d,e){return _.w(function*(){const f=[d,e].filter(Boolean);
68
- var g=_.Fj(f,b,c);if(g)return g;g=_.Wi([d],a.a.attemptParameters);g.method="HEAD";g.type=2;g=(yield a.G(g)).headers["content-type"];if(!g)throw new _.G(_.E,4,4021,"Unknown MIME type of: "+f.join(", "));return g.split(";")[0]})},LI=class{constructor(a,b,c,d){if(1===b){if(!d||0===d.length)throw new _.G(_.E,4,4043,"Media playlist must have at least one segment!");if(null==d[0].a)throw new _.G(_.E,4,4043,"Media playlist must have at least one full segment!");}this.f=a;this.a="";this.type=b;this.aa=c;
69
- this.U=1===b?d:null}},RI=class{constructor(a,b,c){c=void 0===c?[]:c;this.aa=b;this.a=a;this.f=c;this.ja=-1}},rI=class extends _.dC{constructor(a,b,c,d,e,f,g,h,k,l,m,n,q,u,v){u=void 0===u?[]:u;super(a,b,c,d,e,f,g,void 0===h?null:h,void 0===k?!1:k,void 0===l?null:l,void 0===m?null:m,void 0===n?null:n,void 0===q?null:q,u,void 0===v?null:v);this.ja=0}},GK=class{constructor(){this.f=0;this.a=new Map}},HK=class{constructor(){this.a=new Map;this.f=new Map}set(a,b){this.f.set(a,b);return b.then(c=>this.a.set(a,
70
- c)).catch(()=>{}).then(()=>this.f.delete(a))}has(a){return this.a.has(a)}get(a){return this.a.get(a)||null}values(){return Array.from(this.a.values())}clear(){this.f.clear();this.a.clear()}},TJ=new _.R("clpp.hls.DiscontinuityUtils");var mJ={"com.apple.streamingkeydelivery":function(a,b){if(b===_.mg)throw new _.G(_.E,4,4041);if(UH(a,NH)===OH)throw new _.G(_.E,4,4044,"EXT-X-KEY:METHOD SAMPLE-AES-CTR is not supported in FairPlay.");return _.gB(_.ud,[{initDataType:_.If,initData:new Uint8Array(0)}],"")},"com.microsoft.playready":cJ,"urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95":cJ,"urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed":function(a){var b=UH(a,NH);if(!aJ.includes(b))return bJ.error("Widevine in HLS is only supported with [",
71
- aJ.join(", "),"], not",b),null;b=UH(a,_.Mb);b=_.ls(b);b=_.I(b.data);b=_.gB(_.yd,[{initDataType:_.bd,initData:b}],"");if(a=_.H(a,"KEYID"))b.keyIds=[a.substr(2).toLowerCase()];return b}},aJ=["SAMPLE-AES",OH],bJ=new _.R("clpp.hls.DrmParser");var lJ=new _.R("clpp.hls.EncryptionUtils");var IK=class{constructor(a){this.g=new _.R("clpp.hls.MediaReader");this.f=a;this.a={attemptParameters:_.Ti()}}};var kK=class{constructor(a){this.streams=a}length(){return this.streams.length}};var iK=class{constructor(a){this.a=a}length(){return this.a.length}};var JK=class{constructor(){this.a=this.D=null;this.O=1;this.f=new HK;this.A="";this.L=new GK;this.F=0;this.j=null;this.h=new _.Wj(()=>{this.Pb()});this.l=_.Ub;this.o=null;this.C=new _.et;this.B=null;this.g=new _.R("clpp.hls.HlsParser");this.I=new Map;this.M=new IK(this.G.bind(this));this.K=!1;this.H=null;this.J=!1;this.w=new Map}configure(a){this.a=a;this.M.a=a}setCurrentVariant(a){this.j=a}start(a,b){const c=this;return _.w(function*(){if(c.K)throw Error("start() may be called only once!");c.K=!0;
72
- c.D=b;const {response:d,text:e}=yield KJ(c,a);c.A=d.uri;const f=yield QJ(c,e);c.o=f;const g=c.F;c.h&&0<g&&c.h.fa(g);return f})}requestStop(){this.J=!0}stop(){this.h&&(this.h.stop(),this.h=null);const a=[];this.C&&(a.push(this.C.destroy()),this.C=null);this.f.clear();this.o=this.a=this.D=this.j=null;this.w.clear();return Promise.all(a)}update(){const a=this;return _.w(function*(){const b=a.o;if(!OJ(a)&&b){var c=b.presentationTimeline;"LIVE"===a.l&&(a.B=null);var d=Array.from(a.f.values());if(a.a.lowLatencyMode&&
73
- null!==a.j){const g=JJ(a);d=d.filter(h=>g.includes(zI(h).Ca))}var e=yield SJ(a,d);d=e.map(g=>g.playlist);UJ(a,d);e=yield XJ(a,e);xJ(b.periods,e).forEach(g=>{a.D.filterNewPeriod(g)});NJ(a,e);var f=YJ(a,d);f=ZJ(a,d,f);b.cues=PJ(a,f);zJ(b.periods,e);IJ(c,e);if(d=iI(d))!0!==a.a.keepTimelineLive&&$J(a,c,e),a.h.stop(),a.h=null;if(a.D.onUpdate)a.D.onUpdate(b);if(d&&a.D.onTurnedStatic)a.D.onTurnedStatic();a.J&&(yield a.stop());return b}})}Pb(){const a=this;return _.w(function*(){a.g.debug(_.uA);if(a.D)try{yield a.update(),
74
- a.h&&0<a.F&&a.h.fa(a.F)}catch(b){if(!(b instanceof _.G))throw b;a.D&&(a.D.onError(b),1===b.severity&&a.h&&a.h.fa(.1))}})}G(a){if(!this.C)throw new _.G(_.E,7,7001);a=this.D.networkingEngine.fetch(a);_.bj(this.C,a);return a.W}};_.x("clpp.hls.HlsComponent",class extends _.au{f(){_.Qr.m3u8=JK;_.Or[_.Rk]=JK;_.Or[RH]=JK}a(){_.CC("m3u8");_.DC(_.Rk);_.DC(RH)}id(){return"hls"}});};f.call(g, window);
1
+ import {clpp} from "./cl.core.js";import './cl.mse.js';let g={};const _ = clpp._;var f=function(window){'use strict';var NH="CLOSED-CAPTIONS",OH="Could not parse MP4 segment start time.",PH="DURATION",QH="EXT-X-STREAM-INF",RH="Failed to infer discontinuity number",SH="Guessing audio-only",TH="METHOD",UH="SAMPLE-AES-CTR",VH="SUBTITLES",WH="Two EXT-X-KEY tags, one with METHOD\x3dAES-128 are applied to one ",XH="application/vnd.apple.mpegurl",YH="sample",ZH="whole-segment",$H=function(a,b){return _.H(a,b,void 0,{required:!0})},aI=function(a){if(1>a.a)throw _.Dl();--a.a},bI=function(a,b){for(const c in a){if(!(c in
2
+ b))return!1;const d=a[c],e=b[c];if(d&&typeof d===_.Fe&&e&&typeof e===_.Fe){if(!bI(d,e))return!1}else if(void 0!==d&&void 0!==e&&d!==e)return!1}return!0},cI=function(a,b){if(!bI(a,b))return!1;for(const c in b){if(!(c in a))return!0;const d=a[c],e=b[c];if(!d&&e||d&&typeof d===_.Fe&&e&&typeof e===_.Fe&&cI(d,e))return!0}return!1},dI=function(a){if(null!==a&&void 0!==a)return Number(a)},eI=function*(a){let b=-1,c=void 0,d=void 0;for(const e of a)0<=b&&(yield{rf:b,item:d,hh:c,next:e}),b++,c=d,d=e;-1!==
3
+ b&&(yield{rf:b,hh:c,item:d,next:void 0})},fI=function(a,b){return a.filter(c=>c.name===b)},gI=function(a){const b=/^[a-zA-Z0-9_-]+$/,c=new Set;a.forEach(d=>{const e=_.H(d,"VALUE"),f=_.H(d,"NAME"),g=_.H(d,"IMPORT"),h=_.H(d,"QUERYPARAM");if(1!==[f,g,h].filter(Boolean).length||f&&null==e)throw new _.G(_.E,4,4044,{message:"Invalid tag.",text:d.toString()});d=f||g||h;if(c.has(d))throw new _.G(_.E,4,4044,`EXT-X-DEFINE redefined variable "${d}".`);if(!b.test(d))throw new _.G(_.E,4,4044,`EXT-X-DEFINE invalid variable name "${d}".`);
4
+ c.add(d)})},hI=function(a,b){const c=Array.isArray(b)?b:[b];return a.filter(d=>{d=$H(d,_.Kb);return c.includes(d)})},iI=function(a,b){return a.some(c=>c.name===b)},jI=function(a,b,c){c=void 0===c?{}:c;a=a.find(d=>d.name===b)||null;if(!a&&c.required)throw new _.G(_.E,4,4024,{missingTag:b});return a},kI=function(a){var b=jI(a,"EXT-X-TILES");if(!b)return{Vc:1,kd:1,durationPerTile:null};a=_.H(b,"LAYOUT")||"1x1";b=_.H(b,PH);a=_.qB(a);return{Vc:a.Vc,kd:a.kd,durationPerTile:b?Number(b):null}},lI=function(a,
5
+ b,c){c=void 0===c?!0:c;a=new _.Mh(a);b=new _.Mh(b);b=a.resolve(b).toString();return c?b:decodeURI(b)},mI=function(a){const b=new Set;a.variants.forEach(c=>{c.audio&&b.add(c.audio);c.video&&b.add(c.video)});a.textStreams.forEach(c=>b.add(c));a.thumbStreams.forEach(c=>b.add(c));return Array.from(b)},nI=function(a,b){Array.isArray(a)||(a=[a]);a.forEach(c=>{for(const d of mI(c))b(d,c)})},oI=function(a){return a.some(b=>iI(b.aa,_.Fa))},pI=function(a){return a.type===_.p||a.type===_.t},qI=function(a,b){const c=
6
+ jI(a,_.Fa);if(b&&c)return _.Ub;a=jI(a,_.La);if(!a)return"LIVE";if(a.value===_.Ub)return _.Ub;if("EVENT"===a.value)return"EVENT";throw new _.G(_.E,4,4044,`Invalid EXT-X-PLAYLIST-TYPE value: ${a.value}`);},rI=function(a){a={AUDIO:_.p,VIDEO:_.t,SUBTITLES:_.F,"CLOSED-CAPTIONS":_.F}[a.toUpperCase()];if(!a)throw new _.G(_.E,4,4044,"EXT-X-MEDIA tag has an invalid TYPE attribute.");return a},sI=function(a,b,c){c=void 0===c?!1:c;var d=0;let e=null;if(a){d=a.split("@");a=Number(d[0]);if(0>=a)throw new _.G(_.E,
7
+ 4,4044,"Byte range length must be positive.");if(d[1]){if(d=Number(d[1]),0>d)throw new _.G(_.E,4,4044,"Byte range start byte must not be negative.");}else{if(c)throw new _.G(_.E,4,4044,"Invalid byte range, offset is required but missing.");if(null==b)throw new _.G(_.E,4,4044,"Invalid byte range, cannot calculate offset based on previous byte ranges.");d=b+1}e=d+a-1}return{wa:d,ka:e}},tI=function(a,b){a=jI(a,_.Ba);return sI(a?a.value:null,b)},uI=function(a){a=jI(a,"EXTINF",{required:!0}).value.split(",");
8
+ return{duration:Number(a[0]),title:a[1]||null}},vI=function(a,b){b=void 0===b?{}:b;const c={od:!1,lg:!1,mg:null,Og:null,Ef:null};a=jI(a,_.Oa,{required:b.Kf});if(!a)return c;const d=e=>null==e?null:Number(e);c.od="YES"===_.H(a,"CAN-BLOCK-RELOAD");c.lg="YES"===_.H(a,"CAN-SKIP-DATERANGES");c.mg=d(_.H(a,"CAN-SKIP-UNTIL"));c.Og=d(_.H(a,"HOLD-BACK"));c.Ef=d(_.H(a,"PART-HOLD-BACK",void 0,{required:b.Kf}));return c},wI=function(a,b,c){c=void 0===c?!1:c;a=_.H(a,"BYTERANGE");return sI(a,b,c)},yI=function(a,
9
+ b){const c=tI(a.aa,null);return new xI(0,0,0,()=>[a.a],c.wa,c.ka,0,b)},zI=function(a,b){if(null==a)return null;a=Object.assign({},a);null==a.iv&&(a.iv=_.Hi(new Uint8Array(12),new Uint8Array([b>>24&255,b>>16&255,b>>8&255,b&255])));return a},AI=function(a){let b=Infinity,c=Infinity;mI(a).filter(pI).forEach(d=>{{d=d.U;var e=d[0].startTime;const f=d[d.length-1].endTime;d=e;e=f-e}b=Math.min(b,d);c=Math.min(c,e)});return{Ic:b,duration:c}},BI=function(a){return a.map(b=>{({duration:b}=AI(b));return b}).reduce((b,
10
+ c)=>b+c,0)},CI=function(a){return(a.video?a.video.Ca:"")+" - "+(a.audio?a.audio.Ca:"")},DI=function(a,b,c,d){if(b===_.Ub)return{delay:0,qc:0};b=jI(a,_.Ja);if(c&&b){c=Number($H(b,"PART-TARGET"));if(null!=d)return{delay:d,qc:c};({Ef:d}=vI(a,{Kf:!0}));return{delay:d,qc:c}}a=jI(a,_.Qa,{required:!0});a=Number(a.value);return null!=d?{delay:d,qc:a}:{delay:3*a,qc:a}},EI=function(a){const b=[];nI(a,c=>{b.push(c.Wg)});return{delay:Math.max(...b.map(c=>c.delay)),qc:Math.min(...b.map(c=>c.qc))}},GI=function(a){const b=
11
+ new Map;a.forEach(c=>{var d=`${FI(c).type}:${FI(c).groupId}`;b.has(d)?(d=b.get(d),d.includes(c)||d.push(c)):b.set(d,[c])});return b},HI=function(a){const b=new Map;for(const c of a){a=_.H(c,_.cb);a=_.$h(a||_.ag);const d=$H(c,_.Wa),e=$H(c,"INSTREAM-ID");b.has(d)||b.set(d,new Map);b.get(d).set(e,a)}return b},JI=function(a){a=a.audio.concat(a.video);for(const b of a)a=FI(b).codecs.split(",").filter(c=>"mp4a.40.34"!==c),II(b,a)},KI=function(a,b){if(!a)return null;const c=a.Ca;return b.find(d=>FI(d).Ca===
12
+ c)||null},LI=function(a){for(const b of a)if(b.startsWith("#EXT-")&&(a=_.Mi(0,b),_.Ss.has(a.name)))return 1;return 0},MI=function(a,b){return a.replace(/\{\$([a-zA-Z0-9_-]+)\}/g,(c,d)=>{c=b.get(d);if(null==c)throw new _.G(_.E,4,4044,`Undefined variable '${d}'`);return c})},NI=function(a,b){a.forEach(c=>{c.attributes.forEach(d=>{d.value=MI(d.value,b)})})},OI=function(a,b,c){NI(a,c);b.forEach(d=>{d.a&&(d.a=MI(d.a,c));NI(d.aa,c);NI(d.f,c)})},PI=function(a,b){const c=new Map,d=new URL(b);a.forEach(e=>
13
+ {var f=_.H(e,"NAME"),g=_.H(e,"QUERYPARAM");if(f)g=$H(e,"VALUE"),c.set(f,g);else if(g){f=d.searchParams.get(g);if(null==f)throw new _.G(_.E,4,4044,`Query param '${g}' missing in playlist URI.`);if(!f)throw new _.G(_.E,4,4044,`Query param '${g}' has no associated value`+" in playlist URI.");c.set(g,decodeURIComponent(f))}});return c},SI=function(a,b,c){const d=[];for(let e=1;e<b.length;e++){const f=QI(a,b[e]);d.push(f);if(f.name===QH){const g=b[e+1];if(!g)throw new _.G(_.E,4,4044,"EXT-X-STREAM-INF is not followed by a URI.");
14
+ f.attributes.push(new _.Ki(_.Mb,g));e++}}b=fI(d,"EXT-X-DEFINE");gI(b);b=PI(b,c);a.a=b;OI(d,[],a.a);return new RI(c,0,d)},VI=function(a,b,c){let d=[];for(var e=1;e<b.length;){const f=QI(a,b[e]);if(_.Ts.has(f.name))break;d.push(f);e++}b=TI(a,c,b.slice(e));e=b.U;d=d.concat(b.aa);a=UI(a,d,c);OI(d,e,a);return new RI(c,1,d,b.U)},WI=function(a,b,c){b=b.trim().split(/\n+/m).map(d=>d.trim()).filter(d=>d.length&&!/^#(?!EXT)/m.test(d));if(!/^#EXTM3U($|[ \t\n])/m.test(b[0]))throw new _.G(_.E,4,4015);return 0===
15
+ LI(b)?SI(a,b,c):VI(a,b,c)},QI=function(a,b){return _.Mi(a.f++,b)},TI=function(a,b,c){const d=[],e=[];let f=[],g=[];c.forEach(h=>{/^(#EXT)/.test(h)?(h=QI(a,h),_.Ss.has(h.name)||_.Vs.has(h.name)?d.push(h):_.Us.has(h.name)?"EXT-X-PART"===h.name?g.push(h):h.name===_.Ma&&"PART"===_.H(h,_.Kb)&&g.push(h):f.push(h)):/^#(?!EXT)/m.test(h)||(h=lI(b,h.trim(),!1),e.push(new XI(h,f,g)),f=[],g=[])});0<g.length&&e.push(new XI(null,f,g));return{U:e,aa:d}},UI=function(a,b,c){b=fI(b,"EXT-X-DEFINE");gI(b);const d=PI(b,
16
+ c);b.map(e=>_.H(e,"IMPORT")).filter(Boolean).forEach(e=>{const f=a.a.get(e);if(null==f)throw new _.G(_.E,4,4044,`Cannot import variable '${e}' as it is not defined `+"in the master playlist");d.set(e,f)});return d},YI=function(a){return 0>a?[]:Array.from({length:a},(b,c)=>c)},ZI=function(a,b=0){return b+10<=a.length&&73===a[b]&&68===a[b+1]&&51===a[b+2]&&255>a[b+3]&&255>a[b+4]&&128>a[b+6]&&128>a[b+7]&&128>a[b+8]&&128>a[b+9]?!0:!1},$I=function(a){function b(h,k,l){let m="";for(;k<l;k++)m+="%"+("00"+
17
+ h[k].toString(16)).slice(-2);return m}function c(h){return h[0]<<21|h[1]<<14|h[2]<<7|h[3]}function d(){throw new _.G(_.E,4,4030);}ZI(a)||d();let e=10;a[5]&64&&(e=e+4+c(a.subarray(10,14)));do{var f=c(a.subarray(e+4,e+8));1>f&&d();var g=String.fromCharCode(a[e],a[e+1],a[e+2],a[e+3]);if("PRIV"===g){g=a.subarray(e+10,e+f+10);for(let h=0;h<g.byteLength;h++)if(0===g[h]){if("com.apple.streaming.transportStreamTimestamp"===unescape(b(g,0,h)))return a=g.subarray(h+1),f=(a[3]&1)<<30|a[4]<<22|a[5]<<14|a[6]<<
18
+ 6|a[7]>>>2,f*=4,f+=a[7]&3,Math.round(f/9E4);break}}ZI(a,e)||d();e+=10;e+=f}while(e<a.byteLength);return d()},aJ=function(a,b){let c=null,d=0;try{(new _.Tl).N(_.Be,_.Ml).N(_.Yf,_.Ml).N(_.we,_.Ml).ca("mdhd",g=>{g.reader.skip(0===g.version?8:16);d=_.O(g.reader);g.parser.stop()}).parse(b,!0)}catch(g){c=g}if(c||!d)throw _.Wt.error("Unable to find timescale in init segment!"),new _.G(_.E,4,4030,OH,c);let e=0,f=!1;try{(new _.Tl).N("moof",_.Ml).N("traf",_.Ml).ca("tfdt",g=>{var h=d;if(0===g.version)h=_.O(g.reader)/
19
+ h;else{{const k=_.O(g.reader),l=_.O(g.reader);if(!(2097151>=k||h>=Math.pow(2,12)))throw Error("Cannot accurately parse MP4 timestamp, base time is too high and timescale is \x3c\x3d 2^12");h=k/h*Math.pow(2,32)+l/h}}e=h;f=!0;g.parser.stop()}).parse(a,!0)}catch(g){c=g}if(c||!f)throw new _.G(_.E,4,4030,OH,c);return e},bJ=function(a){for(;a.getPosition()<a.Ja()-1;){const b=a.getPosition();if(71===_.El(a))return aI(a),b}return-1},cJ=function(a){function b(){d.seek(e+188);f=_.El(d);71!==f&&(d.seek(e+192),
20
+ f=_.El(d));71!==f&&(d.seek(e+204),f=_.El(d));71!==f&&c();aI(d)}function c(){throw new _.G(_.E,4,4030);}const d=new _.Fm(new DataView(a),!1);let e=0,f=0;e=bJ(d);0>e&&(_.Wt.error("Unable to find sync byte in TS after scanning."),c());for(;;){e=d.getPosition();f=_.El(d);71!==f&&c();a=_.Fl(d);if(8191===(a&8191)){b();continue}if(!(a&16384)){b();continue}a=(_.El(d)&48)>>4;0!==a&&2!==a||c();3===a&&(a=_.El(d),d.skip(a));if(1!==_.O(d)>>8){b();continue}d.skip(3);a=_.El(d)>>6;0!==a&&1!==a||c();0===_.El(d)&&
21
+ c();a=_.El(d);const g=_.Fl(d),h=_.Fl(d);return(1073741824*((a&14)>>1)+((g&65534)<<14|(h&65534)>>1))/9E4}},dJ=function(a,b){a=a.map(c=>c.streams[b]);return a.some(c=>null==c)?null:a},II=function(a,b){a.streams.forEach(c=>{c.codecs=b.join(",")})},FI=function(a){return a.streams[0]},eJ=function(a,b){a.streams.forEach(c=>{c.Od=b})},fJ=function(a,b){a.streams.forEach(c=>{c.width=b})},gJ=function(a,b){a.streams.forEach(c=>{c.height=b})},hJ=function(a,b){a.streams.forEach(c=>{c.frameRate=b})},iJ=function(a,
22
+ b){a.streams.forEach(c=>{c.bandwidth=b})},jJ=function(a,b){a=a.streams.find(c=>{c=c.U;return c[0].position<=b&&b<=c[c.length-1].position});return null==a?null:a.U.find(c=>c.position===b)||null},kJ=function(a,b){a=a.map(c=>c.a[b]);return a.some(c=>null==c)?null:a},lJ=function(a,b,c){return _.w(function*(){const d=b.f(),e=_.CC(b.Va(),b.wa,b.wa+2048-1,a.a.attemptParameters);e.type=2;const f=_.CC(b.Va(),b.wa,b.ka,a.a.attemptParameters);f.type=2;d&&(f.keyInfo=d);try{return yield a.f(c?f:e)}catch(g){if(7001===
23
+ g.code||c)throw g;a.g.warn("Unable to fetch a partial HLS segment! Falling back to a full segment request, which is expensive! Your server should support Range requests and CORS pre-flights.",e.uris[0]);try{return yield a.f(f)}catch(h){throw a.g.error("Failed to fetch media segment to parse its start timestamp.",f.uris[0],h),new _.G(_.E,4,4030,"Failed to fetch the media segment.");}}})},mJ=function(a,b,c,d,e,f){return _.w(function*(){a.g.debug("Fetching segment to find start time");if("audio/mpeg"===
24
+ d||d===_.Kc||d===_.Jc)return 0;if(d===_.Ic){var g=yield lJ(a,c,f);const h=_.I(g.data);return ZI(h)?$I(h):cJ(g.data)}if(d===_.qg||d===_.Lc)return g=[lJ(a,c,f)],b&&g.push(lJ(a,b,!0)),g=yield Promise.all(g),aJ(g[0].data,(g[1]||g[0]).data);if(d===_.mg)return g=yield lJ(a,c,f),cJ(g.data);if(!_.Tr(`${d.split("/")[0]||""}/mp4;codecs="${e}"`))return 0;throw new _.G(_.E,4,4030);})},pJ=function(a){const b=nJ(a),c=oJ(a);a.forEach(d=>{const e=d.U,f=e.findIndex(h=>h.ja===b);let g=e.findIndex(h=>h.ja===c+1);-1===
25
+ g&&(g=e.length);d.U=e.slice(f,g)})},oJ=function(a){a=a.map(b=>b.U[b.U.length-1].ja);return Math.min(...a)},nJ=function(a){a=a.map(b=>b.U[0].ja);return Math.max(...a)},sJ=function(a){var b=$H(a,TH);if(!qJ.includes(b))return rJ.error("PlayReady in HLS is only supported with [",qJ.join(", "),"], not",b),null;a=$H(a,_.Mb);b=_.jp(a);a=null;b=_.I(b.data);try{a=_.$A(_.Mm(b))}catch(c){a=b}return _.mB(_.wd,[{initDataType:_.bd,initData:a}],"")},uJ=function(a){if(0===a.length)return tJ();if(a.some(c=>c.type===
26
+ ZH)||a.every(c=>c.type===_.Ee))return a[0];a=a.filter(c=>c.type===YH);const b=_.Ch(a.flatMap(c=>c.drmInfos));return{keyInfo:null,keyId:a[a.length-1].keyId,type:YH,drmInfos:b}},xJ=function(a){a=vJ(a);if(a.some(b=>wJ(b))&&1<a.length)throw new _.G(_.E,4,4046,"Two EXT-X-KEY tags, one with METHOD\x3dAES-128 are applied to one playlist.");},wJ=function(a){return fI(a.aa,_.Ga).some(b=>"AES-128"===_.H(b,TH))},zJ=function(a,b,c){return vJ(a).map(d=>yJ(d.aa,b,c))},AJ=function(a){return a.filter(b=>iI(b.aa,
27
+ _.Ga)).length},vJ=function(a){return a.filter(b=>iI(b.aa,_.Ga))},yJ=function(a,b,c){a=fI(a,_.Ga);if(0===a.length)return null;var d=$H(a[0],TH);if(1===a.length){if("NONE"===d)return tJ();if("AES-128"===d)return a=a[0],d=_.H(a,"IV",""),{type:ZH,keyInfo:{method:"AES-128",url:lI(b,$H(a,_.Mb)),iv:d?_.Ei((d||"0x").slice(2)):null},drmInfos:[],keyId:null}}b=a.map(e=>$H(e,TH));if(!b.every(e=>"SAMPLE-AES"===e)&&!b.every(e=>e===UH))throw BJ.warn(`EXT-X-KEY methods ${b.join(", ")} are incompatible.`),new _.G(_.E,
28
+ 4,4044,"Multiple EXT-X-KEY tags with incompatible METHOD values.");b=a.map(e=>{const f=_.H(e,"KEYFORMAT","identity");{const g=CJ[f]||null;e=g?g(e,c):null}e||BJ.warn("Unsupported HLS KEYFORMAT",f);return e}).filter(Boolean);if(0===b.length)throw new _.G(_.E,4,4026);return{keyInfo:null,keyId:b.map(e=>e.keyIds).reduce((e,f)=>e.concat(f),[]).reverse()[0]||null,type:YH,drmInfos:b}},tJ=function(){return{type:_.Ee,keyInfo:null,drmInfos:[],keyId:null}},DJ=function(a,b){const c=new Set(a.map(d=>d.ja));return b.filter(d=>
29
+ !c.has(d.ja))},FJ=function(a,b){for(;a[0].ja<b[0].ja;)a.splice(0,1);var c=a[0];let d=b[0];c.startTime===d.startTime&&c.endTime===d.endTime||EJ(c,d);const e=a.length-1;c=a[e];d=b[e];0<e&&(c.startTime!==d.startTime||c.endTime!==d.endTime)&&EJ(c,d);for(c=e+1;c<b.length;)a.push(b[c]),c++},KJ=function(a,b,c,d,e){var f=b[0].length();f=YI(f).map(g=>{var h=kJ(b,g)||[];const k=dJ(c,g)||[];g=dJ(d,g)||[];{const l=[...GJ(h),...k,...g].filter(Boolean);HJ(l);const {ja:m,duration:n}=l[0];h={configurationId:a,variants:h,
30
+ textStreams:k,thumbStreams:g,startTime:0,id:`P${m}`,endTime:n,duration:n,ja:m}}return h});e&&IJ(f[0]);JJ(f);return f},GJ=function(a){a=new Set(a.flatMap(b=>[b.video,b.audio]).filter(Boolean));return Array.from(a)},IJ=function(a){const b=GJ(a.variants)[0].U[0].Ba;a.startTime+=b;a.endTime+=b},JJ=function(a){for(let b=0;b<a.length;b++){const c=a[b],d=a[b-1];c.startTime=d?d.endTime:c.startTime;c.endTime=c.startTime+c.duration}},EJ=function(a,b){a.startTime=b.startTime;a.endTime=b.endTime;a.duration=b.duration;
31
+ LJ(a.variants,b.variants);MJ(mI(a),mI(b))},LJ=function(a,b){const c=new Map(a.map(d=>[CI(d),d]));b.forEach(d=>{c.get(CI(d)).drmInfos=d.drmInfos})},MJ=function(a,b){const c=new Map(a.map(d=>[d.Ca,d]));b.forEach(d=>{const e=c.get(d.Ca);e.U=d.U;e.segmentIndex.replace(d.U);e.Ic=d.Ic;e.fe=d.fe;e.duration=d.duration;e.df=d.df;e.encrypted=d.encrypted;e.drmInfos=d.drmInfos;e.keyId=d.keyId})},HJ=function(a){const b=NJ(a);a.forEach(c=>{_.sC(c.segmentIndex,b);c.duration=b;c.fe=c.Ic+b})},NJ=function(a){let b=
32
+ Infinity;a.filter(pI).forEach(c=>{b=Math.min(b,c.duration)});return b},OJ=function(a,b){nI(b,(c,d)=>{_.JB(a,c.U,d.startTime)});_.BB(a.a,b[0].startTime,b[b.length-1].endTime)},PJ=function(a){return null===a.j?[]:[a.j.audio,a.j.video].filter(b=>b).map(b=>b.Ca)},QJ=function(a,b){return _.w(function*(){var c=_.Si([b],a.a.attemptParameters);c.type=1;c=yield a.G(c);let d="";try{d=_.ni(c.data)}catch(e){throw new _.G(_.E,4,4042);}d=d.replace(/\r\n|\r(?=[^\n]|$)/gm,"\n");d=d.trim();return{text:d,response:c}})},
33
+ WJ=function(a,b){return _.w(function*(){var c=RJ(a,b,a.A,"");if(1===c.type){c=_.Os(c.U[0].a)||"";c=null!=_.Ns.video[c]?_.t:null!=_.Ns.audio[c]?_.p:null;var d="";c===_.t?d="avc1.42E01E":c===_.p&&(d="mp4a.40.2");c=a.L;var e=a.A;d=a.a.hlsDefaultCodecs||d;var f=[],g=[];g.push(new _.Ki(_.ma,"0"));g.push(new _.Ki(_.Mb,e));d.length&&g.push(new _.Ki(_.pa,d));f.push(new _.Li(c.f++,QH,g));c=new RI(e,0,f)}d=c.aa;c=fI(d,"EXT-X-MEDIA");e=fI(d,QH);d=fI(d,"EXT-X-IMAGE-STREAM-INF");c={Hc:{gg:hI(c,[_.Oz,_.Tb]),closedCaptions:hI(c,
34
+ NH),Ah:hI(c,VH)},ld:e,be:d};const {periods:h,jh:k,Ch:l}=yield SJ(a,c);if(!a.D)throw new _.G(_.E,7,7001);e=EI(h[0]);TJ(a,h);c=!0;d=null;f=0;UJ(a)||(c=!1,d=0,f=e.delay);g=a.a.timeline||{};g.type=void 0;d=new _.xH(g,d,f,!0,void 0,!!a.a.lowLatencyMode);_.FB(d,c);OJ(d,h);k&&_.EB(d,k);c=d;if(!UJ(a)){a.F=e.qc;e=0;for(var m of a.f.values())e=Math.max(e,m.streams[0].Ic);for(m=0;95443.7176888889<=e;)m+=95443.7176888889,e-=95443.7176888889;if(m){a.g.debug("Offsetting live streams by",m,"to compensate for rollover");
35
+ for(var n of a.f.values())e=n.streams[0],95443.7176888889>e.Ic?(a.g.debug("Offset applied to",e.type),e.segmentIndex.offset(m)):a.g.debug("Offset NOT applied to",e.type)}}n=BI(h);"LIVE"===a.l||"EVENT"===a.l?(n=Math.max(n,c.J),isNaN(a.a.availabilityWindowOverride)||(n=a.a.availabilityWindowOverride),c.A=n):a.l===_.Ub&&(c.f=n);n=VJ(a,l);n={presentationTimeline:c,periods:h,minBufferTime:0,cues:n};a.g.debug("HLS playlist parsed",n);return n})},YJ=function(a,b){return Promise.all(b.map(c=>XJ(a,c)))},$J=
36
+ function(a,b){b.forEach(c=>{a:{var d=a.f.get(c.a),e=!UJ(a),f=jI(c.aa,_.Ea);if(f)var g=Number(f.value);else{d?(f=d.streams[d.streams.length-1].U,f=f[f.length-1].ja):f=0;if(e&&0<f)try{{const k=jI(c.aa,_.Ia);if(!k)throw ZJ.error("Failed to infer discontinuity number, because EXT-X-MEDIA-SEQUENCE tag is missing."),Error(RH);const l=Number(k.value),m=jJ(d,l);if(!m)throw ZJ.error("Failed to infer discontinuity number, could not find the appropriate segment in the previous playlist"+` (segment position = ${l})`),
37
+ Error(RH);var h=m.ja}g=h;break a}catch(k){throw new _.G(_.E,4,4024,"EXT-X-DISCONTINUITY-SEQUENCE tag is required for discontinuous HLS live streams.");}g=0}}c=c.U||[];for(const k of c)iI(k.aa,_.Da)&&g++,k.ja=g});pJ(b)},cK=function(a,b){return _.w(function*(){const {textStreams:c,thumbStreams:d,hg:e}=yield aK(a,b);var f=a.o.periods[0].variants;a.a.lowLatencyMode&&null!==a.j&&(f=f.filter(g=>g.id===a.j.id));f=f.map(g=>{const h=KI(g.audio,e),k=KI(g.video,e);g=bK(a,h,k,g.bandwidth);if(!g)throw new _.G(_.E,
38
+ 4,4047,{message:"Video and audio are encrypted in an incompatible way.",gi:k?FI(k).Ca:void 0,audio:h?FI(h).Ca:void 0});return g});return KJ(a.D.configurationId,f,c,d,!0)})},TJ=function(a,b){UJ(a)||2!==a.a.timeline.version||(a.H||(a.H=b[0].startTime),_.qF(b,-a.H))},dK=function(a,b){b=b.flatMap(d=>d.U[0].aa);b=jI(b,_.Na);if(!b)return null;const c=(new Date(b.value)).getTime();return isNaN(c)?(a.g.warn("Failed to parse EXT-X-PROGRAM-DATE-TIME tag "+`value (value: ${b.value}).`),null):c/1E3},eK=function(a,
39
+ b,c){b=b.find(d=>null!==jI(d.aa,_.Ca));if(!b)return[];if(null===c)throw new _.G(_.E,4,4024,"EXT-X-PROGRAM-DATE-TIME tag is required when EXT-X-DATERANGE tags are present");return b.aa.filter(d=>d.name===_.Ca).map(d=>{a:{var e=a.B,f=!UJ(a),g=_.H(d,"ID"),h=_.H(d,"START-DATE");if(null===g||null===h)_.Rs.warn("Invalid EXT-X-DATERANGE missing mandatory ID or START-DATE attribute, ignoring the EXT-X-DATERANGE tag.",d),d=null;else{e=f?e-c:-c;var k=new Date(h);h=k.getTime()/1E3+e;g={id:g,startTime:h,startDate:k};
40
+ f=dI(_.H(d,PH));void 0!==f&&0<=f&&(g.duration=f);var l=dI(_.H(d,"PLANNED-DURATION"));void 0!==l&&0<=l&&(g.plannedDuration=l);var m=_.H(d,"CLASS");null!==m&&(g.schemeIdUri=m);var n=_.H(d,"END-DATE");n=n?new Date(n):null;null!==n&&n.getTime()>=k.getTime()&&(g.endDate=n);{const v=d.attributes;if(null==v)var q=null;else{k={};for(q of v)q.name.trim().startsWith("X-")&&(k[q.name]=q.value);q=_.Tg(k)?k:null}}q=q||{};if(k=_.H(d,"CUE"))q.Kh=k.split(",");if(m===_.vd){k=d.attributes;if(null==k)var u=null;else{m=
41
+ {};for(u of k)switch(u.name){case _.$b:m[_.$b]=u.value;break;case _.Zb:m[_.Zb]=u.value;break;case _.bc:m[_.bc]=dI(u.value);break;case _.ac:m[_.ac]=dI(u.value);break;case "X-SNAP":m["X-SNAP"]=u.value.split(",");break;case "X-RESTRICT":m["X-RESTRICT"]=u.value.split(",")}m[_.$b]&&m[_.Zb]||!m[_.$b]&&!m[_.Zb]?(_.Rs.warn("Invalid EXT-X-DATERANGE Interstitial attributes X-ASSET-URI, X-ASSET-LIST"),u=null):u=_.Tg(m)?m:null}if(null===u){_.Rs.warn("Invalid interstitial attributes, ignoring the EXT-X-DATERANGE tag.",
42
+ d);d=null;break a}q=Object.assign(q,u)}_.Tg(q)&&(g.customAttributes=q);g.endTime=n?n.getTime()/1E3+e:f?h+f:l?h+l:h;g.type=_.be;d=g}}return d}).filter(Boolean)},VJ=function(a,b){const c=new Set(b.map(d=>d.id));a.w.forEach((d,e)=>{c.has(e)||a.w.delete(e)});for(const d of b){if((b=a.w.get(d.id))&&b.startTime!==d.startTime)a.D.onError(new _.G(1,4,4044,"EXT-X-DATERANGE START-DATE has changed for"+` ID=${d.id}`));const e={configurationId:a.D.configurationId,schemeIdUri:d.schemeIdUri,customAttributes:d.customAttributes,
43
+ value:"",startTime:d.startTime,endTime:d.endTime,id:d.id,type:_.be,eventElement:null};b&&!cI(b,e)||a.w.set(d.id,e)}return Array.from(a.w.values())},fK=function(a,b,c){a.l=_.Ub;_.FB(b,!0);b.f=c[c.length-1].endTime},RJ=function(a,b,c,d){a=WI(a.L,b,c);a.a=d;return a},SJ=function(a,b){return _.w(function*(){var c=HI(b.Hc.closedCaptions),d=gK(a,b.ld),e=yield hK(a,b),f=Object.values(e).flat().map(g=>g.playlist);$J(a,f);f=yield iK(a,e.We,d);c=yield jK(a,e.ld,f,c);d=yield kK(a,e.zh,d);f=yield lK(a,e.be);
44
+ d=KJ(a.D.configurationId,c,d,f,!UJ(a));a.D.filterAllPeriods(d);c=[...e.ld,...e.We].map(g=>g.playlist);e=dK(a,c);c=eK(a,c,e);return{periods:d,jh:e,Ch:c}})},aK=function(a,b){return _.w(function*(){const c=g=>FI(g.stream).type===_.t||FI(g.stream).type===_.p;var d=b.filter(c),e=b.filter(g=>!c(g)),f=g=>{g=g.map(h=>{var k=FI(h.stream);k={language:k.language,channelsCount:k.channelsCount,spatialAudio:k.spatialAudio,closedCaptions:k.closedCaptions,primary:k.primary,kind:k.kind||null,groupId:k.groupId,type:k.type,
45
+ codecs:k.codecs,name:k.originalId,uri:k.Ca,Md:{width:k.width,height:k.height,frameRate:k.frameRate}};h=Object.assign({},{playlist:h.playlist},k);return mK(a,h)});return Promise.all(g)};d=yield f(d);f=yield f(e);nK(a,d.concat(f));e=f.filter(g=>FI(g).type===_.UA);f=f.filter(g=>FI(g).type===_.de);return{textStreams:e,thumbStreams:f,hg:d}})},bK=function(a,b,c,d){const e=[],f=(c||b).length();for(let m=0;m<f;m++){var g=b?b.streams[m]||null:null,h=c?c.streams[m]||null:null,k=g,l=h;k=k&&l?_.tB(k.drmInfos,
46
+ l.drmInfos)?_.sB(k.drmInfos,l.drmInfos):null:k?k.drmInfos:l?l.drmInfos:null;if(!k)return null;l=d;g={id:a.O++,language:g?g.language:_.ag,primary:!!g&&g.primary||!!h&&h.primary,audio:g,video:h,bandwidth:l,drmInfos:k,allowedByApplication:!0,allowedByKeySystem:!0};e.push(g)}return new oK(e)},mK=function(a,b){return _.w(function*(){const c=b.playlist,d=b.codecs,e=b.type,f=b.$c,g=b.groupId,h=b.primary;var k=b.kind;const l=b.name,m=b.channelsCount,n=b.spatialAudio,q=b.closedCaptions,u=b.Md,v=_.$h(f||_.ag);
47
+ if(1!==c.type)throw new _.G(_.E,4,4017);var y=qI(c.aa,null==a.o);a.l=y;const A=DI(c.aa,y,a.a.lowLatencyMode||!1,a.a.suggestedPresentationDelay);y=yield pK(a,c,e,d);const D=a.a.lowLatencyMode?_.JA:_.IA;let M=k;e!==_.F||k||(M=_.UA);const {od:ea}=vI(c.aa);k=y.map(sb=>{const Sb=sb.U,od=sb.sg,jg=sb.mimeType;sb=sb.ja;const Ua=Sb[0].startTime,ke=Sb[Sb.length-1].endTime,Qc=ke-Ua,fa=new _.BH(Sb),Za=Sb[0].initSegment||null;return{id:_.CH++,originalId:l,createSegmentIndex:Promise.resolve.bind(Promise),findSegmentPosition:fa.f.bind(fa),
48
+ getSegmentReference:fa.get.bind(fa),adjustSegmentDurations:fa.h.bind(fa),getDuration:fa.getDuration.bind(fa),segmentIndex:fa,segmentLookupStrategy:D,initSegmentReference:Za,mimeType:jg,codecs:d,kind:M,df:od.type,encrypted:od.type===YH,keyId:od.keyId,language:v,originalLanguage:f||_.ag,label:l,type:e,primary:h,trickModeVideo:null,emsgSchemeIdUris:null,frameRate:u?u.frameRate:void 0,width:u?u.width:void 0,height:u?u.height:void 0,bandwidth:void 0,roles:[],channelsCount:m,spatialAudio:n,closedCaptions:q,
49
+ keyInfo:od.keyInfo,U:Sb,drmInfos:od.drmInfos,ja:sb,Ca:c.a,Od:c.f,Ic:Ua,fe:ke,duration:Qc,od:ea,groupId:g,Wg:A}});return new qK(k)})},nK=function(a,b){b.forEach(c=>{a.f.a.set(FI(c).Ca,c)})},gK=function(a,b){const c=new Map;for(const f of b){var d=_.H(f,_.Oz);b=_.H(f,_.Tb);var e=_.H(f,VH);const g=rK(a,f);if(e){const h=_.Bj(_.F,g);c.set(`${_.F}:${e}`,h);e=g.indexOf(h);-1<e&&g.splice(e,1)}d&&(e=sK(_.p,g),c.set(`${"audio"}:${d}`,e));b&&(d=sK(_.t,g),c.set(`${"video"}:${b}`,d))}return c},hK=function(a,b){return _.w(function*(){const c=
50
+ yield Promise.all([tK(a,b.Hc.gg),tK(a,b.Hc.Ah),tK(a,b.ld),tK(a,b.be)]),[d,e,f,g]=c;return{We:d,zh:e,ld:f,be:g}})},iK=function(a,b,c){return _.w(function*(){if(0===b.length)return new Map;var d=[uK(a,b[0],c)];yield d[0];d=d.concat(b.slice(1).map(e=>uK(a,e,c)));d=yield Promise.all(d);return GI(d)})},jK=function(a,b,c,d){return _.w(function*(){const e=new Set;var f=[...b];let g=0;var h=Infinity;for(let k=0;k<f.length;++k){const l=Number($H(f[k].tag,_.ma));l<h&&(h=l,g=k)}h=f.splice(g,1).pop();h=yield vK(a,
51
+ h,c,d,e);f=f.map(k=>vK(a,k,c,d,e));f=yield Promise.all(f);f.splice(g,0,h);return f.reduce(_.jB,[])})},kK=function(a,b,c){return Promise.all(b.map(d=>uK(a,d,c)))},lK=function(a,b){return Promise.all(b.map(c=>wK(a,c)))},UJ=function(a){return a.l===_.Ub},tK=function(a,b){return _.w(function*(){return(yield Promise.all(b.map(c=>_.w(function*(){const d=yield xK(a,c);return d?{tag:c,playlist:d}:null})))).filter(Boolean)})},XJ=function(a,b){return _.w(function*(){var c=new _.Mh(FI(b).Od);if(a.a.lowLatencyMode&&
52
+ FI(b).od){var d=b.streams[b.streams.length-1].segmentIndex;if(d=d.a[d.a.length-1]){var e=d.a,f=e.length-1;d={Xg:d.position,dh:e&&0<e.length?f:null}}else d=null;if(e=d)d=e.Xg,e=e.dh,f=_.nj(c.a.toString()),f._HLS_msn=d.toString(),null===e&&f._HLS_part&&delete f._HLS_part,null!==e&&(f._HLS_part=e.toString()),d=_.mj(f,!0),d=new _.Th(d),_.Ph(c,d)}const {response:g,text:h}=yield QJ(a,c.toString());c=FI(b).Ca;d=FI(b).Od;e=g.uri;d!==e&&(d=e,eJ(b,d));c=RJ(a,h,d,c);return{stream:b,playlist:c}})},rK=function(a,
53
+ b){var c=_.H(b,_.pa,a.a.hlsDefaultCodecs||"avc1.42E01E,mp4a.40.2").split(/\s*,\s*/);b=new Set;const d=[];for(const e of c)c=_.yB(e),b.has(c)?a.g.debug("Ignoring duplicate codec"):(d.push(e),b.add(c));return d},sK=function(a,b){if(1===b.length)return b[0];a=_.Bj(a,b);if(null!=a)return a;throw new _.G(_.E,4,4025,{codecList:b});},uK=function(a,b,c){return _.w(function*(){const d=b.tag,e=b.playlist;return yK(a,e.a,()=>_.w(function*(){const f=$H(d,_.Wa),g=rI($H(d,_.Kb));var h=$H(d,_.Kb).toUpperCase();
54
+ if(rI(h)!==_.F)h=null;else{var k=d.getAttribute("FORCED");k=!(!k||!k.value||"YES"!==k.value.toUpperCase());var l=_.UA;h===NH&&(l=_.EA);k&&(l=_.Xd);h=l}k=c.get(`${g}:${f}`)||"";l=_.H(d,_.cb);const m=_.H(d,"NAME"),n=d.getAttribute("DEFAULT"),q=d.getAttribute("AUTOSELECT");var u=_.H(d,"CHANNELS");u=g===_.p?u?parseInt(u.split("/")[0],10):null:null;var v=g===_.p?(v=_.H(d,"CHANNELS"))?v.includes("/JOC"):!1:!1;return yield mK(a,{playlist:e,codecs:k,type:g,$c:l,primary:!!n&&!!q,name:m,channelsCount:u,spatialAudio:v,
55
+ groupId:f,kind:h,closedCaptions:null,Md:null})}))})},wK=function(a,b){return _.w(function*(){const c=b.tag,d=b.playlist;return yK(a,d.a,()=>_.w(function*(){var e=_.H(c,_.pa)||"jpg",f=_.H(c,_.cb);const g=_.H(c,"NAME");e=yield mK(a,{playlist:d,codecs:e,type:_.de,$c:f,name:g,primary:!1,kind:null,channelsCount:null,spatialAudio:!1,closedCaptions:null,groupId:null,Md:null});(f=_.H(c,_.ma))&&iJ(e,Number(f));return e}))})},vK=function(a,b,c,d,e){return _.w(function*(){var f=b.tag,g=Number($H(f,_.ma));if(null!=
56
+ f.getAttribute("FRAME-RATE")||null!=f.getAttribute(_.Cb)){var h=_.H(f,"FRAME-RATE");f=_.H(f,_.Cb);var [k,l]=f?f.split("x"):[null,null];h={frameRate:dI(h),width:dI(k),height:dI(l)}}else h=null;if(f=yield zK(a,b,h,c,d)){h=f.video;f=f.audio;var m=0<f.length?f:[null];h=0<h.length?h:[null];f=[];for(const n of m)for(const q of h){m=(q?FI(q).Ca:"")+" - "+(n?FI(n).Ca:"");if(e.has(m)){a.g.debug("Skipping variant which only differs in text streams.");continue}const u=bK(a,n,q,g);null==u?a.g.warn("Incompatible DRM info in HLS variant. Skipping."):
57
+ (f.push(u),e.add(m))}g=f}else g=[];return g})},zK=function(a,b,c,d,e){return _.w(function*(){var f=b.tag,g=b.playlist;let h=rK(a,f);var k=_.H(f,_.Oz),l=_.H(f,_.Tb);k=k?d.get(`${"audio"}:${k}`)||[]:[];var m=l?d.get(`${"video"}:${l}`)||[]:[];l=[...k,...m];k={audio:k,video:m};a.g.debug("Guessing stream type for",f.toString());f=!1;const n=g.a;g=k.audio.find(q=>FI(q).Ca===n);m=_.Bj(_.t,h);m=c||m;1!==h.length||m?!l.length&&1<h.length?(a.g.debug("Guessing multiplexed audio+video"),g=_.t,h=[h.join(",")]):
58
+ k.audio.length&&g?(a.g.debug(SH),g=_.p,f=!0):k.video.length?(a.g.debug(SH),g=_.p):(a.g.debug("Guessing video-only"),g=_.t):(g=_.p,a.g.debug(SH));m=null;f||(m=yield AK(a,b,h,g,e,c));if(null==m)return null;k[g]=[m];g===_.p&&c&&l.forEach(q=>{fJ(q,c.width);gJ(q,c.height);hJ(q,c.frameRate)});JI(k);return k})},AK=function(a,b,c,d,e,f){return _.w(function*(){const g=b.tag,h=b.playlist;return yK(a,h.a,()=>_.w(function*(){var k=_.H(g,NH);let l=null;d===_.t&&k&&"NONE"!==k&&(l=e.get(k));k=sK(d,c);return yield mK(a,
59
+ {playlist:h,codecs:k,type:d,closedCaptions:l,primary:!1,kind:null,$c:null,name:null,channelsCount:null,spatialAudio:!1,groupId:null,Md:f})}))})},yK=function(a,b,c){if(a.f.has(b))return a=a.f.get(b),Promise.resolve(a);if(a.f.f.has(b))return a.f.f.get(b)||null;c=c();a.f.set(b,c);return c},pK=function(a,b,c,d){return _.w(function*(){var e=b.a,f=b.U;var g=void 0===g?0:g;var h=(h=jI(b.aa,_.Ia))?Number(h.value):g;g=[];!UJ(a)&&xJ(f);e=yield BK(a,b.f,e,f,h,c,d);if(0===f.length)f=[];else{var k=[],l=[];for(var m of f)iI(m.aa,
60
+ _.Da)&&0<l.length&&(k.push(l),l=[]),l.push(m);k.push(l);f=k}for(m=0;m<f.length;m++)k=f[m],l=yield CK(a,b.f,k,h,e,c,d,g[g.length-1]||null,f.length),g.push(l),h+=k.length;DK(g);return g})},xK=function(a,b){return _.w(function*(){var c="EXT-X-MEDIA"!==b.name?!0:_.H(b,_.Kb)===VH;c=_.H(b,_.Mb,void 0,{required:c});if(!c)return null;const d=lI(a.A,c),{response:e,text:f}=yield QJ(a,d);return RJ(a,f,e.uri,c)})},DK=function(a){if(1<(new Set(a.map(b=>b.mimeType))).size)throw new _.G(_.E,4,4045,"Media playlist contains discontinuities with different MIME types. This is valid, but not yet supported.");
61
+ },EK=function(a){a=a.map(b=>b.a?b.a:b.f.map(c=>_.H(c,_.Mb))||null).map(b=>_.Os(b));if(1<(new Set(a)).size)throw new _.G(_.E,4,4044,"Unexpected change in file format.");},FK=function(a,b,c){a=fI(a.aa,_.Ha);if(1<a.length)throw new _.G(_.E,4,4020);a=a[0];if(!a)return null;const d=$H(a,_.Mb),e=lI(b,d);b=wI(a,null,!0);return new _.vH(()=>[e],b.wa,b.ka,c)},GK=function(a,b,c,d,e,f,g){const h=[];for(const q of eI(b.f)){b=q.rf;const u=q.item;{var k=0===b,l=k?a:h[h.length-1],m=k?d:l.endTime,n=Number(_.H(u,
62
+ PH));n=m+n;k=wI(u,k?null:l.ka,k);l=_.H(u,_.Mb);const v=(l=lI(g,l))?[l]:[];m=new xI(c,m,n,()=>v,k.wa,k.ka,e,f,!1,null,null,null,null);if("YES"===_.H(u,"INDEPENDENT")||0===b)m.h=!0;h.push(m)}}return h},HK=function(a,b,c,d,e,f,g,h,k,l,m){const n=c.aa;var q=c.a;0<fI(n,_.Ha).length&&(m=FK(c,k,g));const u=null!=q,v=q?[q]:[];if(!u&&!a.a.lowLatencyMode)return null;a=0;q={wa:0,ka:null};let y=null;u?({duration:c}=uI(n),a=e+c,q=tI(n,b?b.ka:null)):(b=GK(b,c,d,e,f,g,k),a=b[b.length-1].endTime,y=b);h=h===_.de?
63
+ kI(n):null;d=new xI(d,e,a,()=>v,q.wa,q.ka,f,g,!1,null,h?h.Vc:null,h?h.kd:null,h?h.durationPerTile:null,y,m);d.ja=l;return d},BK=function(a,b,c,d,e,f,g){return _.w(function*(){var h=d[0];if(null!=a.B)return a.B;if(!UJ(a)&&a.o)try{var k=a.f.get(c);var l=k?jJ(k,e)||null:null;if(!l)throw new _.G(_.E,4,4030,"Segment not found in pervious playlist update.");var m=l.startTime+l.Ba;a.g.debug(`Setting playlist start time to ${m}.`);return a.B=m}catch(n){if(h=a.f.get(c))m=h.streams[h.streams.length-1].U,m=
64
+ m[m.length-1],a.g.warn(`Last #EXT-X-MEDIA-SEQUENCE values ${h.streams[0].U[0].position} - ${m.position}`+`, new values ${e} - ${e+d.length-1}.`,b,h);throw new _.G(_.E,4,4047,{message:"The updated playlist does not share any segments with the previous one.",uri:c});}m=yield IK(a,f,g,h);k=yJ(h.aa,a.A,m)||tJ();l=FK(h,b,k.keyInfo);k=zI(k.keyInfo,e);h=yield JK(a,l,h,k,m,g);a.g.debug(`Setting playlist start time to ${h}.`);return a.B=h})},CK=function(a,b,c,d,e,f,g,h,k){return _.w(function*(){var l=c[0],
65
+ m=null==h;EK(c);const n=yield IK(a,f,g,l);var q=a.A,u=h?h.Vg:null;var v=1===k;if(c.slice(1).some(wJ))throw new _.G(_.E,4,4046,v?"Media playlist contains an EXT-X-KEY tag with METHOD\x3dAES-128 which is not at the beginning of the playlist.":"Media playlist contains an EXT-X-KEY tag with METHOD\x3dAES-128 which is not marked by an EXT-X-DISCONTINUITY tag and is not at the beginning of the playlist.");if(iI(c[0].aa,_.Ga)||null===u)if((u=yJ(c[0].aa,q,n))&&u.type===ZH){if(1<AJ(c))throw new _.G(_.E,4,
66
+ 4046,WH+`${v?"playlist":"discontinuity"}.`);v=[u]}else v=zJ(c,q,n),v=0===v.length?[tJ()]:v;else if(q=zJ(c,q,n),u.type===_.Ee||u.type===YH)v=[u,...q];else{if(0<AJ(c))throw new _.G(_.E,4,4046,WH+`${v?"playlist":"discontinuity"}.`);v=[u]}q=v;v=q[q.length-1];q=uJ(q);u=FK(l,b,q.keyInfo)||(h?h.Pg:null);var y=zI(q.keyInfo,d);const A=l.ja;l=m?e:yield KK(a,A,u,l,d,y,n,g);m=[];for(y=0;y<c.length;y++){var D=c[y];const M=m[m.length-1]||null,ea=0===y?0:M.endTime,sb=d+y,Sb=zI(q.keyInfo,sb);if(D=HK(a,M,D,sb,ea,
67
+ l,Sb,f,b,A,u))u=D.initSegment,m.push(D)}return{U:m,sg:q,Vg:v,mimeType:n,endTime:m[m.length-1].endTime,ja:A,Pg:u}})},IK=function(a,b,c,d){return _.w(function*(){const e=d.a;var f=jI(d.aa,_.Ha);f=f?$H(f,_.Mb):null;return LK(a,b,c,e,f)})},JK=function(a,b,c,d,e,f){return _.w(function*(){if(null==c.a)return 0;const g=yI(c,d);return mJ(a.M,b,g,e,f,null!=d)})},KK=function(a,b,c,d,e,f,g,h){return _.w(function*(){if(a.I.has(b))return a.I.get(b);const k=yield JK(a,c,d,f,g,h);a.g.debug(`Segment #${e} has raw media timestamp `+
68
+ `${k} s.`);a.I.set(b,k);return k})},LK=function(a,b,c,d,e){return _.w(function*(){const f=[d,e].filter(Boolean);var g=_.Ej(f,b,c);if(g)return g;g=_.Si([d],a.a.attemptParameters);g.method="HEAD";g.type=2;g=(yield a.G(g)).headers["content-type"];if(!g)throw new _.G(_.E,4,4021,"Unknown MIME type of: "+f.join(", "));return g.split(";")[0]})},RI=class{constructor(a,b,c,d){if(1===b){if(!d||0===d.length)throw new _.G(_.E,4,4043,"Media playlist must have at least one segment!");if(null==d[0].a)throw new _.G(_.E,
69
+ 4,4043,"Media playlist must have at least one full segment!");}this.f=a;this.a="";this.type=b;this.aa=c;this.U=1===b?d:null}},XI=class{constructor(a,b,c){c=void 0===c?[]:c;this.aa=b;this.a=a;this.f=c;this.ja=-1}},xI=class extends _.nC{constructor(a,b,c,d,e,f,g,h,k,l,m,n,q,u,v){u=void 0===u?[]:u;super(a,b,c,d,e,f,g,void 0===h?null:h,void 0===k?!1:k,void 0===l?null:l,void 0===m?null:m,void 0===n?null:n,void 0===q?null:q,u,void 0===v?null:v);this.ja=0}},MK=class{constructor(){this.f=0;this.a=new Map}},
70
+ NK=class{constructor(){this.a=new Map;this.f=new Map}set(a,b){this.f.set(a,b);return b.then(c=>this.a.set(a,c)).catch(()=>{}).then(()=>this.f.delete(a))}has(a){return this.a.has(a)}get(a){return this.a.get(a)||null}values(){return Array.from(this.a.values())}clear(){this.f.clear();this.a.clear()}},qK=class{constructor(a){this.streams=a}length(){return this.streams.length}};var oK=class{constructor(a){this.a=a}length(){return this.a.length}};var OK=class{constructor(a){this.g=new _.R("clpp.hls.MediaReader");this.f=a;this.a={attemptParameters:_.Oi()}}};var ZJ=new _.R("clpp.hls.DiscontinuityUtils");var CJ={"com.apple.streamingkeydelivery":function(a,b){if(b===_.mg)throw new _.G(_.E,4,4041);if($H(a,TH)===UH)throw new _.G(_.E,4,4044,"EXT-X-KEY:METHOD SAMPLE-AES-CTR is not supported in FairPlay.");return _.mB(_.ud,[{initDataType:_.If,initData:new Uint8Array(0)}],"")},"com.microsoft.playready":sJ,"urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95":sJ,"urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed":function(a){var b=$H(a,TH);if(!qJ.includes(b))return rJ.error("Widevine in HLS is only supported with [",
71
+ qJ.join(", "),"], not",b),null;b=$H(a,_.Mb);b=_.jp(b);b=_.I(b.data);b=_.mB(_.yd,[{initDataType:_.bd,initData:b}],"");if(a=_.H(a,"KEYID"))b.keyIds=[a.substr(2).toLowerCase()];return b}},qJ=["SAMPLE-AES",UH],rJ=new _.R("clpp.hls.DrmParser");var BJ=new _.R("clpp.hls.EncryptionUtils");var PK=class{constructor(){this.a=this.D=null;this.O=1;this.f=new NK;this.A="";this.L=new MK;this.F=0;this.j=null;this.h=new _.Wj(()=>{this.Pb()});this.l=_.Ub;this.o=null;this.C=new _.Ws;this.B=null;this.g=new _.R("clpp.hls.HlsParser");this.I=new Map;this.M=new OK(this.G.bind(this));this.K=!1;this.H=null;this.J=!1;this.w=new Map}configure(a){this.a=a;this.M.a=a}setCurrentVariant(a){this.j=a}start(a,b){const c=this;return _.w(function*(){if(c.K)throw Error("start() may be called only once!");c.K=!0;
72
+ c.D=b;const {response:d,text:e}=yield QJ(c,a);c.A=d.uri;const f=yield WJ(c,e);c.o=f;const g=c.F;c.h&&0<g&&c.h.fa(g);return f})}requestStop(){this.J=!0}stop(){this.h&&(this.h.stop(),this.h=null);const a=[];this.C&&(a.push(this.C.destroy()),this.C=null);this.f.clear();this.o=this.a=this.D=this.j=null;this.w.clear();return Promise.all(a)}update(){const a=this;return _.w(function*(){const b=a.o;if(!UJ(a)&&b){var c=b.presentationTimeline;"LIVE"===a.l&&(a.B=null);var d=Array.from(a.f.values());if(a.a.lowLatencyMode&&
73
+ null!==a.j){const g=PJ(a);d=d.filter(h=>g.includes(FI(h).Ca))}var e=yield YJ(a,d);d=e.map(g=>g.playlist);$J(a,d);e=yield cK(a,e);DJ(b.periods,e).forEach(g=>{a.D.filterNewPeriod(g)});TJ(a,e);var f=dK(a,d);f=eK(a,d,f);b.cues=VJ(a,f);FJ(b.periods,e);OJ(c,e);if(d=oI(d))!0!==a.a.keepTimelineLive&&fK(a,c,e),a.h.stop(),a.h=null;if(a.D.onUpdate)a.D.onUpdate(b);if(d&&a.D.onTurnedStatic)a.D.onTurnedStatic();a.J&&(yield a.stop());return b}})}Pb(){const a=this;return _.w(function*(){a.g.debug(_.zA);if(a.D)try{yield a.update(),
74
+ a.h&&0<a.F&&a.h.fa(a.F)}catch(b){if(!(b instanceof _.G))throw b;a.D&&(a.D.onError(b),1===b.severity&&a.h&&a.h.fa(.1))}})}G(a){if(!this.C)throw new _.G(_.E,7,7001);a=this.D.networkingEngine.fetch(a);_.aj(this.C,a);return a.W}};_.x("clpp.hls.HlsComponent",class extends _.su{f(){_.pp.m3u8=PK;_.np[_.Rk]=PK;_.np[XH]=PK}a(){_.tC("m3u8");_.uC(_.Rk);_.uC(XH)}id(){return"hls"}});};f.call(g, window);
package/cl.hlssmpte.js CHANGED
@@ -1,5 +1,5 @@
1
- import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var iS=function(a){a.a.one(a.m,_.re,()=>hS(a))},hS=function(a){const b=a.m.getSurface().getMedia();if(b)if(a.h){a.a.on(b.textTracks,_.vc,d=>jS(a,d));var c=Array.from(b.textTracks);c.filter(d=>d.kind===_.ye).forEach(d=>{jS(a,{track:d})});!kS(c)&&a.l&&(a.g.warn("The metadata track is not present. Changing an audio track in order to enforce the creation of the metadata track."),lS(a,b))}else a.g.warn("The clpp.ttml.TextParser class is not available. Please register the ttml component first.");
2
- else a.g.warn("A video element is not available. Skipping.")},jS=function(a,b){b=b.track;b.kind===_.ye&&(a.g.info("The metadata track has been added."),b.mode=_.ae,a.a.on(b,_.Bd,c=>mS(a,c)))},kS=function(a){return a.some(b=>b.kind===_.ye)},lS=function(a,b){const c=a.m.getTrackManager(),d=c.la(),e=c.getAudioTracks().find(g=>g!==d);if(e){var f=()=>c.va(d);a.a.on(b.textTracks,_.vc,g=>{g.track.kind===_.ye&&(a.a.off(b.textTracks,_.vc,f),c.va(d))});c.va(e)}else a.g.warn("Can't enforce the creation of the metadata track if single audio track. Skipping.")},
3
- mS=function(a,b){const c=nS(a);c&&Array.from(b.target.activeCues||[]).forEach(d=>{if(d!==a.f&&Number.isFinite(d.startTime)&&Number.isFinite(d.endTime)&&"org.id3"===d.type&&d.value&&"TXXX"===d.value.key){var e=new oS(d);if(e.f===c&&null!==e.a){a.f=d;d=a.h.parseMedia(_.wi(e.a),{periodStart:a.j,segmentStart:e.startTime,segmentEnd:e.endTime});const f=a.m.getTextDisplayer();f.remove(0,e.startTime);f.append(d.cues,d.styles)}}})},nS=function(a){return(a=a.m.getTrackManager().ta())&&a.language&&a.language.toLowerCase()},
4
- oS=class{constructor(a){this.startTime=a.startTime;this.endTime=a.endTime;this.a=this.f=null;a=a.value;if(!_.z(a)){a:{var b=a.info;if(_.Xg(b)&&(b=b.toLowerCase().match(/lang:(\w+)/))&&b[1]){b=b[1].toLowerCase();break a}b=null}this.f=b;a=a.data;this.a=a=_.Xg(a)?a:null}}};var pS=class{constructor(a,b,c){this.m=a;this.l=b;this.j=c;this.a=new _.Bs;this.h=(a=_.ps(_.Fc))?new a(this.m.getConfiguration()):null;this.g=new _.R("clpp.hlssmpte.ImageCueHandler");this.f=null;iS(this)}destroy(){this.a.release();this.f=null;return Promise.resolve()}};var qS=class extends _.Bu{constructor(){super();this.a=null;this.f=!1}onPlayerCreated(){}onContentWillLoad(a){if(this.f=_.kk()){var b=a.getConfiguration();b=_.Rg(b.hlssmpte||{});typeof b.patchMetadataTrack!==_.Rc&&(b.patchMetadataTrack=!1);_.Yg(b.timestampOffset)||(b.timestampOffset=0);this.a=new pS(a,b.patchMetadataTrack,b.timestampOffset)}}onPlayerWillDestroy(){const a=this;return _.w(function*(){a.a&&(yield a.a.destroy(),a.a=null)})}id(){return"hlssmpte"}};_.x("clpp.hlssmpte.HlsSmptePlugin",qS);
5
- qS.Id="hlssmpte";_.rq(new class{create(){return new qS}});};f.call(g, window);
1
+ import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var kS=function(a){a.a.one(a.m,_.re,()=>jS(a))},jS=function(a){const b=a.m.getSurface().getMedia();if(b)if(a.h){a.a.on(b.textTracks,_.vc,d=>lS(a,d));var c=Array.from(b.textTracks);c.filter(d=>d.kind===_.ye).forEach(d=>{lS(a,{track:d})});!mS(c)&&a.l&&(a.g.warn("The metadata track is not present. Changing an audio track in order to enforce the creation of the metadata track."),nS(a,b))}else a.g.warn("The clpp.ttml.TextParser class is not available. Please register the ttml component first.");
2
+ else a.g.warn("A video element is not available. Skipping.")},lS=function(a,b){b=b.track;b.kind===_.ye&&(a.g.info("The metadata track has been added."),b.mode=_.ae,a.a.on(b,_.Bd,c=>oS(a,c)))},mS=function(a){return a.some(b=>b.kind===_.ye)},nS=function(a,b){const c=a.m.getTrackManager(),d=c.la(),e=c.getAudioTracks().find(g=>g!==d);if(e){var f=()=>c.va(d);a.a.on(b.textTracks,_.vc,g=>{g.track.kind===_.ye&&(a.a.off(b.textTracks,_.vc,f),c.va(d))});c.va(e)}else a.g.warn("Can't enforce the creation of the metadata track if single audio track. Skipping.")},
3
+ oS=function(a,b){const c=pS(a);c&&Array.from(b.target.activeCues||[]).forEach(d=>{if(d!==a.f&&Number.isFinite(d.startTime)&&Number.isFinite(d.endTime)&&"org.id3"===d.type&&d.value&&"TXXX"===d.value.key){var e=new qS(d);if(e.f===c&&null!==e.a){a.f=d;d=a.h.parseMedia(_.ri(e.a),{periodStart:a.j,segmentStart:e.startTime,segmentEnd:e.endTime});const f=a.m.getTextDisplayer();f.remove(0,e.startTime);f.append(d.cues,d.styles)}}})},pS=function(a){return(a=a.m.getTrackManager().ta())&&a.language&&a.language.toLowerCase()},
4
+ qS=class{constructor(a){this.startTime=a.startTime;this.endTime=a.endTime;this.a=this.f=null;a=a.value;if(!_.z(a)){a:{var b=a.info;if(_.Xg(b)&&(b=b.toLowerCase().match(/lang:(\w+)/))&&b[1]){b=b[1].toLowerCase();break a}b=null}this.f=b;a=a.data;this.a=a=_.Xg(a)?a:null}}};var rS=class{constructor(a,b,c){this.m=a;this.l=b;this.j=c;this.a=new _.Fs;this.h=(a=_.cs(_.Fc))?new a(this.m.getConfiguration()):null;this.g=new _.R("clpp.hlssmpte.ImageCueHandler");this.f=null;kS(this)}destroy(){this.a.release();this.f=null;return Promise.resolve()}};var sS=class extends _.Fu{constructor(){super();this.a=null;this.f=!1}onPlayerCreated(){}onContentWillLoad(a){if(this.f=_.kk()){var b=a.getConfiguration();b=_.Rg(b.hlssmpte||{});typeof b.patchMetadataTrack!==_.Rc&&(b.patchMetadataTrack=!1);_.Yg(b.timestampOffset)||(b.timestampOffset=0);this.a=new rS(a,b.patchMetadataTrack,b.timestampOffset)}}onPlayerWillDestroy(){const a=this;return _.w(function*(){a.a&&(yield a.a.destroy(),a.a=null)})}id(){return"hlssmpte"}};_.x("clpp.hlssmpte.HlsSmptePlugin",sS);
5
+ sS.Id="hlssmpte";_.jr(new class{create(){return new sS}});};f.call(g, window);
package/cl.htmlcue.js CHANGED
@@ -1,26 +1,25 @@
1
- import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var YQ="Unsupported unit",ZQ="clpp-text-plain",$Q="clpp-text-ttml",aR="clpp.htmlcue.HtmlTextDisplayer",bR="initial",cR=function(a){return _.Gh(a,{bf:(b,c)=>b.Ac(c)})},dR=function(a,b){if(0===b.length)return a;let c=a;a=a.findIndex(d=>d.startTime>=b[0].startTime);0<=a&&(c=c.slice(0,a));return c.concat(b)},eR=function(a,b){let c=0,d=a.length-1;for(;c<=d;){const e=c+d>>1,f=b(a[e]);if(0===f)return e;0<f?c=e+1:d=e-1}return-1},fR=function(a){if(!a.input)return null;var b=a.input.match(/^([^<]*)(<[^>]+>?)?/);
2
- b=b[1]?b[1]:b[2];a.input=a.input.substr(b.length);return b},hR=function(a){let b=null;for(;b=a.match(/&(amp|lt|gt|lrm|rlm|nbsp);/);)a=a.replace(b[0],c=>gR[c]);return a},jR=function(a,b){iR(a,b);Array.from(b.getElementsByTagName("*")).forEach(c=>{iR(a,c)})},iR=function(a,b){for(const c in a)null!=a[c]&&(b.style[c]=a[c])},kR=function(a,b){return 0===a?"0":a+b},lR=function(a,b){return 1>Math.abs(a-b)||a<b},mR=function(a,b){return a<b&&1<Math.abs(a-b)},nR=function(a,b){return a>b&&1<Math.abs(a-b)},oR=
3
- function(a,b){return 1>Math.abs(a-b)||a>b},qR=function(a){const b=a.getBoundingClientRect();var c=getComputedStyle(a,null);const d=parseFloat(c.getPropertyValue("border-left-width"))||0,e=parseFloat(c.getPropertyValue("border-right-width"))||0;var f=parseFloat(c.getPropertyValue("border-top-width"))||0;c=parseFloat(c.getPropertyValue("border-bottom-width"))||0;const g=(b.top||a.offsetTop)+f;f=(b.height||a.offsetHeight)-f-c;return new pR(b.left+d,b.right+e,g,(b.bottom||g+f)+c,f,(b.width||a.offsetWidth)-
4
- d-e)},rR=function(a){return new pR(a.left,a.f,a.top,a.a,a.height,a.width)},sR=function(a,b){return b.some(c=>mR(a.left,c.f)&&nR(a.f,c.left)&&mR(a.top,c.a)&&nR(a.a,c.top))},tR=function(a,b){return oR(a.top,b.top)&&lR(a.a,b.a)&&oR(a.left,b.left)&&lR(a.f,b.f)},uR=function(a,b,c){switch(c){case "+x":return mR(a.left,b.left);case "-x":return nR(a.f,b.f);case "+y":return mR(a.top,b.top);case "-y":return nR(a.a,b.a);default:throw Error("Unknown axis");}},vR=function(a){return a.f.writingMode===_.Fs},wR=
5
- function(a){var b=a.a.childNodes[0],c=a.a.getBoundingClientRect();const d=b.getClientRects();b=c.height/d.length;c=c.width/d.length;return vR(a)?b:c},xR=function(a){switch(a.f.writingMode){case _.Fs:return"horizontal-tb";case _.kg:return _.kg;case _.lg:return _.lg;default:throw Error("Unknown writing mode");}},yR=function(a){switch(a.f.positionAlign){case _.je:return _.ge;case "auto":case _.cd:return _.Es;case _.le:return _.yf}return a.f.textAlign},zR=function(a,b){if(typeof a.f.position===_.r&&typeof a.f.size===
6
- _.r)switch(b){case _.je:return a.f.position;case "auto":case _.cd:return a.f.position-a.f.size/2;case _.le:return a.f.position-a.f.size}return 0},AR=function(a){if(!a.f.positionAlign)switch(a.f.textAlign){case _.ge:case _.ge:return _.je;case _.Es:return _.cd;case _.yf:case _.yf:return _.le}return a.f.positionAlign},DR=function(a,b,c){return(BR(a)||CR(a))&&_.Yg(c)?kR(c,_.rf):BR(a)&&_.z(c)?kR(0,_.rf):vR(a)&&_.Yg(b)?kR(b,"%"):bR},ER=function(a,b,c){return vR(a)&&_.Yg(c)?kR(c,_.rf):(BR(a)||CR(a))&&_.Yg(b)?
7
- kR(b,"%"):bR},CR=function(a){return a.f.writingMode===_.lg},BR=function(a){return a.f.writingMode===_.kg},FR=function(a,b){if(a.j)switch(b.writingMode){case _.Fs:return["-y"];case _.kg:return["+x"];case _.lg:return["-x"]}a=[];switch(b.writingMode){case _.Fs:a=["+y","-y"];break;case _.kg:a=["+x","-x"];break;case _.lg:a=["-x","+x"]}0>b.line&&(a=a.reverse());return a},GR=function(a){for(a.h=[];0<a.f.childNodes.length;)a.f.removeChild(a.f.childNodes[0]);a.a=qR(a.l.a)},HR=function(a,b){GR(a.h);a.l.unshift(b);
8
- for(const c of a.l)a.h.append(c)},IR=function(a,b,c){a=a.f;const d=a.viewportAnchorUnits;if(d===_.Ms)return a.viewportAnchorY/100*c-a.regionAnchorY/100*b;if(0===d)return a.viewportAnchorY-a.regionAnchorY;throw Error(YQ);},KR=function(a,b,c,d){const e=document.createElement(_.Rf),f=e.dataset;f.name=b;f.for=c;d&&(f.name=`${b} (sandbox)`,f.sandbox=!0);c=document.head;c.appendChild(e);JR(a,c,b);a.g.debug(`Created HTML style element #${b}.`);return e.sheet},LR=function(a,b){a=`.${a.j} .clpp-text-container`;
9
- const c=`${a} .clpp-text-cue`;return b=b.replace(/::cue\((#[^)]+)\)/g,`${a} $1`).replace(/::cue\(([^)]+)\)/g,`${c} $1`).replace(/::cue-region\(([^)]+)\)/g,`${a} $1 .clpp-text-cue`).replace(/::cue/g,c).replace(/::cue-region/g,`${a} .clpp-text-cue-region .clpp-text-cue`).replace(/::ttml/g,a)},MR=function(a,b){let c=!1;try{a.f.insertRule(b,0);const d=a.f.cssRules[0];d instanceof CSSStyleRule&&(c=d.selectorText.split(",").every(e=>0===e.trim().indexOf(`.${a.j} `)))}catch(d){}0<a.f.cssRules.length&&a.f.deleteRule(0);
10
- return c},NR=function(a){if(null!=a.a){for(;0<a.a.cssRules.length;)a.a.deleteRule(0);a.o=[]}},JR=function(a,b,c){const d=new MutationObserver(e=>{e.forEach(f=>{f.removedNodes.forEach(g=>{g.id===c&&a.g.error(`PRESTOplay HTML style element #${c} has `+"been unexpectedly removed! Some styles will not work!")})})});d.observe(b,{subtree:!1,childList:!0});a.l.push(()=>d.disconnect())},OR=function(a){a=_.Rg(a.htmlcue||{});_.z(a.stretchSmpteImage)&&(a.stretchSmpteImage=!1);_.z(a.enableResizeObserver)&&(a.enableResizeObserver=
11
- !0);return a},UR=function(a,b){if((b||a.l)&&a.F){var c=a.m.getPosition();if(b||a.J!==c&&a.m.getState()===_.bo)if(a.J=c,c=PR(a,c),b||(b=a.o,b=!(null===b&&null===c||null!==b&&null!==c&&b.start===c.start&&b.end===c.end)),b&&(a.o=c,QR(a),c)){b={color:a.getFontColor()||void 0,backgroundColor:a.getBackgroundColor()||void 0,fontFamily:a.getFontFamily()||void 0,textShadow:_.vs(a)||void 0};c=a.f.slice(c.start,c.end+1);for(const k of c){c=a;var d=k,e=b,f=c.a.a,g=null;switch(d.payloadType){case _.vg:g="clpp-text-vtt";
12
- break;case _.Zf:g=$Q;break;case _.Ds:g=ZQ}g&&!f.classList.contains(g)&&_.xo(f,g);f=qR(c.a.a);if(0===f.width||0===f.height)c.g.warn("The height or width of the `.clpp-text-container` element is zero. Captions will not be displayed. Please check if the `clpp.styles.css` file has been included.");else{iR({fontSize:RR(c,d.containerRows)},c.a.a);f=null;g=d.payloadType===_.vg;var h=d.payloadType===_.Zf;d.region&&(g||h||d.backgroundImage)&&(c.B.has(d.region.id)?f=c.B.get(d.region.id):(f=new SR(d.region,
13
- {}),c.B.set(d.region.id,f),HR(c.a,f)));d=new TR(d,c.L,e);f?HR(f,d):HR(c.a,d)}}}}},VR=function(a){QR(a);a.J=null;a.o=null;a.f=[]},WR=function(a,b){return a.startTime<=b&&a.endTime>b},PR=function(a,b){var c=eR(a.f,d=>WR(d,b)?0:b!==d.startTime?b-d.startTime:b-d.endTime);if(-1===c)return null;{let d=c;for(;0<=d-1&&WR(a.f[d-1],b);)d--;for(;c+1<a.f.length&&WR(a.f[c+1],b);)c++;return{start:d,end:c}}},QR=function(a){a.B.clear();if(a.a){const b=a.a.a;b.classList.remove("clpp-text-vtt");b.classList.remove($Q);
14
- b.classList.remove(ZQ);a=a.a;GR(a.h);a.l=[]}},RR=function(a,b){const c=qR(a.a.a).height;if(null!==a.I)return a.getFontSize();if(null!==a.C)return a=a.getFontSizePercent(),`${Math.round(c*a)}px`;if(typeof b===_.r&&0<b)return`${Math.round(c/b)}px`;a=a.getFontSizePercent();return`${Math.round(c*a)}px`},aS=class{parse(a){a={input:a};const b=_.zo(_.Fd),c=[];let d=b;for(var e;null!==(e=fR(a));)if("\x3c"===e[0])if("/"===e[1])c.length&&c[c.length-1]===e.substr(2).replace("\x3e","")&&(c.pop(),d=d.parentNode);
15
- else{if(e=e.match(/^<([^.\s/0-9>]+)(\.[^\s\\>]+)?([^>\\]+)?(\\?)>?$/)){var f=e[1];var g=e[3];var h=YR[f];h?(h=_.zo(h),(f=ZR[f])&&g&&h.setAttribute(f,g.trim()),g=h):g=null;!g||$R[g.localName]&&$R[g.localName]!==d.localName||(e[2]&&(g.className=e[2].substr(1).replace(/\./g," ")),c.push(e[1]),d.appendChild(g),d=g)}}else d.appendChild(document.createTextNode(hR(e)));return b}},YR={c:"c",i:"i",b:"b",u:"u",ruby:"ruby",rt:"rt",v:"v",lang:"lang"},ZR={v:"voice",lang:"lang"},$R={rt:"ruby"},gR={"\x26amp;":"\x26",
16
- "\x26lt;":"\x3c","\x26gt;":"\x3e","\x26lrm;":"\u200e","\x26rlm;":"\u200f","\x26nbsp;":"\u00a0"};var pR=class{constructor(a,b,c,d,e,f){this.left=a;this.f=b;this.top=c;this.a=d;this.height=e;this.width=f}};var bS=class{constructor(a,b,c){this.id=a;this.w=b;this.B=c;this.a=this.o();this.j=!1}init(){this.j=!0}A(){return!1}};var TR=class extends bS{constructor(a,b,c){super(a.id,"clpp-text-cue",{});this.l=b;this.f=a;this.h=!!this.f.backgroundImage;this.C=c}A(){return!this.h&&!(this.f.region&&this.f.region.displayAlign)}init(a){super.init(a);if(this.h)_.xo(this.a,"clpp-text-cue-image"),this.a.style.backgroundImage=`url("${this.f.backgroundImage}")`,this.l.stretchSmpteImage&&(this.a.style.backgroundSize="contain");else if(a){var b=this.f;if(b.payloadType===_.Zf){var c=_.zo(_.Fd);c.innerHTML=b.payload;b=c}else b.payloadType===
17
- _.vg?b=(new aS).parse(b.payload):(c=_.zo(_.Fd),c.textContent=b.payload,b=c);_.xo(b,this.w);this.id&&(b.id=this.id);for(d of this.f.cssClassList)_.xo(b,d);iR({writingMode:xR(this)},b);var d=b;this.a.appendChild(d);_.xo(this.a,"clpp-text-wrapper");for(var e of this.f.cssClassList)_.xo(this.a,`clpp-text-wrapper__${e}`);_.z(this.f.line)&&(this.f.lineInterpretation=_.Gs,this.f.line=vR(this)?-1:0);e=xR(this);iR({writingMode:e,webkitWritingMode:e,direction:bR,textAlign:yR(this)},this.a);if(!this.f.region||
18
- !this.f.region.displayAlign){e=zR(this,AR(this));iR({position:"absolute",left:DR(this,e,null),right:CR(this)&&_.z(null)?kR(0,_.rf):bR,top:ER(this,e,null),width:vR(this)?kR(this.f.size,"%"):bR,height:BR(this)||CR(this)?kR(this.f.size,"%"):bR},this.a);b=this.f;a=vR(this)?a.height:a.width;c=wR(this);if(b.lineInterpretation===_.Gs){var f=c*Math.round(b.line);Math.abs(f)>a&&(f=c*(0>b.line?0:-1));0>f&&(f+=a)}else{f=c/a*100;let g=b.line;switch(b.lineAlign){case _.cd:g-=f/2;break;case _.Td:g-=f}f=Math.round(g/
19
- 100*a)}CR(this)&&(f=a-f-c);a=f;iR({left:DR(this,e,a),right:CR(this)&&_.z(a)?kR(0,_.rf):bR,top:ER(this,e,a)},this.a)}jR(this.C,d)}}o(){return _.zo(_.Fd)}};var cS=class{constructor(a,b){this.l=a;this.f=a.a;this.j=void 0===b?!1:b;this.a=qR(a.a);this.h=[]}append(a){const b=a.a;b.style.visibility=_.ae;this.f.appendChild(b);a.j||a.init(this.a);if(a.A()){a:{var c=qR(a.a);var d=FR(this,a.f),e=wR(a);const g=rR(c);let h=null,k=0;for(const l of d){for(;uR(c,this.a,l)||tR(c,this.a)&&sR(c,this.h);){d=c;var f=e;switch(l){case "+x":d.left+=f;d.f+=f;break;case "-x":d.left-=f;d.f-=f;break;case "+y":d.top+=f;d.a+=f;break;case "-y":d.top-=f,d.a-=f}}if(this.j||tR(c,this.a))break a;
20
- d=this.a;d=Math.max(0,Math.min(c.f,d.f)-Math.max(c.left,d.left))*Math.max(0,Math.min(c.a,d.a)-Math.max(c.top,d.top))/(c.height*c.width);d>k&&(h=rR(c),k=d);c=rR(g)}c=h||g}iR({top:kR(c.top-this.a.top,_.rf),bottom:kR(this.a.a-c.a,_.rf),left:kR(c.left-this.a.left,_.rf),right:kR(this.a.f-c.f,_.rf),height:kR(c.height,_.rf),width:kR(c.width,_.rf)},a.a)}b.style.visibility="visible";this.h.push(qR(a.a))}};var dS=class extends bS{constructor(a,b,c){super(a,b,c);this.h=null;this.l=[]}init(){this.h=new cS(this);this.j=!0}o(){const a=_.zo(_.Fd);_.xo(a,this.w);this.id&&(a.id=this.id);return a}};var SR=class extends dS{constructor(a,b){super(a.id,"clpp-text-cue-region",b);this.f=a}init(a){a:{var b=this.f;switch(b.widthUnits){case 0:b=b.width;break a;case _.Ms:b=b.width/100*a.width;break a;default:throw Error(YQ);}}var c=this.f;var d=c.viewportAnchorUnits;if(d===_.Ms)c=c.viewportAnchorX/100*a.width-c.regionAnchorX/100*b;else if(0===d)c=c.viewportAnchorX-c.regionAnchorX;else throw Error(YQ);d=a.height;const e=IR(this,d,a.height);iR(this.B,this.a);iR({left:kR(c,_.rf),top:kR(e,_.rf),width:kR(b,
21
- _.rf),height:kR(d,_.rf)},this.a);this.f.writingMode&&iR({display:"flex","flex-direction":this.f.writingMode},this.a);this.f.displayAlign&&iR({"justify-content":this.f.displayAlign},this.a);for(var f of this.f.cssClassList)_.xo(this.a,f);a:switch(f=this.f,f.heightUnits){case 0:f=f.height;break a;case _.Ms:f=f.height/100*a.height;break a;case 2:f=f.height;c=new TR(new _.Js(0,1,"Lorem ipsum",_.Ds),{},{});b=c.a;this.a.appendChild(b);c.init(qR(this.a));c=b.getBoundingClientRect().height;this.a.removeChild(b);
22
- b=c;f*=b;break a;default:throw Error(YQ);}a=IR(this,f,a.height);iR({top:kR(a,_.rf),height:kR(f,_.rf)},this.a);this.h=new cS(this,!0);this.j=!0}getId(){return this.f.id}};var eS=class{constructor(a,b){this.g=new _.R("clpp.htmlcue.StyleManager");this.l=[];this.j=a;this.h=b;this.o=[];this.a=KR(this,this.h,this.j);this.f=KR(this,this.h,this.j,!0);this.f.disabled=!0;this.g.debug(`Stylesheet ${this.h} has been created.`)}appendRule(a){if(null!=this.a&&!this.o.some(b=>b===a)){const b=LR(this,a);if(MR(this,b)){try{this.a.insertRule(b,this.a.cssRules.length),this.g.debug(`Added CSS rule ${b}`)}catch(c){this.g.error(`An error occurred when adding a CSS rule: ${b}`)}this.o.push(a)}else this.g.warn(`Stylesheet ${this.h} ignoring the CSS rule `+
23
- `because it's not safe: ${b}`)}}destroy(){const a=this;return _.w(function*(){null!=a.a&&(a.l.forEach(b=>b()),a.l=[],NR(a),document.head.removeChild(a.a.ownerNode),document.head.removeChild(a.f.ownerNode),a.a=null,a.f=null,a.g.debug(`Stylesheet ${a.h} has been destroyed.`))})}};var fS=class extends _.yu{constructor(a){super(a);this.g=new _.R(aR);this.m=a;this.L=OR(a.getConfiguration());this.l=!1;this.f=[];this.F=a.getSurface().getContainer();this.j=new eS(a.getSurface().getUniqueCssClass(),"CLPP Subtitle Styles");this.a=new dS(null,"clpp-text-container",{});this.A=new _.ru(a.getSurface(),this.S.bind(this));this.J=null;this.F?(this.F.appendChild(this.a.a),this.a.init(null)):this.g.warn("No container element! Subtitles will not appear. Please check your player surface configuration or switch to NativeTextDisplayer.");
24
- this.G=new _.Wj(()=>{UR(this)});this.B=new Map;this.o=null}append(a,b){if(null!=this.j&&0!==a.length){for(const c of b)this.j.appendRule(c);a.sort((c,d)=>c.startTime!==d.startTime?c.startTime-d.startTime:c.endTime-d.endTime);this.f=dR(this.f,cR(a));this.o=null;UR(this,!1)}}h(){null==this.j||UR(this,!0)}destroy(){const a=this;return _.w(function*(){null!=a.j&&(VR(a),a.G.stop(),yield a.j.destroy(),a.j=null,a.F.removeChild(a.a.a),a.a=null,a.A.stop(),a.A=null,a.l=!1)})}remove(a,b){if(null==this.j)return!1;
25
- this.f=this.f.filter(c=>c.startTime<a||c.endTime>=b);this.o=null;UR(this,!0);return!0}isTextVisible(){return this.l}setTextVisibility(a){null!=this.j&&this.l!==a&&((this.l=a)?(this.G.vb(.25),this.L.enableResizeObserver&&this.A.start(),UR(this,!0)):(this.G.stop(),this.A.stop(),VR(this)))}S(){UR(this,!0)}};_.x(aR,fS);fS.prototype.setTextVisibility=fS.prototype.setTextVisibility;fS.prototype.isTextVisible=fS.prototype.isTextVisible;fS.prototype.remove=fS.prototype.remove;fS.prototype.destroy=fS.prototype.destroy;
26
- fS.prototype.append=fS.prototype.append;var gS=class{a(a){return!!a.enableHtmlCue&&!_.mk()}create(a){return new fS(a)}};_.x("clpp.htmlcue.HtmlCueComponent",class extends _.au{f(){_.Gn(_.ce,new gS)}a(){_.En.has(_.ce)&&(_.En.delete(_.ce),_.Fn.info("Removed factory: 'html'"))}id(){return _.Sf}});};f.call(g, window);
1
+ import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var $Q="Unsupported unit",aR="clpp-text-plain",bR="clpp-text-ttml",cR="clpp.htmlcue.HtmlTextDisplayer",dR="initial",eR=function(a,b){let c=0,d=a.length-1;for(;c<=d;){const e=c+d>>1,f=b(a[e]);if(0===f)return e;0<f?c=e+1:d=e-1}return-1},fR=function(a){return _.Ch(a,{bf:(b,c)=>b.Ac(c)})},gR=function(a,b){if(0===b.length)return a;let c=a;a=a.findIndex(d=>d.startTime>=b[0].startTime);0<=a&&(c=c.slice(0,a));return c.concat(b)},iR=function(a,b){hR(a,b);Array.from(b.getElementsByTagName("*")).forEach(c=>
2
+ {hR(a,c)})},hR=function(a,b){for(const c in a)null!=a[c]&&(b.style[c]=a[c])},jR=function(a,b){return 0===a?"0":a+b},kR=function(a,b){return 1>Math.abs(a-b)||a<b},lR=function(a,b){return a<b&&1<Math.abs(a-b)},mR=function(a,b){return a>b&&1<Math.abs(a-b)},nR=function(a,b){return 1>Math.abs(a-b)||a>b},pR=function(a){const b=a.getBoundingClientRect();var c=getComputedStyle(a,null);const d=parseFloat(c.getPropertyValue("border-left-width"))||0,e=parseFloat(c.getPropertyValue("border-right-width"))||0;
3
+ var f=parseFloat(c.getPropertyValue("border-top-width"))||0;c=parseFloat(c.getPropertyValue("border-bottom-width"))||0;const g=(b.top||a.offsetTop)+f;f=(b.height||a.offsetHeight)-f-c;return new oR(b.left+d,b.right+e,g,(b.bottom||g+f)+c,f,(b.width||a.offsetWidth)-d-e)},qR=function(a){return new oR(a.left,a.f,a.top,a.a,a.height,a.width)},rR=function(a,b){return b.some(c=>lR(a.left,c.f)&&mR(a.f,c.left)&&lR(a.top,c.a)&&mR(a.a,c.top))},sR=function(a,b){return nR(a.top,b.top)&&kR(a.a,b.a)&&nR(a.left,b.left)&&
4
+ kR(a.f,b.f)},tR=function(a,b,c){switch(c){case "+x":return lR(a.left,b.left);case "-x":return mR(a.f,b.f);case "+y":return lR(a.top,b.top);case "-y":return mR(a.a,b.a);default:throw Error("Unknown axis");}},uR=function(a){if(!a.input)return null;var b=a.input.match(/^([^<]*)(<[^>]+>?)?/);b=b[1]?b[1]:b[2];a.input=a.input.substr(b.length);return b},wR=function(a){let b=null;for(;b=a.match(/&(amp|lt|gt|lrm|rlm|nbsp);/);)a=a.replace(b[0],c=>vR[c]);return a},xR=function(a){return a.f.writingMode===_.bt},
5
+ yR=function(a){var b=a.a.childNodes[0],c=a.a.getBoundingClientRect();const d=b.getClientRects();b=c.height/d.length;c=c.width/d.length;return xR(a)?b:c},zR=function(a){switch(a.f.writingMode){case _.bt:return"horizontal-tb";case _.kg:return _.kg;case _.lg:return _.lg;default:throw Error("Unknown writing mode");}},AR=function(a){switch(a.f.positionAlign){case _.je:return _.ge;case "auto":case _.cd:return _.at;case _.le:return _.yf}return a.f.textAlign},BR=function(a,b){if(typeof a.f.position===_.r&&
6
+ typeof a.f.size===_.r)switch(b){case _.je:return a.f.position;case "auto":case _.cd:return a.f.position-a.f.size/2;case _.le:return a.f.position-a.f.size}return 0},CR=function(a){if(!a.f.positionAlign)switch(a.f.textAlign){case _.ge:case _.ge:return _.je;case _.at:return _.cd;case _.yf:case _.yf:return _.le}return a.f.positionAlign},FR=function(a,b,c){return(DR(a)||ER(a))&&_.Yg(c)?jR(c,_.rf):DR(a)&&_.z(c)?jR(0,_.rf):xR(a)&&_.Yg(b)?jR(b,"%"):dR},GR=function(a,b,c){return xR(a)&&_.Yg(c)?jR(c,_.rf):
7
+ (DR(a)||ER(a))&&_.Yg(b)?jR(b,"%"):dR},ER=function(a){return a.f.writingMode===_.lg},DR=function(a){return a.f.writingMode===_.kg},HR=function(a,b){if(a.j)switch(b.writingMode){case _.bt:return["-y"];case _.kg:return["+x"];case _.lg:return["-x"]}a=[];switch(b.writingMode){case _.bt:a=["+y","-y"];break;case _.kg:a=["+x","-x"];break;case _.lg:a=["-x","+x"]}0>b.line&&(a=a.reverse());return a},IR=function(a){for(a.h=[];0<a.f.childNodes.length;)a.f.removeChild(a.f.childNodes[0]);a.a=pR(a.l.a)},JR=function(a,
8
+ b){IR(a.h);a.l.unshift(b);for(const c of a.l)a.h.append(c)},KR=function(a,b,c){a=a.f;const d=a.viewportAnchorUnits;if(d===_.it)return a.viewportAnchorY/100*c-a.regionAnchorY/100*b;if(0===d)return a.viewportAnchorY-a.regionAnchorY;throw Error($Q);},MR=function(a,b,c,d){const e=document.createElement(_.Rf),f=e.dataset;f.name=b;f.for=c;d&&(f.name=`${b} (sandbox)`,f.sandbox=!0);c=document.head;c.appendChild(e);LR(a,c,b);a.g.debug(`Created HTML style element #${b}.`);return e.sheet},NR=function(a,b){a=
9
+ `.${a.j} .clpp-text-container`;const c=`${a} .clpp-text-cue`;return b=b.replace(/::cue\((#[^)]+)\)/g,`${a} $1`).replace(/::cue\(([^)]+)\)/g,`${c} $1`).replace(/::cue-region\(([^)]+)\)/g,`${a} $1 .clpp-text-cue`).replace(/::cue/g,c).replace(/::cue-region/g,`${a} .clpp-text-cue-region .clpp-text-cue`).replace(/::ttml/g,a)},OR=function(a,b){let c=!1;try{a.f.insertRule(b,0);const d=a.f.cssRules[0];d instanceof CSSStyleRule&&(c=d.selectorText.split(",").every(e=>0===e.trim().indexOf(`.${a.j} `)))}catch(d){}0<
10
+ a.f.cssRules.length&&a.f.deleteRule(0);return c},PR=function(a){if(null!=a.a){for(;0<a.a.cssRules.length;)a.a.deleteRule(0);a.o=[]}},LR=function(a,b,c){const d=new MutationObserver(e=>{e.forEach(f=>{f.removedNodes.forEach(g=>{g.id===c&&a.g.error(`PRESTOplay HTML style element #${c} has `+"been unexpectedly removed! Some styles will not work!")})})});d.observe(b,{subtree:!1,childList:!0});a.l.push(()=>d.disconnect())},QR=function(a){a=_.Rg(a.htmlcue||{});_.z(a.stretchSmpteImage)&&(a.stretchSmpteImage=
11
+ !1);_.z(a.enableResizeObserver)&&(a.enableResizeObserver=!0);return a},WR=function(a,b){if((b||a.l)&&a.F){var c=a.m.getPosition();if(b||a.J!==c&&a.m.getState()===_.go)if(a.J=c,c=RR(a,c),b||(b=a.o,b=!(null===b&&null===c||null!==b&&null!==c&&b.start===c.start&&b.end===c.end)),b&&(a.o=c,SR(a),c)){b={color:a.getFontColor()||void 0,backgroundColor:a.getBackgroundColor()||void 0,fontFamily:a.getFontFamily()||void 0,textShadow:_.$r(a)||void 0};c=a.f.slice(c.start,c.end+1);for(const k of c){c=a;var d=k,e=
12
+ b,f=c.a.a,g=null;switch(d.payloadType){case _.vg:g="clpp-text-vtt";break;case _.Zf:g=bR;break;case _.$s:g=aR}g&&!f.classList.contains(g)&&_.Ep(f,g);f=pR(c.a.a);if(0===f.width||0===f.height)c.g.warn("The height or width of the `.clpp-text-container` element is zero. Captions will not be displayed. Please check if the `clpp.styles.css` file has been included.");else{hR({fontSize:TR(c,d.containerRows)},c.a.a);f=null;g=d.payloadType===_.vg;var h=d.payloadType===_.Zf;d.region&&(g||h||d.backgroundImage)&&
13
+ (c.B.has(d.region.id)?f=c.B.get(d.region.id):(f=new UR(d.region,{}),c.B.set(d.region.id,f),JR(c.a,f)));d=new VR(d,c.L,e);f?JR(f,d):JR(c.a,d)}}}}},YR=function(a){SR(a);a.J=null;a.o=null;a.f=[]},ZR=function(a,b){return a.startTime<=b&&a.endTime>b},RR=function(a,b){var c=eR(a.f,d=>ZR(d,b)?0:b!==d.startTime?b-d.startTime:b-d.endTime);if(-1===c)return null;{let d=c;for(;0<=d-1&&ZR(a.f[d-1],b);)d--;for(;c+1<a.f.length&&ZR(a.f[c+1],b);)c++;return{start:d,end:c}}},SR=function(a){a.B.clear();if(a.a){const b=
14
+ a.a.a;b.classList.remove("clpp-text-vtt");b.classList.remove(bR);b.classList.remove(aR);a=a.a;IR(a.h);a.l=[]}},TR=function(a,b){const c=pR(a.a.a).height;if(null!==a.I)return a.getFontSize();if(null!==a.C)return a=a.getFontSizePercent(),`${Math.round(c*a)}px`;if(typeof b===_.r&&0<b)return`${Math.round(c/b)}px`;a=a.getFontSizePercent();return`${Math.round(c*a)}px`};var oR=class{constructor(a,b,c,d,e,f){this.left=a;this.f=b;this.top=c;this.a=d;this.height=e;this.width=f}};var $R=class{constructor(a,b,c){this.id=a;this.w=b;this.B=c;this.a=this.o();this.j=!1}init(){this.j=!0}A(){return!1}};var dS=class{parse(a){a={input:a};const b=_.Gp(_.Fd),c=[];let d=b;for(var e;null!==(e=uR(a));)if("\x3c"===e[0])if("/"===e[1])c.length&&c[c.length-1]===e.substr(2).replace("\x3e","")&&(c.pop(),d=d.parentNode);else{if(e=e.match(/^<([^.\s/0-9>]+)(\.[^\s\\>]+)?([^>\\]+)?(\\?)>?$/)){var f=e[1];var g=e[3];var h=aS[f];h?(h=_.Gp(h),(f=bS[f])&&g&&h.setAttribute(f,g.trim()),g=h):g=null;!g||cS[g.localName]&&cS[g.localName]!==d.localName||(e[2]&&(g.className=e[2].substr(1).replace(/\./g," ")),c.push(e[1]),d.appendChild(g),
15
+ d=g)}}else d.appendChild(document.createTextNode(wR(e)));return b}},aS={c:"c",i:"i",b:"b",u:"u",ruby:"ruby",rt:"rt",v:"v",lang:"lang"},bS={v:"voice",lang:"lang"},cS={rt:"ruby"},vR={"\x26amp;":"\x26","\x26lt;":"\x3c","\x26gt;":"\x3e","\x26lrm;":"\u200e","\x26rlm;":"\u200f","\x26nbsp;":"\u00a0"};var VR=class extends $R{constructor(a,b,c){super(a.id,"clpp-text-cue",{});this.l=b;this.f=a;this.h=!!this.f.backgroundImage;this.C=c}A(){return!this.h&&!(this.f.region&&this.f.region.displayAlign)}init(a){super.init(a);if(this.h)_.Ep(this.a,"clpp-text-cue-image"),this.a.style.backgroundImage=`url("${this.f.backgroundImage}")`,this.l.stretchSmpteImage&&(this.a.style.backgroundSize="contain");else if(a){var b=this.f;if(b.payloadType===_.Zf){var c=_.Gp(_.Fd);c.innerHTML=b.payload;b=c}else b.payloadType===
16
+ _.vg?b=(new dS).parse(b.payload):(c=_.Gp(_.Fd),c.textContent=b.payload,b=c);_.Ep(b,this.w);this.id&&(b.id=this.id);for(d of this.f.cssClassList)_.Ep(b,d);hR({writingMode:zR(this)},b);var d=b;this.a.appendChild(d);_.Ep(this.a,"clpp-text-wrapper");for(var e of this.f.cssClassList)_.Ep(this.a,`clpp-text-wrapper__${e}`);_.z(this.f.line)&&(this.f.lineInterpretation=_.ct,this.f.line=xR(this)?-1:0);e=zR(this);hR({writingMode:e,webkitWritingMode:e,direction:dR,textAlign:AR(this)},this.a);if(!this.f.region||
17
+ !this.f.region.displayAlign){e=BR(this,CR(this));hR({position:"absolute",left:FR(this,e,null),right:ER(this)&&_.z(null)?jR(0,_.rf):dR,top:GR(this,e,null),width:xR(this)?jR(this.f.size,"%"):dR,height:DR(this)||ER(this)?jR(this.f.size,"%"):dR},this.a);b=this.f;a=xR(this)?a.height:a.width;c=yR(this);if(b.lineInterpretation===_.ct){var f=c*Math.round(b.line);Math.abs(f)>a&&(f=c*(0>b.line?0:-1));0>f&&(f+=a)}else{f=c/a*100;let g=b.line;switch(b.lineAlign){case _.cd:g-=f/2;break;case _.Td:g-=f}f=Math.round(g/
18
+ 100*a)}ER(this)&&(f=a-f-c);a=f;hR({left:FR(this,e,a),right:ER(this)&&_.z(a)?jR(0,_.rf):dR,top:GR(this,e,a)},this.a)}iR(this.C,d)}}o(){return _.Gp(_.Fd)}};var eS=class{constructor(a,b){this.l=a;this.f=a.a;this.j=void 0===b?!1:b;this.a=pR(a.a);this.h=[]}append(a){const b=a.a;b.style.visibility=_.ae;this.f.appendChild(b);a.j||a.init(this.a);if(a.A()){a:{var c=pR(a.a);var d=HR(this,a.f),e=yR(a);const g=qR(c);let h=null,k=0;for(const l of d){for(;tR(c,this.a,l)||sR(c,this.a)&&rR(c,this.h);){d=c;var f=e;switch(l){case "+x":d.left+=f;d.f+=f;break;case "-x":d.left-=f;d.f-=f;break;case "+y":d.top+=f;d.a+=f;break;case "-y":d.top-=f,d.a-=f}}if(this.j||sR(c,this.a))break a;
19
+ d=this.a;d=Math.max(0,Math.min(c.f,d.f)-Math.max(c.left,d.left))*Math.max(0,Math.min(c.a,d.a)-Math.max(c.top,d.top))/(c.height*c.width);d>k&&(h=qR(c),k=d);c=qR(g)}c=h||g}hR({top:jR(c.top-this.a.top,_.rf),bottom:jR(this.a.a-c.a,_.rf),left:jR(c.left-this.a.left,_.rf),right:jR(this.a.f-c.f,_.rf),height:jR(c.height,_.rf),width:jR(c.width,_.rf)},a.a)}b.style.visibility="visible";this.h.push(pR(a.a))}};var fS=class extends $R{constructor(a,b,c){super(a,b,c);this.h=null;this.l=[]}init(){this.h=new eS(this);this.j=!0}o(){const a=_.Gp(_.Fd);_.Ep(a,this.w);this.id&&(a.id=this.id);return a}};var UR=class extends fS{constructor(a,b){super(a.id,"clpp-text-cue-region",b);this.f=a}init(a){a:{var b=this.f;switch(b.widthUnits){case 0:b=b.width;break a;case _.it:b=b.width/100*a.width;break a;default:throw Error($Q);}}var c=this.f;var d=c.viewportAnchorUnits;if(d===_.it)c=c.viewportAnchorX/100*a.width-c.regionAnchorX/100*b;else if(0===d)c=c.viewportAnchorX-c.regionAnchorX;else throw Error($Q);d=a.height;const e=KR(this,d,a.height);hR(this.B,this.a);hR({left:jR(c,_.rf),top:jR(e,_.rf),width:jR(b,
20
+ _.rf),height:jR(d,_.rf)},this.a);this.f.writingMode&&hR({display:"flex","flex-direction":this.f.writingMode},this.a);this.f.displayAlign&&hR({"justify-content":this.f.displayAlign},this.a);for(var f of this.f.cssClassList)_.Ep(this.a,f);a:switch(f=this.f,f.heightUnits){case 0:f=f.height;break a;case _.it:f=f.height/100*a.height;break a;case 2:f=f.height;c=new VR(new _.ft(0,1,"Lorem ipsum",_.$s),{},{});b=c.a;this.a.appendChild(b);c.init(pR(this.a));c=b.getBoundingClientRect().height;this.a.removeChild(b);
21
+ b=c;f*=b;break a;default:throw Error($Q);}a=KR(this,f,a.height);hR({top:jR(a,_.rf),height:jR(f,_.rf)},this.a);this.h=new eS(this,!0);this.j=!0}getId(){return this.f.id}};var gS=class{constructor(a,b){this.g=new _.R("clpp.htmlcue.StyleManager");this.l=[];this.j=a;this.h=b;this.o=[];this.a=MR(this,this.h,this.j);this.f=MR(this,this.h,this.j,!0);this.f.disabled=!0;this.g.debug(`Stylesheet ${this.h} has been created.`)}appendRule(a){if(null!=this.a&&!this.o.some(b=>b===a)){const b=NR(this,a);if(OR(this,b)){try{this.a.insertRule(b,this.a.cssRules.length),this.g.debug(`Added CSS rule ${b}`)}catch(c){this.g.error(`An error occurred when adding a CSS rule: ${b}`)}this.o.push(a)}else this.g.warn(`Stylesheet ${this.h} ignoring the CSS rule `+
22
+ `because it's not safe: ${b}`)}}destroy(){const a=this;return _.w(function*(){null!=a.a&&(a.l.forEach(b=>b()),a.l=[],PR(a),document.head.removeChild(a.a.ownerNode),document.head.removeChild(a.f.ownerNode),a.a=null,a.f=null,a.g.debug(`Stylesheet ${a.h} has been destroyed.`))})}};var hS=class extends _.Au{constructor(a){super(a);this.g=new _.R(cR);this.m=a;this.L=QR(a.getConfiguration());this.l=!1;this.f=[];this.F=a.getSurface().getContainer();this.j=new gS(a.getSurface().getUniqueCssClass(),"CLPP Subtitle Styles");this.a=new fS(null,"clpp-text-container",{});this.A=new _.yu(a.getSurface(),this.S.bind(this));this.J=null;this.F?(this.F.appendChild(this.a.a),this.a.init(null)):this.g.warn("No container element! Subtitles will not appear. Please check your player surface configuration or switch to NativeTextDisplayer.");
23
+ this.G=new _.Wj(()=>{WR(this)});this.B=new Map;this.o=null}append(a,b){if(null!=this.j&&0!==a.length){for(const c of b)this.j.appendRule(c);a.sort((c,d)=>c.startTime!==d.startTime?c.startTime-d.startTime:c.endTime-d.endTime);this.f=gR(this.f,fR(a));this.o=null;WR(this,!1)}}h(){null==this.j||WR(this,!0)}destroy(){const a=this;return _.w(function*(){null!=a.j&&(YR(a),a.G.stop(),yield a.j.destroy(),a.j=null,a.F.removeChild(a.a.a),a.a=null,a.A.stop(),a.A=null,a.l=!1)})}remove(a,b){if(null==this.j)return!1;
24
+ this.f=this.f.filter(c=>c.startTime<a||c.endTime>=b);this.o=null;WR(this,!0);return!0}isTextVisible(){return this.l}setTextVisibility(a){null!=this.j&&this.l!==a&&((this.l=a)?(this.G.vb(.25),this.L.enableResizeObserver&&this.A.start(),WR(this,!0)):(this.G.stop(),this.A.stop(),YR(this)))}S(){WR(this,!0)}};_.x(cR,hS);hS.prototype.setTextVisibility=hS.prototype.setTextVisibility;hS.prototype.isTextVisible=hS.prototype.isTextVisible;hS.prototype.remove=hS.prototype.remove;hS.prototype.destroy=hS.prototype.destroy;
25
+ hS.prototype.append=hS.prototype.append;var iS=class{a(a){return!!a.enableHtmlCue&&!_.mk()}create(a){return new hS(a)}};_.x("clpp.htmlcue.HtmlCueComponent",class extends _.su{f(){_.Kn(_.ce,new iS)}a(){_.In.has(_.ce)&&(_.In.delete(_.ce),_.Jn.info("Removed factory: 'html'"))}id(){return _.Sf}});};f.call(g, window);