@castlabs/prestoplay 6.12.0 → 6.14.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 +54 -0
- package/cjs/cl.adobe.js +3 -3
- package/cjs/cl.airplay.js +3 -3
- package/cjs/cl.broadpeak.js +7 -6
- package/cjs/cl.cast.js +110 -110
- package/cjs/cl.conviva.js +33 -33
- package/cjs/cl.core.js +518 -517
- package/cjs/cl.crypto.js +9 -9
- package/cjs/cl.dash.js +72 -72
- package/cjs/cl.externs.js +63 -52
- package/cjs/cl.freewheel.js +24 -24
- package/cjs/cl.hls.js +68 -67
- package/cjs/cl.hlssmpte.js +6 -6
- package/cjs/cl.htmlcue.js +30 -30
- package/cjs/cl.ima.js +22 -22
- package/cjs/cl.mse.js +275 -272
- package/cjs/cl.muxdata.js +15 -14
- package/cjs/cl.onboard.js +3 -3
- package/cjs/cl.persistent.js +13 -13
- package/cjs/cl.playlist.js +6 -6
- package/cjs/cl.simid.js +15 -15
- package/cjs/cl.smooth.js +71 -71
- package/cjs/cl.thumbnails.js +26 -24
- package/cjs/cl.tizen.js +69 -69
- package/cjs/cl.ttml.js +28 -28
- 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 +18 -18
- package/cjs/polyfill.min.js +26 -23
- package/cl.adobe.js +3 -3
- package/cl.airplay.js +3 -3
- package/cl.broadpeak.js +5 -5
- package/cl.cast.js +87 -87
- package/cl.conviva.js +27 -27
- package/cl.core.js +428 -425
- package/cl.crypto.js +9 -9
- package/cl.dash.js +67 -67
- package/cl.externs.js +63 -52
- package/cl.freewheel.js +19 -19
- package/cl.hls.js +69 -69
- package/cl.hlssmpte.js +5 -5
- package/cl.htmlcue.js +26 -26
- package/cl.ima.js +17 -17
- package/cl.mse.js +243 -241
- package/cl.muxdata.js +13 -12
- package/cl.onboard.js +4 -4
- package/cl.persistent.js +10 -10
- package/cl.playlist.js +5 -5
- package/cl.simid.js +13 -13
- package/cl.smooth.js +59 -59
- package/cl.thumbnails.js +19 -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 +15 -15
- package/cl.vtt.js +12 -12
- package/cl.youbora.js +15 -15
- package/package.json +4 -4
- package/typings.d.ts +135 -30
package/cl.vr.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var
|
|
2
|
-
b=b.a;const f=c.x,g=c.y;c=c.a;a.x=e*c-b*g;a.y=b*f-d*c;a.a=d*g-e*f;return a},
|
|
3
|
-
new
|
|
4
|
-
a.a.getShaderInfoLog(b));return b},
|
|
5
|
-
a.attachShader(this.f,this.l);a.attachShader(this.f,this.j);a.bindAttribLocation(this.f,0,"aPosition");a.bindAttribLocation(this.f,1,"aTexCoord");a.linkProgram(this.f);if(!a.getProgramParameter(this.f,a.LINK_STATUS))throw new _.H(1,9,9004,"Unable to initialize shader");a.useProgram(this.f);this.
|
|
6
|
-
4]),f=5*(129*d+c+1),e.push(b[f],b[f+1],b[f+2],b[f+3],b[f+4]),f=5*(129*(d+1)+c),e.push(b[f],b[f+1],b[f+2],b[f+3],b[f+4]),f=5*(129*(d+1)+c),e.push(b[f],b[f+1],b[f+2],b[f+3],b[f+4]),f=5*(129*d+c+1),e.push(b[f],b[f+1],b[f+2],b[f+3],b[f+4]),f=5*(129*(d+1)+c+1),e.push(b[f],b[f+1],b[f+2],b[f+3],b[f+4]);this.
|
|
7
|
-
b;a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=2E3/-1999.9;a[11]=200/-1999.9;a[12]=0;a[13]=0;a[14]=-1;a[15]=1}}};this.l=this.j=0;this.
|
|
8
|
-
if(void 0!==d&&_.
|
|
9
|
-
|
|
10
|
-
this.w&&cancelAnimationFrame(this.w);this.
|
|
11
|
-
var b=this.f;this.o||a.readyState!==a.HAVE_ENOUGH_DATA||(this.o=new
|
|
12
|
-
c[8];c[8]=d;d=c[6];c[6]=c[9];c[9]=d;d=c[3];c[3]=c[12];c[12]=d;d=c[7];c[7]=c[13];c[13]=d;d=c[11];c[11]=c[14];c[14]=d}b.uniformMatrix4fv(this.C.
|
|
13
|
-
0,a.
|
|
14
|
-
this.B,!1)}
|
|
15
|
-
_.z("clpp.vr.VrPlugin"
|
|
1
|
+
import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var Mt="touchmove",Nt="touchstart",Pt=function(a,b,c){c*=.5;const d=Math.sqrt(a*a+b*b),e=Math.sin(c);return new Ot(a/d*e,b/d*e,0/d*e,Math.cos(c))},Qt=function(a,b){const c=a.x,d=a.y,e=a.a;a=a.f;b.set(1-2*(d*d+e*e),2*(c*d-e*a),2*(c*e+d*a),0,2*(c*d+e*a),1-2*(c*c+e*e),2*(d*e-c*a),0,2*(c*e-d*a),2*(d*e+c*a),1-2*(c*c+d*d),0,0,0,0,1)},Rt=function(a,b){isFinite(b)?(a.x*=b,a.y*=b,a.a*=b):(a.x=0,a.y=0,a.a=0)},St=function(a,b){return a.x*b.x+a.y*b.y+a.a*b.a},Tt=function(a,b,c){const d=b.x,e=b.y;
|
|
2
|
+
b=b.a;const f=c.x,g=c.y;c=c.a;a.x=e*c-b*g;a.y=b*f-d*c;a.a=d*g-e*f;return a},Ut=function(a,b,c){b=b.a;c=c.a;const d=a.a;let e=0;do d[4*e]=b[4*e]*c[0]+b[4*e+1]*c[4]+b[4*e+2]*c[8]+b[4*e+3]*c[12],d[4*e+1]=b[4*e]*c[1]+b[4*e+1]*c[5]+b[4*e+2]*c[9]+b[4*e+3]*c[13],d[4*e+2]=b[4*e]*c[2]+b[4*e+1]*c[6]+b[4*e+2]*c[10]+b[4*e+3]*c[14],d[4*e+3]=b[4*e]*c[3]+b[4*e+1]*c[7]+b[4*e+2]*c[11]+b[4*e+3]*c[15];while(4>++e);return a},Wt=function(a){var b=new Vt(0,0,0),c=new Vt(0,0,1);const d=new Vt,e=new Vt,f=new Vt;a=a.a;var g=
|
|
3
|
+
new Vt(0,1,0);f.x=b.x-g.x;f.y=b.y-g.y;f.a=b.a-g.a;g=f.length();Rt(f,1/g);c=Tt(d,c,f);g=c.length();Rt(c,1/g);Tt(e,f,d);a[0]=d.x;a[1]=d.y;a[2]=d.a;a[3]=-St(d,b);a[4]=e.x;a[5]=e.y;a[6]=e.a;a[7]=-St(e,b);a[8]=f.x;a[9]=f.y;a[10]=f.a;a[11]=-St(f,b);a[12]=0;a[13]=0;a[14]=0;a[15]=1},Xt=function(a,b,c){b=a.a.createShader(b?a.a.FRAGMENT_SHADER:a.a.VERTEX_SHADER);a.a.shaderSource(b,c);a.a.compileShader(b);if(!a.a.getShaderParameter(b,a.a.COMPILE_STATUS))throw new _.H(1,9,9004,"Unable to compile GL shader: "+
|
|
4
|
+
a.a.getShaderInfoLog(b));return b},Yt=function(a){a.a&&(a.a.removeEventListener("mousemove",a.A,!1),a.a.removeEventListener(Mt,a.A,!1),a.a.removeEventListener("mouseup",a.B,!1),a.a.removeEventListener("touchend",a.B,!1))},Zt=function(a){const b=Pt(1,0,a.l*Math.PI/180);Qt(Pt(0,1,a.j*Math.PI/180),a.R);Qt(b,a.T);Wt(a.aa);Ut(a.ba,a.R,a.aa);Ut(a.G,a.T,a.ba)},Ot=class{constructor(a,b,c,d){this.x=a||0;this.y=b||0;this.a=c||0;this.f=d||1}};var Vt=class{constructor(a,b,c){this.x=a||0;this.y=b||0;this.a=c||0}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.a*this.a)}};var $t=class{constructor(){this.a=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}set(a,b,c,d,e,f,g,h,k,l,m,n,q,t,v,y){const A=this.a;A[0]=a;A[4]=b;A[8]=c;A[12]=d;A[1]=e;A[5]=f;A[9]=g;A[13]=h;A[2]=k;A[6]=l;A[10]=m;A[14]=n;A[3]=q;A[7]=t;A[11]=v;A[15]=y;return this}};var au=class{constructor(a){this.a=a;this.f=a.createProgram();this.l=Xt(this,!1,"uniform highp mat4 Mvpm;\nattribute highp vec4 aPosition;\nattribute highp vec2 aTexCoord;\nvarying highp vec2 oTexCoord;\nvoid main()\n{\n gl_Position \x3d Mvpm * aPosition;\n oTexCoord \x3d aTexCoord;\n}\n");this.j=Xt(this,!0,"precision highp float;\nuniform sampler2D Texture0;\nvarying highp vec2 oTexCoord;\nvoid main()\n{\n gl_FragColor \x3d texture2D(Texture0, oTexCoord);\n gl_FragColor.w \x3d 1.0;\n}\n");
|
|
5
|
+
a.attachShader(this.f,this.l);a.attachShader(this.f,this.j);a.bindAttribLocation(this.f,0,"aPosition");a.bindAttribLocation(this.f,1,"aTexCoord");a.linkProgram(this.f);if(!a.getProgramParameter(this.f,a.LINK_STATUS))throw new _.H(1,9,9004,"Unable to initialize shader");a.useProgram(this.f);this.h=a.getUniformLocation(this.f,"Mvpm");a.uniform1i(a.getUniformLocation(this.f,"Texture0"),0);a.useProgram(null)}};var bu=class{constructor(a){this.a=a;var b=[];let c,d;for(d=0;70>=d;d++){var e=3>=d?d/4/64:67<=d?(63+(d-66)/4)/64:(d-3)/64;var f=(e-.5)*Math.PI;const g=Math.cos(f);for(c=0;128>=c;c++){const h=c/128,k=(.5+h)*Math.PI*2;128===c?(b.push(b[645*d]),b.push(b[645*d+1]),b.push(b[645*d+2])):(b.push(100*Math.cos(k)*g),b.push(100*Math.sin(k)*g),b.push(100*Math.sin(f)));0===d||70===d?b.push(.5):b.push(1-h);b.push(1-e)}}e=[];for(c=0;128>c;c++)for(d=0;70>d;d++)f=5*(129*d+c),e.push(b[f],b[f+1],b[f+2],b[f+3],b[f+
|
|
6
|
+
4]),f=5*(129*d+c+1),e.push(b[f],b[f+1],b[f+2],b[f+3],b[f+4]),f=5*(129*(d+1)+c),e.push(b[f],b[f+1],b[f+2],b[f+3],b[f+4]),f=5*(129*(d+1)+c),e.push(b[f],b[f+1],b[f+2],b[f+3],b[f+4]),f=5*(129*d+c+1),e.push(b[f],b[f+1],b[f+2],b[f+3],b[f+4]),f=5*(129*(d+1)+c+1),e.push(b[f],b[f+1],b[f+2],b[f+3],b[f+4]);this.h=e.length/5;this.f=a.createBuffer();b=new Float32Array(e);a.bindBuffer(a.ARRAY_BUFFER,this.f);a.bufferData(a.ARRAY_BUFFER,b,a.STATIC_DRAW)}};var cu=class{constructor(a,b){this.a=b;this.f=this.a.createTexture();b.activeTexture(b.TEXTURE0);b.bindTexture(b.TEXTURE_2D,this.f);b.texImage2D(b.TEXTURE_2D,0,b.RGB,b.RGB,b.UNSIGNED_BYTE,a);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,b.LINEAR);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,b.LINEAR);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,b.CLAMP_TO_EDGE);b.bindTexture(b.TEXTURE_2D,null)}};var du={alpha:!1,depth:!0,stencil:!1,antialias:!0,premultipliedAlpha:!1,preserveDrawingBuffer:!1,devicePixelRatio:1},eu=class extends _.kt{constructor(){super();this.o=this.w=this.K=this.I=this.C=this.Z=this.G=this.f=this.a=this.m=null;this.g=new _.R("clpp.vr");this.H=70;this.W=1;this.N=this.M=!1;this.F=()=>{if(this.a&&this.f){this.f.viewport(0,0,this.a.width,this.a.height);{const a=this.K.a,b=Math.tan(.5*this.H*Math.PI/180);a[0]=1/(this.a.width/this.a.height*b);a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=1/
|
|
7
|
+
b;a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=2E3/-1999.9;a[11]=200/-1999.9;a[12]=0;a[13]=0;a[14]=-1;a[15]=1}}};this.l=this.j=0;this.h={x:0,y:0};this.R=new $t;this.T=new $t;this.aa=new $t;this.ba=new $t;this.A=this.la.bind(this);this.B=this.Oa.bind(this);this.J=this.ea.bind(this)}onPlayerCreated(a){this.g.info("Player created");this.m=a}onContentWillLoad(a){const b=a.getConfiguration();if(b.vr&&b.vr.enable){{var c=b.vr,d=c.fieldOfView;const e=c.sensitivity,f=c.invertHorizontalControl;c=c.invertVerticalControl;
|
|
8
|
+
if(void 0!==d&&_.Cg(d))this.H=d;else throw new _.H(1,7,7100,"fieldOfView configuration must be a number");if(void 0!==e&&_.Cg(e)&&0<e)this.W=e;else throw new _.H(1,7,7100,"sensitivity configuration must be a positive number");this.M=!!f;this.N=!!c}if(a=a.getSurface())if((d=a.getMedia())&&d.tagName.toLowerCase()===_.w){this.g.info("Initialize VR Surface");if(!this.a){this.a=document.createElement("canvas");this.a.style.width="100%";this.f=this.a.getContext("webgl",du)||this.a.getContext("experimental-webgl",
|
|
9
|
+
du);if(!this.f)throw new _.H(1,9,9003,"Unable to create GL context");this.G=new $t;Wt(this.G);this.Z=new bu(this.f);this.C=new au(this.f);this.I=new $t;this.K=new $t;this.o=this.w=null;this.a.addEventListener(_.hf,this.F)}a.addElementToContainer(this.a,!0,!0);a.hideMediaElement();b.vr.attachMouseListener&&(this.a.addEventListener("mousedown",this.J,!1),this.a.addEventListener(Nt,this.J,!1));this.F();this.V()}else this.g.info("No video element found, can not initialize VR plugin");else this.g.info("No surface found, can not initialize VR plugin")}}onPlayerWillRelease(){this.g.info("Releasing VR plugin resources");
|
|
10
|
+
this.w&&cancelAnimationFrame(this.w);this.h.x=0;this.l=this.j=this.h.y=0;this.f&&(delete this.f,this.f=null);this.a&&(Yt(this),this.a.removeEventListener(_.hf,this.F),this.a.parentElement.removeChild(this.a),this.a.removeEventListener("mousedown",this.J,!1),delete this.a,this.a=null)}onPlayerWillDestroy(){const a=this;return _.x(function*(){a.m=null})}id(){return"vr"}V(){if(this.m&&this.f){var a=this.m.getSurface();if(a&&(a=a.getMedia())&&a.tagName.toLowerCase()===_.w){this.w=requestAnimationFrame(this.V.bind(this));
|
|
11
|
+
var b=this.f;this.o||a.readyState!==a.HAVE_ENOUGH_DATA||(this.o=new cu(a,b));b.clearColor(0,0,0,1);b.clearDepth(1);b.clearStencil(0);b.enable(b.DEPTH_TEST);b.depthFunc(b.LEQUAL);b.frontFace(b.CCW);b.cullFace(b.BACK);b.disable(b.CULL_FACE);b.enable(b.BLEND);b.blendFunc(b.SRC_ALPHA,b.ONE_MINUS_SRC_ALPHA);b.depthMask(!0);b.clearColor(0,0,0,1);b.clear(b.COLOR_BUFFER_BIT|b.DEPTH_BUFFER_BIT);if(this.o){var c=this.C;c.a.useProgram(c.f);{c=Ut(this.I,this.K,this.G).a;let d;d=c[1];c[1]=c[4];c[4]=d;d=c[2];c[2]=
|
|
12
|
+
c[8];c[8]=d;d=c[6];c[6]=c[9];c[9]=d;d=c[3];c[3]=c[12];c[12]=d;d=c[7];c[7]=c[13];c[13]=d;d=c[11];c[11]=c[14];c[14]=d}b.uniformMatrix4fv(this.C.h,!1,this.I.a);c=this.o;c.a.activeTexture(c.a.TEXTURE0);c.a.bindTexture(c.a.TEXTURE_2D,c.f);b.texImage2D(b.TEXTURE_2D,0,b.RGB,b.RGB,b.UNSIGNED_BYTE,a);a=this.Z;a.a.bindBuffer(a.a.ARRAY_BUFFER,a.f);a.a.vertexAttribPointer(0,3,a.a.FLOAT,!1,20,0);a.a.vertexAttribPointer(1,2,a.a.FLOAT,!1,20,12);a.a.enableVertexAttribArray(0);a.a.enableVertexAttribArray(1);a.a.drawArrays(a.a.TRIANGLES,
|
|
13
|
+
0,a.h);a=this.o;a.a.bindTexture(a.a.TEXTURE_2D,null);this.C.a.useProgram(null)}}}}ea(a){this.g.debug("Mouse Down. Enable VR mouse interaction");a.preventDefault();if(0===a.button||a.type===Nt)a.type===Nt?a.touches[0]&&(this.h.x=a.touches[0].clientX,this.h.y=a.touches[0].clientY):(this.h.x=a.clientX,this.h.y=a.clientY),this.g.debug("Mouse Start coordinates:",this.h,a),this.a.addEventListener("mousemove",this.A,!1),this.a.addEventListener(Mt,this.A,!1),this.a.addEventListener("mouseup",this.B,!1),this.a.addEventListener("touchend",
|
|
14
|
+
this.B,!1)}la(a){a.preventDefault();var b=a.clientX;let c=a.clientY;a.type===Mt&&a.touches[0]&&(b=a.touches[0].clientX,c=a.touches[0].clientY);a=this.h.x-b;const d=this.h.y-c;this.h.x=b;this.h.y=c;b=this.W;const {Uf:e,Vf:f}={Uf:a*b*(this.M?-1:1),Vf:d*b*(this.N?-1:1)};this.j+=e;this.l+=f;Zt(this)}Oa(a){this.g.debug("Mouse Up. Removing mouse interaction listeners");a.preventDefault();Yt(this)}Fg(a,b){this.l=b;this.j=a;Zt(this)}ng(){return{x:this.j,y:this.l}}Tg(a){this.H=a;this.F()}};
|
|
15
|
+
_.z("clpp.vr.VrPlugin",eu);eu.prototype.setCameraFieldOfView=eu.prototype.Tg;eu.prototype.getCameraCoordinates=eu.prototype.ng;eu.prototype.moveCamera=eu.prototype.Fg;eu.Id="vr";_.so(new class{create(){return new eu}});};f.call(g, window);
|
package/cl.vtt.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[1].match(/\d+:\d+:\d+/)&&(b+=`${a[0].match(/\w+/)}\n`,++c);if(a[c].match(/\d+:\d+:\d+/)){const d=a[1].match(/(\d+):(\d+):(\d+)(?:,(\d+))?\s*--?>\s*(\d+):(\d+):(\d+)(?:,(\d+))?/);if(d)b+=`${d[1]}:${d[2]}:${d[3]}.${d[4]} --> `,b+=`${d[5]}:${d[6]}:${d[7]}.${d[8]}\n`,++c;else return""}else return"";a[c]&&(b+=`${a[c]}\n\n`);return b},
|
|
3
|
-
c+60*b+3600*(Number(a[1])||0)},
|
|
4
|
-
_.Tc);else if(d=/^region:(.*)$/.exec(b)){if(b=
|
|
5
|
-
b," The region will be ignored."),null)},
|
|
6
|
-
"WEBVTT\n\n";for(const c of a)b+=
|
|
7
|
-
8589934592;a=b.periodStart+e/9E4-a}}else this.a.streaming.relativeTextTimestamp&&null!==b.segmentStart&&(a=b.segmentStart);b=[];for(var f of c)if(/^region/.test(f.toLowerCase())){e=new _.
|
|
8
|
-
Number(h[1]),k.regionAnchorY=Number(h[2]);else if(h=/^viewportanchor:(\d{1,2}|100)%,(\d{1,2}|100)%$/.exec(l))k.viewportAnchorX=Number(h[1]),k.viewportAnchorY=Number(h[2]);else if(/^scroll:up$/.exec(l))k.scroll="up";else{k=!1;break a}k=!0}k||_.C("VTT parser encountered an invalid VTTRegion setting: ",g,
|
|
9
|
-
n.split("\n");h=a;c=b;if(1==l.length&&!l[0]||/^NOTE($|[ \t])/.test(l[0])||"STYLE"==l[0]){c=null;break a}e=null;l[0].includes("--\x3e")||(e=l[0],l.splice(0,1));d=new _.
|
|
10
|
-
new _.H(_.G,2,2008);let c=0,d=[],e;const f=[];let g=!1,h=!1,k=!1,l=null;(new _.
|
|
11
|
-
_.P(q));v&1024&&q.skip(4);v&2048&&(E.ye=0==
|
|
12
|
-
b.periodStart+a/this.a)):this.
|
|
1
|
+
import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var tt=" The setting will be ignored.",ut="VTT parser encountered an invalid VTT setting: ",vt="application/x-subrip",wt="text/srt",xt='text/vtt; codecs\x3d"vtt"',yt='text/vtt; codecs\x3d"wvtt"',zt=function(a){return a.a==a.f.length?null:(a=_.li(a,/[^ \t\n]*/gm))?a[0]:null},At=function(a){_.li(a,/[ \t]+/gm)},Bt=function(a){let b="";for(a=a.split(/\n/);3<a.length;){for(var c=3;c<a.length;++c)a[2]+=`\n${a[c]}`;a.splice(3,a.length-3)}if(3!==a.length)return"";c=0;!a[0].match(/\d+:\d+:\d+/)&&
|
|
2
|
+
a[1].match(/\d+:\d+:\d+/)&&(b+=`${a[0].match(/\w+/)}\n`,++c);if(a[c].match(/\d+:\d+:\d+/)){const d=a[1].match(/(\d+):(\d+):(\d+)(?:,(\d+))?\s*--?>\s*(\d+):(\d+):(\d+)(?:,(\d+))?/);if(d)b+=`${d[1]}:${d[2]}:${d[3]}.${d[4]} --> `,b+=`${d[5]}:${d[6]}:${d[7]}.${d[8]}\n`,++c;else return""}else return"";a[c]&&(b+=`${a[c]}\n\n`);return b},Ct=function(a){a=_.li(a,/(?:(\d{1,}):)?(\d{2}):(\d{2})\.(\d{2,3})/g);if(null==a)return null;const b=Number(a[2]),c=Number(a[3]);return 59<b||59<c?null:Number(a[4])/1E3+
|
|
3
|
+
c+60*b+3600*(Number(a[1])||0)},Et=function(a,b,c){let d;if(d=/^align:(start|middle|center|end|left|right)$/.exec(b))b=d[1],"middle"==b?a.textAlign=_.lr:a.textAlign=_.rr[b.toUpperCase()];else if(d=/^vertical:(lr|rl)$/.exec(b))a.writingMode="lr"==d[1]?_.Nf:_.Of;else if(d=/^size:([\d.]+)%$/.exec(b))a.size=Number(d[1]);else if(d=/^position:([\d.]+)%(?:,(line-left|line-right|center|start|end))?$/.exec(b))a.position=Number(d[1]),d[2]&&(b=d[2],a.positionAlign=b==_.ee||b==_.rf?_.ee:b==_.fe||b==_.Ld?_.fe:
|
|
4
|
+
_.Tc);else if(d=/^region:(.*)$/.exec(b)){if(b=Dt(c,d[1]))a.region=b}else{a:{if(c=/^line:([\d.]+)%(?:,(start|end|center))?$/.exec(b))a.lineInterpretation=1,a.line=Number(c[1]),c[2]&&(a.lineAlign=_.sr[c[2].toUpperCase()]);else if(c=/^line:(-?\d+)(?:,(start|end|center))?$/.exec(b))a.lineInterpretation=_.nr,a.line=Number(c[1]),c[2]&&(a.lineAlign=_.sr[c[2].toUpperCase()]);else{a=!1;break a}a=!0}return a}return!0},Dt=function(a,b){a=a.filter(c=>c.id==b);return a.length?a[0]:(_.C("VTT parser could not find a region with id: ",
|
|
5
|
+
b," The region will be ignored."),null)},Gt=function(a,b,c){let d,e,f;(new _.fl).L("payl",_.$k(g=>{d=_.Rh(g)})).L("iden",_.$k(g=>{e=_.Rh(g)})).L("sttg",_.$k(g=>{f=_.Rh(g)})).parse(a);return d?Ft(d,e,f,b,c):null},Ft=function(a,b,c,d,e){a=new _.qr(d,e,a,_.$f);b&&(a.id=b);if(c)for(b=new _.mi(c),c=zt(b);c;)Et(a,c,[])||_.C(ut,c,tt),At(b),c=zt(b);return a},Ht=class{a(a){a=_.Rh(a);a=a.replace(/\r+/g,"");a=a.replace(/^\s+|\s+$/g,"");a=a.replace(/<[a-zA-Z\\/][^>]*>/g,"");a=a.split("\n\n");let b="";if(0<a.length){b+=
|
|
6
|
+
"WEBVTT\n\n";for(const c of a)b+=Bt(c)}return _.Vh(b)}},It=class{create(){return new Ht}probe(a,b){return(a===wt||a===vt)&&b===_.Af}};var Jt=class{constructor(a){this.a=a}parseInit(){}parseMedia(a,b){a=_.Rh(a);a=a.replace(/\r\n|\r(?=[^\n]|$)/gm,"\n");var c=a.split(/\n{2,}/m);if(!/^WEBVTT($|[ \t\n])/m.test(c[0]))throw new _.H(_.G,2,2E3);a=b.periodStart;if(c[0].includes("X-TIMESTAMP-MAP")){var d=c[0].match(/LOCAL:((?:(\d{1,}):)?(\d{2}):(\d{2})\.(\d{3}))/m),e=c[0].match(/MPEGTS:(\d+)/m);if(d&&e){a=Ct(new _.mi(d[1]));if(null==a)throw new _.H(_.G,2,2E3);e=Number(e[1]);for(d=b.segmentStart;95443.7176888889<=d;)d-=95443.7176888889,e+=
|
|
7
|
+
8589934592;a=b.periodStart+e/9E4-a}}else this.a.streaming.relativeTextTimestamp&&null!==b.segmentStart&&(a=b.segmentStart);b=[];for(var f of c)if(/^region/.test(f.toLowerCase())){e=new _.mi(f.replace(/\n/g," "));d=new _.vr;zt(e);At(e);for(var g=zt(e);g;){a:{var h;var k=d;var l=g;if(h=/^id:(.*)$/.exec(l))k.id=h[1];else if(h=/^width:(\d{1,2}|100)%$/.exec(l))k.width=Number(h[1]);else if(h=/^lines:(\d+)$/.exec(l))k.height=Number(h[1]),k.heightUnits=2;else if(h=/^regionanchor:(\d{1,2}|100)%,(\d{1,2}|100)%$/.exec(l))k.regionAnchorX=
|
|
8
|
+
Number(h[1]),k.regionAnchorY=Number(h[2]);else if(h=/^viewportanchor:(\d{1,2}|100)%,(\d{1,2}|100)%$/.exec(l))k.viewportAnchorX=Number(h[1]),k.viewportAnchorY=Number(h[2]);else if(/^scroll:up$/.exec(l))k.scroll="up";else{k=!1;break a}k=!0}k||_.C("VTT parser encountered an invalid VTTRegion setting: ",g,tt);At(e);g=zt(e)}e=d;b.push(e)}f=[];for(var m of c)if(/^style/.test(m.toLowerCase())){e=m.replace(/^style/i,"").replace(/\n/g," ");d=/[^{}]+{[^{}]*}/g;do(g=d.exec(e))&&f.push(g[0]);while(g)}m=[];for(const n of c)if(n.includes("--\x3e")){a:{l=
|
|
9
|
+
n.split("\n");h=a;c=b;if(1==l.length&&!l[0]||/^NOTE($|[ \t])/.test(l[0])||"STYLE"==l[0]){c=null;break a}e=null;l[0].includes("--\x3e")||(e=l[0],l.splice(0,1));d=new _.mi(l[0]);g=Ct(d);const q=_.li(d,/[ \t]+--\x3e[ \t]+/g);k=Ct(d);if(null==g||null==q||null==k)throw new _.H(_.G,2,2001);g+=h;k+=h;l=l.slice(1).join("\n").trim();g=new _.qr(g,k,l,_.$f);e&&(g.id=e);At(d);for(k=zt(d);k;)Et(g,k,c)||_.C(ut,k,tt),At(d),k=zt(d);null!=e&&(g.id=e);c=g}c&&m.push(c)}return{cues:m,styles:f}}};var Kt=class extends Jt{parseMedia(a,b){return super.parseMedia((new Ht).a(a),b)}};var Lt=class{constructor(){this.a=null;this.g=new _.R("clpp.vtt.mp4")}parseInit(a){let b=!1;(new _.fl).L(_.qe,_.Yk).L(_.Df,_.Yk).L(_.le,_.Yk).$("mdhd",c=>{0==c.version?(c.reader.skip(4),c.reader.skip(4),this.a=_.P(c.reader),c.reader.skip(4)):(c.reader.skip(8),c.reader.skip(8),this.a=_.P(c.reader),c.reader.skip(8));c.reader.skip(4)}).L(_.pe,_.Yk).L(_.uf,_.Yk).$(_.wf,_.Zk).L("wvtt",()=>{b=!0}).parse(a);if(!this.a)throw new _.H(_.G,2,2008);if(!b)throw new _.H(_.G,2,2008);}parseMedia(a,b){if(!this.a)throw this.g.error("No init segment for MP4+VTT!"),
|
|
10
|
+
new _.H(_.G,2,2008);let c=0,d=[],e;const f=[];let g=!1,h=!1,k=!1,l=null;(new _.fl).L("moof",_.Yk).L("traf",_.Yk).$("tfdt",q=>{g=!0;c=0==q.version?_.P(q.reader):_.Tk(q.reader)}).$("tfhd",q=>{var t=q.flags;q=q.reader;q.skip(4);t&1&&q.skip(8);t&2&&q.skip(4);l=t&8?_.P(q):null}).$("trun",q=>{h=!0;{var t=q.version,v=q.flags;q=q.reader;const y=_.P(q);v&1&&q.skip(4);v&4&&q.skip(4);const A=[];for(let D=0;D<y;D++){const E={duration:null,sampleSize:null,ye:null};v&256&&(E.duration=_.P(q));v&512&&(E.sampleSize=
|
|
11
|
+
_.P(q));v&1024&&q.skip(4);v&2048&&(E.ye=0==t?_.P(q):_.Sk(q));A.push(E)}d=A}}).L(_.ke,_.$k(q=>{k=!0;e=q})).parse(a);if(!k&&!g&&!h)throw new _.H(_.G,2,2008);a=c;var m=new DataView(e.buffer,e.byteOffset,e.byteLength);m=new _.Sl(m,!1);for(const q of d){const t=q.duration||l,v=q.ye?c+q.ye:a;a=v+(t||0);let y=0;do{const A=_.P(m);y+=A;var n=_.P(m);n=_.Xk(n);let D=null;"vttc"==n?8<A&&(D=_.Vk(m,A-8)):("vtte"!=n&&this.g.error("Unknown box "+n+"! Skipping!"),m.skip(A-8));t?D&&f.push(Gt(D,b.periodStart+v/this.a,
|
|
12
|
+
b.periodStart+a/this.a)):this.g.error("WVTT sample duration unknown, and no default found!")}while(q.sampleSize&&y<q.sampleSize)}return{cues:f.filter(_.oh),styles:[]}}};_.z("clpp.vtt.VttComponent",class extends _.Ks{constructor(){super();this.j=new It}f(){_.Xq[_.Af]=Jt;_.Xq[xt]=Jt;_.Xq[yt]=Jt;_.Xq[_.wc]=Lt;_.Xq[wt]=Kt;_.Xq[vt]=Kt;_.fj.push(this.j)}a(){_.Yq(_.Af);_.Yq(xt);_.Yq(yt);_.Yq(_.wc);_.Yq(wt);_.Yq(vt);_.hj(this.j)}id(){return"subtitles-vtt"}});};f.call(g, window);
|
package/cl.youbora.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var
|
|
2
|
-
9100)),!1;"6.8.49"!==youbora.VERSION&&(a.
|
|
3
|
-
a.code?"ad error":_.
|
|
4
|
-
d,e)}getIsLive(){return this.m.isLive()}getResource(){const c=this.m.getLoadedSource();return c&&c.url}getBitrate(){return this.l().streamBandwidth}getThroughput(){return this.l().estimatedBandwidth}getPlayrate(){return this.m.getPlaybackRate()}getFramesPerSecond(){var c=this.m.getTrackManager();return c&&(c=c.
|
|
5
|
-
youbora.Util.logAllEvents(this.m),this.a.on(this.m,_.
|
|
6
|
-
this.f();break;case _.
|
|
7
|
-
(c=c.keySystem,(c=c.startsWith(_.
|
|
8
|
-
c);c=c.adsTimeline;this.w=!!c&&c.
|
|
9
|
-
this.a.getTitle()}getProvider(){return this.a&&this.a.getAdvertiserName()}getCreativeId(){return this.a&&this.a.getCreativeId()}getPosition(){const c=youbora.Constants.AdPosition;let d=null;if(this.a)switch(this.a.
|
|
10
|
-
this.j.getCuePoints().length}getGivenBreaks(){return this.getExpectedBreaks()}getExpectedAds(){return this.a&&this.a.xb()}getGivenAds(){return this.getExpectedAds()}getBreaksTime(){return this.j&&this.j.getCuePoints().map(c=>-1===c?this.m.getDuration():c)}getIsFullscreen(){return this.m.getSurface().isFullscreen()}getIsVisible(){var c=this.m.getSurface().getContainer();c=youbora.Util.calculateAdViewability(c);this.
|
|
11
|
-
this.f&&(this.f.on(this.m,_.nc,this.
|
|
12
|
-
this.f.on(this.m,_.Xb,this.B.bind(this)),this.f.on(this.m,_.
|
|
13
|
-
this.fireBufferBegin()}w(){this.l&&(this.
|
|
14
|
-
c&&c.fireStop()}}H(c){(c=c.detail)&&10003===c.code&&
|
|
15
|
-
a.youbora;void 0===c[
|
|
1
|
+
import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var lt="clpp.npaw.YouboraPlugin",mt="content.isLive",nt=function(a,b){if(b.namespace()===_.dd)return a.g.info("Youbora does not report when casting."),!1;const c=b.getConfiguration().youbora;if(!_.Ag(c))return a.g.warn("Youbora plugin is loaded but not configured. Will do nothing."),!1;if(!c.accountCode)return a.g.warn("accountCode key is missing in Youbora config"),b.onError(new _.H(1,9,9101)),!1;if(_.B(window.youbora))return a.g.warn("Youbora SDK not found."),b.onError(new _.H(1,9,
|
|
2
|
+
9100)),!1;"6.8.49"!==youbora.VERSION&&(a.g.warn("Youbora SDK version is not supported. The supported version is 6.8.49, found "+`version ${youbora.VERSION}. Some or all features of YouboraPlugin `+"may not work correctly."),b.onError(new _.H(1,9,9102)));return!0},ot=a=>(a=a.getConfiguration().youbora)&&a.errorFilter?a.errorFilter:b=>({code:`${b.code}`,message:b.message,severity:b.severity}),pt=(a,b,c,d)=>{b=ot(b)(a);if(!b)return c.debug("Error not sent to Youbora",a.code,a.message),null;a=10003===
|
|
3
|
+
a.code?"ad error":_.Nd;b.severity===_.G?(d.fireFatalError(b.code,b.message,b.metadata),c.debug(`Reporting "fatal ${a}" to Youbora`,b.code,b)):(d.fireError(b.code,b.message,b.metadata),c.debug(`Reporting "${a}" to Youbora`,b.code,b));return b};var qt=a=>{class b extends youbora.Adapter{constructor(c){super(c);this.m=c;this.a=new _.ir;this.g=new _.R("clpp.npaw.YouboraAdapter");this.h=this.w=!1;this.registerListeners()}getPlayhead(){return this.getIsLive()?-1:this.m.getPosition()}getDuration(){return this.m.getDuration()}getRendition(){let c,d,e;var f=this.m.getTrackManager();f&&(f=f.ka())&&(c=f.width,d=f.height,e=f.bandwidth);c&&d&&e||(f=this.l(),c=c||f.width,d=d||f.height,e=e||f.streamBandwidth);return youbora.Util.buildRenditionString(c,
|
|
4
|
+
d,e)}getIsLive(){return this.m.isLive()}getResource(){const c=this.m.getLoadedSource();return c&&c.url}getBitrate(){return this.l().streamBandwidth}getThroughput(){return this.l().estimatedBandwidth}getPlayrate(){return this.m.getPlaybackRate()}getFramesPerSecond(){var c=this.m.getTrackManager();return c&&(c=c.Ea())?c.frameRate:null}getPlayerName(){return _.pa}getVersion(){return"6.14.0-castlabsadapter-js"}getPlayerVersion(){return _.da}registerListeners(){this.m&&this.a&&(this.g.debug("registering listeners"),
|
|
5
|
+
youbora.Util.logAllEvents(this.m),this.a.on(this.m,_.sf,this.I.bind(this)),this.a.on(this.m,_.Nd,this.F.bind(this)),this.a.on(this.m,_.Lf,this.H.bind(this)),this.a.on(this.m,_.Kf,this.G.bind(this)),this.a.on(this.m,_.nc,this.B.bind(this)),this.a.on(this.m,_.Pc,this.C.bind(this)))}unregisterListeners(){this.g.debug(_.Jb);_.Ug(this.a)}dispose(){super.dispose()}l(){return this.m.getStats()||_.an()}o(){return!!this.m.getConfiguration().autoplay}I(c){c=c.detail;this.j("state change",c);if(c)switch(c.currentState){case _.pn:this.o()&&
|
|
6
|
+
this.f();break;case _.rn:this.f();this.A();this.fireResume();this.fireBufferEnd();break;case _.qn:this.o()&&this.f();this.A();this.fireBufferEnd();this.firePause();break;case _.on:this.fireBufferEnd();this.fireStop();break;case _.fn:this.fireBufferEnd();this.w&&this.plugin.getAdsAdapter()?this.firePause():this.fireStop();break;case _.jn:this.fireBufferBegin();break;default:this.g.debug("Unhandled state",c)}}f(){this.plugin.isInitiated||(this.h=!1,this.fireInit())}A(){var c=this.m.getDrmInfo();c&&
|
|
7
|
+
(c=c.keySystem,(c=c.startsWith(_.rd)?"Widevine":c.startsWith(_.nd)?"FairPlay":c.match(/^com\.(microsoft|chromecast)\.playready/)?"PlayReady":c.startsWith(_.De)?"ClearKey":c.startsWith(_.md)?"Primetime":c)&&this.plugin.setOptions({"content.drm":c}));this.fireJoin()}F(c){!(c=c.detail)||this.h||10003===c.code&&this.plugin.getAdsAdapter()||(c=pt(c,this.m,this.g,this))&&c.severity===_.G&&(this.h=!0)}H(){this.j(_.lf);this.m.isEnded()||(this.f(),this.fireSeekBegin())}G(){this.j(_.kf);this.fireSeekEnd()}B(c){this.g.debug("adsTimeline",
|
|
8
|
+
c);c=c.adsTimeline;this.w=!!c&&c.lb()}C(c){this.g.debug("Casting",c);this.fireCasted()}j(c,...d){this.g.debug(`Reporting "${c}" event to Youbora`,...d)}}return new b(a)};var rt=a=>{class b extends youbora.Adapter{constructor(c){super(c);this.m=c;this.j=this.a=null;this.f=new _.ir;this.g=new _.R("clpp.npaw.YouboraAdsAdapter");this.registerListeners();this.l=!1}getDuration(){return this.a&&this.a.getDuration()}getRendition(){let c=null;this.a&&(c=youbora.Util.buildRenditionString(this.a.vb(),this.a.ub(),this.a.kb()));return c}getBitrate(){return this.a&&this.a.kb()}getPlayhead(){const c=this.m.getAdsManager();return c&&c.getPosition()}getResource(){return this.a&&this.a.getMediaUrl()}getTitle(){return this.a&&
|
|
9
|
+
this.a.getTitle()}getProvider(){return this.a&&this.a.getAdvertiserName()}getCreativeId(){return this.a&&this.a.getCreativeId()}getPosition(){const c=youbora.Constants.AdPosition;let d=null;if(this.a)switch(this.a.Wa()){case 0:d=c.Preroll;break;case 2:d=c.Postroll;break;case 1:d=c.Midroll}this.g.debug("Ad position",d);return d}getIsSkippable(){return this.a&&-1!==this.a.getSkipTimeOffset()}getAudioEnabled(){const c=this.m.getAdsManager();return c&&0<c.getVolume()}getExpectedBreaks(){return this.j&&
|
|
10
|
+
this.j.getCuePoints().length}getGivenBreaks(){return this.getExpectedBreaks()}getExpectedAds(){return this.a&&this.a.xb()}getGivenAds(){return this.getExpectedAds()}getBreaksTime(){return this.j&&this.j.getCuePoints().map(c=>-1===c?this.m.getDuration():c)}getIsFullscreen(){return this.m.getSurface().isFullscreen()}getIsVisible(){var c=this.m.getSurface().getContainer();c=youbora.Util.calculateAdViewability(c);this.g.debug("is container visible",c);return c}getPlayerName(){return _.pa}getVersion(){return"6.14.0-castlabsadsadapter-js"}getPlayerVersion(){return _.da}registerListeners(){this.m&&
|
|
11
|
+
this.f&&(this.f.on(this.m,_.nc,this.N.bind(this)),this.f.on(this.m,_.jc,this.M.bind(this)),this.f.on(this.m,_.fc,this.I.bind(this)),this.f.on(this.m,_.hc,this.J.bind(this)),this.f.on(this.m,_.ac,this.G.bind(this)),this.f.on(this.m,_.bc,this.o.bind(this,1)),this.f.on(this.m,_.ec,this.o.bind(this,2)),this.f.on(this.m,_.lc,this.o.bind(this,3)),this.f.on(this.m,_.$b,this.F.bind(this)),this.f.on(this.m,_.ic,this.K.bind(this)),this.f.on(this.m,_.Nd,this.H.bind(this)),this.f.on(this.m,_.Wb,this.A.bind(this)),
|
|
12
|
+
this.f.on(this.m,_.Xb,this.B.bind(this)),this.f.on(this.m,_.Zb,this.C.bind(this)),this.f.on(this.m,_.gc,this.w.bind(this)))}unregisterListeners(){_.Ug(this.f)}dispose(){super.dispose()}N(c){this.g.debug("ad timeline changed",c);this.j=c.adsTimeline}M(c){this.a=c.ad;this.h("ad start",this.a);this.fireStart();this.fireJoin()}G(){this.h("ad ended");this.fireStop()}I(){this.h("ad pause");this.w();this.firePause()}J(){this.h("ad resume");this.w();this.fireResume()}C(){this.l=!0;this.h("ad buffering started");
|
|
13
|
+
this.fireBufferBegin()}w(){this.l&&(this.h("ad buffering ended"),this.l=!1,this.fireBufferEnd())}o(c){this.h("ad quartile",c);this.fireQuartile(c)}F(){this.h("ad clicked");const c=this.a&&this.a.Jb();this.g.debug("ad click through url: ",c);this.fireClick(c)}K(){this.h("ad skipped");this.fireSkip()}A(c){this.a=c.ad;this.h("ad break start",this.a);this.fireBreakStart()}B(){this.h("ad break stop");this.fireBreakStop();if(this.getPosition()===youbora.Constants.AdPosition.Postroll){const c=this.plugin.getAdapter();
|
|
14
|
+
c&&c.fireStop()}}H(c){(c=c.detail)&&10003===c.code&&pt(c,this.m,this.g,this)}h(c,...d){this.g.debug(`Reporting "${c}" event to Youbora`,...d)}}return new b(a)};var st=class extends _.kt{constructor(){super();this.a=null;this.g=new _.R(lt);this.m=null}ue(a){this.a&&(this.a.removeAdsAdapter(),this.a.removeAdapter());if(this.a=a)this.a.setAdapter(qt(this.m)),this.a.setAdsAdapter(rt(this.m))}getAdapter(){return this.a&&this.a.getAdapter()}getAdsAdapter(){return this.a&&this.a.getAdsAdapter()}onPlayerCreated(a){this.m=a;nt(this,a)&&(a=a.getConfiguration().youbora,this.ue(new youbora.Plugin(a)))}onContentWillLoad(a,b){if(nt(this,a)){a=a.getConfiguration();var c=
|
|
15
|
+
a.youbora;void 0===c[mt]&&(c[mt]=b.isLive);void 0===c["content.title"]&&(c["content.title"]=b.name);void 0===c.viewerId&&(c.viewerId=a.viewerId);this.a||this.ue(new youbora.Plugin(c));this.a.setOptions(c)}}onPlayerWillRelease(){}onPlayerWillDestroy(){}id(){return"youbora"}};_.z(lt,st);st.prototype.getAdsAdapter=st.prototype.getAdsAdapter;st.prototype.getAdapter=st.prototype.getAdapter;st.prototype.setYouboraPlugin=st.prototype.ue;st.Id="youbora";_.so(new class{create(){return new st}});};f.call(g, window);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@castlabs/prestoplay",
|
|
3
3
|
"description": "PRESTOplay Video Player",
|
|
4
|
-
"version": "6.
|
|
4
|
+
"version": "6.14.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/castlabs/prestoplay-web.git"
|
|
@@ -22,9 +22,9 @@
|
|
|
22
22
|
"CHANGELOG.md"
|
|
23
23
|
],
|
|
24
24
|
"peerDependencies": {
|
|
25
|
-
"@broadpeak/smartlib": "
|
|
26
|
-
"@broadpeak/smartlib-all-compatibility": "
|
|
27
|
-
"@broadpeak/smartlib-analytics": "
|
|
25
|
+
"@broadpeak/smartlib": "5.0.1-4c69e21",
|
|
26
|
+
"@broadpeak/smartlib-all-compatibility": "5.0.1-4c69e21",
|
|
27
|
+
"@broadpeak/smartlib-analytics": "5.0.1-4c69e21",
|
|
28
28
|
"mux.js": "^5.14.1",
|
|
29
29
|
"youboralib": "6.8.49"
|
|
30
30
|
},
|
package/typings.d.ts
CHANGED
|
@@ -137,19 +137,19 @@ export namespace clpp {
|
|
|
137
137
|
*/
|
|
138
138
|
id(): string;
|
|
139
139
|
/**
|
|
140
|
-
* Callback that is triggered after content is loaded
|
|
140
|
+
* Callback that is triggered after content is loaded.
|
|
141
141
|
*
|
|
142
142
|
* @param player The player
|
|
143
143
|
* @param optArgs Optional arguments
|
|
144
144
|
*/
|
|
145
145
|
onContentLoaded(player: clpp.Player, ...optArgs: any[]): void|Promise<void>;
|
|
146
146
|
/**
|
|
147
|
-
* Callback that is triggered before content is loaded
|
|
147
|
+
* Callback that is triggered before content is loaded.
|
|
148
148
|
*
|
|
149
149
|
* @param player The player
|
|
150
150
|
* @param source The chosen source
|
|
151
151
|
*/
|
|
152
|
-
onContentWillLoad(player: clpp.Player, source: clpp.Source): void
|
|
152
|
+
onContentWillLoad(player: clpp.Player, source: clpp.Source): void|Promise<void>;
|
|
153
153
|
/**
|
|
154
154
|
* Callback that is triggered when the player is created, i.e. when an instance
|
|
155
155
|
* of {@link clpp.Player} is created.
|
|
@@ -164,7 +164,7 @@ export namespace clpp {
|
|
|
164
164
|
*/
|
|
165
165
|
onPlayerWillDestroy(player: clpp.Player): void;
|
|
166
166
|
/**
|
|
167
|
-
* Callback that is triggered when the player is released
|
|
167
|
+
* Callback that is triggered when the player is released.
|
|
168
168
|
*
|
|
169
169
|
* @param player The player
|
|
170
170
|
*/
|
|
@@ -172,7 +172,7 @@ export namespace clpp {
|
|
|
172
172
|
}
|
|
173
173
|
|
|
174
174
|
/**
|
|
175
|
-
*
|
|
175
|
+
* Implementations of this factory are used to create new player plugins.
|
|
176
176
|
*/
|
|
177
177
|
export interface PlayerPluginFactory {
|
|
178
178
|
/**
|
|
@@ -217,10 +217,10 @@ export namespace clpp {
|
|
|
217
217
|
/**
|
|
218
218
|
* The restrictions to apply to ABR decisions. These are "soft" restrictions.
|
|
219
219
|
* Any track that fails to meet these restrictions will not be selected
|
|
220
|
-
* automatically, but will still appear in the track list and can
|
|
221
|
-
*
|
|
222
|
-
* AbrManager should not fail
|
|
223
|
-
* instead.
|
|
220
|
+
* automatically, but will still appear in the track list and can be selected
|
|
221
|
+
* via {@link clpp.TrackManager#setVideoTrack}. If no tracks meet these
|
|
222
|
+
* restrictions, AbrManager should not fail but should choose a low-resolution
|
|
223
|
+
* or low-bandwidth variant instead.
|
|
224
224
|
*/
|
|
225
225
|
restrictions: clpp.Restrictions;
|
|
226
226
|
/**
|
|
@@ -1204,6 +1204,16 @@ export namespace clpp {
|
|
|
1204
1204
|
* back into foreground.
|
|
1205
1205
|
*/
|
|
1206
1206
|
pauseWhenInBackground?: boolean;
|
|
1207
|
+
/**
|
|
1208
|
+
* Defaults to `false`.
|
|
1209
|
+
*
|
|
1210
|
+
* If `true`, a forced text track is preferred. If the content has no text
|
|
1211
|
+
* tracks marked as forced and the value is `true`, no text track is chosen.
|
|
1212
|
+
* If `true` and the `preferredTextLanguage` is set, and the specified
|
|
1213
|
+
* language is available for the forced text track, the forced text track will
|
|
1214
|
+
* be preferred over the non-forced subtitles and be enabled at startup.
|
|
1215
|
+
*/
|
|
1216
|
+
preferForcedSubtitles?: boolean;
|
|
1207
1217
|
/**
|
|
1208
1218
|
* Defaults to `false`.
|
|
1209
1219
|
*
|
|
@@ -1243,8 +1253,10 @@ export namespace clpp {
|
|
|
1243
1253
|
* Defaults to ''.
|
|
1244
1254
|
*
|
|
1245
1255
|
* Language code for the preferred text language. If this is specified,
|
|
1246
|
-
* subtitles will be enabled at startup.
|
|
1247
|
-
*
|
|
1256
|
+
* subtitles will be enabled at startup. Pass an array of languages if you
|
|
1257
|
+
* want to define fallback languages. If `preferForcedSubtitles` is set to
|
|
1258
|
+
* `true`, this language preference will be applied to the forced track
|
|
1259
|
+
* selection first, and will enable the forced track.
|
|
1248
1260
|
*/
|
|
1249
1261
|
preferredTextLanguage?: string|Array<string>;
|
|
1250
1262
|
/**
|
|
@@ -1267,7 +1279,10 @@ export namespace clpp {
|
|
|
1267
1279
|
*/
|
|
1268
1280
|
remoteTextTracks?: Array<clpp.RemoteTextTrack>;
|
|
1269
1281
|
/**
|
|
1270
|
-
*
|
|
1282
|
+
* The application restrictions to apply to the tracks. These are "hard"
|
|
1283
|
+
* restrictions. Any track that fails to meet these restrictions will not
|
|
1284
|
+
* appear in the track list. If no tracks meet these restrictions, playback
|
|
1285
|
+
* will fail.
|
|
1271
1286
|
*/
|
|
1272
1287
|
restrictions?: Partial<clpp.Restrictions>;
|
|
1273
1288
|
/**
|
|
@@ -1294,11 +1309,8 @@ export namespace clpp {
|
|
|
1294
1309
|
*/
|
|
1295
1310
|
streaming?: Partial<clpp.StreamingConfiguration>;
|
|
1296
1311
|
/**
|
|
1297
|
-
* The suggested presentation delay for live content in seconds.
|
|
1298
|
-
*
|
|
1299
|
-
* minBufferDuration * 3 in case of DASH and 3 * segmentDuration in case of
|
|
1300
|
-
* HLS. This parameter can be used to adjust the live edge. If set it will
|
|
1301
|
-
* take precedence.
|
|
1312
|
+
* The suggested presentation delay for live content in seconds. Presentation
|
|
1313
|
+
* delay is the difference between playback position and the live edge.
|
|
1302
1314
|
*/
|
|
1303
1315
|
suggestedPresentationDelay?: number;
|
|
1304
1316
|
/**
|
|
@@ -1313,6 +1325,10 @@ export namespace clpp {
|
|
|
1313
1325
|
* Tizen specific configuration
|
|
1314
1326
|
*/
|
|
1315
1327
|
tizen?: Partial<clpp.TizenConfiguration>;
|
|
1328
|
+
/**
|
|
1329
|
+
* Trick play specific configuration
|
|
1330
|
+
*/
|
|
1331
|
+
trickPlay?: Partial<clpp.TrickPlayConfiguration>;
|
|
1316
1332
|
/**
|
|
1317
1333
|
* TTML component configuration.
|
|
1318
1334
|
*/
|
|
@@ -1537,10 +1553,15 @@ export namespace clpp {
|
|
|
1537
1553
|
}
|
|
1538
1554
|
|
|
1539
1555
|
/**
|
|
1540
|
-
* An object
|
|
1541
|
-
*
|
|
1542
|
-
*
|
|
1543
|
-
*
|
|
1556
|
+
* An object describing application restrictions on what tracks can play. All
|
|
1557
|
+
* restrictions must be fulfilled for a track to be playable/selectable.
|
|
1558
|
+
* The restrictions system behaves somewhat differently at the ABR level and the
|
|
1559
|
+
* player level, so please refer to the documentation for those specific
|
|
1560
|
+
* settings:
|
|
1561
|
+
*
|
|
1562
|
+
* {@link clpp.PlayerConfiguration#restrictions}
|
|
1563
|
+
* {@link clpp.AbrConfiguration}
|
|
1564
|
+
*
|
|
1544
1565
|
*/
|
|
1545
1566
|
export type Restrictions = {
|
|
1546
1567
|
/**
|
|
@@ -2318,6 +2339,41 @@ export namespace clpp {
|
|
|
2318
2339
|
value: string;
|
|
2319
2340
|
}
|
|
2320
2341
|
|
|
2342
|
+
/**
|
|
2343
|
+
* Configuration for Trick play.
|
|
2344
|
+
* This is only available for MSE player.
|
|
2345
|
+
*/
|
|
2346
|
+
export type TrickPlayConfiguration = {
|
|
2347
|
+
/**
|
|
2348
|
+
* If enabled,
|
|
2349
|
+
* and the content contains a Trickplay (usually I-frame only) track,
|
|
2350
|
+
* it will be selected during Trickplay playback.
|
|
2351
|
+
*/
|
|
2352
|
+
preferTrickPlayTracks?: boolean;
|
|
2353
|
+
/**
|
|
2354
|
+
* {@link clpp.SpeedUpMode}
|
|
2355
|
+
* Decoder mode
|
|
2356
|
+
* This is the default mode.
|
|
2357
|
+
* The player will play the content at the indicated speed.
|
|
2358
|
+
* Decoder mode is limited in range of playback rates,
|
|
2359
|
+
* support also varies per platforms.
|
|
2360
|
+
* This mode cannot be used for backwards playback.
|
|
2361
|
+
* For playback rates < 0, or other unsupported rates we
|
|
2362
|
+
* fallback to Seek mode by default.
|
|
2363
|
+
* Seek mode
|
|
2364
|
+
* This mode internally pause the playback
|
|
2365
|
+
* and continuously perform seek operations.
|
|
2366
|
+
* This mode is preferable for very high playback rates,
|
|
2367
|
+
* as only a few segments must be downloaded,
|
|
2368
|
+
* also with seeking mode is possible to perform backwards playback.
|
|
2369
|
+
* This mode is also recommended as default for platform
|
|
2370
|
+
* where decoder mode is limited.
|
|
2371
|
+
* With Seek mode playback will continuously stutter,
|
|
2372
|
+
* so hiding the buffering indicator on your app UI is encouraged.
|
|
2373
|
+
*/
|
|
2374
|
+
speedUpMode?: clpp.SpeedUpMode;
|
|
2375
|
+
}
|
|
2376
|
+
|
|
2321
2377
|
/**
|
|
2322
2378
|
* TTML component configuration.
|
|
2323
2379
|
*/
|
|
@@ -2729,6 +2785,23 @@ export namespace clpp {
|
|
|
2729
2785
|
severity: clpp.Error.Severity;
|
|
2730
2786
|
}
|
|
2731
2787
|
|
|
2788
|
+
/**
|
|
2789
|
+
* Speed-up mode to use during trick play.
|
|
2790
|
+
*/
|
|
2791
|
+
export enum SpeedUpMode {
|
|
2792
|
+
/**
|
|
2793
|
+
* Decoder mode
|
|
2794
|
+
* play the content at the indicated speed, using native play rate.
|
|
2795
|
+
*/
|
|
2796
|
+
DECODER = "decoder",
|
|
2797
|
+
/**
|
|
2798
|
+
* Seek mode
|
|
2799
|
+
* will internally pause the playback and continuously perform
|
|
2800
|
+
* seek operations.
|
|
2801
|
+
*/
|
|
2802
|
+
SEEK = "seek",
|
|
2803
|
+
}
|
|
2804
|
+
|
|
2732
2805
|
/**
|
|
2733
2806
|
* Timeline cue types.
|
|
2734
2807
|
*/
|
|
@@ -3600,8 +3673,12 @@ export namespace clpp {
|
|
|
3600
3673
|
setNetworkEngine(engine: clpp.net.NetworkEngine): void;
|
|
3601
3674
|
/**
|
|
3602
3675
|
* Set speed of the playback, where 1 means "normal" speed.
|
|
3676
|
+
* For MSE playback, optional `speedUpMode` can be passed.
|
|
3677
|
+
* {@link clpp.SpeedUpMode}
|
|
3603
3678
|
*
|
|
3604
3679
|
* @param rate The rate
|
|
3680
|
+
* @param opt_mode The speedUpMode
|
|
3681
|
+
* to use during trick play
|
|
3605
3682
|
*
|
|
3606
3683
|
* @example // Play at double speed.
|
|
3607
3684
|
*
|
|
@@ -3614,8 +3691,16 @@ export namespace clpp {
|
|
|
3614
3691
|
* @example // Play at normal speed.
|
|
3615
3692
|
*
|
|
3616
3693
|
* player.setPlaybackRate(1);
|
|
3694
|
+
*
|
|
3695
|
+
* @example // Play at double speed backwards.
|
|
3696
|
+
*
|
|
3697
|
+
* player.setPlaybackRate(-2);
|
|
3698
|
+
*
|
|
3699
|
+
* @example // Play at double speed, using seek mode.
|
|
3700
|
+
*
|
|
3701
|
+
* player.setPlaybackRate(2, 'seek');
|
|
3617
3702
|
*/
|
|
3618
|
-
setPlaybackRate(rate: number): void;
|
|
3703
|
+
setPlaybackRate(rate: number, opt_mode?: clpp.SpeedUpMode): void;
|
|
3619
3704
|
/**
|
|
3620
3705
|
* Use this to set the volume of the video as a value between 0 and 1. Please
|
|
3621
3706
|
* note that on some platforms setting the volume is not permitted. For
|
|
@@ -3866,7 +3951,7 @@ export namespace clpp {
|
|
|
3866
3951
|
id: string;
|
|
3867
3952
|
/**
|
|
3868
3953
|
* The track kind.
|
|
3869
|
-
* This can be for instance be 'captions' or '
|
|
3954
|
+
* This can be for instance be 'captions', 'subtitles' or 'forced`.
|
|
3870
3955
|
*/
|
|
3871
3956
|
kind: string|null;
|
|
3872
3957
|
/**
|
|
@@ -3907,6 +3992,16 @@ export namespace clpp {
|
|
|
3907
3992
|
* This is usually set for side-loaded remote text tracks.
|
|
3908
3993
|
*/
|
|
3909
3994
|
src: string|null;
|
|
3995
|
+
/**
|
|
3996
|
+
* True indicates that this track is intended for trick mode playback.
|
|
3997
|
+
* Note that tracks marked as trick play are completely ignored by ABR,
|
|
3998
|
+
* meaning their renditions are not considered for automatic selection when
|
|
3999
|
+
* the normal track associated with this trick play track is active. It is
|
|
4000
|
+
* also not possible to enable ABR when the currently active track is a
|
|
4001
|
+
* trick play track. You can only manually select a desired trick play
|
|
4002
|
+
* tracks and its renditions using methods from {@link clpp.TrackManager}.
|
|
4003
|
+
*/
|
|
4004
|
+
trickPlay: boolean;
|
|
3910
4005
|
/**
|
|
3911
4006
|
* The track type.
|
|
3912
4007
|
*/
|
|
@@ -4166,6 +4261,10 @@ export namespace clpp {
|
|
|
4166
4261
|
* Thumbnail file(s) failed to load.
|
|
4167
4262
|
*/
|
|
4168
4263
|
THUMBNAILS_FAILED_TO_LOAD = 2013,
|
|
4264
|
+
/**
|
|
4265
|
+
* Thumbnail-related error.
|
|
4266
|
+
*/
|
|
4267
|
+
THUMBNAIL_ERROR = 2014,
|
|
4169
4268
|
/**
|
|
4170
4269
|
* Some component tried to read past the end of a buffer. The segment index,
|
|
4171
4270
|
* init segment, or PSSH may be malformed.
|
|
@@ -6614,6 +6713,15 @@ export namespace clpp {
|
|
|
6614
6713
|
namespace muxdata {
|
|
6615
6714
|
export class MuxDataPlugin {
|
|
6616
6715
|
static Id: string;
|
|
6716
|
+
/**
|
|
6717
|
+
* Emit a custom event.
|
|
6718
|
+
* This method can be used to send supplementary events to Mux, in addition to
|
|
6719
|
+
* the mandatory playback events.
|
|
6720
|
+
*
|
|
6721
|
+
* @param eventType event name
|
|
6722
|
+
* @param data data to send along with the event
|
|
6723
|
+
*/
|
|
6724
|
+
emit(eventType: string, data: Record<string, any>): void;
|
|
6617
6725
|
}
|
|
6618
6726
|
}
|
|
6619
6727
|
|
|
@@ -7823,16 +7931,13 @@ export namespace clpp {
|
|
|
7823
7931
|
* is requested for.
|
|
7824
7932
|
*
|
|
7825
7933
|
* @example // Access the thumbnails plugin and add a thumbnail to a container element,
|
|
7826
|
-
|
|
7934
|
+
scaling the thumbnail to a width of 180 pixels.
|
|
7827
7935
|
*
|
|
7828
|
-
*
|
|
7829
|
-
*
|
|
7830
|
-
* // loaded
|
|
7831
|
-
* let thumbsPlugin = player.getPlugin(clpp.thumbnails.ThumbnailsPlugin.Id);
|
|
7936
|
+
* const container = document.getElementById('thumbnail-container');
|
|
7937
|
+
* const thumbsPlugin = player.getPlugin(clpp.thumbnails.ThumbnailsPlugin.Id);
|
|
7832
7938
|
*
|
|
7833
|
-
* // Get a thumbnail
|
|
7939
|
+
* // Get a thumbnail at 12 seconds
|
|
7834
7940
|
* thumbsPlugin.get(12)
|
|
7835
|
-
* .then(thumb => thumb.load())
|
|
7836
7941
|
* .then(thumb => thumb.element(180))
|
|
7837
7942
|
* .then(container.appendChild);
|
|
7838
7943
|
*/
|