@castlabs/prestoplay 6.19.1 → 6.20.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.
Files changed (65) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +8 -6
  3. package/cjs/cl.adobe.js +3 -3
  4. package/cjs/cl.airplay.js +3 -3
  5. package/cjs/cl.broadpeak.js +7 -7
  6. package/cjs/cl.cast.js +108 -108
  7. package/cjs/cl.conviva.js +33 -33
  8. package/cjs/cl.core.js +571 -567
  9. package/cjs/cl.crypto.js +9 -9
  10. package/cjs/cl.dash.js +77 -77
  11. package/cjs/cl.externs.js +34 -35
  12. package/cjs/cl.freewheel.js +21 -20
  13. package/cjs/cl.hls.js +71 -70
  14. package/cjs/cl.hlssmpte.js +6 -6
  15. package/cjs/cl.htmlcue.js +29 -28
  16. package/cjs/cl.ima.js +24 -24
  17. package/cjs/cl.mse.js +311 -309
  18. package/cjs/cl.muxdata.js +15 -15
  19. package/cjs/cl.onboard.js +3 -3
  20. package/cjs/cl.persistent.js +13 -13
  21. package/cjs/cl.playlist.js +6 -6
  22. package/cjs/cl.sessions.js +16 -16
  23. package/cjs/cl.simid.js +15 -15
  24. package/cjs/cl.smooth.js +72 -71
  25. package/cjs/cl.thumbnails.js +26 -26
  26. package/cjs/cl.tizen.js +69 -69
  27. package/cjs/cl.ttml.js +29 -28
  28. package/cjs/cl.verimatrix.js +5 -5
  29. package/cjs/cl.vimond.js +13 -12
  30. package/cjs/cl.vr.js +19 -19
  31. package/cjs/cl.vtt.js +14 -14
  32. package/cjs/cl.youbora.js +16 -16
  33. package/cl.adobe.js +3 -3
  34. package/cl.airplay.js +3 -3
  35. package/cl.broadpeak.js +5 -5
  36. package/cl.cast.js +88 -88
  37. package/cl.conviva.js +27 -27
  38. package/cl.core.js +459 -455
  39. package/cl.crypto.js +9 -9
  40. package/cl.dash.js +72 -72
  41. package/cl.externs.js +34 -35
  42. package/cl.freewheel.js +18 -18
  43. package/cl.hls.js +74 -74
  44. package/cl.hlssmpte.js +5 -5
  45. package/cl.htmlcue.js +26 -25
  46. package/cl.ima.js +17 -17
  47. package/cl.mse.js +278 -276
  48. package/cl.muxdata.js +13 -13
  49. package/cl.onboard.js +4 -4
  50. package/cl.persistent.js +10 -10
  51. package/cl.playlist.js +5 -5
  52. package/cl.sessions.js +10 -10
  53. package/cl.simid.js +13 -13
  54. package/cl.smooth.js +59 -59
  55. package/cl.thumbnails.js +19 -19
  56. package/cl.tizen.js +57 -57
  57. package/cl.ttml.js +22 -22
  58. package/cl.verimatrix.js +4 -4
  59. package/cl.vimond.js +8 -9
  60. package/cl.vr.js +14 -14
  61. package/cl.vtt.js +12 -12
  62. package/cl.youbora.js +14 -14
  63. package/clpp.styles.css +0 -8
  64. package/package.json +1 -1
  65. package/typings.d.ts +36 -14
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 gv="touchmove",hv="touchstart",iv=function(a,b){isFinite(b)?(a.x*=b,a.y*=b,a.a*=b):(a.x=0,a.y=0,a.a=0)},jv=function(a,b){return a.x*b.x+a.y*b.y+a.a*b.a},kv=function(a,b,c){const d=b.x,e=b.y;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},lv=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*
2
- 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},nv=function(a){var b=new mv(0,0,0),c=new mv(0,0,1);const d=new mv,e=new mv,f=new mv;a=a.a;var g=new mv(0,1,0);f.x=b.x-g.x;f.y=b.y-g.y;f.a=b.a-g.a;g=f.length();iv(f,1/g);c=kv(d,c,f);g=c.length();iv(c,1/g);kv(e,f,d);a[0]=d.x;a[1]=d.y;a[2]=d.a;a[3]=-jv(d,b);a[4]=e.x;a[5]=e.y;a[6]=e.a;a[7]=-jv(e,b);a[8]=f.x;a[9]=f.y;a[10]=f.a;a[11]=-jv(f,b);a[12]=0;a[13]=0;a[14]=0;a[15]=1},ov=function(a,b,
3
- 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 _.G(1,9,9004,"Unable to compile GL shader: "+a.a.getShaderInfoLog(b));return b},qv=function(a,b,c){c*=.5;const d=Math.sqrt(a*a+b*b),e=Math.sin(c);return new pv(a/d*e,b/d*e,0/d*e,Math.cos(c))},rv=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),
4
- 2*(d*e+c*a),1-2*(c*c+d*d),0,0,0,0,1)},sv=function(a){a.a&&(a.a.removeEventListener("mousemove",a.A,!1),a.a.removeEventListener(gv,a.A,!1),a.a.removeEventListener("mouseup",a.B,!1),a.a.removeEventListener("touchend",a.B,!1))},uv=function(a){const b=qv(1,0,a.l*Math.PI/180);rv(qv(0,1,a.j*Math.PI/180),a.O);rv(b,a.R);nv(a.Y);lv(a.Z,a.O,a.Y);lv(a.G,a.R,a.Z)},mv=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 vv=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,u,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]=u;A[11]=v;A[15]=y;return this}};var wv=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+
5
- 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 xv=class{constructor(a){this.a=a;this.f=a.createProgram();this.l=ov(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=ov(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");
6
- 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 _.G(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 yv=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 pv=class{constructor(a,b,c,d){this.x=a||0;this.y=b||0;this.a=c||0;this.f=d||1}};var zv={alpha:!1,depth:!0,stencil:!1,antialias:!0,premultipliedAlpha:!1,preserveDrawingBuffer:!1,devicePixelRatio:1},Av=class extends _.Fu{constructor(){super();this.o=this.w=this.K=this.I=this.C=this.X=this.G=this.f=this.a=this.m=null;this.g=new _.R("clpp.vr");this.H=70;this.V=1;this.M=this.L=!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.O=new vv;this.R=new vv;this.Y=new vv;this.Z=new vv;this.A=this.da.bind(this);this.B=this.ia.bind(this);this.J=this.ba.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&&_.Yg(d))this.H=d;else throw new _.G(1,7,7100,"fieldOfView configuration must be a number");if(void 0!==e&&_.Yg(e)&&0<e)this.V=e;else throw new _.G(1,7,7100,"sensitivity configuration must be a positive number");this.L=!!f;this.M=!!c}if(a=a.getSurface())if((d=a.getMedia())&&d.tagName.toLowerCase()===_.t){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",zv)||this.a.getContext("experimental-webgl",
9
- zv);if(!this.f)throw new _.G(1,9,9003,"Unable to create GL context");this.G=new vv;nv(this.G);this.X=new wv(this.f);this.C=new xv(this.f);this.I=new vv;this.K=new vv;this.o=this.w=null;this.a.addEventListener(_.xf,this.F)}a.addElementToContainer(this.a,!0,!0);a.hideMediaElement();b.vr.attachMouseListener&&(this.a.addEventListener("mousedown",this.J,!1),this.a.addEventListener(hv,this.J,!1));this.F();this.S()}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&&(sv(this),this.a.removeEventListener(_.xf,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"}S(){if(this.m&&this.f){var a=this.m.getSurface();if(a&&(a=a.getMedia())&&a.tagName.toLowerCase()===_.t){this.w=requestAnimationFrame(this.S.bind(this));
11
- var b=this.f;this.o||a.readyState!==a.HAVE_ENOUGH_DATA||(this.o=new yv(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=lv(this.I,this.K,this.G).a;let d;d=c[1];c[1]=c[4];c[4]=d;d=c[2];c[2]=
1
+ import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var sv="touchmove",uv="touchstart",wv=function(a,b,c){c*=.5;const d=Math.sqrt(a*a+b*b),e=Math.sin(c);return new vv(a/d*e,b/d*e,0/d*e,Math.cos(c))},xv=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)},yv=function(a,b){isFinite(b)?(a.x*=b,a.y*=b,a.a*=b):(a.x=0,a.y=0,a.a=0)},zv=function(a,b){return a.x*b.x+a.y*b.y+a.a*b.a},Av=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},Bv=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},Dv=function(a){var b=new Cv(0,0,0),c=new Cv(0,0,1);const d=new Cv,e=new Cv,f=new Cv;a=a.a;var g=
3
+ new Cv(0,1,0);f.x=b.x-g.x;f.y=b.y-g.y;f.a=b.a-g.a;g=f.length();yv(f,1/g);c=Av(d,c,f);g=c.length();yv(c,1/g);Av(e,f,d);a[0]=d.x;a[1]=d.y;a[2]=d.a;a[3]=-zv(d,b);a[4]=e.x;a[5]=e.y;a[6]=e.a;a[7]=-zv(e,b);a[8]=f.x;a[9]=f.y;a[10]=f.a;a[11]=-zv(f,b);a[12]=0;a[13]=0;a[14]=0;a[15]=1},Ev=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 _.G(1,9,9004,"Unable to compile GL shader: "+
4
+ a.a.getShaderInfoLog(b));return b},Fv=function(a){a.a&&(a.a.removeEventListener("mousemove",a.A,!1),a.a.removeEventListener(sv,a.A,!1),a.a.removeEventListener("mouseup",a.B,!1),a.a.removeEventListener("touchend",a.B,!1))},Gv=function(a){const b=wv(1,0,a.l*Math.PI/180);xv(wv(0,1,a.j*Math.PI/180),a.O);xv(b,a.R);Dv(a.Y);Bv(a.Z,a.O,a.Y);Bv(a.G,a.R,a.Z)},vv=class{constructor(a,b,c,d){this.x=a||0;this.y=b||0;this.a=c||0;this.f=d||1}};var Cv=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 Hv=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,u,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]=u;A[11]=v;A[15]=y;return this}};var Iv=class{constructor(a){this.a=a;this.f=a.createProgram();this.l=Ev(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=Ev(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 _.G(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 Jv=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 Kv=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 Lv={alpha:!1,depth:!0,stencil:!1,antialias:!0,premultipliedAlpha:!1,preserveDrawingBuffer:!1,devicePixelRatio:1},Mv=class extends _.Ru{constructor(){super();this.o=this.w=this.K=this.I=this.C=this.X=this.G=this.f=this.a=this.m=null;this.g=new _.R("clpp.vr");this.H=70;this.V=1;this.M=this.L=!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.O=new Hv;this.R=new Hv;this.Y=new Hv;this.Z=new Hv;this.A=this.da.bind(this);this.B=this.ia.bind(this);this.J=this.ba.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&&_.Wg(d))this.H=d;else throw new _.G(1,7,7100,"fieldOfView configuration must be a number");if(void 0!==e&&_.Wg(e)&&0<e)this.V=e;else throw new _.G(1,7,7100,"sensitivity configuration must be a positive number");this.L=!!f;this.M=!!c}if(a=a.getSurface())if((d=a.getMedia())&&d.tagName.toLowerCase()===_.t){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",Lv)||this.a.getContext("experimental-webgl",
9
+ Lv);if(!this.f)throw new _.G(1,9,9003,"Unable to create GL context");this.G=new Hv;Dv(this.G);this.X=new Jv(this.f);this.C=new Iv(this.f);this.I=new Hv;this.K=new Hv;this.o=this.w=null;this.a.addEventListener(_.xf,this.F)}a.addElementToContainer(this.a,!0,!0);a.hideMediaElement();b.vr.attachMouseListener&&(this.a.addEventListener("mousedown",this.J,!1),this.a.addEventListener(uv,this.J,!1));this.F();this.S()}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&&(Fv(this),this.a.removeEventListener(_.xf,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"}S(){if(this.m&&this.f){var a=this.m.getSurface();if(a&&(a=a.getMedia())&&a.tagName.toLowerCase()===_.t){this.w=requestAnimationFrame(this.S.bind(this));
11
+ var b=this.f;this.o||a.readyState!==a.HAVE_ENOUGH_DATA||(this.o=new Kv(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=Bv(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
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.X;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)}}}}ba(a){this.g.debug("Mouse Down. Enable VR mouse interaction");a.preventDefault();if(0===a.button||a.type===hv)a.type===hv?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(gv,this.A,!1),this.a.addEventListener("mouseup",this.B,!1),this.a.addEventListener("touchend",
14
- this.B,!1)}da(a){a.preventDefault();var b=a.clientX;let c=a.clientY;a.type===gv&&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.V;const {jg:e,kg:f}={jg:a*b*(this.L?-1:1),kg:d*b*(this.M?-1:1)};this.j+=e;this.l+=f;uv(this)}ia(a){this.g.debug("Mouse Up. Removing mouse interaction listeners");a.preventDefault();sv(this)}Zg(a,b){this.l=b;this.j=a;uv(this)}Dg(){return{x:this.j,y:this.l}}rh(a){this.H=a;this.F()}};
15
- _.x("clpp.vr.VrPlugin",Av);Av.prototype.setCameraFieldOfView=Av.prototype.rh;Av.prototype.getCameraCoordinates=Av.prototype.Dg;Av.prototype.moveCamera=Av.prototype.Zg;Av.Id="vr";_.jr(new class{create(){return new Av}});};f.call(g, window);
13
+ 0,a.h);a=this.o;a.a.bindTexture(a.a.TEXTURE_2D,null);this.C.a.useProgram(null)}}}}ba(a){this.g.debug("Mouse Down. Enable VR mouse interaction");a.preventDefault();if(0===a.button||a.type===uv)a.type===uv?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(sv,this.A,!1),this.a.addEventListener("mouseup",this.B,!1),this.a.addEventListener("touchend",
14
+ this.B,!1)}da(a){a.preventDefault();var b=a.clientX;let c=a.clientY;a.type===sv&&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.V;const {mg:e,ng:f}={mg:a*b*(this.L?-1:1),ng:d*b*(this.M?-1:1)};this.j+=e;this.l+=f;Gv(this)}ia(a){this.g.debug("Mouse Up. Removing mouse interaction listeners");a.preventDefault();Fv(this)}bh(a,b){this.l=b;this.j=a;Gv(this)}Gg(){return{x:this.j,y:this.l}}vh(a){this.H=a;this.F()}};
15
+ _.x("clpp.vr.VrPlugin",Mv);Mv.prototype.setCameraFieldOfView=Mv.prototype.vh;Mv.prototype.getCameraCoordinates=Mv.prototype.Gg;Mv.prototype.moveCamera=Mv.prototype.bh;Mv.Id="vr";_.Hq(new class{create(){return new Mv}});};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 Ou=" The setting will be ignored.",Pu="VTT parser encountered an invalid VTT setting: ",Qu="application/x-subrip",Ru="text/srt",Su='text/vtt; codecs\x3d"vtt"',Tu='text/vtt; codecs\x3d"wvtt"',Uu=function(a){return a.a===a.f.length?null:(a=_.Ii(a,/[^ \t\n]*/gm))?a[0]:null},Vu=function(a){_.Ii(a,/[ \t]+/gm)},Wu=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},Xu=function(a){a=_.Ii(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)},Zu=function(a,b,c){let d;if(d=/^align:(start|middle|center|end|left|right)$/.exec(b))b=d[1],"middle"===b?a.textAlign=_.at:a.textAlign=_.gt[b.toUpperCase()];else if(d=/^vertical:(lr|rl)$/.exec(b))a.writingMode="lr"===d[1]?_.kg:_.lg;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===_.je||b===_.Lf?_.je:b===_.le||b===_.Td?
4
- _.le:_.cd);else if(d=/^region:(.*)$/.exec(b)){if(b=Yu(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=_.ht[c[2].toUpperCase()]);else if(c=/^line:(-?\d+)(?:,(start|end|center))?$/.exec(b))a.lineInterpretation=_.ct,a.line=Number(c[1]),c[2]&&(a.lineAlign=_.ht[c[2].toUpperCase()]);else{a=!1;break a}a=!0}return a}return!0},Yu=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)},av=function(a,b,c){let d,e,f;(new _.Tl).N("payl",_.Ol(g=>{d=_.ni(g)})).N("iden",_.Ol(g=>{e=_.ni(g)})).N("sttg",_.Ol(g=>{f=_.ni(g)})).parse(a);return d?$u(d,e,f,b,c):null},$u=function(a,b,c,d,e){a=new _.ft(d,e,a,_.vg);b&&(a.id=b);if(c)for(b=new _.Ji(c),c=Uu(b);c;)Zu(a,c,[])||_.B(Pu,c,Ou),Vu(b),c=Uu(b);return a},bv=class{a(a){a=_.ni(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+=Wu(c)}return _.ri(b)}},cv=class{create(){return new bv}probe(a,b){return(a===Ru||a===Qu)&&b===_.Uf}};var dv=class{constructor(a){this.a=a}parseInit(){}parseMedia(a,b){a=_.ni(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 _.G(_.E,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=Xu(new _.Ji(d[1]));if(null==a)throw new _.G(_.E,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 _.Ji(f.replace(/\n/g," "));d=new _.kt;Uu(e);Vu(e);for(var g=Uu(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,Ou);Vu(e);g=Uu(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 _.Ji(l[0]);g=Xu(d);const q=_.Ii(d,/[ \t]+--\x3e[ \t]+/g);k=Xu(d);if(null==g||null==q||null==k)throw new _.G(_.E,2,2001);g+=h;k+=h;l=l.slice(1).join("\n").trim();g=new _.ft(g,k,l,_.vg);e&&(g.id=e);Vu(d);for(k=Uu(d);k;)Zu(g,k,c)||_.B(Pu,k,Ou),Vu(d),k=Uu(d);null!=e&&(g.id=e);c=g}c&&m.push(c)}return{cues:m,styles:f}}};var ev=class{constructor(){this.a=null;this.g=new _.R("clpp.vtt.mp4")}parseInit(a){let b=!1;(new _.Tl).N(_.Be,_.Ml).N(_.Yf,_.Ml).N(_.we,_.Ml).ca("mdhd",c=>{0===c.version?(c.reader.skip(4),c.reader.skip(4),this.a=_.O(c.reader),c.reader.skip(4)):(c.reader.skip(8),c.reader.skip(8),this.a=_.O(c.reader),c.reader.skip(8));c.reader.skip(4)}).N(_.Ae,_.Ml).N(_.Of,_.Ml).ca(_.Qf,_.Nl).N("wvtt",()=>{b=!0}).parse(a);if(!this.a)throw new _.G(_.E,2,2008);if(!b)throw new _.G(_.E,2,2008);}parseMedia(a,b){if(!this.a)throw this.g.error("No init segment for MP4+VTT!"),
10
- new _.G(_.E,2,2008);let c=0,d=[],e;const f=[];let g=!1,h=!1,k=!1,l=null;(new _.Tl).N("moof",_.Ml).N("traf",_.Ml).ca("tfdt",q=>{g=!0;c=0===q.version?_.O(q.reader):_.Hl(q.reader)}).ca("tfhd",q=>{var u=q.flags;q=q.reader;q.skip(4);u&1&&q.skip(8);u&2&&q.skip(4);l=u&8?_.O(q):null}).ca("trun",q=>{h=!0;{var u=q.version,v=q.flags;q=q.reader;const y=_.O(q);v&1&&q.skip(4);v&4&&q.skip(4);const A=[];for(let D=0;D<y;D++){const M={duration:null,sampleSize:null,Ke:null};v&256&&(M.duration=_.O(q));v&512&&(M.sampleSize=
11
- _.O(q));v&1024&&q.skip(4);v&2048&&(M.Ke=0===u?_.O(q):_.Gl(q));A.push(M)}d=A}}).N(_.ve,_.Ol(q=>{k=!0;e=q})).parse(a);if(!k&&!g&&!h)throw new _.G(_.E,2,2008);a=c;var m=new DataView(e.buffer,e.byteOffset,e.byteLength);m=new _.Fm(m,!1);for(const q of d){const u=q.duration||l,v=q.Ke?c+q.Ke:a;a=v+(u||0);let y=0;do{const A=_.O(m);y+=A;var n=_.O(m);n=_.Ll(n);let D=null;"vttc"===n?8<A&&(D=_.Jl(m,A-8)):("vtte"!==n&&this.g.error("Unknown box "+n+"! Skipping!"),m.skip(A-8));u?D&&f.push(av(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(_.Gh),styles:[]}}};var fv=class extends dv{parseMedia(a,b){return super.parseMedia((new bv).a(a),b)}};_.x("clpp.vtt.VttComponent",class extends _.su{constructor(){super();this.j=new cv}f(){_.bs(_.Uf,dv);_.bs(Su,dv);_.bs(Tu,dv);_.bs(_.Ec,ev);_.bs(Ru,fv);_.bs(Qu,fv);_.Gj.push(this.j)}a(){_.ds(_.Uf);_.ds(Su);_.ds(Tu);_.ds(_.Ec);_.ds(Ru);_.ds(Qu);_.Ij(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 $u=" The setting will be ignored.",av="VTT parser encountered an invalid VTT setting: ",bv="application/x-subrip",cv="text/srt",dv='text/vtt; codecs\x3d"vtt"',ev='text/vtt; codecs\x3d"wvtt"',fv=function(a){return a.a===a.f.length?null:(a=_.Zi(a,/[^ \t\n]*/gm))?a[0]:null},gv=function(a){_.Zi(a,/[ \t]+/gm)},hv=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},iv=function(a){a=_.Zi(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)},kv=function(a,b,c){let d;if(d=/^align:(start|middle|center|end|left|right)$/.exec(b))b=d[1],"middle"===b?a.textAlign=_.Us:a.textAlign=_.$s[b.toUpperCase()];else if(d=/^vertical:(lr|rl)$/.exec(b))a.writingMode="lr"===d[1]?_.ig:_.jg;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===_.Lf?_.he:b===_.ie||b===_.Sd?
4
+ _.ie:_.bd);else if(d=/^region:(.*)$/.exec(b)){if(b=jv(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=_.at[c[2].toUpperCase()]);else if(c=/^line:(-?\d+)(?:,(start|end|center))?$/.exec(b))a.lineInterpretation=_.Ws,a.line=Number(c[1]),c[2]&&(a.lineAlign=_.at[c[2].toUpperCase()]);else{a=!1;break a}a=!0}return a}return!0},jv=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)},mv=function(a,b,c){let d,e,f;(new _.em).N("payl",_.$l(g=>{d=_.Ei(g)})).N("iden",_.$l(g=>{e=_.Ei(g)})).N("sttg",_.$l(g=>{f=_.Ei(g)})).parse(a);return d?lv(d,e,f,b,c):null},lv=function(a,b,c,d,e){a=new _.Zs(d,e,a,_.tg);b&&(a.id=b);if(c)for(b=new _.$i(c),c=fv(b);c;)kv(a,c,[])||_.B(av,c,$u),gv(b),c=fv(b);return a},nv=class{a(a){a=_.Ei(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+=hv(c)}return _.Ii(b)}},ov=class{create(){return new nv}probe(a,b){return(a===cv||a===bv)&&b===_.Uf}};var pv=class{constructor(a){this.a=a}parseInit(){}parseMedia(a,b){a=_.Ei(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 _.G(_.E,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=iv(new _.$i(d[1]));if(null==a)throw new _.G(_.E,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 _.$i(f.replace(/\n/g," "));d=new _.dt;fv(e);gv(e);for(var g=fv(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,$u);gv(e);g=fv(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 _.$i(l[0]);g=iv(d);const q=_.Zi(d,/[ \t]+--\x3e[ \t]+/g);k=iv(d);if(null==g||null==q||null==k)throw new _.G(_.E,2,2001);g+=h;k+=h;l=l.slice(1).join("\n").trim();g=new _.Zs(g,k,l,_.tg);e&&(g.id=e);gv(d);for(k=fv(d);k;)kv(g,k,c)||_.B(av,k,$u),gv(d),k=fv(d);null!=e&&(g.id=e);c=g}c&&m.push(c)}return{cues:m,styles:f}}};var qv=class extends pv{parseMedia(a,b){return super.parseMedia((new nv).a(a),b)}};var rv=class{constructor(){this.a=null;this.g=new _.R("clpp.vtt.mp4")}parseInit(a){let b=!1;(new _.em).N(_.ze,_.Yl).N(_.Xf,_.Yl).N(_.ue,_.Yl).ca("mdhd",c=>{0===c.version?(c.reader.skip(4),c.reader.skip(4),this.a=_.O(c.reader),c.reader.skip(4)):(c.reader.skip(8),c.reader.skip(8),this.a=_.O(c.reader),c.reader.skip(8));c.reader.skip(4)}).N(_.ye,_.Yl).N(_.Of,_.Yl).ca(_.Qf,_.Zl).N("wvtt",()=>{b=!0}).parse(a);if(!this.a)throw new _.G(_.E,2,2008);if(!b)throw new _.G(_.E,2,2008);}parseMedia(a,b){if(!this.a)throw this.g.error("No init segment for MP4+VTT!"),
10
+ new _.G(_.E,2,2008);let c=0,d=[],e;const f=[];let g=!1,h=!1,k=!1,l=null;(new _.em).N("moof",_.Yl).N("traf",_.Yl).ca("tfdt",q=>{g=!0;c=0===q.version?_.O(q.reader):_.Tl(q.reader)}).ca("tfhd",q=>{var u=q.flags;q=q.reader;q.skip(4);u&1&&q.skip(8);u&2&&q.skip(4);l=u&8?_.O(q):null}).ca("trun",q=>{h=!0;{var u=q.version,v=q.flags;q=q.reader;const y=_.O(q);v&1&&q.skip(4);v&4&&q.skip(4);const A=[];for(let D=0;D<y;D++){const H={duration:null,sampleSize:null,Ke:null};v&256&&(H.duration=_.O(q));v&512&&(H.sampleSize=
11
+ _.O(q));v&1024&&q.skip(4);v&2048&&(H.Ke=0===u?_.O(q):_.Sl(q));A.push(H)}d=A}}).N(_.te,_.$l(q=>{k=!0;e=q})).parse(a);if(!k&&!g&&!h)throw new _.G(_.E,2,2008);a=c;var m=new DataView(e.buffer,e.byteOffset,e.byteLength);m=new _.Rm(m,!1);for(const q of d){const u=q.duration||l,v=q.Ke?c+q.Ke:a;a=v+(u||0);let y=0;do{const A=_.O(m);y+=A;var n=_.O(m);n=_.Xl(n);let D=null;"vttc"===n?8<A&&(D=_.Vl(m,A-8)):("vtte"!==n&&this.g.error("Unknown box "+n+"! Skipping!"),m.skip(A-8));u?D&&f.push(mv(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(_.Zh),styles:[]}}};_.x("clpp.vtt.VttComponent",class extends _.qu{constructor(){super();this.j=new ov}f(){_.Es(_.Uf,pv);_.Es(dv,pv);_.Es(ev,pv);_.Es(_.Dc,rv);_.Es(cv,qv);_.Es(bv,qv);_.Wj.push(this.j)}a(){_.Gs(_.Uf);_.Gs(dv);_.Gs(ev);_.Gs(_.Dc);_.Gs(cv);_.Gs(bv);_.Yj(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 Gu="clpp.npaw.YouboraPlugin",Hu="content.isLive",Iu=function(a,b){if(b.namespace()===_.kd)return a.g.info("Youbora does not report when casting."),!1;const c=b.getConfiguration().youbora;if(!_.Wg(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 _.G(1,9,9101)),!1;if(_.z(window.youbora))return a.g.warn("Youbora SDK not found."),b.onError(new _.G(1,9,
2
- 9100)),!1;"6.8.59"!==youbora.VERSION&&(a.g.warn("Youbora SDK version is not supported. The supported version is 6.8.59, found "+`version ${youbora.VERSION}. Some or all features of YouboraPlugin `+"may not work correctly."),b.onError(new _.G(1,9,9102)));return!0},Ju=a=>(a=a.getConfiguration().youbora)&&a.errorFilter?a.errorFilter:b=>({code:`${b.code}`,message:b.message,severity:b.severity}),Ku=(a,b,c,d)=>{b=Ju(b)(a);if(!b)return c.debug("Error not sent to Youbora",a.code,a.message),null;a=10003===
3
- a.code?"ad error":_.Vd;b.severity===_.E?(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 Lu=a=>{class b extends youbora.Adapter{constructor(c){super(c);this.m=c;this.a=new _.Fs;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.ma())&&(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.La())?c.frameRate:null}getPlayerName(){return _.ra}getVersion(){return"6.19.1-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,_.Mf,this.I.bind(this)),this.a.on(this.m,_.Vd,this.F.bind(this)),this.a.on(this.m,_.gg,this.H.bind(this)),this.a.on(this.m,_.fg,this.G.bind(this)),this.a.on(this.m,_.wc,this.B.bind(this)),this.a.on(this.m,_.Zc,this.C.bind(this)))}unregisterListeners(){this.g.debug(_.Pb);_.nh(this.a)}dispose(){super.dispose()}l(){return this.m.getStats()||_.Qn()}o(){return!!this.m.getConfiguration().autoplay}I(c){c=c.detail;this.j("state change",c);if(c)switch(c.currentState){case _.eo:this.o()&&
6
- this.f();break;case _.go:this.f();this.A();this.fireResume();this.fireBufferEnd();break;case _.fo:this.o()&&this.f();this.A();this.fireBufferEnd();this.firePause();break;case _.co:this.fireBufferEnd();this.fireStop();break;case _.Vn:this.fireBufferEnd();this.w&&this.plugin.getAdsAdapter()?this.firePause():this.fireStop();break;case _.Yn: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(_.yd)?"Widevine":c.startsWith(_.ud)?"FairPlay":c.match(/^com\.(microsoft|chromecast)\.playready/)?"PlayReady":c.startsWith(_.Ne)?"ClearKey":c.startsWith(_.td)?"Primetime":c)&&this.plugin.setOptions({"content.drm":c}));this.fireJoin()}F(c){!(c=c.detail)||this.h||10003===c.code&&this.plugin.getAdsAdapter()||(c=Ku(c,this.m,this.g,this))&&c.severity===_.E&&(this.h=!0)}H(){this.m.isEnded()||(this.j(_.Ef),this.f(),this.fireSeekBegin())}G(){this.j(_.Df);this.fireSeekEnd()}B(c){this.g.debug("adsTimeline",
8
- c);c=c.adsTimeline;this.w=!!c&&c.Db()}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 Mu=a=>{class b extends youbora.Adapter{constructor(c){super(c);this.m=c;this.j=this.a=null;this.f=new _.Fs;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.lb(),this.a.kb(),this.a.Za()));return c}getBitrate(){return this.a&&this.a.Za()}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.Ua()){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.nb()}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 _.ra}getVersion(){return"6.19.1-castlabsadsadapter-js"}getPlayerVersion(){return _.da}registerListeners(){this.m&&
11
- this.f&&(this.f.on(this.m,_.wc,this.M.bind(this)),this.f.on(this.m,_.sc,this.L.bind(this)),this.f.on(this.m,_.oc,this.I.bind(this)),this.f.on(this.m,_.qc,this.J.bind(this)),this.f.on(this.m,_.gc,this.G.bind(this)),this.f.on(this.m,_.hc,this.o.bind(this,1)),this.f.on(this.m,_.nc,this.o.bind(this,2)),this.f.on(this.m,_.uc,this.o.bind(this,3)),this.f.on(this.m,_.fc,this.F.bind(this)),this.f.on(this.m,_.rc,this.K.bind(this)),this.f.on(this.m,_.Vd,this.H.bind(this)),this.f.on(this.m,_.cc,this.A.bind(this)),
12
- this.f.on(this.m,_.dc,this.B.bind(this)),this.f.on(this.m,_.ec,this.C.bind(this)),this.f.on(this.m,_.pc,this.w.bind(this)))}unregisterListeners(){_.nh(this.f)}dispose(){super.dispose()}M(c){this.g.debug("ad timeline changed",c);this.j=c.adsTimeline}L(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");
1
+ import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var Su="clpp.npaw.YouboraPlugin",Tu="content.isLive",Uu=function(a,b){if(b.namespace()===_.jd)return a.g.info("Youbora does not report when casting."),!1;const c=b.getConfiguration().youbora;if(!_.Ug(c))return a.g.debug("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 _.G(1,9,9101)),!1;if(_.z(window.youbora))return a.g.warn("Youbora SDK not found."),b.onError(new _.G(1,9,
2
+ 9100)),!1;"6.8.59"!==youbora.VERSION&&(a.g.warn("Youbora SDK version is not supported. The supported version is 6.8.59, found "+`version ${youbora.VERSION}. Some or all features of YouboraPlugin `+"may not work correctly."),b.onError(new _.G(1,9,9102)));return!0},Vu=a=>(a=a.getConfiguration().youbora)&&a.errorFilter?a.errorFilter:b=>({code:`${b.code}`,message:b.message,severity:b.severity}),Wu=(a,b,c,d)=>{b=Vu(b)(a);if(!b)return c.debug("Error not sent to Youbora",a.code,a.message),null;a=10003===
3
+ a.code?"ad error":_.Ud;b.severity===_.E?(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 Xu=a=>{class b extends youbora.Adapter{constructor(c){super(c);this.m=c;this.a=new _.Rs;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.ma())&&(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.Ma())?c.frameRate:null}getPlayerName(){return _.pa}getVersion(){return"6.20.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,_.Mf,this.I.bind(this)),this.a.on(this.m,_.Ud,this.F.bind(this)),this.a.on(this.m,_.fg,this.H.bind(this)),this.a.on(this.m,_.eg,this.G.bind(this)),this.a.on(this.m,_.vc,this.B.bind(this)),this.a.on(this.m,_.Yc,this.C.bind(this)))}unregisterListeners(){this.g.debug(_.Pb);_.ph(this.a)}dispose(){super.dispose()}l(){return this.m.getStats()||_.bo()}o(){return!!this.m.getConfiguration().autoplay}I(c){c=c.detail;this.j("state change",c);if(c)switch(c.currentState){case _.qo:this.o()&&
6
+ this.f();break;case _.so:this.f();this.A();this.fireResume();this.fireBufferEnd();break;case _.ro:this.o()&&this.f();this.A();this.fireBufferEnd();this.firePause();break;case _.po:this.fireBufferEnd();this.fireStop();break;case _.ho:this.fireBufferEnd();this.w&&this.plugin.getAdsAdapter()?this.firePause():this.fireStop();break;case _.ko: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(_.xd)?"Widevine":c.startsWith(_.sd)?"FairPlay":c.match(/^com\.(microsoft|chromecast)\.playready/)?"PlayReady":c.startsWith(_.Le)?"ClearKey":c.startsWith(_.rd)?"Primetime":c)&&this.plugin.setOptions({"content.drm":c}));this.fireJoin()}F(c){!(c=c.detail)||this.h||10003===c.code&&this.plugin.getAdsAdapter()||(c=Wu(c,this.m,this.g,this))&&c.severity===_.E&&(this.h=!0)}H(){this.m.isEnded()||(this.j(_.Ef),this.f(),this.fireSeekBegin())}G(){this.j(_.Df);this.fireSeekEnd()}B(c){this.g.debug("adsTimeline",
8
+ c);c=c.adsTimeline;this.w=!!c&&c.Db()}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 Yu=a=>{class b extends youbora.Adapter{constructor(c){super(c);this.m=c;this.j=this.a=null;this.f=new _.Rs;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.lb(),this.a.kb(),this.a.Za()));return c}getBitrate(){return this.a&&this.a.Za()}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.Va()){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.nb()}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.20.0-castlabsadsadapter-js"}getPlayerVersion(){return _.da}registerListeners(){this.m&&
11
+ this.f&&(this.f.on(this.m,_.vc,this.M.bind(this)),this.f.on(this.m,_.rc,this.L.bind(this)),this.f.on(this.m,_.nc,this.I.bind(this)),this.f.on(this.m,_.pc,this.J.bind(this)),this.f.on(this.m,_.fc,this.G.bind(this)),this.f.on(this.m,_.gc,this.o.bind(this,1)),this.f.on(this.m,_.mc,this.o.bind(this,2)),this.f.on(this.m,_.tc,this.o.bind(this,3)),this.f.on(this.m,_.ec,this.F.bind(this)),this.f.on(this.m,_.qc,this.K.bind(this)),this.f.on(this.m,_.Ud,this.H.bind(this)),this.f.on(this.m,_.bc,this.A.bind(this)),
12
+ this.f.on(this.m,_.cc,this.B.bind(this)),this.f.on(this.m,_.dc,this.C.bind(this)),this.f.on(this.m,_.oc,this.w.bind(this)))}unregisterListeners(){_.ph(this.f)}dispose(){super.dispose()}M(c){this.g.debug("ad timeline changed",c);this.j=c.adsTimeline}L(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
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.xb();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&&Ku(c,this.m,this.g,this)}h(c,...d){this.g.debug(`Reporting "${c}" event to Youbora`,...d)}}return new b(a)};var Nu=class extends _.Fu{constructor(){super();this.a=null;this.g=new _.R(Gu);this.m=null}Fe(a){this.a&&(this.a.removeAdsAdapter(),this.a.removeAdapter());if(this.a=a)this.a.setAdapter(Lu(this.m)),this.a.setAdsAdapter(Mu(this.m))}getAdapter(){return this.a&&this.a.getAdapter()}getAdsAdapter(){return this.a&&this.a.getAdsAdapter()}onPlayerCreated(a){this.m=a;Iu(this,a)&&(a=a.getConfiguration().youbora,this.Fe(new youbora.Plugin(a)))}onContentWillLoad(a,b){if(Iu(this,a)){a=a.getConfiguration();var c=
15
- a.youbora;void 0===c[Hu]&&(c[Hu]=b.isLive);void 0===c["content.title"]&&(c["content.title"]=b.name);void 0===c.viewerId&&(c.viewerId=a.viewerId);this.a||this.Fe(new youbora.Plugin(c));this.a.setOptions(c)}}onPlayerWillRelease(){}onPlayerWillDestroy(){}id(){return"youbora"}};_.x(Gu,Nu);Nu.prototype.getAdsAdapter=Nu.prototype.getAdsAdapter;Nu.prototype.getAdapter=Nu.prototype.getAdapter;Nu.prototype.setYouboraPlugin=Nu.prototype.Fe;Nu.Id="youbora";_.jr(new class{create(){return new Nu}});};f.call(g, window);
14
+ c&&c.fireStop()}}H(c){(c=c.detail)&&10003===c.code&&Wu(c,this.m,this.g,this)}h(c,...d){this.g.debug(`Reporting "${c}" event to Youbora`,...d)}}return new b(a)};var Zu=class extends _.Ru{constructor(){super();this.a=null;this.g=new _.R(Su);this.m=null}Fe(a){this.a&&(this.a.removeAdsAdapter(),this.a.removeAdapter());if(this.a=a)this.a.setAdapter(Xu(this.m)),this.a.setAdsAdapter(Yu(this.m))}getAdapter(){return this.a&&this.a.getAdapter()}getAdsAdapter(){return this.a&&this.a.getAdsAdapter()}onPlayerCreated(a){this.m=a;Uu(this,a)&&(a=a.getConfiguration().youbora,this.Fe(new youbora.Plugin(a)))}onContentWillLoad(a,b){if(Uu(this,a)){a=a.getConfiguration();var c=
15
+ a.youbora;void 0===c[Tu]&&(c[Tu]=b.isLive);void 0===c["content.title"]&&(c["content.title"]=b.name);void 0===c.viewerId&&(c.viewerId=a.viewerId);this.a||this.Fe(new youbora.Plugin(c));this.a.setOptions(c)}}onPlayerWillRelease(){}onPlayerWillDestroy(){}id(){return"youbora"}};_.x(Su,Zu);Zu.prototype.getAdsAdapter=Zu.prototype.getAdsAdapter;Zu.prototype.getAdapter=Zu.prototype.getAdapter;Zu.prototype.setYouboraPlugin=Zu.prototype.Fe;Zu.Id="youbora";_.Hq(new class{create(){return new Zu}});};f.call(g, window);
package/clpp.styles.css CHANGED
@@ -155,14 +155,6 @@
155
155
  width: 100%;
156
156
  height: 100%;
157
157
  }
158
- .clpp-container .secondary {
159
- z-index: 0;
160
- opacity: 0;
161
- }
162
- .clpp-container .secondary {
163
- z-index: 1;
164
- opacity: 1;
165
- }
166
158
 
167
159
  .clpp-mc-playlist {
168
160
  position: absolute;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@castlabs/prestoplay",
3
3
  "description": "PRESTOplay Video Player",
4
- "version": "6.19.1",
4
+ "version": "6.20.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/castlabs/prestoplay-web.git"
package/typings.d.ts CHANGED
@@ -252,6 +252,16 @@ export namespace clpp {
252
252
  useSwitchIntervalForInitialSwitch: boolean;
253
253
  }
254
254
 
255
+ /**
256
+ * Configuration section for the Adobe analytics plugin.
257
+ */
258
+ export type AdobeConfiguration = {
259
+ /**
260
+ * Enables the Adobe analytics plugin.
261
+ */
262
+ enabled?: boolean;
263
+ }
264
+
255
265
  /**
256
266
  * Configuration for ads.
257
267
  */
@@ -1163,6 +1173,10 @@ export namespace clpp {
1163
1173
  * ABR configuration and settings.
1164
1174
  */
1165
1175
  abr?: Partial<clpp.AbrConfiguration>;
1176
+ /**
1177
+ * Adobe analytics plugin configuration.
1178
+ */
1179
+ adobe?: Partial<clpp.AdobeConfiguration>;
1166
1180
  /**
1167
1181
  * Ads configuration.
1168
1182
  */
@@ -1982,7 +1996,7 @@ export namespace clpp {
1982
1996
  * might be invalid. If true, player adds missing tags and fixes
1983
1997
  * timestamps. For now, support is limited to native HLS (Safari).
1984
1998
  */
1985
- addMissingTimelineCues: boolean;
1999
+ addMissingTimelineCues?: boolean;
1986
2000
  /**
1987
2001
  * Defaults to false.
1988
2002
  *
@@ -2386,6 +2400,11 @@ export namespace clpp {
2386
2400
  * if it is defined in {@link clpp.PlayerConfiguration}.
2387
2401
  */
2388
2402
  configurationId?: string;
2403
+ /**
2404
+ * A map containing custom attributes of the EXT-X-DATERANGE HLS tag
2405
+ * (aka client-defined attributes) in case this cue comes from HLS.
2406
+ */
2407
+ customAttributes?: Record<string, any>;
2389
2408
  /**
2390
2409
  * The presentation time (in seconds) that the cue should end.
2391
2410
  * Allowed values follow the same rules as startTime. It is possible
@@ -3025,6 +3044,10 @@ export namespace clpp {
3025
3044
  * Identifies mp4 files
3026
3045
  */
3027
3046
  MP4 = "video/mp4",
3047
+ /**
3048
+ * Identifies mp3 files
3049
+ */
3050
+ MP3 = "audio/mp3",
3028
3051
  }
3029
3052
 
3030
3053
  /**
@@ -3512,10 +3535,9 @@ export namespace clpp {
3512
3535
  * configuration that contains the castlabs license and all configuration
3513
3536
  * properties that will be applied to all playback sessions.
3514
3537
  *
3515
- * @param element The media element or the ID of the
3516
- * media element
3517
- * @param opt_configuration The global
3518
- * player configuration
3538
+ * @param element The media element or the ID of the media element.
3539
+ * @param opt_configuration The global player configuration. It must not contain
3540
+ * the `source` attribute.
3519
3541
  * @param opt_viewConfiguration The global player view configuration.
3520
3542
  */
3521
3543
  constructor(element: HTMLMediaElement|string, opt_configuration?: clpp.PlayerConfiguration, opt_viewConfiguration?: clpp.PlayerSurfaceConfiguration);
@@ -3674,9 +3696,11 @@ export namespace clpp {
3674
3696
  /**
3675
3697
  * Tell the player to load given content.
3676
3698
  * You may load content by passing a `string`, a {@link clpp.Source}, an array
3677
- * of sources or player configuration. If multiple sources are passed to a
3678
- * `load` method, player will play first source, that can be played on given
3679
- * platform. Please refer to examples below for more details.
3699
+ * of sources or player configuration. In case of player configuration it
3700
+ * must not contain the `license` attribute.
3701
+ * If multiple sources are passed to the `load` method, the player will play
3702
+ * the first source which is playable on that platform. Please refer to
3703
+ * the examples below for more details.
3680
3704
  * If the player is already playing another source, it will release itself
3681
3705
  * first before loading the new source.
3682
3706
  *
@@ -4127,7 +4151,6 @@ export namespace clpp {
4127
4151
  */
4128
4152
  bandwidth: number|null;
4129
4153
  codec: string|null;
4130
- drmInfo: string|null;
4131
4154
  /**
4132
4155
  * The height in pixel of this track if this is a video track and
4133
4156
  * information about the size is available
@@ -5630,8 +5653,7 @@ export namespace clpp {
5630
5653
  * will not be available, but the proxy will still function otherwise.
5631
5654
  * @param onResumeLocal Callback function to add specific logic that should be
5632
5655
  * executed after session ends. If not provided, default callback
5633
- * implementation will start playback locally, unless we were in ENDED/IDLE
5634
- * state.
5656
+ * implementation is used.
5635
5657
  */
5636
5658
  constructor(player: clpp.Player, receiverAppId: string, onResumeLocal?: Function);
5637
5659
  /**
@@ -6647,17 +6669,17 @@ export namespace clpp {
6647
6669
  /**
6648
6670
  * Returns the instance of the ad container.
6649
6671
  */
6650
- getAdContainer(): Element;
6672
+ getAdContainer(): Element|null;
6651
6673
  /**
6652
6674
  * Returns the instance of the ad display container.
6653
6675
  * {@link https://developers.google.com/interactive-media-ads/docs/sdks/html5/client-side/reference/js/google.ima.AdDisplayContainer | google.ima.AdDisplayContainer}
6654
6676
  */
6655
- getAdDisplayContainer(): any;
6677
+ getAdDisplayContainer(): any|null;
6656
6678
  /**
6657
6679
  * Returns the instance of the ads loader.
6658
6680
  * {@link https://developers.google.com/interactive-media-ads/docs/sdks/html5/client-side/reference/js/google.ima.AdsLoader | google.ima.AdsLoader}
6659
6681
  */
6660
- getAdsLoader(): any;
6682
+ getAdsLoader(): any|null;
6661
6683
  /**
6662
6684
  * Check if Client Side IMA SDK is available.
6663
6685
  */