@castlabs/prestoplay 6.14.0 → 6.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/cjs/cl.adobe.js +3 -3
  3. package/cjs/cl.airplay.js +3 -3
  4. package/cjs/cl.broadpeak.js +7 -7
  5. package/cjs/cl.cast.js +110 -110
  6. package/cjs/cl.conviva.js +33 -33
  7. package/cjs/cl.core.js +528 -520
  8. package/cjs/cl.crypto.js +9 -9
  9. package/cjs/cl.dash.js +72 -72
  10. package/cjs/cl.externs.js +50 -56
  11. package/cjs/cl.freewheel.js +24 -24
  12. package/cjs/cl.hls.js +69 -68
  13. package/cjs/cl.hlssmpte.js +6 -6
  14. package/cjs/cl.htmlcue.js +29 -30
  15. package/cjs/cl.ima.js +23 -23
  16. package/cjs/cl.mse.js +264 -274
  17. package/cjs/cl.muxdata.js +15 -15
  18. package/cjs/cl.onboard.js +3 -3
  19. package/cjs/cl.persistent.js +13 -13
  20. package/cjs/cl.playlist.js +6 -6
  21. package/cjs/cl.simid.js +15 -15
  22. package/cjs/cl.smooth.js +71 -71
  23. package/cjs/cl.thumbnails.js +26 -26
  24. package/cjs/cl.tizen.js +70 -70
  25. package/cjs/cl.ttml.js +28 -28
  26. package/cjs/cl.verimatrix.js +5 -5
  27. package/cjs/cl.vimond.js +12 -12
  28. package/cjs/cl.vr.js +19 -19
  29. package/cjs/cl.vtt.js +14 -14
  30. package/cjs/cl.youbora.js +19 -19
  31. package/cl.adobe.js +3 -3
  32. package/cl.airplay.js +3 -3
  33. package/cl.broadpeak.js +5 -5
  34. package/cl.cast.js +88 -88
  35. package/cl.conviva.js +27 -27
  36. package/cl.core.js +440 -433
  37. package/cl.crypto.js +8 -8
  38. package/cl.dash.js +68 -68
  39. package/cl.externs.js +50 -56
  40. package/cl.freewheel.js +19 -19
  41. package/cl.hls.js +71 -69
  42. package/cl.hlssmpte.js +5 -5
  43. package/cl.htmlcue.js +26 -26
  44. package/cl.ima.js +17 -17
  45. package/cl.mse.js +236 -240
  46. package/cl.muxdata.js +13 -13
  47. package/cl.onboard.js +4 -4
  48. package/cl.persistent.js +11 -11
  49. package/cl.playlist.js +5 -5
  50. package/cl.simid.js +13 -13
  51. package/cl.smooth.js +59 -59
  52. package/cl.thumbnails.js +19 -19
  53. package/cl.tizen.js +57 -57
  54. package/cl.ttml.js +22 -22
  55. package/cl.verimatrix.js +4 -4
  56. package/cl.vimond.js +8 -8
  57. package/cl.vr.js +15 -15
  58. package/cl.vtt.js +12 -12
  59. package/cl.youbora.js +15 -15
  60. package/clpp.styles.css +2 -0
  61. package/package.json +1 -1
  62. package/typings.d.ts +40 -33
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 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);
1
+ import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var ju="touchmove",ku="touchstart",mu=function(a,b,c){c*=.5;const d=Math.sqrt(a*a+b*b),e=Math.sin(c);return new lu(a/d*e,b/d*e,0/d*e,Math.cos(c))},nu=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)},ou=function(a,b){isFinite(b)?(a.x*=b,a.y*=b,a.a*=b):(a.x=0,a.y=0,a.a=0)},pu=function(a,b){return a.x*b.x+a.y*b.y+a.a*b.a},qu=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},ru=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},tu=function(a){var b=new su(0,0,0),c=new su(0,0,1);const d=new su,e=new su,f=new su;a=a.a;var g=
3
+ new su(0,1,0);f.x=b.x-g.x;f.y=b.y-g.y;f.a=b.a-g.a;g=f.length();ou(f,1/g);c=qu(d,c,f);g=c.length();ou(c,1/g);qu(e,f,d);a[0]=d.x;a[1]=d.y;a[2]=d.a;a[3]=-pu(d,b);a[4]=e.x;a[5]=e.y;a[6]=e.a;a[7]=-pu(e,b);a[8]=f.x;a[9]=f.y;a[10]=f.a;a[11]=-pu(f,b);a[12]=0;a[13]=0;a[14]=0;a[15]=1},uu=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},vu=function(a){a.a&&(a.a.removeEventListener("mousemove",a.A,!1),a.a.removeEventListener(ju,a.A,!1),a.a.removeEventListener("mouseup",a.B,!1),a.a.removeEventListener("touchend",a.B,!1))},wu=function(a){const b=mu(1,0,a.l*Math.PI/180);nu(mu(0,1,a.j*Math.PI/180),a.R);nu(b,a.U);tu(a.aa);ru(a.ba,a.R,a.aa);ru(a.G,a.U,a.ba)},lu=class{constructor(a,b,c,d){this.x=a||0;this.y=b||0;this.a=c||0;this.f=d||1}};var su=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 xu=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 yu=class{constructor(a){this.a=a;this.f=a.createProgram();this.l=uu(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=uu(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.g=a.getUniformLocation(this.f,"Mvpm");a.uniform1i(a.getUniformLocation(this.f,"Texture0"),0);a.useProgram(null)}};var zu=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.g=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 Au=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 Bu={alpha:!1,depth:!0,stencil:!1,antialias:!0,premultipliedAlpha:!1,preserveDrawingBuffer:!1,devicePixelRatio:1},Cu=class extends _.It{constructor(){super();this.o=this.w=this.K=this.I=this.C=this.Z=this.G=this.f=this.a=this.m=null;this.h=new _.R("clpp.vr");this.H=70;this.W=1;this.O=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.g={x:0,y:0};this.R=new xu;this.U=new xu;this.aa=new xu;this.ba=new xu;this.A=this.oa.bind(this);this.B=this.Oa.bind(this);this.J=this.fa.bind(this)}onPlayerCreated(a){this.h.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&&_.Fg(d))this.H=d;else throw new _.H(1,7,7100,"fieldOfView configuration must be a number");if(void 0!==e&&_.Fg(e)&&0<e)this.W=e;else throw new _.H(1,7,7100,"sensitivity configuration must be a positive number");this.M=!!f;this.O=!!c}if(a=a.getSurface())if((d=a.getMedia())&&d.tagName.toLowerCase()===_.u){this.h.info("Initialize VR Surface");if(!this.a){this.a=document.createElement("canvas");this.a.style.width="100%";this.f=this.a.getContext("webgl",Bu)||this.a.getContext("experimental-webgl",
9
+ Bu);if(!this.f)throw new _.H(1,9,9003,"Unable to create GL context");this.G=new xu;tu(this.G);this.Z=new zu(this.f);this.C=new yu(this.f);this.I=new xu;this.K=new xu;this.o=this.w=null;this.a.addEventListener(_.lf,this.F)}a.addElementToContainer(this.a,!0,!0);a.hideMediaElement();b.vr.attachMouseListener&&(this.a.addEventListener("mousedown",this.J,!1),this.a.addEventListener(ku,this.J,!1));this.F();this.V()}else this.h.info("No video element found, can not initialize VR plugin");else this.h.info("No surface found, can not initialize VR plugin")}}onPlayerWillRelease(){this.h.info("Releasing VR plugin resources");
10
+ this.w&&cancelAnimationFrame(this.w);this.g.x=0;this.l=this.j=this.g.y=0;this.f&&(delete this.f,this.f=null);this.a&&(vu(this),this.a.removeEventListener(_.lf,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 _.w(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()===_.u){this.w=requestAnimationFrame(this.V.bind(this));
11
+ var b=this.f;this.o||a.readyState!==a.HAVE_ENOUGH_DATA||(this.o=new Au(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=ru(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.g,!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.g);a=this.o;a.a.bindTexture(a.a.TEXTURE_2D,null);this.C.a.useProgram(null)}}}}fa(a){this.h.debug("Mouse Down. Enable VR mouse interaction");a.preventDefault();if(0===a.button||a.type===ku)a.type===ku?a.touches[0]&&(this.g.x=a.touches[0].clientX,this.g.y=a.touches[0].clientY):(this.g.x=a.clientX,this.g.y=a.clientY),this.h.debug("Mouse Start coordinates:",this.g,a),this.a.addEventListener("mousemove",this.A,!1),this.a.addEventListener(ju,this.A,!1),this.a.addEventListener("mouseup",this.B,!1),this.a.addEventListener("touchend",
14
+ this.B,!1)}oa(a){a.preventDefault();var b=a.clientX;let c=a.clientY;a.type===ju&&a.touches[0]&&(b=a.touches[0].clientX,c=a.touches[0].clientY);a=this.g.x-b;const d=this.g.y-c;this.g.x=b;this.g.y=c;b=this.W;const {Sf:e,Tf:f}={Sf:a*b*(this.M?-1:1),Tf:d*b*(this.O?-1:1)};this.j+=e;this.l+=f;wu(this)}Oa(a){this.h.debug("Mouse Up. Removing mouse interaction listeners");a.preventDefault();vu(this)}Cg(a,b){this.l=b;this.j=a;wu(this)}lg(){return{x:this.j,y:this.l}}Qg(a){this.H=a;this.F()}};
15
+ _.x("clpp.vr.VrPlugin",Cu);Cu.prototype.setCameraFieldOfView=Cu.prototype.Qg;Cu.prototype.getCameraCoordinates=Cu.prototype.lg;Cu.prototype.moveCamera=Cu.prototype.Cg;Cu.Id="vr";_.Ho(new class{create(){return new Cu}});};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 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);
1
+ import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var Rt=" The setting will be ignored.",St="VTT parser encountered an invalid VTT setting: ",Tt="application/x-subrip",Ut="text/srt",Vt='text/vtt; codecs\x3d"vtt"',Wt='text/vtt; codecs\x3d"wvtt"',Xt=function(a){return a.a==a.f.length?null:(a=_.qi(a,/[^ \t\n]*/gm))?a[0]:null},Yt=function(a){_.qi(a,/[ \t]+/gm)},Zt=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},$t=function(a){a=_.qi(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)},bu=function(a,b,c){let d;if(d=/^align:(start|middle|center|end|left|right)$/.exec(b))b=d[1],"middle"==b?a.textAlign=_.Hr:a.textAlign=_.Nr[b.toUpperCase()];else if(d=/^vertical:(lr|rl)$/.exec(b))a.writingMode="lr"==d[1]?_.Vf:_.Wf;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==_.he||b==_.uf?_.he:b==_.ie||b==_.Od?_.ie:
4
+ _.Vc);else if(d=/^region:(.*)$/.exec(b)){if(b=au(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=_.Or[c[2].toUpperCase()]);else if(c=/^line:(-?\d+)(?:,(start|end|center))?$/.exec(b))a.lineInterpretation=_.Jr,a.line=Number(c[1]),c[2]&&(a.lineAlign=_.Or[c[2].toUpperCase()]);else{a=!1;break a}a=!0}return a}return!0},au=function(a,b){a=a.filter(c=>c.id==b);return a.length?a[0]:(_.B("VTT parser could not find a region with id: ",
5
+ b," The region will be ignored."),null)},du=function(a,b,c){let d,e,f;(new _.sl).L("payl",_.nl(g=>{d=_.Wh(g)})).L("iden",_.nl(g=>{e=_.Wh(g)})).L("sttg",_.nl(g=>{f=_.Wh(g)})).parse(a);return d?cu(d,e,f,b,c):null},cu=function(a,b,c,d,e){a=new _.Mr(d,e,a,_.cg);b&&(a.id=b);if(c)for(b=new _.ri(c),c=Xt(b);c;)bu(a,c,[])||_.B(St,c,Rt),Yt(b),c=Xt(b);return a},eu=class{a(a){a=_.Wh(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+=Zt(c)}return _.$h(b)}},fu=class{create(){return new eu}probe(a,b){return(a===Ut||a===Tt)&&b===_.Df}};var gu=class{constructor(a){this.a=a}parseInit(){}parseMedia(a,b){a=_.Wh(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(_.F,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=$t(new _.ri(d[1]));if(null==a)throw new _.H(_.F,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 _.ri(f.replace(/\n/g," "));d=new _.Rr;Xt(e);Yt(e);for(var g=Xt(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||_.B("VTT parser encountered an invalid VTTRegion setting: ",g,Rt);Yt(e);g=Xt(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 _.ri(l[0]);g=$t(d);const q=_.qi(d,/[ \t]+--\x3e[ \t]+/g);k=$t(d);if(null==g||null==q||null==k)throw new _.H(_.F,2,2001);g+=h;k+=h;l=l.slice(1).join("\n").trim();g=new _.Mr(g,k,l,_.cg);e&&(g.id=e);Yt(d);for(k=Xt(d);k;)bu(g,k,c)||_.B(St,k,Rt),Yt(d),k=Xt(d);null!=e&&(g.id=e);c=g}c&&m.push(c)}return{cues:m,styles:f}}};var hu=class extends gu{parseMedia(a,b){return super.parseMedia((new eu).a(a),b)}};var iu=class{constructor(){this.a=null;this.h=new _.R("clpp.vtt.mp4")}parseInit(a){let b=!1;(new _.sl).L(_.ue,_.ll).L(_.Gf,_.ll).L(_.pe,_.ll).$("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(_.te,_.ll).L(_.xf,_.ll).$(_.zf,_.ml).L("wvtt",()=>{b=!0}).parse(a);if(!this.a)throw new _.H(_.F,2,2008);if(!b)throw new _.H(_.F,2,2008);}parseMedia(a,b){if(!this.a)throw this.h.error("No init segment for MP4+VTT!"),
10
+ new _.H(_.F,2,2008);let c=0,d=[],e;const f=[];let g=!1,h=!1,k=!1,l=null;(new _.sl).L("moof",_.ll).L("traf",_.ll).$("tfdt",q=>{g=!0;c=0==q.version?_.P(q.reader):_.gl(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,we:null};v&256&&(E.duration=_.P(q));v&512&&(E.sampleSize=
11
+ _.P(q));v&1024&&q.skip(4);v&2048&&(E.we=0==t?_.P(q):_.fl(q));A.push(E)}d=A}}).L(_.oe,_.nl(q=>{k=!0;e=q})).parse(a);if(!k&&!g&&!h)throw new _.H(_.F,2,2008);a=c;var m=new DataView(e.buffer,e.byteOffset,e.byteLength);m=new _.em(m,!1);for(const q of d){const t=q.duration||l,v=q.we?c+q.we:a;a=v+(t||0);let y=0;do{const A=_.P(m);y+=A;var n=_.P(m);n=_.kl(n);let D=null;"vttc"==n?8<A&&(D=_.il(m,A-8)):("vtte"!=n&&this.h.error("Unknown box "+n+"! Skipping!"),m.skip(A-8));t?D&&f.push(du(D,b.periodStart+v/this.a,
12
+ b.periodStart+a/this.a)):this.h.error("WVTT sample duration unknown, and no default found!")}while(q.sampleSize&&y<q.sampleSize)}return{cues:f.filter(_.rh),styles:[]}}};_.x("clpp.vtt.VttComponent",class extends _.ht{constructor(){super();this.j=new fu}f(){_.rr(_.Df,gu);_.rr(Vt,gu);_.rr(Wt,gu);_.rr(_.wc,iu);_.rr(Ut,hu);_.rr(Tt,hu);_.kj.push(this.j)}a(){_.tr(_.Df);_.tr(Vt);_.tr(Wt);_.tr(_.wc);_.tr(Ut);_.tr(Tt);_.mj(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 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);
1
+ import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var Jt="clpp.npaw.YouboraPlugin",Kt="content.isLive",Lt=function(a,b){if(b.namespace()===_.fd)return a.h.info("Youbora does not report when casting."),!1;const c=b.getConfiguration().youbora;if(!_.Dg(c))return a.h.warn("Youbora plugin is loaded but not configured. Will do nothing."),!1;if(!c.accountCode)return a.h.warn("accountCode key is missing in Youbora config"),b.onError(new _.H(1,9,9101)),!1;if(_.z(window.youbora))return a.h.warn("Youbora SDK not found."),b.onError(new _.H(1,9,
2
+ 9100)),!1;"6.8.49"!==youbora.VERSION&&(a.h.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},Mt=a=>(a=a.getConfiguration().youbora)&&a.errorFilter?a.errorFilter:b=>({code:`${b.code}`,message:b.message,severity:b.severity}),Nt=(a,b,c,d)=>{b=Mt(b)(a);if(!b)return c.debug("Error not sent to Youbora",a.code,a.message),null;a=10003===
3
+ a.code?"ad error":_.Qd;b.severity===_.F?(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 Ot=a=>{class b extends youbora.Adapter{constructor(c){super(c);this.m=c;this.a=new _.Er;this.h=new _.R("clpp.npaw.YouboraAdapter");this.g=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.1-castlabsadapter-js"}getPlayerVersion(){return _.da}registerListeners(){this.m&&this.a&&(this.h.debug("registering listeners"),
5
+ youbora.Util.logAllEvents(this.m),this.a.on(this.m,_.vf,this.I.bind(this)),this.a.on(this.m,_.Qd,this.F.bind(this)),this.a.on(this.m,_.Pf,this.H.bind(this)),this.a.on(this.m,_.Of,this.G.bind(this)),this.a.on(this.m,_.oc,this.B.bind(this)),this.a.on(this.m,_.Rc,this.C.bind(this)))}unregisterListeners(){this.h.debug(_.Kb);_.Xg(this.a)}dispose(){super.dispose()}l(){return this.m.getStats()||_.pn()}o(){return!!this.m.getConfiguration().autoplay}I(c){c=c.detail;this.j("state change",c);if(c)switch(c.currentState){case _.Dn:this.o()&&
6
+ this.f();break;case _.Fn:this.f();this.A();this.fireResume();this.fireBufferEnd();break;case _.En:this.o()&&this.f();this.A();this.fireBufferEnd();this.firePause();break;case _.Cn:this.fireBufferEnd();this.fireStop();break;case _.un:this.fireBufferEnd();this.w&&this.plugin.getAdsAdapter()?this.firePause():this.fireStop();break;case _.xn:this.fireBufferBegin();break;default:this.h.debug("Unhandled state",c)}}f(){this.plugin.isInitiated||(this.g=!1,this.fireInit())}A(){var c=this.m.getDrmInfo();c&&
7
+ (c=c.keySystem,(c=c.startsWith(_.ud)?"Widevine":c.startsWith(_.pd)?"FairPlay":c.match(/^com\.(microsoft|chromecast)\.playready/)?"PlayReady":c.startsWith(_.Ge)?"ClearKey":c.startsWith(_.od)?"Primetime":c)&&this.plugin.setOptions({"content.drm":c}));this.fireJoin()}F(c){!(c=c.detail)||this.g||10003===c.code&&this.plugin.getAdsAdapter()||(c=Nt(c,this.m,this.h,this))&&c.severity===_.F&&(this.g=!0)}H(){this.m.isEnded()||(this.j(_.of),this.f(),this.fireSeekBegin())}G(){this.j(_.nf);this.fireSeekEnd()}B(c){this.h.debug("adsTimeline",
8
+ c);c=c.adsTimeline;this.w=!!c&&c.kb()}C(c){this.h.debug("Casting",c);this.fireCasted()}j(c,...d){this.h.debug(`Reporting "${c}" event to Youbora`,...d)}}return new b(a)};var Pt=a=>{class b extends youbora.Adapter{constructor(c){super(c);this.m=c;this.j=this.a=null;this.f=new _.Er;this.h=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.wb(),this.a.vb(),this.a.jb()));return c}getBitrate(){return this.a&&this.a.jb()}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.h.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.yb()}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.h.debug("is container visible",c);return c}getPlayerName(){return _.pa}getVersion(){return"6.14.1-castlabsadsadapter-js"}getPlayerVersion(){return _.da}registerListeners(){this.m&&
11
+ this.f&&(this.f.on(this.m,_.oc,this.O.bind(this)),this.f.on(this.m,_.kc,this.M.bind(this)),this.f.on(this.m,_.gc,this.I.bind(this)),this.f.on(this.m,_.ic,this.J.bind(this)),this.f.on(this.m,_.bc,this.G.bind(this)),this.f.on(this.m,_.cc,this.o.bind(this,1)),this.f.on(this.m,_.fc,this.o.bind(this,2)),this.f.on(this.m,_.mc,this.o.bind(this,3)),this.f.on(this.m,_.ac,this.F.bind(this)),this.f.on(this.m,_.jc,this.K.bind(this)),this.f.on(this.m,_.Qd,this.H.bind(this)),this.f.on(this.m,_.Xb,this.A.bind(this)),
12
+ this.f.on(this.m,_.Zb,this.B.bind(this)),this.f.on(this.m,_.$b,this.C.bind(this)),this.f.on(this.m,_.hc,this.w.bind(this)))}unregisterListeners(){_.Xg(this.f)}dispose(){super.dispose()}O(c){this.h.debug("ad timeline changed",c);this.j=c.adsTimeline}M(c){this.a=c.ad;this.g("ad start",this.a);this.fireStart();this.fireJoin()}G(){this.g("ad ended");this.fireStop()}I(){this.g("ad pause");this.w();this.firePause()}J(){this.g("ad resume");this.w();this.fireResume()}C(){this.l=!0;this.g("ad buffering started");
13
+ this.fireBufferBegin()}w(){this.l&&(this.g("ad buffering ended"),this.l=!1,this.fireBufferEnd())}o(c){this.g("ad quartile",c);this.fireQuartile(c)}F(){this.g("ad clicked");const c=this.a&&this.a.Ib();this.h.debug("ad click through url: ",c);this.fireClick(c)}K(){this.g("ad skipped");this.fireSkip()}A(c){this.a=c.ad;this.g("ad break start",this.a);this.fireBreakStart()}B(){this.g("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&&Nt(c,this.m,this.h,this)}g(c,...d){this.h.debug(`Reporting "${c}" event to Youbora`,...d)}}return new b(a)};var Qt=class extends _.It{constructor(){super();this.a=null;this.h=new _.R(Jt);this.m=null}se(a){this.a&&(this.a.removeAdsAdapter(),this.a.removeAdapter());if(this.a=a)this.a.setAdapter(Ot(this.m)),this.a.setAdsAdapter(Pt(this.m))}getAdapter(){return this.a&&this.a.getAdapter()}getAdsAdapter(){return this.a&&this.a.getAdsAdapter()}onPlayerCreated(a){this.m=a;Lt(this,a)&&(a=a.getConfiguration().youbora,this.se(new youbora.Plugin(a)))}onContentWillLoad(a,b){if(Lt(this,a)){a=a.getConfiguration();var c=
15
+ a.youbora;void 0===c[Kt]&&(c[Kt]=b.isLive);void 0===c["content.title"]&&(c["content.title"]=b.name);void 0===c.viewerId&&(c.viewerId=a.viewerId);this.a||this.se(new youbora.Plugin(c));this.a.setOptions(c)}}onPlayerWillRelease(){}onPlayerWillDestroy(){}id(){return"youbora"}};_.x(Jt,Qt);Qt.prototype.getAdsAdapter=Qt.prototype.getAdsAdapter;Qt.prototype.getAdapter=Qt.prototype.getAdapter;Qt.prototype.setYouboraPlugin=Qt.prototype.se;Qt.Id="youbora";_.Ho(new class{create(){return new Qt}});};f.call(g, window);
package/clpp.styles.css CHANGED
@@ -160,7 +160,9 @@
160
160
  }
161
161
  .clpp-mc-playlist .clpp-mc-playlist-item video {
162
162
  z-index: 0;
163
+ opacity: 0;
163
164
  }
164
165
  .clpp-mc-playlist .clpp-mc-playlist-item video.clpp-visible {
165
166
  z-index: 1;
167
+ opacity: 1;
166
168
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@castlabs/prestoplay",
3
3
  "description": "PRESTOplay Video Player",
4
- "version": "6.14.0",
4
+ "version": "6.14.1",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/castlabs/prestoplay-web.git"
package/typings.d.ts CHANGED
@@ -3100,8 +3100,18 @@ export namespace clpp {
3100
3100
  TIMELINE_CUE_EXIT = "timeline-cue-exit",
3101
3101
  /**
3102
3102
  * Triggered when a MPD type has changed from dynamic to static.
3103
+ * Note: You can also listen to the {@link clpp.events.LIVE_TURNED_STATIC}
3104
+ * event instead.
3103
3105
  */
3104
3106
  MPD_TYPE_CHANGED = "mpd-type-changed",
3107
+ /**
3108
+ * Triggered when a live stream turned in to a static stream.
3109
+ * In HLS this happens when EXT-X-ENDLIST appears in the playlist
3110
+ * and the playlist stops updating. In DASH this happens when
3111
+ * the type attribute of MPD turns from "dynamic" to "static"
3112
+ * and the manifest stops updating.
3113
+ */
3114
+ LIVE_TURNED_STATIC = "live-turned-static",
3105
3115
  /**
3106
3116
  * Triggered when there is a response from Vimond Session API.
3107
3117
  */
@@ -3401,11 +3411,11 @@ export namespace clpp {
3401
3411
  /**
3402
3412
  * Returns the player surface.
3403
3413
  */
3404
- getSurface(): clpp.IPlayerSurface|null;
3414
+ getSurface(): clpp.IPlayerSurface;
3405
3415
  /**
3406
3416
  * Get the text displayer.
3407
3417
  */
3408
- getTextDisplayer(): clpp.ITextDisplayer;
3418
+ getTextDisplayer(): clpp.ITextDisplayer|null;
3409
3419
  /**
3410
3420
  * Returns an array of timeline cues.
3411
3421
  */
@@ -3417,7 +3427,7 @@ export namespace clpp {
3417
3427
  */
3418
3428
  getTimelineOffset(): clpp.TimelineOffset|null;
3419
3429
  /**
3420
- * Returns track manager.
3430
+ * Returns the track manager.
3421
3431
  */
3422
3432
  getTrackManager(): clpp.TrackManager|null;
3423
3433
  /**
@@ -3426,7 +3436,7 @@ export namespace clpp {
3426
3436
  */
3427
3437
  getVolume(): number|null;
3428
3438
  /**
3429
- * Returns true if playback ended. False otherwise.
3439
+ * Returns true if playback ended, false otherwise.
3430
3440
  */
3431
3441
  isEnded(): boolean;
3432
3442
  /**
@@ -3437,21 +3447,19 @@ export namespace clpp {
3437
3447
  * On the Tizen platform the `http://tizen.org/privilege/tv.audio` privilege
3438
3448
  * is required.
3439
3449
  */
3440
- isMuted(): boolean|null;
3450
+ isMuted(): boolean;
3441
3451
  /**
3442
- * Returns true if playback is paused. False otherwise.
3452
+ * Returns true if playback is paused, false otherwise.
3443
3453
  */
3444
3454
  isPaused(): boolean;
3445
3455
  /**
3446
3456
  * Tell the player to load given content.
3447
- *
3448
3457
  * You may load content by passing a `string`, a {@link clpp.Source}, an array
3449
3458
  * of sources or player configuration. If multiple sources are passed to a
3450
3459
  * `load` method, player will play first source, that can be played on given
3451
3460
  * platform. Please refer to examples below for more details.
3452
- *
3453
- * If the player already playing another source, it will release itself first
3454
- * before loading the new source.
3461
+ * If the player is already playing another source, it will release itself
3462
+ * first before loading the new source.
3455
3463
  *
3456
3464
  * @example // Passing a string
3457
3465
  *
@@ -3658,13 +3666,6 @@ export namespace clpp {
3658
3666
  * });
3659
3667
  */
3660
3668
  setDrmCustomDataModifier(modifier: Function): void;
3661
- /**
3662
- * On the Tizen platform the `http://tizen.org/privilege/tv.audio` privilege
3663
- * is required.
3664
- *
3665
- * @param muted The muted state
3666
- */
3667
- setMuted(muted: boolean): void;
3668
3669
  /**
3669
3670
  * Set the network engine.
3670
3671
  *
@@ -4554,7 +4555,7 @@ export namespace clpp {
4554
4555
  */
4555
4556
  CONTENT_UNSUPPORTED_BY_BROWSER = 4032,
4556
4557
  /**
4557
- * Microsoft smooth streaming invalid manifest XML
4558
+ * Microsoft smooth streaming invalid manifest XML.
4558
4559
  * The {@link clpp.Error#data} property contains an object with the following
4559
4560
  * properties:
4560
4561
  *
@@ -4581,7 +4582,7 @@ export namespace clpp {
4581
4582
  */
4582
4583
  SMOOTH_MEDIA_PROCESSING_ERROR = 4035,
4583
4584
  /**
4584
- * The smooth streaming manifest version is invalid
4585
+ * The smooth streaming manifest version is invalid.
4585
4586
  * The {@link clpp.Error#data} property contains an object with the following
4586
4587
  * properties:
4587
4588
  *
@@ -4845,16 +4846,16 @@ export namespace clpp {
4845
4846
  */
4846
4847
  INVALID_CONTAINER_ELEMENT = 7006,
4847
4848
  /**
4848
- * The provided {@link clpp.PlayerConfiguration} is invalid
4849
+ * The provided {@link clpp.PlayerConfiguration} is invalid.
4849
4850
  */
4850
4851
  INVALID_CONFIGURATION = 7100,
4851
4852
  /**
4852
4853
  * The provided {@link clpp.PlayerConfiguration#license} does not exist
4853
- * or is invalid
4854
+ * or is invalid.
4854
4855
  */
4855
4856
  INVALID_LICENSE = 7101,
4856
4857
  /**
4857
- * No DOM element or element ID was provided when initializing the player
4858
+ * No DOM element or element ID was provided when initializing the player.
4858
4859
  */
4859
4860
  NO_ELEMENT = 7102,
4860
4861
  /**
@@ -4933,7 +4934,7 @@ export namespace clpp {
4933
4934
  */
4934
4935
  GL_CONTEXT_ERROR = 9003,
4935
4936
  /**
4936
- * Error code that indicates that the player not able to compile a shader
4937
+ * Error code that indicates that the player not able to compile a shader.
4937
4938
  */
4938
4939
  GL_SHADER_ERROR = 9004,
4939
4940
  /**
@@ -4989,7 +4990,7 @@ export namespace clpp {
4989
4990
  */
4990
4991
  AD_ERROR = 10003,
4991
4992
  /**
4992
- * Triggered when no container could be found to add a SIMID creative
4993
+ * Triggered when no container could be found to add a SIMID creative.
4993
4994
  */
4994
4995
  SIMID_CONTAINER_MISSING = 10100,
4995
4996
  /**
@@ -6241,9 +6242,8 @@ export namespace clpp {
6241
6242
  */
6242
6243
  append(cues: Array<clpp.text.Cue>, styles: Array<string>): void;
6243
6244
  /**
6244
- * Request that this object be destroyed, releasing all resources.
6245
- * It also shuts down all active operations.
6246
- * Returns a Promise which is resolved when destruction
6245
+ * Request that this object be destroyed, releasing all resources and shutting
6246
+ * down all operations. Returns a Promise which is resolved when destruction
6247
6247
  * is complete. This Promise should never be rejected.
6248
6248
  */
6249
6249
  destroy(): Promise<void>;
@@ -6479,9 +6479,8 @@ export namespace clpp {
6479
6479
  */
6480
6480
  constructor(options: clpp.interstitial.Options);
6481
6481
  /**
6482
- * Request that this object be destroyed, releasing all resources.
6483
- * It also shuts down all active operations.
6484
- * Returns a Promise which is resolved when destruction
6482
+ * Request that this object be destroyed, releasing all resources and shutting
6483
+ * down all operations. Returns a Promise which is resolved when destruction
6485
6484
  * is complete. This Promise should never be rejected.
6486
6485
  */
6487
6486
  destroy(): Promise<void>;
@@ -7417,6 +7416,15 @@ export namespace clpp {
7417
7416
  * for video elements created by this playlist.
7418
7417
  */
7419
7418
  anchorId: string;
7419
+ /**
7420
+ * If true, when one item finishes playback the next item is played
7421
+ * automatically and so on until the end of the playlist.
7422
+ */
7423
+ autoplayNext?: boolean;
7424
+ /**
7425
+ * Default configuration for player instances.
7426
+ */
7427
+ config: clpp.PlayerConfiguration;
7420
7428
  /**
7421
7429
  * If true, preloaded items will have also their media segments preloaded
7422
7430
  * thus reducing the time to start playback to minimum. This option is
@@ -7477,9 +7485,8 @@ export namespace clpp {
7477
7485
  */
7478
7486
  constructor(options: clpp.plist.Options);
7479
7487
  /**
7480
- * Request that this object be destroyed, releasing all resources.
7481
- * It also shuts down all active operations.
7482
- * Returns a Promise which is resolved when destruction
7488
+ * Request that this object be destroyed, releasing all resources and shutting
7489
+ * down all operations. Returns a Promise which is resolved when destruction
7483
7490
  * is complete. This Promise should never be rejected.
7484
7491
  */
7485
7492
  destroy(): Promise<void>;