@castlabs/prestoplay 6.9.0 → 6.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +66 -0
- package/cjs/cl.adobe.js +3 -3
- package/cjs/cl.airplay.js +3 -3
- package/cjs/cl.broadpeak.js +6 -6
- package/cjs/cl.cast.js +112 -111
- package/cjs/cl.conviva.js +33 -33
- package/cjs/cl.core.js +467 -432
- package/cjs/cl.crypto.js +9 -9
- package/cjs/cl.dash.js +72 -72
- package/cjs/cl.externs.js +143 -45
- package/cjs/cl.freewheel.js +24 -24
- package/cjs/cl.hls.js +78 -73
- package/cjs/cl.hlssmpte.js +6 -6
- package/cjs/cl.htmlcue.js +29 -31
- package/cjs/cl.ima.js +24 -24
- package/cjs/cl.mse.js +276 -275
- package/cjs/cl.muxdata.js +14 -15
- package/cjs/cl.onboard.js +3 -3
- package/cjs/cl.persistent.js +14 -14
- package/cjs/cl.playlist.js +6 -6
- package/cjs/cl.smooth.js +71 -71
- package/cjs/cl.thumbnails.js +24 -24
- package/cjs/cl.tizen.js +71 -71
- package/cjs/cl.ttml.js +29 -27
- package/cjs/cl.verimatrix.js +5 -5
- package/cjs/cl.vimond.js +13 -13
- package/cjs/cl.vr.js +19 -19
- package/cjs/cl.vtt.js +14 -14
- package/cjs/cl.youbora.js +20 -20
- package/cl.adobe.js +3 -3
- package/cl.airplay.js +3 -3
- package/cl.broadpeak.js +5 -5
- package/cl.cast.js +88 -88
- package/cl.conviva.js +27 -27
- package/cl.core.js +396 -365
- package/cl.crypto.js +9 -9
- package/cl.dash.js +68 -67
- package/cl.externs.js +139 -45
- package/cl.freewheel.js +19 -19
- package/cl.hls.js +64 -61
- package/cl.hlssmpte.js +5 -5
- package/cl.htmlcue.js +26 -25
- package/cl.ima.js +17 -17
- package/cl.mse.js +240 -242
- package/cl.muxdata.js +12 -12
- package/cl.onboard.js +4 -4
- package/cl.persistent.js +11 -11
- package/cl.playlist.js +5 -5
- package/cl.smooth.js +59 -58
- package/cl.thumbnails.js +17 -17
- package/cl.tizen.js +57 -57
- package/cl.ttml.js +22 -22
- package/cl.verimatrix.js +4 -4
- package/cl.vimond.js +8 -8
- package/cl.vr.js +14 -14
- package/cl.vtt.js +12 -12
- package/cl.youbora.js +15 -15
- package/clpp.styles.css +15 -0
- package/package.json +1 -1
- package/typings.d.ts +249 -21
package/cl.muxdata.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var
|
|
2
|
-
a.
|
|
3
|
-
c={videoWidth:c.width,videoHeight:c.height});const {videoWidth:g,videoHeight:h}=c;a.
|
|
4
|
-
player_software_version:_.da,player_mux_plugin_name:"CastlabsPlayer built-in Mux Plugin",player_mux_plugin_version:_.da};(a=a.
|
|
5
|
-
"adbreakstart"));a.a.on(a.
|
|
6
|
-
c.type||2===c.type||3===c.type))if(7001===b.code){b=c;c=b.requestStartTimestamp;var d=new _.
|
|
7
|
-
request_error_code:e,request_error_text:b.toString()};a.
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
player_error_message:b})}}
|
|
11
|
-
request_media_duration:c,request_url:_.
|
|
12
|
-
|
|
1
|
+
import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var Nu=function(a){switch(a.type){case 1:return Ku;case 2:return Lu;case 3:return Mu}},Pu=function(a){const b=Object.keys(a).find(c=>Ou.includes(c.toLowerCase()));return void 0!==b?a[b]:void 0},Ru=function(a){let b={debug:!0,data:Qu(a)};a.f&&a.f.muxOptionsOverride&&_.Kf(a.f.muxOptionsOverride)&&(b=_.Gf(b,a.f.muxOptionsOverride));b=_.Gf(b,{getPlayheadTime:()=>1E3*a.m.getPosition(),getStateData:()=>{{a.h.debug("getStateData()");var c=a.m.getLoadedSource(),d=a.m.getTrackManager();const f=
|
|
2
|
+
a.m.getSurface();var e={player_is_paused:a.m.isPaused(),player_is_fullscreen:f.isFullscreen(),video_source_duration:1E3*a.m.getDuration(),player_autoplay_on:!!a.m.getConfiguration().autoplay};if(c){const k=new _.rk(c.url);e.video_source_url=_.ai(k);e.video_source_mime_type=c.type;c.name&&(e.video_title=c.name)}if(c=f.getContainer())e.player_width=c.offsetWidth,e.player_height=c.offsetHeight;(c=a.m.getSurface().getMedia())?c={videoWidth:c.videoWidth,videoHeight:c.videoHeight}:(c=a.m.getTrackManager().ia(),
|
|
3
|
+
c={videoWidth:c.width,videoHeight:c.height});const {videoWidth:g,videoHeight:h}=c;a.h.debug(`Video dimensions: ${g}x${h}`);g&&h&&(e.video_source_height=g,e.video_source_width=h);(d=d.oa())&&d.language&&(e.player_language_code=d.language)}return e}});a.h.debug("Mux SDK options",b);return b},Su=function(a){_.jg(a.a);a.j.qd(a.B);a.j.bf(a.F)},Tu=function(a,b,c){a.h.debug(`Event: ${b}`);a.A.emit(a.C,b,c)},Qu=function(a){const b={env_key:a.f.envKey,video_title:a.o&&a.o.name||"",player_name:_.na,player_software_name:_.na,
|
|
4
|
+
player_software_version:_.da,player_mux_plugin_name:"CastlabsPlayer built-in Mux Plugin",player_mux_plugin_version:_.da};(a=a.m.getConfiguration().viewerId)&&(b.viewer_user_id=a);return b},Uu=function(a){a.a.on(a.m,_.Se,()=>{const b={player_playhead_time:1E3*a.m.getPosition()};Tu(a,_.Se,b)});a.a.on(a.m,_.ee,()=>Tu(a,_.ee));a.a.on(a.m,_.mc,a.G.bind(a));a.a.on(a.m,_.Ge,a.I.bind(a));a.a.on(a.m,_.af,()=>Tu(a,_.Be));a.a.on(a.m,_.$e,()=>Tu(a,_.Ae));a.a.on(a.m,_.ld,a.H.bind(a));a.a.on(a.m,_.Cb,()=>Tu(a,
|
|
5
|
+
"adbreakstart"));a.a.on(a.m,_.Db,()=>Tu(a,"adbreakend"));a.a.on(a.m,_.Pb,()=>{Tu(a,"adplay");Tu(a,"adplaying")});a.a.on(a.m,_.Lb,()=>Tu(a,"adpause"));a.a.on(a.m,_.Nb,()=>{Tu(a,"adplay");Tu(a,"adplaying")});a.a.on(a.m,_.Qb,()=>Tu(a,"adended"));a.a.on(a.m,_.Hb,()=>Tu(a,"adfirstquartile"));a.a.on(a.m,_.Kb,()=>Tu(a,"admidpoint"));a.a.on(a.m,_.Rb,()=>Tu(a,"adthirdquartile"));a.j.zc(a.B);a.j.te(a.F);a.a.on(a.m,_.ld,b=>{if((b=b.detail)&&1===b.category){var c=b.data;c=c&&c.request;if(void 0!==c&&!0===(1===
|
|
6
|
+
c.type||2===c.type||3===c.type))if(7001===b.code){b=c;c=b.requestStartTimestamp;var d=new _.rk(b.uris[b.uriIndex]);b={request_start:c,request_type:Nu(b),request_hostname:d.a};a.h.debug("onRequestCanceled()","Track event: requestcanceled",b);Tu(a,"requestcanceled",b)}else{{d=c.requestStartTimestamp;const f=new _.rk(c.uris[c.uriIndex]);var e=b.data;e=void 0===e?-1:void 0!==e.response?e.response.status:void 0!==e.status?e.status:-1;b={request_start:d,request_type:Nu(c),request_hostname:f.a,request_error:`${Nu(c)}${"LoadError"}`,
|
|
7
|
+
request_error_code:e,request_error_text:b.toString()};a.h.debug("onRequestFailed()","Track event: requestfailed",b);Tu(a,"requestfailed",b)}}}})},Vu=function(a){return!_.B(a)&&typeof a.init===_.od&&typeof a.emit===_.od},Ku="manifest",Lu="media",Mu="encryption",Ou=["x-request-id","cf-ray","x-amz-cf-id","x-akamai-request-id"];var Wu=class{constructor(a,b){this.m=a;this.o=this.f=null;this.C=("000000"+(Math.random()*Math.pow(36,6)<<0).toString(36)).slice(-6);this.a=new _.vp;this.h=b;this.w=this.l=this.g=!1;this.A=null;this.j=a.getNetworkEngine();this.B=this.J.bind(this);this.F=this.K.bind(this)}initialize(a,b,c){this.f=a;this.o=b;this.A=c;if(!this.g){try{this.g=!0,this.A.init(this.C,Ru(this))}catch(d){throw this.g=!1,Su(this),new _.H(1,9,9302,null,d);}Tu(this,"playerready")}this.l&&!this.w&&(a=Qu(this),Tu(this,"videochange",
|
|
8
|
+
a),this.l=!1);Uu(this)}release(){this.h.debug("release()");this.l?this.h.debug(_.ha):(Su(this),this.l=!0,this.o=this.f=null)}destroy(){this.h.debug(_.Wc);this.w?this.h.debug(_.fa):(this.w=!0,Tu(this,"destroy"))}G(a){this.h.debug(_.Pd);var b=a.detail;a=this.m.getTrackManager();b&&b.bandwidth&&(b=b.bandwidth,(a=a.Ha())&&a.bandwidth&&(b+=a.bandwidth),Tu(this,"renditionchange",{video_source_bitrate:b}))}I(a){this.h.debug(_.Td);switch(a.detail.currentState){case _.Bm:this.m.getConfiguration().autoplay&&
|
|
9
|
+
Tu(this,_.ee);break;case _.Dm:Tu(this,_.le);break;case _.Cm:Tu(this,_.ae);break;case _.sm:Tu(this,_.kd)}}H(a){this.h.debug(_.Qd);if(this.g&&(a=a.detail||null))if(10003===a.code)Tu(this,"aderror");else if(a.severity===_.G){var b=a.message||"Player error";if(1===a.category||6100===a.code||6007===a.code)b="Download error",6100===a.code?b="Certificate request error":6007===a.code&&(b="License request error"),b=`${b} castlabs-error-data:${JSON.stringify(a.data)}`;Tu(this,_.ld,{player_error_code:a.code,
|
|
10
|
+
player_error_message:b})}}J(a){var b=a.request;if(b=void 0!==b&&!0===(1===b.type||2===b.type||3===b.type))b=a.status,b=void 0!==b&&200<=b&&299>=b;if(b){{b=a.request;const e=a.headers,f=b.bytesLoaded,g=b.requestStartTimestamp;var c=b.startTime,d=b.endTime;const h=g+a.responseStartMs;a=g+a.timeMs;c=c&&d?d-c:void 0;d=new _.rk(b.uris[b.uriIndex]);a={request_start:g,request_type:Nu(b),request_hostname:d.a,request_id:Pu(e),request_bytes_loaded:f,request_response_start:h,request_response_end:a,request_response_headers:e,
|
|
11
|
+
request_media_duration:c,request_url:_.ai(d)};this.h.debug("onRequestCompleted()","Track event: requestcompleted",a);Tu(this,"requestcompleted",a)}}}K(a){a.requestStartTimestamp=Date.now()}};var Xu=class extends _.rr{constructor(){super();this.f=null;this.a=!1;this.h=new _.R("clpp.muxdata")}onPlayerCreated(a){this.f=new Wu(a,this.h)}onContentWillLoad(a,b){var c=a.getConfiguration();c=_.Hf(c.muxdata);try{var d=[];typeof c===_.Od&&(c.envKey||d.push("envKey"));if(0<d.length)throw new _.H(1,9,9300,{missingKeys:d});{const f=a.getConfiguration();d=null;if(this.a=!_.B(f.muxdata)&&typeof f.muxdata===_.Od){const g=f.muxdata;d=Vu(g.muxLib)?g.muxLib:window.mux;if(!Vu(d)){this.h.warn("Mux SDK is not loaded. Will do nothing.");
|
|
12
|
+
this.a=!1;const h=new _.H(1,9,9301);this.U(a,h)}}else this.h.warn("Mux plugin is loaded but not configured. Will do nothing.");var e=d}null!==e&&this.f.initialize(c,b,e)}catch(f){this.a=!1,this.U(a,f)}}onContentLoaded(){}onPlayerWillDestroy(){this.a&&(this.f.destroy(),this.f=null)}onPlayerWillRelease(){this.a&&this.f.release()}id(){return"mux"}U(a,b){a.trigger(new _.F(_.ld,{detail:b}))}};_.z("clpp.muxdata.MuxDataPlugin",Xu);Xu.Id="mux";_.En(new class{create(){return new Xu}});};f.call(g, window);
|
package/cl.onboard.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var
|
|
2
|
-
certificateUrl:b,modifiers:{licenseRequest:_.
|
|
3
|
-
_.z("clpp.onboard.OnboardComponent",class extends _.
|
|
4
|
-
_.z("clpp.onboard.register",
|
|
1
|
+
import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var Ju=function(a,b){let c=b.baseUrl;_.oh(c,"/")||(c+="/");const d=g=>g&&(_.nh(g,"https://")||_.nh(g,"http://")||_.nh(g,"//"))?g:`${c}${g}`,e=d(b.widevineUrl||"widevine"),f=d(b.playreadyUrl||"playready");b=d(b.fairplayUrl||"fairplay");a=new _.iq(a);a.La(_.Sc,{licenseUrl:e,videoRobustness:[_.jb,void 0],audioRobustness:[_.ib,void 0],persistentStateRequired:!1,distinctiveIdentifierRequired:!1,serverCertificate:null,modifiers:{licenseRequest:_.Gk,licenseResponse:_.Hk}});a.La(_.Pc,{licenseUrl:b,
|
|
2
|
+
certificateUrl:b,modifiers:{licenseRequest:_.Jk,licenseResponse:_.Kk,extractContentId:_.Lk,certificateRequest:_.Mk}});a.La(_.Qc,{licenseUrl:f,modifiers:{licenseRequest:_.Gk}});_.Vj(a)};
|
|
3
|
+
_.z("clpp.onboard.OnboardComponent",class extends _.Pq{constructor(){super();this.h=new _.R("clpp.onboard");this.j=new Set}a(){for(const a of this.j)delete _.Uj[a];this.j.clear()}g(a){a=a.getConfiguration().drm;var b;if(b=!(!a||!a.env))b=a&&a.customData,b=!(!b||!b.baseUrl);b&&(b=a.env,a=a.customData,a={baseUrl:a.baseUrl,widevineUrl:a.widevineUrl,playreadyUrl:a.playreadyUrl,fairplayUrl:a.fairplayUrl},this.h.info(`Registering the DRMtoday Onboard environment, name='${b}'`),Ju(b,a),this.j.add(b))}id(){return"onboard"}});
|
|
4
|
+
_.z("clpp.onboard.register",Ju);};f.call(g, window);
|
package/cl.persistent.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var
|
|
2
|
-
audioRobustness:"",videoRobustness:"",serverCertificate:d,initData:null,keyIds:null}]});return _.
|
|
3
|
-
d.drm=a;a=new _.
|
|
4
|
-
licenseServerUri:h.licenseServerUri,serverCertificate:h.serverCertificate,audioCapabilities:[],videoCapabilities:k,drmConfig:a};yield d.store(e,f)}catch(h){throw
|
|
5
|
-
f=JSON.stringify(b.videoCapabilities);c=JSON.stringify({sessionIds:c,keySystem:b.keySystem,licenseServerUri:encodeURIComponent(b.licenseServerUri),serverCertificate:d,audioCapabilities:e,videoCapabilities:f,drmConfig:JSON.stringify(b.drmConfig)})}window.localStorage.setItem(encodeURIComponent(a),btoa(c))})}get(a){return _.
|
|
6
|
-
f=JSON.parse(
|
|
7
|
-
_.z("clpp.persistent.fetchLicense",function(a,b,...c){return _.
|
|
8
|
-
const l=yield k.start(f.url,{networkingEngine:d,filterAllPeriods:()=>{},filterNewPeriod:()=>{},onTimelineCueAdded:()=>{},onEvent:()=>{},onError:()=>{}});if(!l.periods.length)throw e(null,new _.H(_.G,4,4014));const m=_.
|
|
9
|
-
_.z("clpp.persistent.removeLicense",function(a){return _.
|
|
10
|
-
new _.H(1,6,6201,null,e);}finally{b=[],c&&b.push(c.destroy()),d&&b.push(d.destroy()),yield Promise.all(b)}}else
|
|
11
|
-
b.h.debug(`No offline session found for ${a}`);return[]}catch(
|
|
1
|
+
import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var tu="A persistent DRM session already exists for: ",uu="No DRM configuration.",vu="clpp.persistent",wu="clpp.persistent.SimpleSessionStorage",xu=function(a,b){const c=[];for(const d of a)c.push(b(d));return c},zu=function(a,b){a.H=yu;a.I=[];a.C=!0;return _.Gl(a,b)},Bu=function(a,b,c,d,e,f){a.H=Au;const g=new Map,h=_.rl(b);g.set(h,{audioCapabilities:e,videoCapabilities:f,distinctiveIdentifier:_.Yd,persistentState:_.xe,sessionTypes:[_.ce],label:h,drmInfos:[{keySystem:b,licenseServerUri:c,
|
|
2
|
+
distinctiveIdentifierRequired:!1,persistentStateRequired:!0,audioRobustness:"",videoRobustness:"",serverCertificate:d,initData:null,keyIds:null}]});return _.Fl(a,g)},Cu=function(a,b){return _.x(function*(){const c=yield _.Wl(a,b);if(c){var d=[],e=a.f.get(c);e&&a.A&&(e.mb=new _.Jl,d.push(e.mb));a.h.debug("Attempting to remove session",b);d.push(c.remove());return Promise.all(d)}a.h.debug("Ignoring attempt to remove missing session",b)})},Du=function(a){a=a.f.keys();a=xu(a,b=>b.sessionId);return Array.from(a)},
|
|
3
|
+
Eu=function(a,b){const c=_.Xj(a),d=_.Dj({drm:a});d.drm=a;a=new _.Mm({xb:b,onError:()=>{},ae:()=>{},onExpirationUpdated:()=>{},onEvent:()=>{},getConfiguration:()=>d,qc:()=>null});a.g=c;return a},Hu=function(a,b,c){return _.x(function*(){const d=Fu;if(a){var e=a.offlineId;if(0!==e.length){var f=yield d.get(e);if(f)Gu.debug(tu,e);else{var g=Eu(a,c);try{yield zu(g,b);yield _.Ul(g);yield _.Xl(g);const h=g.getDrmInfo(),k=b.map(l=>({contentType:_.vi(l.video.mimeType,l.video.codecs),robustness:h.videoRobustness}));
|
|
4
|
+
f={sessionIds:Du(g),keySystem:h.keySystem,licenseServerUri:h.licenseServerUri,serverCertificate:h.serverCertificate,audioCapabilities:[],videoCapabilities:k,drmConfig:a};yield d.store(e,f)}catch(h){throw Gu.error(`Error while persisting DRM session ${e}`),new _.H(1,6,6200,null,h);}finally{yield g.destroy()}}}}else Gu.debug(uu)})},yu=1,Au=2,Iu=class{constructor(){this.h=new _.R(wu)}store(a,b){return _.x(function*(){{var c=JSON.stringify(b.sessionIds);var d=b.serverCertificate?Array.from(b.serverCertificate):
|
|
5
|
+
null;d=JSON.stringify(d);const e=JSON.stringify(b.audioCapabilities),f=JSON.stringify(b.videoCapabilities);c=JSON.stringify({sessionIds:c,keySystem:b.keySystem,licenseServerUri:encodeURIComponent(b.licenseServerUri),serverCertificate:d,audioCapabilities:e,videoCapabilities:f,drmConfig:JSON.stringify(b.drmConfig)})}window.localStorage.setItem(encodeURIComponent(a),btoa(c))})}get(a){const b=this;return _.x(function*(){const c=window.localStorage.getItem(encodeURIComponent(a));if(c)try{{const e=JSON.parse(atob(c)),
|
|
6
|
+
f=JSON.parse(e.sessionIds),g=e.audioCapabilities||[],h=e.videoCapabilities||[],k=e.serverCertificate||[],l=e.drmConfig||{};var d={sessionIds:f,keySystem:e.keySystem,licenseServerUri:decodeURIComponent(e.licenseServerUri||""),serverCertificate:k?new Uint8Array(k):null,audioCapabilities:g,videoCapabilities:h,drmConfig:l}}return d}catch(e){b.h.warn(`Error while loading offline items for ${a} from storage: `,e)}return null})}delete(a){return _.x(function*(){window.localStorage.removeItem(encodeURIComponent(a))})}clear(){return _.x(function*(){window.localStorage.clear()})}getName(){return wu}};_.z("clpp.persistent.useStorage",function(a){{var b=["store","get","delete","clear","getName"];const c=[];_.B(a)||(_.Lf(a.store)||c.push("store"),_.Lf(a.get)||c.push("get"),_.Lf(a.delete)||c.push("delete"),_.Lf(a.clear)||c.push("clear"),_.Lf(a.getName)||c.push("getName"),b=c)}if(0<b.length)throw Gu.warn("Invalid session storage implementation"),new _.H(1,6,6202,{missingMethods:b});Fu=a});
|
|
7
|
+
_.z("clpp.persistent.fetchLicense",function(a,b,...c){return _.x(function*(){var d=Fu,e=(l,m)=>new _.H(1,6,6200,l,m);const f=_.Gm(a).shift();if(!f)throw e("No source specified.");if(!b)throw e(uu);var g=b.offlineId;if(typeof g!==_.Je||!g.length)throw e("Missing offline id.");if(yield d.get(g))Gu.debug(tu,g);else{var h=_.Dj();d=new _.Bn;g=[];for(var k of c){const l=new k;_.Gj(l.id())||(l.f(),_.Ij(l),g.push(l))}k=null;try{k=yield _.Io(f.url,d,h.manifest.attemptParameters,f.type||null);k.configure(h.manifest);
|
|
8
|
+
const l=yield k.start(f.url,{networkingEngine:d,filterAllPeriods:()=>{},filterNewPeriod:()=>{},onTimelineCueAdded:()=>{},onEvent:()=>{},onError:()=>{}});if(!l.periods.length)throw e(null,new _.H(_.G,4,4014));const m=_.Go(l.periods);yield Hu(b,m,d)}catch(l){if(l instanceof _.H&&6200===l.code)throw l;throw e(null,l);}finally{for(;g.length;)e=g.shift(),e.a(),_.Fj.delete(e.id());e=[];k&&e.push(k.stop());e.push(d.destroy());yield Promise.all(e)}}})});
|
|
9
|
+
_.z("clpp.persistent.removeLicense",function(a){return _.x(function*(){var b=Fu;if(_.Rf(a)&&0!==a.length){var c=null,d=null;try{const e=yield b.get(a);e?(e.drmConfig.delayLicenseRequestUntilPlayed=!0,d=new _.Bn,c=Eu(e.drmConfig,d),yield Bu(c,e.keySystem,e.licenseServerUri,e.serverCertificate,e.audioCapabilities,e.videoCapabilities),yield _.Ul(c),yield Promise.all(e.sessionIds.map(f=>_.x(function*(){yield Cu(c,f);Gu.debug("successfully removed session with id",f)}))),yield b.delete(a)):Gu.debug("No persistent DRM session found")}catch(e){throw Gu.error("Failed to remove session"),
|
|
10
|
+
new _.H(1,6,6201,null,e);}finally{b=[],c&&b.push(c.destroy()),d&&b.push(d.destroy()),yield Promise.all(b)}}else Gu.warn("Invalid offlineId")})});var Fu=new Iu,Gu=new _.R(vu);_.z("clpp.persistent.PersistentLicenseComponent",class extends _.Pq{constructor(){super();this.h=new _.R(vu)}id(){return _.be}l(a,b){const c=this;return _.x(function*(){const d=a.getConfiguration().drm;if(d){c.h.debug(`Persisting DRM session ID: ${d.offlineId}`);var e=a.getNetworkEngine();try{yield Hu(d,b,e),a.trigger(new _.F(_.ed,{offlineId:d.offlineId}))}catch(f){a.onError(f)}}else c.h.debug("No DRM configuration found for loaded source.")})}j(a){const b=this;return _.x(function*(){b.h.debug(`Getting EME session IDs for ${a}`);
|
|
11
|
+
const c=Fu;try{const d=yield c.get(a);if(d)return d.sessionIds||[];b.h.debug(`No offline session found for ${a}`);return[]}catch(d){return b.h.warn("Error while loading session info from storage"),[]}})}});};f.call(g, window);
|
package/cl.playlist.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var
|
|
2
|
-
this.a.length&&
|
|
3
|
-
c.trigger(new _.F(_.
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var qu=function(a,b){return 0<=b&&b<a.a.length},ru=function(a){a.trigger(new _.F(_.ne))},su=class extends _.dq{on(a,b,c){return super.on(a,b,c)}one(a,b,c){return super.one(a,b,c)}off(a,b){return super.off(a,b)}constructor(a,b){b=void 0===b?()=>Promise.resolve():b;super();this.m=a;this.l=b;this.f=0;this.a=[];this.g=!1;this.j=this.Ve.bind(this)}getPosition(){return this.f}bg(){return this.a}Gc(){return 0<this.a.length&&qu(this,this.f)?this.a[this.f]:null}cg(){const a=this.f+1;return 0<
|
|
2
|
+
this.a.length&&qu(this,a)?this.a[a]:null}ig(){return this.g}start(){this.g||(this.g=!0,this.m.on(_.kd,this.j),this.gd(this.f,!0))}stop(){this.g=!1;this.m.off(_.kd,this.j)}Ve(){this.next()}next(){const a=this;return _.x(function*(){yield a.gd(Math.min(a.a.length-1,a.f+1))})}xg(){const a=this;return _.x(function*(){yield a.gd(Math.max(0,a.f-1))})}gd(a,b){b=void 0===b?!1:b;const c=this;return _.x(function*(){if(0<c.a.length&&qu(c,a)&&(b||c.f!==a)){c.f=a;var d=c.Gc();d&&(yield c.l(d),yield c.m.load(d.configuration),
|
|
3
|
+
c.trigger(new _.F(_.me,{item:d})))}})}append(a){this.a.push(a);ru(this)}hg(a,b){if(0<=b&&b<=this.a.length){const c=this.Gc();this.a.splice(b,0,a);c&&(this.f=this.a.indexOf(c));ru(this)}}remove(a){if(0<this.a.length&&qu(this,a)){if(this.f===a)throw Error("Can't remove the current item");this.a.splice(a,1);ru(this)}}clear(){this.stop();this.f=0;this.a=[];this.g=!1;ru(this)}};_.z("clpp.Playlist",su);su.prototype.clear=su.prototype.clear;su.prototype.remove=su.prototype.remove;su.prototype.insert=su.prototype.hg;
|
|
4
|
+
su.prototype.append=su.prototype.append;su.prototype.goTo=su.prototype.gd;su.prototype.previous=su.prototype.xg;su.prototype.next=su.prototype.next;su.prototype.onEnded=su.prototype.Ve;su.prototype.stop=su.prototype.stop;su.prototype.start=su.prototype.start;su.prototype.isStarted=su.prototype.ig;su.prototype.getUpcoming=su.prototype.cg;su.prototype.getCurrent=su.prototype.Gc;su.prototype.getQueue=su.prototype.bg;su.prototype.getPosition=su.prototype.getPosition;su.prototype.off=su.prototype.off;
|
|
5
|
+
su.prototype.one=su.prototype.one;su.prototype.on=su.prototype.on;};f.call(g, window);
|
package/cl.smooth.js
CHANGED
|
@@ -1,58 +1,59 @@
|
|
|
1
|
-
import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var
|
|
2
|
-
b,a.g),a.a+=2}catch(c){_.
|
|
3
|
-
String(d.bitrate)).replace("{start time}",String(c.t)).replace("{start_time}",String(c.t));return _.
|
|
4
|
-
sampleSize:NaN,channelCount:NaN};switch(c.type){case _.w:a.
|
|
5
|
-
Number(a[2]);let f=Number(a[3]),g=Number(a[4]);g+=(Number(a[5])||0)/c.f;f+=g/c.frameRate;d=f+60*e+3600*d}}else
|
|
6
|
-
0;for(let c=0;c<a.a.length;c++)b+=a.a[c].a();return new _.
|
|
7
|
-
|
|
8
|
-
(a=(new
|
|
9
|
-
|
|
10
|
-
0<l-k.reader.getPosition()&&k.flags&32&&(m.
|
|
11
|
-
2048&&(0===k.version?m.
|
|
12
|
-
|
|
13
|
-
g;d=g.get(_.
|
|
14
|
-
A;
|
|
15
|
-
m,f]);n&&b.append([n]);if(e){g=0;k=[];if(c.flags&2)for(k=[],m=0;m<c.
|
|
16
|
-
periodId:null}},
|
|
17
|
-
c.type=1;c=yield a.D.networkingEngine.fetch(c).P;a.
|
|
18
|
-
1E7;let g=+
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
+
|
|
22
|
-
new Uint16Array(1),
|
|
23
|
-
new _.H(_.G,4,4037,
|
|
24
|
-
tracks:
|
|
25
|
-
var
|
|
26
|
-
|
|
27
|
-
c
|
|
28
|
-
`track with bitrate ${g.bitrate}. Skipping update.`)}}},
|
|
29
|
-
d.length;f++){const g=d[f].tracks.map(h=>{{var k=d[f],l=
|
|
30
|
-
2),16)&248)>>3),
|
|
31
|
-
emsgSchemeIdUris:null,roles:[],channelsCount:h.
|
|
32
|
-
new _.H(_.G,3,4035,g);}const f="data:text/plain;base64,"+_.
|
|
33
|
-
b=4+this.type.length;"uuid"===this.type&&(b+=16);if(0<this.f.length)for(let c=0;c<this.f.length;c++)b+=this.f[c].a();this.size>a&&(b+=8);return b}write(a){var b=Math.pow(2,32)-1;this.start=a.getPosition();this.size=this.a();this.size>b?_.
|
|
34
|
-
this.version=b;this.flags=c}a(){return 4+super.a()}write(a){super.write(a);
|
|
35
|
-
|
|
36
|
-
0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0]}a(){let a=0;a=1===this.version?a+28:a+16;a=a+44+this.g.length;return a+=super.a()}write(a){super.write(a);1===this.version?(
|
|
37
|
-
|
|
38
|
-
this.g.length;return a+super.a()}write(a){super.write(a);1===this.version?(
|
|
39
|
-
21956}a(){let a=0;a=1===this.version?a+28:a+16;return a+4+super.a()}write(a){super.write(a);1===this.version?(
|
|
40
|
-
0);this.g===_.w?_.
|
|
41
|
-
super.a()}write(a){super.write(a);
|
|
42
|
-
b){super("avc1");this.width=a;this.height=b}write(a){super.write(a);for(let b=0;b<this.f.length;b++)this.f[b].write(a);a.getPosition()}},
|
|
43
|
-
1;this.g=this.
|
|
44
|
-
a.getPosition()}},
|
|
45
|
-
0<this.location.length&&_.
|
|
46
|
-
return a+super.a()}write(a){super.write(a);_.
|
|
47
|
-
0;b<this.entries.length;b++)a+=this.entries[b].a();return a+super.a()}write(a){super.write(a);_.
|
|
48
|
-
0,0)}a(){return 8+super.a()}write(a){super.write(a);_.
|
|
49
|
-
1===this.version?
|
|
50
|
-
super.a()}write(a){super.write(a);_.
|
|
51
|
-
|
|
52
|
-
super.a()}write(a){super.write(a);0<this.g.byteLength&&_.
|
|
53
|
-
0,0);this.g=a;this.
|
|
54
|
-
0===this.version?a+4:a+8;return a+super.a()}write(a){super.write(a);this.flags&1&&(_.
|
|
55
|
-
this.j[b]);a.getPosition()}},
|
|
56
|
-
this.
|
|
57
|
-
null;
|
|
58
|
-
|
|
1
|
+
import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var iI="Full MP4 box must have flags defined",jI="clpp.smooth.SmoothMP4Processor",kI="codecPrivateData",lI=function(a,b){const c=Math.floor(b/Math.pow(2,32));b-=c*Math.pow(2,32);_.O(a,c);_.O(a,b)},mI=function(a,b){try{a.f.setUint8(a.a,b),a.a+=1}catch(c){_.ak()}},nI=function(a,b){mI(a,b>>16&255);mI(a,b>>8&255);mI(a,b&255)},oI=function(a,b){try{a.f.setUint16(a.a,b,a.g),a.a+=2}catch(c){_.ak()}},pI=function(a,b){try{a.f.setInt32(a.a,b,a.g),a.a+=4}catch(c){_.ak()}},qI=function(a,b){try{a.f.setInt16(a.a,
|
|
2
|
+
b,a.g),a.a+=2}catch(c){_.ak()}},rI=function(a,b){if(void 0!=b){var c=new Uint8Array(b);const d=Math.min(a.length,b);let e=0;for(;e<d;++e)c[e]=a.charCodeAt(e);for(;e<b;e++)c[e]=0;return c}b=new Uint8Array(a.length);for(c=0;c<a.length;++c)b[c]=a.charCodeAt(c);return b},sI=function(a){const b=a.split("/");return b[b.length-1].toLowerCase().match("manifest(\\(.+\\))?")?a:`${a}/Manifest`},tI=function(a,b,c,d){c=b.Ie[c];b=b.Pg;a=a.replace("Manifest","");b=b.replace("{bitrate}",String(d.bitrate)).replace("{Bitrate}",
|
|
3
|
+
String(d.bitrate)).replace("{start time}",String(c.t)).replace("{start_time}",String(c.t));return _.Rv([a],[b])[0]},uI=function(a,b){if(a.type!==b.type)return!1;let c=[];a.type===_.w?c=["maxWidth","maxHeight","bitrate",kI,"fourCC"]:a.type===_.p&&(c=["bitrate",kI,"channels","bitsPerSample","samplingRate","fourCC"]);return _.Tf(a,b,c,["id","segmentIndex"])},vI=function(a,b,c){const d=c.Zc.split("00000001");a={id:1,type:c.type,duration:a/b,timescale:b,Ma:null,Nb:null,width:NaN,height:NaN,Gb:null,Pc:NaN,
|
|
4
|
+
sampleSize:NaN,channelCount:NaN};switch(c.type){case _.w:a.Ma=[_.xh(d[1])];a.Nb=[_.xh(d[2])];a.width=c.maxWidth;a.height=c.maxHeight;break;case _.p:a.Gb=_.xh(c.Zc),a.sampleSize=c.Df||16,a.Pc=c.Pc,a.channelCount=c.Be}return a},wI=function(a,b){return a.filter(c=>c.type===b)},xI=function(a,b){a=a.exec(b);return null==a||""==a[0]?null:(Number(a[4])||0)/1E3+(Number(a[3])||0)+60*(Number(a[2])||0)+3600*(Number(a[1])||0)},EI=function(a,b,c){var d=null;if(yI.test(a)){{a=yI.exec(a);d=Number(a[1]);const e=
|
|
5
|
+
Number(a[2]);let f=Number(a[3]),g=Number(a[4]);g+=(Number(a[5])||0)/c.f;f+=g/c.frameRate;d=f+60*e+3600*d}}else zI.test(a)?d=xI(zI,a):AI.test(a)?d=xI(AI,a):BI.test(a)?(a=BI.exec(a),d=Number(a[1])/c.frameRate):CI.test(a)?(a=CI.exec(a),d=Number(a[1])/c.a):DI.test(a)&&(d=xI(DI,a));c=d;d=c+b;b=Math.floor(d/3600);c=Math.floor((d-3600*b)/60);a=Math.floor(d-3600*b-60*c);d-=a;10>b&&(b="0"+b);10>c&&(c="0"+c);10>a&&(a="0"+a);0===d?d="000":d=Math.round(1E3*d);return b+":"+c+":"+a+"."+d},FI=function(a){let b=
|
|
6
|
+
0;for(let c=0;c<a.a.length;c++)b+=a.a[c].a();return new _.vk(b)},MI=function(a,b,c){a:{var d=[_.Sc,_.Qc];for(e of d)if((d=c.ed(e))&&d.keyId){var e=d.keyId;break a}_.C(jI,"Could not get default Key ID for DRM init data!");e=null}c=new GI("xxxx");a.type===_.w?c=new HI(a.width,a.height):c=new II(a.channelCount,a.sampleSize,a.Pc);a=new JI;a.g=1;a.j=8;a.o=e||"00000000000000000000000000000000";a=(new GI("schi")).append([a]);b=(new GI(_.De)).append([new KI(b),new LI(_.yc,65536),a]);c.append([b]);return c},
|
|
7
|
+
oJ=function(a,b){var c=b.ld(),d=new NI(a.timescale,a.duration,a.id),e=(new OI).append([new PI(a.id)]),f=new QI(a.id,a.duration,a.timescale,a.width,a.height),g=new RI(a.timescale,a.duration);const h=new SI(a.type);var k=null,l=new TI;l.entries=[new UI];var m=new VI;switch(a.type){case _.w:k=new WI(a.Ma,a.Nb);c?(a=MI(a,"avc1",b),a.append([k]),m.entries=[a]):(a=(new XI(a.width,a.height)).append([k]),m.entries=[a]);k=new YI;break;case _.p:k=new ZI(a.Gb),c?(a=MI(a,"mp4a",b),a.append([k]),m.entries=[a]):
|
|
8
|
+
(a=(new $I(a.channelCount,a.sampleSize,a.Pc)).append([k]),m.entries=[a]),k=new aJ}m=(new bJ).append([m,new cJ,new dJ,new eJ,new fJ]);l=(new gJ).append([l]);l=(new hJ).append([k,l,m]);g=(new iJ).append([g,h,l]);f=(new jJ).append([f,g]);d=(new kJ).append([d,f,e]);e=new lJ("dash",0,["iso6","mp41","avc1"]);c&&(c=b.ed(_.Qc),b=b.ed(_.Sc),c&&d.append([new mJ("pssh",c.initData,8)]),b&&d.append([new mJ("pssh",b.initData,8)]),c||b||_.C(jI,"Could not get PSSH init data!"));b=new nJ([e,d]);return _.J(b.write())},
|
|
9
|
+
yJ=function(a,b){let c,d,e,f,g,h;(new _.tk).L("moof",_.mk).Z("mfhd",k=>{{const l=new pJ;l.g=_.P(k.reader);c=l}}).L("traf",_.mk).Z("tfhd",k=>{{const l=k.reader.Ba();if(null===k.flags)throw new _.H(_.G,3,3019,iI);const m=new qJ(k.version||0,k.flags||0);m.g=_.P(k.reader);0<l-k.reader.getPosition()&&k.flags&1&&(m.j=_.hk(k.reader));0<l-k.reader.getPosition()&&k.flags&2&&(m.B=_.P(k.reader));0<l-k.reader.getPosition()&&k.flags&8&&(m.l=_.P(k.reader));0<l-k.reader.getPosition()&&k.flags&16&&(m.w=_.P(k.reader));
|
|
10
|
+
0<l-k.reader.getPosition()&&k.flags&32&&(m.o=_.P(k.reader));d=m}}).Z("trun",k=>{{var l=k.reader.Ba();if(null===k.flags)throw new _.H(_.G,3,3019,iI);const m=new rJ(k.version||0,k.flags||0);m.g=_.P(k.reader);0<l-k.reader.getPosition()&&k.flags&1&&(m.l=_.gk(k.reader));0<l-k.reader.getPosition()&&k.flags&4&&(m.o=_.P(k.reader));if(0<l-k.reader.getPosition())for(l=0;l<m.g;l++)k.flags&256&&m.w.push(_.P(k.reader)),k.flags&512&&m.sampleSize.push(_.P(k.reader)),k.flags&1024&&m.B.push(_.P(k.reader)),k.flags&
|
|
11
|
+
2048&&(0===k.version?m.j.push(_.P(k.reader)):m.j.push(_.gk(k.reader)));e=m}}).Z("sdtp",k=>{{const l=_.jk(k.reader,k.reader.Ba());f=new sJ("sdtp",k.version||0,k.flags||0,l,0)}}).L("uuid",k=>{var l=_.jk(k.reader,16);if(_.zh(l,tJ)){l=_.P(k.reader);k.version=l>>>24;k.flags=l&16777215;l=new uJ(k.version,k.flags);l.j=_.P(k.reader);k.flags&1&&(l.l=_.ek(k.reader));for(let m=0;m<l.j;m++){const n={Qe:_.jk(k.reader,8),yc:0,me:[]};if(k.flags&2){n.yc=_.fk(k.reader);for(let q=0;q<n.yc;q++){const u={ze:0,Ae:0};
|
|
12
|
+
u.ze=_.fk(k.reader);u.Ae=_.P(k.reader);n.me.push(u)}}l.g.push(n)}g=l}}).L(_.Dd,k=>{{const l=new vJ;0<k.reader.Ba()?l.g=_.jk(k.reader,k.reader.Ba()):(_.C(jI,"mdat box is empty!"),l.g=new Uint8Array(0));h=l}}).parse(a,!1);if(!h)return null;a=(new wJ).append([d,e]);f&&a.append([f]);b.ld()&&g&&a.append([g]);b=(new xJ).append([c,a]);return new nJ([b,h])},DJ=function(a,b,c,d){var e=d.ld(),f=parseInt(c*b,10);b=a.data||new ArrayBuffer(0);var g=yJ(b,d);if(null===g)return a.request.contentType===_.t?a.data:
|
|
13
|
+
g;d=g.get(_.Dd);if(a.request.contentType===_.t){e=d.g.buffer;if(c){e=_.jh(e);if((e=(new DOMParser).parseFromString(e,_.Re))&&"tt"===e.documentElement.tagName.toLowerCase())var h=e.documentElement;if(h&&(d=new zJ(h.getAttribute("ttp:frameRate"),h.getAttribute("ttp:subFrameRate"),h.getAttribute("ttp:frameRateMultiplier"),h.getAttribute("ttp:tickRate")),h=h.getElementsByTagName("body")[0])){f=h.getElementsByTagName("p");for(let u=0,v=f.length;u<v;u++){h=f[u];a=c;b=d;g=["begin",_.jd];for(let y=0,A=g.length;y<
|
|
14
|
+
A;y++){b:{var k=h;var l=g[y],m=new RegExp("\\w+:"+l),n=0;if(k.hasAttribute(l)){k=k.getAttribute(l);break b}l=k.attributes;const D=l.length;for(;n<D;n++){var q=l[n].name;if(q=q.match(m)){k=k.getAttribute(q[0]);break b}}k=null}h.setAttribute(g[y],EI(k||"",a,b))}}}e=(new XMLSerializer).serializeToString(e);c=_.kh(e).buffer}else c=e;return c}h=new xJ;a=g.get("mfhd");b=new wJ;k=g.get("tfhd");m=new AJ(1,f);f=g.get("trun");n=g.get("sdtp");c=g.get("senc");k.g=1;k.flags&=16777214;k.flags|=131072;b.append([k,
|
|
15
|
+
m,f]);n&&b.append([n]);if(e){g=0;k=[];if(c.flags&2)for(k=[],m=0;m<c.j;m++)k.push(10+6*c.g[m].yc);else g=8;b.append([c,new BJ,new CJ(g,k,c.j)])}h.append([a,b]);f.flags|=1;f.l=h.a()+8;d=new nJ([h,d]);h=d.write();e&&(e=d.get("saio"),d=d.f,e.offset[0]=c.start+16,d.seek(e.start),e.write(d),h=d.buffer);return h},EJ=function(a,b,c){return{keySystem:a,licenseServerUri:"",distinctiveIdentifierRequired:!1,persistentStateRequired:!1,audioRobustness:"",videoRobustness:"",serverCertificate:null,initData:[b],keyIds:c,
|
|
16
|
+
periodId:null}},FJ=function(a){return{initData:_.Hv(_.fl(a)),initDataType:_.yc,keyId:a,periodId:null}},GJ=function(a,b,c){a=_.nl(a);c&&a.version!==c&&(a=_.Jv(a,c));return{initData:_.Hv(a),initDataType:_.yc,keyId:b,periodId:null}},HJ=function(a,b){return _.x(function*(){var c=_.Kh(b);c.timeout=a.f.attemptParameters.timeout;c.maxAttempts=Math.max(a.f.attemptParameters.maxAttempts,b.length);c.baseDelay=a.f.attemptParameters.baseDelay;c.backoffFactor=a.f.attemptParameters.backoffFactor;c.fuzzFactor=a.f.attemptParameters.fuzzFactor;
|
|
17
|
+
c.type=1;c=yield a.D.networkingEngine.fetch(c).P;a.l=c.uri;return c})},PJ=function(a,b){let c=null;try{{const sa=new DOMParser;let lb,Na;try{const eb=_.jh(b);Na=sa.parseFromString(eb.trim(),_.Re)}catch(eb){throw eb;}Na&&Na.documentElement.tagName==_.ob&&(lb=Na.documentElement);c=lb&&0<lb.getElementsByTagName("parsererror").length?null:lb}}catch(sa){}if(!c)throw a.h.error("Unable to parse manifest"),new _.H(_.G,4,4033,a.l);const d=+IJ(a,c,"MajorVersion"),e=+IJ(a,c,"MinorVersion"),f=+c.getAttribute("TimeScale")||
|
|
18
|
+
1E7;let g=+IJ(a,c,"Duration");const h="TRUE"===c.getAttribute("IsLive"),k=+c.getAttribute("LookAheadCount"),l=+c.getAttribute("DVRWindowLength")||Infinity,m=_.Wk(c,"Protection")[0];if(!1===/^[2].[0-2]$/.test(""+d+"."+e))throw a.h.error("Smooth Streaming version must be 2.0, 2.1 or 2.2"),new _.H(_.G,4,4036,a.l);h?(JJ(a,KJ),a.A=typeof a.f.liveRefreshPeriod===_.r?1E3*a.f.liveRefreshPeriod:Math.min(1E3*a.H,1E4),g=Infinity):JJ(a,LJ);a.a={startTime:0,delay:0,duration:g/f,Dd:l/f,Kc:0};if(m){{var n=a.f.playreadyVersion;
|
|
19
|
+
const sa=[],lb=_.Wk(m,"ProtectionHeader")[0],Na=_.wh(_.Yk(lb)||""),eb=_.nl(Na).a;sa.push(EJ(_.Sc,FJ(eb),[eb]));sa.push(EJ(_.Qc,GJ(Na,eb,n),[eb]));var q=sa}a.o=q}{const sa=[],lb=_.Wk(c,"StreamIndex");if(!lb.length)throw a.h.error("No streams found!"),new _.H(_.G,4,4034,a.l);for(let Na=0;Na<lb.length;Na++){{var u=a,v=lb[Na];const eb=IJ(u,v,"Type"),pc=+v.getAttribute("Chunks"),ch=v.getAttribute("Subtype"),Vd=v.getAttribute("Language")||_.Ve,Wd=_.Sg(Vd),dh=v.getAttribute("Name")||"",Nf=+v.getAttribute(_.Ma),
|
|
20
|
+
Of=+v.getAttribute(_.La),$k=IJ(u,v,"Url"),ZM=+v.getAttribute("TimeScale")||null;{const qc=[],Ai=_.Wk(v,_.bb);for(let Xd=0;Xd<Ai.length;Xd++){{let rc,Ja,nd;var y=u,A=Ai[Xd],D=eb;const Bi=+A.getAttribute("Index"),Pf=+IJ(y,A,"Bitrate");let Ub=NaN,Qf=NaN,al=NaN,kq=NaN,vA=NaN,wA=NaN,xA=NaN;const yA=A.getAttribute("FourCC");switch(D){case _.w:Ub=+IJ(y,A,_.La);Qf=+IJ(y,A,_.Ma);break;case _.p:kq=+A.getAttribute("Channels")||2,al=+IJ(y,A,"SamplingRate"),wA=+IJ(y,A,"AudioTag"),vA=+IJ(y,A,"BitsPerSample"),xA=
|
|
21
|
+
+IJ(y,A,"PacketSize")}let lq=String(A.getAttribute("CodecPrivateData"));if(D===_.p&&!lq){{var E=kq;const zA={96E3:0,88200:1,64E3:2,48E3:3,44100:4,32E3:5,24E3:6,22050:7,16E3:8,12E3:9,11025:10,8E3:11,7350:12},bl=zA[al];if("AACH"===yA){Ja=new Uint8Array(4);const AA=zA[2*al];Ja[0]=40|bl>>1;Ja[1]=bl<<7|E<<3|AA>>1;Ja[2]=AA<<7|8;Ja[3]=0;rc=new Uint16Array(2);rc[0]=(Ja[0]<<8)+Ja[1];rc[1]=(Ja[2]<<8)+Ja[3];nd=rc[0].toString(16)+rc[1].toString(16)}else Ja=new Uint8Array(2),Ja[0]=16|bl>>1,Ja[1]=bl<<7|E<<3,rc=
|
|
22
|
+
new Uint16Array(1),rc[0]=(Ja[0]<<8)+Ja[1],nd=rc[0].toString(16);lq=nd.toUpperCase()}}var N={id:y.W++,type:D,index:Bi,bitrate:Pf,Zc:lq,maxHeight:Ub,maxWidth:Qf,Pc:al,Be:kq,Wg:wA,Df:vA,hh:xA,Tf:yA,segmentIndex:null}}qc.push(N)}var sb=qc}{const qc=[],Ai=_.Wk(v,"c");for(let Xd=0;Xd<Ai.length;Xd++){const rc=Ai[Xd];let Ja=parseInt(rc.getAttribute("t"),10),nd=parseInt(rc.getAttribute("d"),10),Bi=parseInt(rc.getAttribute("r"),10),Pf=0;if(isNaN(Ja)&&isNaN(nd))throw u.h.error("Either one or both FragmentDuration and FragmentTime field MUST be present in StreamFragmentElement"),
|
|
23
|
+
new _.H(_.G,4,4037,u.l);0===Xd&&isNaN(Ja)&&(Pf=Ja=0);if(0<Xd){const Ub=qc[qc.length-1];Pf=Ub.n+1;Ub.d||(Ub.d=Ja-Ub.t);Ja||(Ja=Ub.t+Ub.d);nd||(nd=Ja-Ub.t)}qc.push({n:Pf,d:nd,t:Ja});if(Bi){Bi--;for(let Ub=0;Ub<Bi;Ub++){const Qf=qc[qc.length-1];Pf=Qf.n+1;Ja=Qf.t+Qf.d;nd=Qf.d;qc.push({n:Pf,d:nd,t:Ja})}}}u.C()||qc.length===pc||u.h.warn("Number of fragments ("+pc+") differs from number of chunks ("+qc.length+").");var Sb=qc}var Jf={type:eb,Zg:pc,Jg:ch,language:Wd,Jc:Vd,name:dh,maxWidth:Nf,maxHeight:Of,
|
|
24
|
+
Pg:$k,tracks:sb,Ie:Sb,timescale:ZM}}sa.push(Jf)}var Me=sa}const Sa={gh:d,Te:e,timescale:f,duration:g,isLive:h,fh:k,Dd:l,Md:!1,streams:Me};if(a.g&&a.w)return MJ(a,Sa),Promise.resolve();a.G.clear();{const sa=Sa.timescale,lb=Sa.duration,Na=wI(Sa.streams,_.p),eb=wI(Sa.streams,_.w),pc=wI(Sa.streams,_.t),ch=[];let Vd=NJ(a,lb,sa,Na),Wd=NJ(a,lb,sa,eb);const dh=NJ(a,lb,sa,pc);Vd.length||(Vd=[null]);Wd.length||(Wd=[null]);for(let Nf=0;Nf<Wd.length;Nf++)for(let Of=0;Of<Vd.length;Of++)ch.push(OJ(a,Wd[Nf],Vd[Of]));
|
|
25
|
+
var Ne={startTime:0,variants:ch,textStreams:dh,thumbStreams:[]}}{var db=Sa.streams;let sa=a.a.startTime,lb=a.a.delay;const Na=a.I;let eb=Math.min(a.a.duration||Infinity,Na);const pc=a.C(),ch=a.a.Dd,Vd=a.a.Kc,Wd=a.H,dh=isFinite(a.F)?a.F:0;if(pc)eb=Infinity,sa=Date.now()/1E3-Vd,a.a.startTime=sa,lb=3*Wd;else{const Nf=isFinite(Na)?Na:a.a.duration;for(const Of of db)for(const $k of Of.tracks)$k.segmentIndex.offset(-dh),_.qw($k.segmentIndex,Nf)}a.B=new _.fB(sa,lb,!pc,!0);a.B.f=eb;_.yw(a.B,Wd);a.B.w=ch;
|
|
26
|
+
pc||a.B.offset(-dh)}a.D.filterAllPeriods([Ne]);a.g={presentationTimeline:a.B,periods:[Ne],offlineSessionIds:[],minBufferTime:0};Promise.resolve();a.K||(a.D.networkingEngine.zc(a.M),a.K=!0);a.w=Sa;return Promise.resolve()},QJ=function(a,b){null!=a.A&&null!=b&&(a.j=window.setTimeout(a.yb.bind(a),b))},IJ=function(a,b,c){if(b=b.getAttribute(c))return b;a.h.error("required attribute not provided: "+c);throw new _.H(_.G,4,4038,a.l,c);},JJ=function(a,b){const c=b===LJ;if(a.g&&a.g.presentationTimeline){var d=
|
|
27
|
+
a.g.presentationTimeline;d.j=c;d.l=c}c&&null!=a.j&&(window.clearTimeout(a.j),a.j=null,a.A=null);a.R=b},MJ=function(a,b){for(let e=0;e<a.w.streams.length;e++){const f=b.streams[e];for(const g of a.w.streams[e].tracks){var c=f.tracks.find(h=>h.type===g.type&&h.bitrate===g.bitrate);if(c){uI(g,c)||a.h.warn("The current stream is updated with a stream that seems to have different base properties!");var d=RJ(a,a.w.timescale,f,c);c=g.segmentIndex;_.Hw(c,d);(d=a.a.Dd)&&_.Iw(c,_.Fw(c)-d).forEach(h=>{h.Ja().forEach(k=>
|
|
28
|
+
{a.G.delete(k)})})}else a.h.warn(`Cannot find satisfying update for ${g.type} `+`track with bitrate ${g.bitrate}. Skipping update.`)}}},RJ=function(a,b,c,d){let e=0;const f=[],g=c.timescale||b;c.Ie.forEach((h,k)=>{const l=h.d/g;0===k?(h=h.t/g,a.F=Math.min(a.F,h)):h=f[k-1].endTime;const m=h+l,n=tI(a.l,c,k,d);a.H=Math.max(a.H,l);f.push(new _.Gw(k,h,m,()=>[n],0,null,0,null,!0,g));a.G.set(n,h);e+=l});if(c.type===_.w||c.type===_.p)b=f[f.length-1],a.I=Math.min(a.I,e),0===a.a.Kc?a.a.Kc=b.endTime:a.a.Kc=
|
|
29
|
+
Math.min(a.a.Kc,b.endTime);return f},NJ=function(a,b,c,d){let e=[];for(let f=0;f<d.length;f++){const g=d[f].tracks.map(h=>{{var k=d[f],l=RJ(a,c,k,h);const N=new _.gB(l);var m=null;k.type!==_.t&&(m=SJ(a,b,c,k,h));h.segmentIndex=N;l=a.N++;var n=Promise.resolve.bind(Promise),q=N.f.bind(N),u=N.get.bind(N),v=N.g.bind(N),y=N.getDuration.bind(N),A=TJ[k.type];var D="";switch(k.type){case _.w:D=h.Zc;var E=/00000001[0-9]7/.exec(D);D="avc1."+(E&&E[0]?D.substr(D.indexOf(E[0])+10,6):"42c00c");a.h.debug("VIDEO CODECS: ",
|
|
30
|
+
D);break;case _.p:D=h.Zc,E=2,"AACH"===h.Tf?E=5:D&&(E=(parseInt(D.substr(0,2),16)&248)>>3),D="mp4a.40."+E,a.h.debug("AUDIO CODECS: ",D)}E=k.type===_.t?UJ[k.Jg]:void 0;h={id:l,originalId:null,jh:null,createSegmentIndex:n,findSegmentPosition:q,getSegmentReference:u,adjustSegmentDurations:v,getDuration:y,segmentIndex:N,segmentLookupStrategy:_.rv,initSegmentReference:m,mimeType:A,codecs:D,frameRate:void 0,bandwidth:h.bitrate,width:h.maxWidth||void 0,height:h.maxHeight||void 0,kind:E,encrypted:a.J(),keyId:null,
|
|
31
|
+
language:k.language,originalLanguage:k.Jc,label:k.name,type:k.type,primary:!1,trickModeVideo:null,emsgSchemeIdUris:null,roles:[],channelsCount:h.Be||null,closedCaptions:null}}return h});e=e.concat(g)}return e},OJ=function(a,b,c){const d=(c?c.bandwidth:0)+(b?b.bandwidth:0),e=c?c.language:_.Ve;return c||b?{id:a.N++,language:e,primary:!1,audio:c,video:b,bandwidth:d,drmInfos:a.o,allowedByApplication:!0,allowedByKeySystem:!0}:null},SJ=function(a,b,c,d,e){b=vI(b,d.timescale||c,e);c={isLive:a.C.bind(a),
|
|
32
|
+
ld:a.J.bind(a),Zf:()=>1,ed:a.S.bind(a)};d=new Uint8Array(0);try{d=oJ(b,c)}catch(g){throw a.h.error("Failed to generate initialization segment."),new _.H(_.G,3,4035,g);}const f="data:text/plain;base64,"+_.vh(d);return new _.cB(()=>[f],0,null,null,!0)},GI=class{constructor(a){this.type=a;this.size=this.start=0;this.parent=null;this.A=!1;this.entries=[];this.f=[]}append(a=[]){for(let b=0;b<a.length;b++)this.f.push(a[b]),a[b].parent=this;return this}get(a){if(this.type===a)return this;for(let b=0;b<this.f.length;b++){if(this.f[b].type===
|
|
33
|
+
a)return this.f[b];{const c=this.f[b].get(a);if(c)return c}}return null}a(){const a=Math.pow(2,32)-1;let b;b=4+this.type.length;"uuid"===this.type&&(b+=16);if(0<this.f.length)for(let c=0;c<this.f.length;c++)b+=this.f[c].a();this.size>a&&(b+=8);return b}write(a){var b=Math.pow(2,32)-1;this.start=a.getPosition();this.size=this.a();this.size>b?_.O(a,1):_.O(a,this.size);_.bk(a,rI(this.type));this.size>b&&lI(a,this.size);"uuid"===this.type&&_.bk(a,null);if(0<this.f.length&&!this.A)for(b=0;b<this.f.length;b++)this.f[b].write(a),
|
|
34
|
+
this.f[b].a(),a.getPosition()}},VJ=class extends GI{constructor(a,b,c){super(a);this.version=b;this.flags=c}a(){return 4+super.a()}write(a){super.write(a);mI(a,this.version);nI(a,this.flags)}},mJ=class extends GI{constructor(a,b,c){super(a);this.g=b;this.offset=c}a(){return this.g.byteLength+super.a()-this.offset}write(a){super.write(a);_.bk(a,this.g,this.offset);a.getPosition()}},sJ=class extends VJ{constructor(a,b,c,d,e){super(a,b,c);this.g=d;this.offset=e}a(){return this.g.byteLength+super.a()-
|
|
35
|
+
this.offset}write(a){super.write(a);_.bk(a,this.g,this.offset);a.getPosition()}},lJ=class extends GI{constructor(a,b,c){super("ftyp");this.j=a;this.Te=b;this.g=c}a(){let a=this.j.length;a=a+4+this.g.join("").length;return a+super.a()}write(a){super.write(a);_.bk(a,rI(this.j));_.O(a,this.Te);_.bk(a,rI(this.g.join("")));a.getPosition()}},kJ=class extends GI{constructor(){super(_.Jd)}},jJ=class extends GI{constructor(){super(_.Te)}},NI=class extends VJ{constructor(a,b,c){super("mvhd",1,0);this.timescale=
|
|
36
|
+
a;this.duration=b;this.volume=256;this.j=c+1;this.g=[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0]}a(){let a=0;a=1===this.version?a+28:a+16;a=a+44+this.g.length;return a+=super.a()}write(a){super.write(a);1===this.version?(lI(a,0),lI(a,0),_.O(a,this.timescale),lI(a,this.duration*this.timescale)):(_.O(a,0),_.O(a,0),_.O(a,this.timescale),_.O(a,this.duration*this.timescale));_.O(a,65536);oI(a,this.volume);oI(a,0);_.O(a,0);_.O(a,0);for(let b=0;b<this.g.length;b++)mI(a,this.g[b]);
|
|
37
|
+
_.O(a,0);_.O(a,0);_.O(a,0);_.O(a,0);_.O(a,0);_.O(a,0);_.O(a,this.j);a.getPosition()}},OI=class extends GI{constructor(){super("mvex")}},PI=class extends VJ{constructor(a){super("trex",0,0);this.g=a}a(){return 20+super.a()}write(a){super.write(a);_.O(a,this.g);_.O(a,1);_.O(a,0);_.O(a,0);_.O(a,0);a.getPosition()}},QI=class extends VJ{constructor(a,b,c,d,e){super("tkhd",1,7);this.j=a;this.duration=b;this.timescale=c;this.width=d;this.height=e;this.volume=1;this.g=[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
|
|
38
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0]}a(){let a=0;a=1===this.version?a+32:a+20;a=a+24+this.g.length;return a+super.a()}write(a){super.write(a);1===this.version?(lI(a,0),lI(a,0),_.O(a,this.j),_.O(a,0),lI(a,this.duration*this.timescale)):(_.O(a,0),_.O(a,0),_.O(a,this.j),_.O(a,0),_.O(a,this.duration*this.timescale));_.O(a,0);_.O(a,0);oI(a,0);oI(a,0);oI(a,this.volume);oI(a,0);for(let b=0;b<this.g.length;b++)mI(a,this.g[b]);oI(a,this.width);oI(a,0);oI(a,this.height);oI(a,0);a.getPosition()}},RI=class extends VJ{constructor(a,
|
|
39
|
+
b){super("mdhd",1,0);this.timescale=a;this.duration=b;this.language=21956}a(){let a=0;a=1===this.version?a+28:a+16;return a+4+super.a()}write(a){super.write(a);1===this.version?(lI(a,0),lI(a,0),_.O(a,this.timescale),lI(a,this.duration*this.timescale)):(_.O(a,0),_.O(a,0),_.O(a,this.timescale),_.O(a,this.duration*this.timescale));oI(a,this.language);oI(a,0);a.getPosition()}},SI=class extends VJ{constructor(a){super("hdlr",0,0);this.g=a}a(){return 33+super.a()}write(a){super.write(a);_.O(a,0);this.g===
|
|
40
|
+
_.w?_.bk(a,rI("vide")):_.bk(a,rI("soun"));_.O(a,0);_.O(a,0);_.O(a,0);this.g===_.w?_.bk(a,rI("VideoHandler\x00")):_.bk(a,rI("SoundHandler\x00"));a.getPosition()}},YI=class extends VJ{constructor(){super("vmhd",0,1);this.g=new Uint8Array([0,0,0,0,0,0])}a(){return 2+this.g.byteLength+super.a()}write(a){super.write(a);oI(a,0);_.bk(a,this.g);a.getPosition()}},WJ=class extends GI{constructor(a){super(a);this.A=!0}a(){return 8+super.a()}write(a){super.write(a);_.O(a,0);oI(a,0);oI(a,1)}},XJ=class extends WJ{constructor(a){super(a);
|
|
41
|
+
this.height=this.width=0;this.depth=24}a(){return 70+super.a()}write(a){super.write(a);oI(a,0);oI(a,0);_.O(a,0);_.O(a,0);_.O(a,0);oI(a,this.width);oI(a,this.height);_.O(a,4718592);_.O(a,4718592);_.O(a,0);oI(a,1);mI(a,10);_.bk(a,rI("AVC Coding",31));oI(a,this.depth);qI(a,-1)}},YJ=class extends WJ{constructor(a,b,c,d){super(a);this.channelCount=b;this.sampleSize=c;this.sampleRate=d}a(){return 20+super.a()}write(a){super.write(a);_.O(a,0);_.O(a,0);oI(a,this.channelCount);oI(a,this.sampleSize);qI(a,0);
|
|
42
|
+
oI(a,0);oI(a,this.sampleRate);oI(a,0)}},XI=class extends XJ{constructor(a,b){super("avc1");this.width=a;this.height=b}write(a){super.write(a);for(let b=0;b<this.f.length;b++)this.f[b].write(a);a.getPosition()}},HI=class extends XI{constructor(a,b){super(a,b);this.type="encv"}},$I=class extends YJ{constructor(a,b,c){super("mp4a",a,b,c)}write(a){super.write(a);for(let b=0;b<this.f.length;b++)this.f[b].write(a);a.getPosition()}},II=class extends $I{constructor(a,b,c){super(a,b,c);this.type="enca"}},
|
|
43
|
+
WI=class extends GI{constructor(a,b){super("avcC");this.Ma=a;this.Nb=b;this.version=1;this.g=this.Ma[0][1];this.j=this.Ma[0][2];this.level=this.Ma[0][3]}a(){let a=7;for(var b=0;b<this.Ma.length;b++)a+=2,a+=this.Ma[b].byteLength;for(b=0;b<this.Ma.length;b++)a+=2,a+=this.Nb[b].byteLength;return a+super.a()}write(a){super.write(a);mI(a,this.version);mI(a,this.g);mI(a,this.j);mI(a,this.level);mI(a,255);mI(a,224|this.Ma.length);for(var b=0;b<this.Ma.length;b++)oI(a,this.Ma[b].length),_.bk(a,this.Ma[b]);
|
|
44
|
+
mI(a,this.Nb.length);for(b=0;b<this.Nb.length;b++)oI(a,this.Nb[b].length),_.bk(a,this.Nb[b]);a.getPosition()}},ZI=class extends VJ{constructor(a){super("esds",0,0);this.Gb=a}a(){return 22+(this.Gb.byteLength+3)+super.a()}write(a){super.write(a);mI(a,3);mI(a,23+this.Gb.byteLength);oI(a,1);mI(a,0);mI(a,4);mI(a,15+this.Gb.byteLength);mI(a,64);mI(a,21);nI(a,0);_.O(a,0);_.O(a,0);mI(a,5);mI(a,this.Gb.byteLength);_.bk(a,this.Gb);_.bk(a,new Uint8Array([6,1,2]));a.getPosition()}},UI=class extends VJ{constructor(a=
|
|
45
|
+
""){super("url ",0,1);this.location=a}a(){return this.location.length+super.a()}write(a){super.write(a);0<this.location.length&&_.bk(a,rI(this.location));a.getPosition()}},TI=class extends VJ{constructor(){super("dref",0,0)}a(){let a=4;for(let b=0;b<this.entries.length;b++)a+=this.entries[b].a();return a+super.a()}write(a){super.write(a);_.O(a,this.entries.length);for(let b=0;b<this.entries.length;b++)this.entries[b].write(a);a.getPosition()}},bJ=class extends GI{constructor(){super(_.Ie)}},VI=class extends VJ{constructor(){super(_.Ke,
|
|
46
|
+
0,0)}a(){let a=4;for(let b=0;b<this.entries.length;b++)a+=this.entries[b].a();return a+super.a()}write(a){super.write(a);_.O(a,this.entries.length);for(let b=0;b<this.entries.length;b++)this.entries[b].write(a);a.getPosition()}},cJ=class extends VJ{constructor(){super("stts",0,0)}a(){let a=4;for(let b=0;b<this.entries.length;b++)a+=this.entries[b].a();return a+super.a()}write(a){super.write(a);_.O(a,this.entries.length);for(let b=0;b<this.entries.length;b++)this.entries[b].write(a);a.getPosition()}},
|
|
47
|
+
dJ=class extends VJ{constructor(){super("stsc",0,0)}a(){let a=4;for(let b=0;b<this.entries.length;b++)a+=this.entries[b].a();return a+super.a()}write(a){super.write(a);_.O(a,this.entries.length);for(let b=0;b<this.entries.length;b++)this.entries[b].write(a);a.getPosition()}},fJ=class extends VJ{constructor(){super("stco",0,0)}a(){let a=4;for(let b=0;b<this.entries.length;b++)a+=this.entries[b].a();return a+super.a()}write(a){super.write(a);_.O(a,this.entries.length);for(let b=0;b<this.entries.length;b++)this.entries[b].write(a);
|
|
48
|
+
a.getPosition()}},eJ=class extends VJ{constructor(){super("stsz",0,0)}a(){return 8+super.a()}write(a){super.write(a);_.O(a,0);_.O(a,0);a.getPosition()}},aJ=class extends VJ{constructor(){super("smhd",0,0)}a(){return 4+super.a()}write(a){super.write(a);qI(a,0);oI(a,0);a.getPosition()}},gJ=class extends GI{constructor(){super("dinf")}},hJ=class extends GI{constructor(){super(_.Id)}},iJ=class extends GI{constructor(){super(_.Ed)}},AJ=class extends VJ{constructor(a,b){super("tfdt",a,0);this.g=b}a(){let a=
|
|
49
|
+
0;a=1===this.version?a+8:a+4;return a+super.a()}write(a){super.write(a);1===this.version?lI(a,this.g):_.O(a,this.g);a.getPosition()}},pJ=class extends VJ{constructor(){super("mfhd",0,0);this.g=0}a(){return 4+super.a()}write(a){super.write(a);_.O(a,this.g);a.getPosition()}},rJ=class extends VJ{constructor(a,b){super("trun",a,b);this.o=this.l=this.g=0;this.w=[];this.sampleSize=[];this.B=[];this.j=[]}a(){let a=4;this.flags&ZJ&&(a+=4);this.flags&$J&&(a+=4);for(let b=0;b<this.g;b++)this.flags&aK&&(a+=
|
|
50
|
+
4),this.flags&bK&&(a+=4),this.flags&cK&&(a+=4),this.flags&dK&&(a+=4);return a+super.a()}write(a){super.write(a);_.O(a,this.g);this.flags&ZJ&&(a.getPosition(),pI(a,this.l));this.flags&$J&&_.O(a,this.o);for(let b=0;b<this.g;b++)this.flags&aK&&_.O(a,this.w[b]),this.flags&bK&&_.O(a,this.sampleSize[b]),this.flags&cK&&_.O(a,this.B[b]),this.flags&dK&&(0===this.version?_.O(a,this.j[b]):pI(a,this.j[b]));a.getPosition()}},ZJ=1,$J=4,aK=256,bK=512,cK=1024,dK=2048,qJ=class extends VJ{constructor(a,b){super("tfhd",
|
|
51
|
+
a,b);this.g=255;this.o=this.w=this.l=this.B=this.j=0}a(){let a=4;this.flags&eK&&(a+=8);this.flags&fK&&(a+=4);this.flags&gK&&(a+=4);this.flags&hK&&(a+=4);this.flags&iK&&(a+=4);return a+super.a()}write(a){super.write(a);_.O(a,this.g);this.flags&eK&&lI(a,this.j);this.flags&fK&&_.O(a,this.B);this.flags&gK&&_.O(a,this.l);this.flags&hK&&_.O(a,this.w);this.flags&iK&&_.O(a,this.o);a.getPosition()}},eK=1,fK=2,gK=8,hK=16,iK=32,wJ=class extends GI{constructor(){super("traf")}},xJ=class extends GI{constructor(){super("moof")}},
|
|
52
|
+
vJ=class extends GI{constructor(){super(_.Dd);this.g=new Uint8Array(0)}a(){return this.g.byteLength+super.a()}write(a){super.write(a);0<this.g.byteLength&&_.bk(a,this.g)}},JI=class extends VJ{constructor(){super("tenc",0,0);this.g=1;this.j=8;this.o="";this.l=[]}a(){let a;a=20;1===this.g&&0===this.j&&(a=a+1+this.l.length);return a+super.a()}write(a){super.write(a);mI(a,0);0===this.version?mI(a,0):mI(a,0);mI(a,this.g);mI(a,this.j);_.bk(a,_.xh(this.o));if(1===this.g&&0===this.j){mI(a,0);for(let b=0;b<
|
|
53
|
+
this.l.length;b++)mI(a,this.l[b])}a.getPosition()}},LI=class extends VJ{constructor(a,b){super("schm",0,0);this.g=a;this.j=b;this.Ab=""}a(){let a=8;this.flags&1&&(a+=rI(this.Ab).byteLength);return a+super.a()}write(a){super.write(a);_.bk(a,rI(this.g));_.O(a,this.j);this.flags&1&&_.bk(a,rI(this.Ab));a.getPosition()}},KI=class extends GI{constructor(a){super("frma");this.g=a}a(){return rI(this.g).byteLength+super.a()}write(a){super.write(a);_.bk(a,rI(this.g));a.getPosition()}},BJ=class extends VJ{constructor(){super("saio",
|
|
54
|
+
0,0);this.offset=[0]}a(){let a=0;this.flags&1&&(a+=8);a+=4;for(let b=0;1>b;b++)a=0===this.version?a+4:a+8;return a+super.a()}write(a){super.write(a);this.flags&1&&(_.O(a,0),_.O(a,0));_.O(a,1);for(let b=0;1>b;b++)0===this.version?_.O(a,this.offset[b]):lI(a,this.offset[b]);a.getPosition()}},CJ=class extends VJ{constructor(a,b,c){super("saiz",0,0);this.g=a;this.l=b;this.j=c}a(){let a=0;this.flags&1&&(a+=8);a+=5;0===this.g&&(a+=this.l.length);return a+super.a()}write(a){super.write(a);this.flags&1&&(_.O(a,
|
|
55
|
+
0),_.O(a,0));mI(a,this.g);_.O(a,this.j);if(0===this.g)for(let b=0;b<this.j;b++)mI(a,this.l[b]);a.getPosition()}},uJ=class extends VJ{constructor(a,b){super("senc",a,b);this.j=0;this.l=8;this.g=[]}a(){let a=4;this.flags&1&&(a+=1);for(let b=0;b<this.j;b++)if(a+=this.g[b].Qe.byteLength,this.flags&2){a+=2;for(let c=0;c<this.g[b].yc;c++)a+=2,a+=4}return a+super.a()}write(a){super.write(a);_.O(a,this.j);this.flags&1&&mI(a,this.l);for(let b=0;b<this.j;b++)if(_.bk(a,this.g[b].Qe),this.flags&2){oI(a,this.g[b].yc);
|
|
56
|
+
for(let c=0;c<this.g[b].yc;c++)oI(a,this.g[b].me[c].ze),_.O(a,this.g[b].me[c].Ae)}a.getPosition()}};var zJ=class{constructor(a,b,c,d){this.frameRate=Number(a)||30;this.f=Number(b)||1;this.a=Number(d);0==this.a&&(this.a=a?this.frameRate*this.f:1);c&&(a=/^(\d+) (\d+)$/g.exec(c))&&(this.frameRate*=parseInt(a[1],10)/parseInt(a[2],10))}},yI=/^(\d{2,}):(\d{2}):(\d{2}):(\d{2})\.?(\d+)?$/,zI=/^(?:(\d{2,}):)?(\d{2}):(\d{2})$/,AI=/^(?:(\d{2,}):)?(\d{2}):(\d{2}\.\d{2,})$/,BI=/^(\d*\.?\d*)f$/,CI=/^(\d*\.?\d*)t$/,DI=/^(?:(\d*\.?\d*)h)?(?:(\d*\.?\d*)m)?(?:(\d*\.?\d*)s)?(?:(\d*\.?\d*)ms)?$/;var nJ=class{constructor(a){this.a=a;this.f=FI(this)}get(a){for(let b=0;b<this.a.length;b++){const c=this.a[b].get(a);if(c)return c}return null}write(){this.f=FI(this);for(let a=0;a<this.a.length;a++)this.a[a].write(this.f);return this.f.buffer}};var tJ=new Uint8Array([162,57,79,82,90,155,79,20,162,68,108,66,124,100,141,244]);var jK=class{constructor(){this.w=this.g=this.f=this.D=null;this.N=1;this.W=0;this.l="";this.B=this.a=null;this.h=new _.R("clpp.smooth.SmoothParser");this.K=!1;this.j=this.A=null;this.R=LJ;this.H=0;this.F=this.I=Infinity;this.o=[];this.M=this.V.bind(this);this.G=new Map}configure(a){this.f=a}start(a,b){this.D=b;a=[...new Set([a,sI(a)])];return HJ(this,a).then(c=>PJ(this,c.data).then(()=>{QJ(this,this.A);return this.g}))}stop(){this.D&&this.D.networkingEngine.qd(this.M);this.A=this.w=this.g=this.f=
|
|
57
|
+
this.D=null;this.j&&(clearTimeout(this.j),this.j=null);this.K=!1;this.I=this.F=Infinity;return Promise.resolve()}update(){if(this.C())return HJ(this,[this.l]).then(a=>PJ(this,a.data).then(()=>this.g)).catch(a=>{if(this.D)this.D.onError(a)})}onExpirationUpdated(){}setCurrentVariant(){}yb(){this.h.debug(_.iv);this.D&&(this.j=null,this.update().then(()=>{QJ(this,this.A)}).catch(a=>{this.D&&(this.D.onError(a),1===a.severity&&QJ(this,100))}))}C(){return this.R===KJ}J(){return 0<this.o.length}S(a){let b=
|
|
58
|
+
null;if(this.o.length)for(let c=0;c<this.o.length;c++)if(this.o[c].keySystem===a){b=this.o[c].initData[0];break}return b}V(a){if(2!==a.request.type||a.uri.startsWith("data:"))return Promise.resolve(a);const b=a.request.timescale||this.w.timescale,c={isLive:this.C.bind(this),ld:this.J.bind(this),Zf:()=>1,ed:this.S.bind(this)};let d=!1;const e=new _.H(_.G,3,4035,null);let f=null;try{const g=this.G.get(a.request.uris[a.request.uriIndex])||a.request.startTime||0;g!==a.request.startTime&&this.h.debug(`Using base media decode time ${g} instead of `+
|
|
59
|
+
`segment reference time ${a.request.startTime}`);f=DJ(a,b,g,c)}catch(g){d=!0,e.data=g,3E3===g.code&&(e.code=4039)}if(d||!f)return Promise.reject(e);a.data=f;return Promise.resolve(a)}},TJ={video:_.ff,audio:_.jc,text:_.dc},LJ=_.jv,KJ="LIVE",UJ={Rg:_.ov,Tg:_.Cv};_.z("clpp.smooth.SmoothComponent",class extends _.Pq{f(){_.Lo.ism=jK;_.Jo[_.ec]=jK}a(){_.Nw("ism");_.Ow(_.ec)}id(){return"smooth"}});};f.call(g, window);
|
package/cl.thumbnails.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var
|
|
2
|
-
c,d))},
|
|
3
|
-
1;0<=c;c--)b+=a[c]*d[c];return b},
|
|
4
|
-
a.path.match(/.*\.(png|jpg|jpeg)$/i)?"SINGLE":null};var
|
|
5
|
-
c+_.
|
|
6
|
-
(this.width=(this.ka.naturalWidth||this.ka.width)/this.
|
|
7
|
-
d);this.ka.src=this.src}}));return this.
|
|
8
|
-
0<f);if(2===e.length)this.
|
|
9
|
-
var a=this.
|
|
10
|
-
d[l]),k+=1;for(let l=0,m=e.byteLength;l<m;l++)h.setUint8(k,e[l]),k+=1;this.f=g;this.
|
|
11
|
-
this.a[g-1],g.length=f.offset-g.offset,g.duration=f.time-g.time;this.a.push(f);e+=8;(h=4294967295===h)&&this.
|
|
12
|
-
+ 'URL: ${c}`,d);a.onError(new _.H(1,7,2013,"Error while loading and parsing BIF thumbnails.",d))})}get(a){return 0>a?Promise.reject(
|
|
13
|
-
c.substr(0,c.lastIndexOf("/"))+"/"+f);l=
|
|
14
|
-
a),Promise.reject();var d=c.getSegmentReference(b);if(d){const e=
|
|
15
|
-
b);return Promise.reject()}f(a,b){return void 0!==a.bandwidth&&void 0!==b.bandwidth?a.bandwidth-b.bandwidth:0}
|
|
16
|
-
e.
|
|
17
|
-
this.a.init(a,c)})))}else this.a=null}onContentLoaded(a){if(!this.a){var b=a.getConfiguration();b=b&&b.thumbnails;if(!b||void 0===b.enabled||b.enabled){var c=a.getPeriods();
|
|
1
|
+
import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var Rt="No thumbnail duration or URL specified",St="No thumbnail found for position ",Tt="Position is out of range: ",Ut="Thumbnail URL is mandatory",Vt="Wrong gridSize format",Wt="clpp.thumbnails",Yt=function(a,b){b.reduce((c,d)=>{let e=d,f=!1;typeof d===_.Od&&(e=d.step,f=d.preloadWhileBuffering);return c.then(()=>Xt(a,0,e,!!f))},Promise.resolve())},Xt=function(a,b,c,d){if(a.w||b>=a.a.length)return Promise.resolve();const e=b+c;return Zt(a,d).then(()=>a.a[b].load()).then(()=>Xt(a,e,
|
|
2
|
+
c,d))},Zt=function(a,b){return new Promise(c=>{if(b||a.player.getState()!==_.vm)c();else a.player.one(_.oc,()=>{c()})})},$t=function(a){const b=a.f.byteLength;a.a.forEach(c=>{c.offset+c.length<b&&c.Se.resolve()})},cu=function(a,b){return au(a,b).then(c=>new bu(c,b.time,b.duration))},au=function(a,b){return b.load().then(()=>{const c=_.J(a.f,b.offset,b.length);return"data:image/jpeg;base64,"+_.uh(c)})},du=function(a){a=a.split(/\.|:/).map(parseFloat);let b=0,c;const d={3:.001,2:1,1:60,0:3600};for(c=
|
|
3
|
+
a.length-1;0<=c;c--)b+=a[c]*d[c];return b},eu=function(a,b){let c=null;for(const d of a)d.startTime<=b&&(c=d);return c},fu=function(a,b){const c=a.horizontalTiles||b.horizontalTiles||1,d=a.verticalTiles||b.verticalTiles||1,e=c*d;return{Hc:c,se:d,Pe:e,durationPerTile:a.durationPerTile||b.durationPerTile||(a.endTime-a.startTime)/e}},gu=function(a){return a.some(b=>0<b.thumbStreams.length)},hu=function(a){if(!a)return null;a=new _.rk(a);return a.path.match(/.*\.vtt$/i)?"WEBVTT":a.path.match(/.*\.bif$/i)?
|
|
4
|
+
"BIF":a.path.match(/.*\.(png|jpg|jpeg)$/i)?"SINGLE":null};var iu=class{constructor(){this.log=new _.R(Wt);this.player=null;this.a=[];this.w=!1}init(a,b){this.player=a;a.one(_.ve,()=>{this.w=!0});a.isLive()||this.l().then(()=>{b&&b.preload&&Yt(this,b.preload)})}};var bu=class{constructor(a,b,c,d=0,e=0,f=0,g=0,h=1,k=1,l=0,m=0,n=new Image){this.time=b;this.src=a;this.duration=c;this.x=d;this.y=e;this.width=f;this.height=g;this.ka=n;this.Jf=h;this.Cg=k;this.dg=l;this.eg=m;this.ma=null}raw(){return this.ka.cloneNode(!1)}element(a,b){let c=this.width,d=this.height;const e=this.width/this.height;void 0!==a&&void 0===b&&(b=0);null!==a&&void 0!==a&&(c=a);null!==b&&void 0!==b&&(d=b);c||(c=Math.ceil(d*e));d||(d=Math.ceil(c/e));a=document.createElement(_.Yc);a.style.width=
|
|
5
|
+
c+_.se;a.style.height=d+_.se;a.style.backgroundColor="#000";a.style.backgroundRepeat="no-repeat";a.style.backgroundImage=`url("${this.src}")`;a.style.backgroundSize=`${Math.ceil(c/this.width*(this.ka.naturalWidth||this.ka.width))}px ${Math.ceil(d/this.height*(this.ka.naturalHeight||this.ka.height))}px`;b=this.y/this.height;a.style.backgroundPositionX="-"+this.x/this.width*c+_.se;a.style.backgroundPositionY="-"+b*d+_.se;return a}load(){this.ma||(this.ma=new Promise((a,b)=>{const c=()=>{this.width||
|
|
6
|
+
(this.width=(this.ka.naturalWidth||this.ka.width)/this.Jf);this.height||(this.height=(this.ka.naturalHeight||this.ka.height)/this.Cg);this.x||(this.x=this.width*this.dg);this.y||(this.y=this.height*this.eg)};if(this.ka.src&&this.ka.complete)c(),a(this);else{var d=null,e=()=>{c();this.ka.removeEventListener("load",e);this.ka.removeEventListener(_.ld,d);a(this)};d=()=>{this.ka.removeEventListener("load",e);this.ka.removeEventListener(_.ld,d);b()};this.ka.addEventListener("load",e);this.ka.addEventListener(_.ld,
|
|
7
|
+
d);this.ka.src=this.src}}));return this.ma}};_.z("clpp.thumbnails.Thumbnail",bu);bu.prototype.load=bu.prototype.load;bu.prototype.element=bu.prototype.element;bu.prototype.raw=bu.prototype.raw;var ju=class extends iu{constructor(){super();this.f=null;this.o=this.g=1;this.j=0}init(a,b){if(!b||!b.url)throw new _.H(_.G,7,7100,Ut);if("GRID"===b.mode&&!b.gridSize)throw new _.H(_.G,7,7100,"Grid size is mandatory for GRID mode");if(!b.duration)throw new _.H(_.G,7,7100,"Duration is mandatory");this.f=b;const c=this.f.duration,d=this.f.url;if(!c||!d)throw this.log.error(Rt,c,d),new _.H(_.G,7,7100,Rt);this.j=c;if(this.f.gridSize)try{const e=this.f.gridSize.split(/x/).map(f=>parseInt(f,10)).filter(f=>
|
|
8
|
+
0<f);if(2===e.length)this.g=e[0],this.o=e[1];else throw new _.H(_.G,7,7100,Vt);}catch(e){throw this.log.error("Error during parsing gridSize",e),new _.H(_.G,7,7100,Vt);}super.init(a,b)}get(a){const b=this.player.getDuration();if(void 0===this.f.duration)return Promise.reject("Duration configuration not defined");const c=Math.floor(a/this.f.duration);if(0>a||a>b)return Promise.reject(Tt+a);const d=this.a[c];return d?d.load().then(()=>d):Promise.reject(St+a+" at index "+c)}l(){if(0<this.a.length)return Promise.resolve();
|
|
9
|
+
var a=this.player.getDuration();const b=this.g*this.o;a=Math.ceil(Math.ceil(a/this.j)/b);const c=this.f.templateKey||"$index$";for(let d=0;d<a;d++){const e=this.f.url.replace(c,String(d+1)),f=new Image;for(let g=0;g<b;g++)this.a.push(new bu(e,this.j*(d*b+g),this.j,0,0,0,0,this.g,this.o,g%this.g,Math.floor(g/this.g),f))}return Promise.resolve()}};var ku=class{constructor(a,b){this.time=a;this.duration=0;this.offset=b;this.length=0;this.Se=new _.Jl}load(){return this.Se}},mu=class{constructor(){this.h=new _.R(Wt);this.f=new ArrayBuffer(0);this.a=[];this.g=new _.Jl}init(a,b){if(!b||!b.url)throw new _.H(_.G,7,7100,Ut);const c=b.url;b=_.Kh(c);b.type=_.Jh;a.getNetworkEngine().fetch(b).P.then(d=>{{var e=d.data;d=_.J(this.f);e=_.J(e);const f=d.byteLength+e.byteLength,g=new ArrayBuffer(f),h=new DataView(g);let k=0;for(let l=0,m=d.byteLength;l<m;l++)h.setUint8(k,
|
|
10
|
+
d[l]),k+=1;for(let l=0,m=e.byteLength;l<m;l++)h.setUint8(k,e[l]),k+=1;this.f=g;this.h.info(`Appended ${e.byteLength} bytes.`+`Total data now ${f} bytes.`)}}).then(()=>{{var d=this.f,e=_.J(d),f=String.fromCharCode.apply(null,lu),g=Array.prototype.slice.call(e,0,8);e=64;let k=0;var h=!1;if(f===String.fromCharCode.apply(null,g))for(d=new DataView(d,16,20),d=d.getUint32(0,!0),0===d&&(d=1E3);!h;){k+=1;g=d;f=new DataView(this.f,e);h=f.getUint32(0,!0);g=h*g/1E3;f=f.getUint32(4,!0);f=new ku(g,f);if(g=this.a.length)g=
|
|
11
|
+
this.a[g-1],g.length=f.offset-g.offset,g.duration=f.time-g.time;this.a.push(f);e+=8;(h=4294967295===h)&&this.g.resolve();if(1E5<k)throw Error("There was a problem during reading BIF entries");}else throw Error("The file is not a valid BIF format");}}).then(()=>{$t(this)}).catch(d=>{this.h.error(`[BIF] Error while loading thumbnails '
|
|
12
|
+
+ 'URL: ${c}`,d);a.onError(new _.H(1,7,2013,"Error while loading and parsing BIF thumbnails.",d))})}get(a){return 0>a?Promise.reject(Tt+a):this.g.then(()=>{for(let b=0;b<this.a.length;b++){const c=this.a[b];if(a>=c.time&&a<c.time+c.duration)return cu(this,c).then(d=>d.load().then(()=>d))}return Promise.reject(St+a)})}},lu=[137,66,73,70,13,10,26,10];var nu=class extends iu{constructor(){super();this.f=null}init(a,b){if(!b||!b.url)throw new _.H(_.G,7,7100,Ut);const c=b.url,d=_.Kh(c);d.type=_.Jh;this.f=a.getNetworkEngine().fetch(d).P.then(e=>{if(e=e.data){e=_.gh(e).split(/\n/);for(let m=0;m<e.length;m++){var f=e[m],g=f.split(" --\x3e ");if(2===g.length){f=e[++m];var h=f.indexOf("\x3d");var k=h=0>h?[]:f.substr(h+1).split(/,/).map(parseFloat);h=k[0];const n=k[1],q=k[2];k=k[3];var l=f.indexOf("#");f=0>l?f:f.substr(0,l);f.match(/^http|^\/\//)||(f=
|
|
13
|
+
c.substr(0,c.lastIndexOf("/"))+"/"+f);l=du(g[0]);g=du(g[1])-l;this.a.push(new bu(f,l,g,h,n,q,k,0,0))}}}}).catch(e=>{this.log.error("[VTT] Error while loading thumbnails "+`URL: ${c}`,e);a.onError(new _.H(1,7,2013,"Error while loading VTT thumbnails.",e))});super.init(a,b)}get(a){return 0>a?Promise.reject(Tt+a):this.f.then(()=>{for(let b=0;b<this.a.length;b++){const c=this.a[b];if(a>=c.time&&a<c.time+c.duration)return c.load().then(()=>c)}return Promise.reject(St+a)})}l(){return this.f}};var ou=class extends iu{get(a){if(0>a)return this.log.error("Position must be greater than 0 but is "+a),Promise.reject();var b=this.player.getPeriods();b=eu(b,a);if(!b)return this.log.error("Could not find period for specified position",a),Promise.reject();var c=b.thumbStreams.sort(this.f)[0];if(!c)return this.log.error("Could not find thumb stream for specified position",a),Promise.reject();b=c.findSegmentPosition(a-b.startTime);if(null===b||void 0===b)return this.log.error("Could not find segment index for specified position",
|
|
14
|
+
a),Promise.reject();var d=c.getSegmentReference(b);if(d){const e=fu(d,c);a=Math.floor((a-d.startTime)/e.durationPerTile);let f;if(0<this.a.length)d=c.findSegmentPosition(0),null!==d&&(f=this.a[(b-d)*e.Pe+a]);else if((c=d.Ja())&&0<c.length){let g=0,h=0;d=d.startTime;1<e.Pe&&(g=a%e.Hc,h=Math.floor(a/e.Hc),d+=a*e.durationPerTile);f=new bu(c[0],d,e.durationPerTile,void 0,void 0,void 0,void 0,e.Hc,e.se,g,h)}if(f)return f.load().then(()=>f)}this.log.error("segment reference for specified segment index does not exist",
|
|
15
|
+
b);return Promise.reject()}f(a,b){return void 0!==a.bandwidth&&void 0!==b.bandwidth?a.bandwidth-b.bandwidth:0}l(){if(0<this.a.length)return Promise.resolve();var a=this.player.getPeriods();for(const b of a)if(a=b.thumbStreams.sort(this.f)[0]){let c=a.findSegmentPosition(0),d;for(;null!==c&&!_.B(d=a.getSegmentReference(c++));){const e=fu(d,a),f=d.Ja()[0],g=new Image;let h=d.startTime;for(let k=0;k<e.se;++k)for(let l=0;l<e.Hc;++l)this.a.push(new bu(f,h,e.durationPerTile,void 0,void 0,void 0,void 0,
|
|
16
|
+
e.Hc,e.se,l,k,g)),h+=e.durationPerTile}}return Promise.resolve()}};var pu=class{constructor(){this.h=new _.R(Wt);this.a=this.m=null}onPlayerCreated(a){this.m=a}onPlayerWillDestroy(){this.m=null}onPlayerWillRelease(){this.a=null}onContentWillLoad(a){var b=a.getConfiguration();if(b.thumbnails){var c=b.thumbnails;c&&(void 0===c.enabled||c.enabled)&&((b=c.mode)||(b=hu(c.url||null)),b&&("SINGLE"===b||"GRID"===b?this.a=new ju:"WEBVTT"===b?this.a=new nu:"BIF"===b&&(this.a=new mu)),this.a&&(this.h.info("Loading thumbs configuration",c),this.m.one(_.Bd,()=>{this.h.info("Initialize thumbnails provider");
|
|
17
|
+
this.a.init(a,c)})))}else this.a=null}onContentLoaded(a){if(!this.a){var b=a.getConfiguration();b=b&&b.thumbnails;if(!b||void 0===b.enabled||b.enabled){var c=a.getPeriods();gu(c)&&(this.a=new ou,this.a.init(a,b))}}}get(a){return this.a?this.a.get(a):Promise.reject()}id(){return"thumbnails"}};_.z("clpp.thumbnails.ThumbnailsPlugin",pu);pu.prototype.get=pu.prototype.get;pu.Id="thumbnails";_.En(new class{create(){return new pu}});};f.call(g, window);
|