@castlabs/prestoplay 6.15.0 → 6.16.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 (61) hide show
  1. package/CHANGELOG.md +13 -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 +114 -114
  6. package/cjs/cl.conviva.js +33 -33
  7. package/cjs/cl.core.js +546 -544
  8. package/cjs/cl.crypto.js +9 -9
  9. package/cjs/cl.dash.js +74 -74
  10. package/cjs/cl.externs.js +57 -55
  11. package/cjs/cl.freewheel.js +24 -24
  12. package/cjs/cl.hls.js +69 -69
  13. package/cjs/cl.hlssmpte.js +6 -6
  14. package/cjs/cl.htmlcue.js +29 -29
  15. package/cjs/cl.ima.js +24 -24
  16. package/cjs/cl.mse.js +368 -289
  17. package/cjs/cl.muxdata.js +15 -15
  18. package/cjs/cl.onboard.js +3 -3
  19. package/cjs/cl.persistent.js +14 -14
  20. package/cjs/cl.playlist.js +6 -6
  21. package/cjs/cl.simid.js +15 -15
  22. package/cjs/cl.smooth.js +72 -72
  23. package/cjs/cl.thumbnails.js +26 -26
  24. package/cjs/cl.tizen.js +71 -71
  25. package/cjs/cl.ttml.js +28 -28
  26. package/cjs/cl.verimatrix.js +5 -5
  27. package/cjs/cl.vimond.js +13 -13
  28. package/cjs/cl.vr.js +19 -19
  29. package/cjs/cl.vtt.js +14 -14
  30. package/cjs/cl.youbora.js +20 -20
  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 +89 -89
  35. package/cl.conviva.js +27 -27
  36. package/cl.core.js +452 -452
  37. package/cl.crypto.js +9 -9
  38. package/cl.dash.js +69 -69
  39. package/cl.externs.js +57 -55
  40. package/cl.freewheel.js +19 -19
  41. package/cl.hls.js +71 -71
  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 +318 -255
  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/package.json +1 -1
  61. package/typings.d.ts +46 -0
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 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 _.G(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.T);Tu(a.$);Ru(a.aa,a.R,a.$);Ru(a.G,a.T,a.aa)},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,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 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 _.G(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 $u=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 av={alpha:!1,depth:!0,stencil:!1,antialias:!0,premultipliedAlpha:!1,preserveDrawingBuffer:!1,devicePixelRatio:1},bv=class extends _.hu{constructor(){super();this.o=this.w=this.K=this.I=this.C=this.X=this.G=this.f=this.a=this.m=null;this.h=new _.Q("clpp.vr");this.H=70;this.W=1;this.N=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.g={x:0,y:0};this.R=new Xu;this.T=new Xu;this.$=new Xu;this.aa=new Xu;this.A=this.ha.bind(this);this.B=this.Fa.bind(this);this.J=this.ea.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&&_.Sg(d))this.H=d;else throw new _.G(1,7,7100,"fieldOfView configuration must be a number");if(void 0!==e&&_.Sg(e)&&0<e)this.W=e;else throw new _.G(1,7,7100,"sensitivity configuration must be a positive number");this.L=!!f;this.N=!!c}if(a=a.getSurface())if((d=a.getMedia())&&d.tagName.toLowerCase()===_.t){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",av)||this.a.getContext("experimental-webgl",
9
- av);if(!this.f)throw new _.G(1,9,9003,"Unable to create GL context");this.G=new Xu;Tu(this.G);this.X=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(_.uf,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.U()}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(_.uf,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"}U(){if(this.m&&this.f){var a=this.m.getSurface();if(a&&(a=a.getMedia())&&a.tagName.toLowerCase()===_.t){this.w=requestAnimationFrame(this.U.bind(this));
11
- var b=this.f;this.o||a.readyState!==a.HAVE_ENOUGH_DATA||(this.o=new $u(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.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.g);a=this.o;a.a.bindTexture(a.a.TEXTURE_2D,null);this.C.a.useProgram(null)}}}}ea(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)}ha(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 {eg:e,fg:f}={eg:a*b*(this.L?-1:1),fg:d*b*(this.N?-1:1)};this.j+=e;this.l+=f;Wu(this)}Fa(a){this.h.debug("Mouse Up. Removing mouse interaction listeners");a.preventDefault();Vu(this)}Vg(a,b){this.l=b;this.j=a;Wu(this)}yg(){return{x:this.j,y:this.l}}ih(a){this.H=a;this.F()}};
15
- _.x("clpp.vr.VrPlugin",bv);bv.prototype.setCameraFieldOfView=bv.prototype.ih;bv.prototype.getCameraCoordinates=bv.prototype.yg;bv.prototype.moveCamera=bv.prototype.Vg;bv.Id="vr";_.Vo(new class{create(){return new bv}});};f.call(g, window);
1
+ import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var Ku="touchmove",Lu="touchstart",Nu=function(a,b,c){c*=.5;const d=Math.sqrt(a*a+b*b),e=Math.sin(c);return new Mu(a/d*e,b/d*e,0/d*e,Math.cos(c))},Ou=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)},Pu=function(a,b){isFinite(b)?(a.x*=b,a.y*=b,a.a*=b):(a.x=0,a.y=0,a.a=0)},Qu=function(a,b){return a.x*b.x+a.y*b.y+a.a*b.a},Ru=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},Su=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},Uu=function(a){var b=new Tu(0,0,0),c=new Tu(0,0,1);const d=new Tu,e=new Tu,f=new Tu;a=a.a;var g=
3
+ new Tu(0,1,0);f.x=b.x-g.x;f.y=b.y-g.y;f.a=b.a-g.a;g=f.length();Pu(f,1/g);c=Ru(d,c,f);g=c.length();Pu(c,1/g);Ru(e,f,d);a[0]=d.x;a[1]=d.y;a[2]=d.a;a[3]=-Qu(d,b);a[4]=e.x;a[5]=e.y;a[6]=e.a;a[7]=-Qu(e,b);a[8]=f.x;a[9]=f.y;a[10]=f.a;a[11]=-Qu(f,b);a[12]=0;a[13]=0;a[14]=0;a[15]=1},Vu=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},Wu=function(a){a.a&&(a.a.removeEventListener("mousemove",a.A,!1),a.a.removeEventListener(Ku,a.A,!1),a.a.removeEventListener("mouseup",a.C,!1),a.a.removeEventListener("touchend",a.C,!1))},Xu=function(a){const b=Nu(1,0,a.l*Math.PI/180);Ou(Nu(0,1,a.j*Math.PI/180),a.R);Ou(b,a.S);Uu(a.Z);Su(a.aa,a.R,a.Z);Su(a.G,a.S,a.aa)},Mu=class{constructor(a,b,c,d){this.x=a||0;this.y=b||0;this.a=c||0;this.f=d||1}};var Tu=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 Yu=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,r,v,u,y){const C=this.a;C[0]=a;C[4]=b;C[8]=c;C[12]=d;C[1]=e;C[5]=f;C[9]=g;C[13]=h;C[2]=k;C[6]=l;C[10]=m;C[14]=n;C[3]=r;C[7]=v;C[11]=u;C[15]=y;return this}};var Zu=class{constructor(a){this.a=a;this.f=a.createProgram();this.l=Vu(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=Vu(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 $u=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 av=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 bv={alpha:!1,depth:!0,stencil:!1,antialias:!0,premultipliedAlpha:!1,preserveDrawingBuffer:!1,devicePixelRatio:1},cv=class extends _.iu{constructor(){super();this.o=this.w=this.K=this.I=this.D=this.Y=this.G=this.f=this.a=this.m=null;this.g=new _.S("clpp.vr");this.H=70;this.X=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 Yu;this.S=new Yu;this.Z=new Yu;this.aa=new Yu;this.A=this.ga.bind(this);this.C=this.Ea.bind(this);this.J=this.da.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&&_.Tg(d))this.H=d;else throw new _.H(1,7,7100,"fieldOfView configuration must be a number");if(void 0!==e&&_.Tg(e)&&0<e)this.X=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",bv)||this.a.getContext("experimental-webgl",
9
+ bv);if(!this.f)throw new _.H(1,9,9003,"Unable to create GL context");this.G=new Yu;Uu(this.G);this.Y=new $u(this.f);this.D=new Zu(this.f);this.I=new Yu;this.K=new Yu;this.o=this.w=null;this.a.addEventListener(_.uf,this.F)}a.addElementToContainer(this.a,!0,!0);a.hideMediaElement();b.vr.attachMouseListener&&(this.a.addEventListener("mousedown",this.J,!1),this.a.addEventListener(Lu,this.J,!1));this.F();this.T()}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&&(Wu(this),this.a.removeEventListener(_.uf,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"}T(){if(this.m&&this.f){var a=this.m.getSurface();if(a&&(a=a.getMedia())&&a.tagName.toLowerCase()===_.w){this.w=requestAnimationFrame(this.T.bind(this));
11
+ var b=this.f;this.o||a.readyState!==a.HAVE_ENOUGH_DATA||(this.o=new av(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.D;c.a.useProgram(c.f);{c=Su(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.D.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.Y;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.D.a.useProgram(null)}}}}da(a){this.g.debug("Mouse Down. Enable VR mouse interaction");a.preventDefault();if(0===a.button||a.type===Lu)a.type===Lu?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(Ku,this.A,!1),this.a.addEventListener("mouseup",this.C,!1),this.a.addEventListener("touchend",
14
+ this.C,!1)}ga(a){a.preventDefault();var b=a.clientX;let c=a.clientY;a.type===Ku&&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.X;const {hg:e,ig:f}={hg:a*b*(this.M?-1:1),ig:d*b*(this.N?-1:1)};this.j+=e;this.l+=f;Xu(this)}Ea(a){this.g.debug("Mouse Up. Removing mouse interaction listeners");a.preventDefault();Wu(this)}Xg(a,b){this.l=b;this.j=a;Xu(this)}Bg(){return{x:this.j,y:this.l}}ih(a){this.H=a;this.F()}};
15
+ _.z("clpp.vr.VrPlugin",cv);cv.prototype.setCameraFieldOfView=cv.prototype.ih;cv.prototype.getCameraCoordinates=cv.prototype.Bg;cv.prototype.moveCamera=cv.prototype.Xg;cv.Id="vr";_.Wo(new class{create(){return new cv}});};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 qu=" The setting will be ignored.",ru="VTT parser encountered an invalid VTT setting: ",su="application/x-subrip",tu="text/srt",uu='text/vtt; codecs\x3d"vtt"',vu='text/vtt; codecs\x3d"wvtt"',wu=function(a){return a.a===a.f.length?null:(a=_.Ei(a,/[^ \t\n]*/gm))?a[0]:null},xu=function(a){_.Ei(a,/[ \t]+/gm)},yu=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},zu=function(a){a=_.Ei(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=_.ds:a.textAlign=_.js[b.toUpperCase()];else if(d=/^vertical:(lr|rl)$/.exec(b))a.writingMode="lr"===d[1]?_.hg:_.ig;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===_.me||b===_.Hf?_.me:b===_.ne||b===_.Td?
4
- _.ne:_.$c);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=_.ks[c[2].toUpperCase()]);else if(c=/^line:(-?\d+)(?:,(start|end|center))?$/.exec(b))a.lineInterpretation=_.fs,a.line=Number(c[1]),c[2]&&(a.lineAlign=_.ks[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 _.Gl).M("payl",_.Bl(g=>{d=_.ji(g)})).M("iden",_.Bl(g=>{e=_.ji(g)})).M("sttg",_.Bl(g=>{f=_.ji(g)})).parse(a);return d?Cu(d,e,f,b,c):null},Cu=function(a,b,c,d,e){a=new _.is(d,e,a,_.pg);b&&(a.id=b);if(c)for(b=new _.Fi(c),c=wu(b);c;)Bu(a,c,[])||_.B(ru,c,qu),xu(b),c=wu(b);return a},Eu=class{a(a){a=_.ji(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+=yu(c)}return _.ni(b)}},Fu=class{create(){return new Eu}probe(a,b){return(a===tu||a===su)&&b===_.Qf}};var Gu=class{constructor(a){this.a=a}parseInit(){}parseMedia(a,b){a=_.ji(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=zu(new _.Fi(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 _.Fi(f.replace(/\n/g," "));d=new _.ns;wu(e);xu(e);for(var g=wu(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,qu);xu(e);g=wu(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 _.Fi(l[0]);g=zu(d);const q=_.Ei(d,/[ \t]+--\x3e[ \t]+/g);k=zu(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 _.is(g,k,l,_.pg);e&&(g.id=e);xu(d);for(k=wu(d);k;)Bu(g,k,c)||_.B(ru,k,qu),xu(d),k=wu(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 _.Q("clpp.vtt.mp4")}parseInit(a){let b=!1;(new _.Gl).M(_.ze,_.zl).M(_.Tf,_.zl).M(_.ue,_.zl).ba("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)}).M(_.ye,_.zl).M(_.Kf,_.zl).ba(_.Mf,_.Al).M("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.h.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 _.Gl).M("moof",_.zl).M("traf",_.zl).ba("tfdt",q=>{g=!0;c=0===q.version?_.O(q.reader):_.ul(q.reader)}).ba("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}).ba("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,Fe:null};v&256&&(M.duration=_.O(q));v&512&&(M.sampleSize=
11
- _.O(q));v&1024&&q.skip(4);v&2048&&(M.Fe=0===u?_.O(q):_.tl(q));A.push(M)}d=A}}).M(_.te,_.Bl(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 _.sm(m,!1);for(const q of d){const u=q.duration||l,v=q.Fe?c+q.Fe:a;a=v+(u||0);let y=0;do{const A=_.O(m);y+=A;var n=_.O(m);n=_.yl(n);let D=null;"vttc"===n?8<A&&(D=_.wl(m,A-8)):("vtte"!==n&&this.h.error("Unknown box "+n+"! Skipping!"),m.skip(A-8));u?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(_.Fh),styles:[]}}};_.x("clpp.vtt.VttComponent",class extends _.Ft{constructor(){super();this.j=new Fu}f(){_.Or(_.Qf,Gu);_.Or(uu,Gu);_.Or(vu,Gu);_.Or(_.Bc,Iu);_.Or(tu,Hu);_.Or(su,Hu);_.yj.push(this.j)}a(){_.Qr(_.Qf);_.Qr(uu);_.Qr(vu);_.Qr(_.Bc);_.Qr(tu);_.Qr(su);_.Aj(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 ru=" The setting will be ignored.",su="VTT parser encountered an invalid VTT setting: ",tu="application/x-subrip",uu="text/srt",vu='text/vtt; codecs\x3d"vtt"',wu='text/vtt; codecs\x3d"wvtt"',xu=function(a){return a.a===a.f.length?null:(a=_.Fi(a,/[^ \t\n]*/gm))?a[0]:null},yu=function(a){_.Fi(a,/[ \t]+/gm)},zu=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},Au=function(a){a=_.Fi(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)},Cu=function(a,b,c){let d;if(d=/^align:(start|middle|center|end|left|right)$/.exec(b))b=d[1],"middle"===b?a.textAlign=_.cs:a.textAlign=_.ks[b.toUpperCase()];else if(d=/^vertical:(lr|rl)$/.exec(b))a.writingMode="lr"===d[1]?_.dg:_.eg;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===_.If?_.he:b===_.ie||b===_.Td?
4
+ _.ie:_.$c);else if(d=/^region:(.*)$/.exec(b)){if(b=Bu(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=_.ls[c[2].toUpperCase()]);else if(c=/^line:(-?\d+)(?:,(start|end|center))?$/.exec(b))a.lineInterpretation=_.es,a.line=Number(c[1]),c[2]&&(a.lineAlign=_.ls[c[2].toUpperCase()]);else{a=!1;break a}a=!0}return a}return!0},Bu=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)},Eu=function(a,b,c){let d,e,f;(new _.Hl).L("payl",_.Cl(g=>{d=_.ki(g)})).L("iden",_.Cl(g=>{e=_.ki(g)})).L("sttg",_.Cl(g=>{f=_.ki(g)})).parse(a);return d?Du(d,e,f,b,c):null},Du=function(a,b,c,d,e){a=new _.js(d,e,a,_.lg);b&&(a.id=b);if(c)for(b=new _.Gi(c),c=xu(b);c;)Cu(a,c,[])||_.B(su,c,ru),yu(b),c=xu(b);return a},Fu=class{a(a){a=_.ki(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+=zu(c)}return _.oi(b)}},Gu=class{create(){return new Fu}probe(a,b){return(a===uu||a===tu)&&b===_.Rf}};var Hu=class{constructor(a){this.a=a}parseInit(){}parseMedia(a,b){a=_.ki(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(_.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=Au(new _.Gi(d[1]));if(null==a)throw new _.H(_.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 _.Gi(f.replace(/\n/g," "));d=new _.os;xu(e);yu(e);for(var g=xu(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,ru);yu(e);g=xu(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 _.Gi(l[0]);g=Au(d);const r=_.Fi(d,/[ \t]+--\x3e[ \t]+/g);k=Au(d);if(null==g||null==r||null==k)throw new _.H(_.E,2,2001);g+=h;k+=h;l=l.slice(1).join("\n").trim();g=new _.js(g,k,l,_.lg);e&&(g.id=e);yu(d);for(k=xu(d);k;)Cu(g,k,c)||_.B(su,k,ru),yu(d),k=xu(d);null!=e&&(g.id=e);c=g}c&&m.push(c)}return{cues:m,styles:f}}};var Iu=class extends Hu{parseMedia(a,b){return super.parseMedia((new Fu).a(a),b)}};var Ju=class{constructor(){this.a=null;this.g=new _.S("clpp.vtt.mp4")}parseInit(a){let b=!1;(new _.Hl).L(_.ye,_.Q).L(_.Uf,_.Q).L(_.qe,_.Q).ba("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(_.xe,_.Q).L(_.Lf,_.Q).ba(_.Nf,_.Bl).L("wvtt",()=>{b=!0}).parse(a);if(!this.a)throw new _.H(_.E,2,2008);if(!b)throw new _.H(_.E,2,2008);}parseMedia(a,b){if(!this.a)throw this.g.error("No init segment for MP4+VTT!"),
10
+ new _.H(_.E,2,2008);let c=0,d=[],e;const f=[];let g=!1,h=!1,k=!1,l=null;(new _.Hl).L("moof",_.Q).L("traf",_.Q).ba("tfdt",r=>{g=!0;c=0===r.version?_.P(r.reader):_.wl(r.reader)}).ba("tfhd",r=>{var v=r.flags;r=r.reader;r.skip(4);v&1&&r.skip(8);v&2&&r.skip(4);l=v&8?_.P(r):null}).ba("trun",r=>{h=!0;{var v=r.version,u=r.flags;r=r.reader;const y=_.P(r);u&1&&r.skip(4);u&4&&r.skip(4);const C=[];for(let F=0;F<y;F++){const N={duration:null,sampleSize:null,Ne:null};u&256&&(N.duration=_.P(r));u&512&&(N.sampleSize=
11
+ _.P(r));u&1024&&r.skip(4);u&2048&&(N.Ne=0===v?_.P(r):_.vl(r));C.push(N)}d=C}}).L(_.pe,_.Cl(r=>{k=!0;e=r})).parse(a);if(!k&&!g&&!h)throw new _.H(_.E,2,2008);a=c;var m=new DataView(e.buffer,e.byteOffset,e.byteLength);m=new _.qm(m,!1);for(const r of d){const v=r.duration||l,u=r.Ne?c+r.Ne:a;a=u+(v||0);let y=0;do{const C=_.P(m);y+=C;var n=_.P(m);n=_.Al(n);let F=null;"vttc"===n?8<C&&(F=_.yl(m,C-8)):("vtte"!==n&&this.g.error("Unknown box "+n+"! Skipping!"),m.skip(C-8));v?F&&f.push(Eu(F,b.periodStart+u/this.a,
12
+ b.periodStart+a/this.a)):this.g.error("WVTT sample duration unknown, and no default found!")}while(r.sampleSize&&y<r.sampleSize)}return{cues:f.filter(_.Eh),styles:[]}}};_.z("clpp.vtt.VttComponent",class extends _.Gt{constructor(){super();this.j=new Gu}f(){_.Nr(_.Rf,Hu);_.Nr(vu,Hu);_.Nr(wu,Hu);_.Nr(_.Bc,Ju);_.Nr(uu,Iu);_.Nr(tu,Iu);_.zj.push(this.j)}a(){_.Pr(_.Rf);_.Pr(vu);_.Pr(wu);_.Pr(_.Bc);_.Pr(uu);_.Pr(tu);_.Bj(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 iu="clpp.npaw.YouboraPlugin",ju="content.isLive",ku=function(a,b){if(b.namespace()===_.kd)return a.h.info("Youbora does not report when casting."),!1;const c=b.getConfiguration().youbora;if(!_.Qg(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 _.G(1,9,9101)),!1;if(_.z(window.youbora))return a.h.warn("Youbora SDK not found."),b.onError(new _.G(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 _.G(1,9,9102)));return!0},lu=a=>(a=a.getConfiguration().youbora)&&a.errorFilter?a.errorFilter:b=>({code:`${b.code}`,message:b.message,severity:b.severity}),mu=(a,b,c,d)=>{b=lu(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 nu=a=>{class b extends youbora.Adapter{constructor(c){super(c);this.m=c;this.a=new _.as;this.h=new _.Q("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.Ca())?c.frameRate:null}getPlayerName(){return _.ra}getVersion(){return"6.15.0-castlabsadapter-js"}getPlayerVersion(){return _.fa}registerListeners(){this.m&&this.a&&(this.h.debug("registering listeners"),
5
- youbora.Util.logAllEvents(this.m),this.a.on(this.m,_.If,this.I.bind(this)),this.a.on(this.m,_.Vd,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,_.tc,this.B.bind(this)),this.a.on(this.m,_.Wc,this.C.bind(this)))}unregisterListeners(){this.h.debug(_.Ob);_.kh(this.a)}dispose(){super.dispose()}l(){return this.m.getStats()||_.Dn()}o(){return!!this.m.getConfiguration().autoplay}I(c){c=c.detail;this.j("state change",c);if(c)switch(c.currentState){case _.Rn:this.o()&&
6
- this.f();break;case _.Tn:this.f();this.A();this.fireResume();this.fireBufferEnd();break;case _.Sn:this.o()&&this.f();this.A();this.fireBufferEnd();this.firePause();break;case _.Qn:this.fireBufferEnd();this.fireStop();break;case _.In:this.fireBufferEnd();this.w&&this.plugin.getAdsAdapter()?this.firePause():this.fireStop();break;case _.Ln: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(_.yd)?"Widevine":c.startsWith(_.ud)?"FairPlay":c.match(/^com\.(microsoft|chromecast)\.playready/)?"PlayReady":c.startsWith(_.Le)?"ClearKey":c.startsWith(_.td)?"Primetime":c)&&this.plugin.setOptions({"content.drm":c}));this.fireJoin()}F(c){!(c=c.detail)||this.g||10003===c.code&&this.plugin.getAdsAdapter()||(c=mu(c,this.m,this.h,this))&&c.severity===_.E&&(this.g=!0)}H(){this.m.isEnded()||(this.j(_.Bf),this.f(),this.fireSeekBegin())}G(){this.j(_.Af);this.fireSeekEnd()}B(c){this.h.debug("adsTimeline",
8
- c);c=c.adsTimeline;this.w=!!c&&c.lb()}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 ou=a=>{class b extends youbora.Adapter{constructor(c){super(c);this.m=c;this.j=this.a=null;this.f=new _.as;this.h=new _.Q("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.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.Va()){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.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.h.debug("is container visible",c);return c}getPlayerName(){return _.ra}getVersion(){return"6.15.0-castlabsadsadapter-js"}getPlayerVersion(){return _.fa}registerListeners(){this.m&&
11
- this.f&&(this.f.on(this.m,_.tc,this.N.bind(this)),this.f.on(this.m,_.pc,this.L.bind(this)),this.f.on(this.m,_.lc,this.I.bind(this)),this.f.on(this.m,_.nc,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,_.kc,this.o.bind(this,2)),this.f.on(this.m,_.rc,this.o.bind(this,3)),this.f.on(this.m,_.fc,this.F.bind(this)),this.f.on(this.m,_.oc,this.K.bind(this)),this.f.on(this.m,_.Vd,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,_.ec,this.C.bind(this)),this.f.on(this.m,_.mc,this.w.bind(this)))}unregisterListeners(){_.kh(this.f)}dispose(){super.dispose()}N(c){this.h.debug("ad timeline changed",c);this.j=c.adsTimeline}L(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.Lb();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&&mu(c,this.m,this.h,this)}g(c,...d){this.h.debug(`Reporting "${c}" event to Youbora`,...d)}}return new b(a)};var pu=class extends _.hu{constructor(){super();this.a=null;this.h=new _.Q(iu);this.m=null}Ae(a){this.a&&(this.a.removeAdsAdapter(),this.a.removeAdapter());if(this.a=a)this.a.setAdapter(nu(this.m)),this.a.setAdsAdapter(ou(this.m))}getAdapter(){return this.a&&this.a.getAdapter()}getAdsAdapter(){return this.a&&this.a.getAdsAdapter()}onPlayerCreated(a){this.m=a;ku(this,a)&&(a=a.getConfiguration().youbora,this.Ae(new youbora.Plugin(a)))}onContentWillLoad(a,b){if(ku(this,a)){a=a.getConfiguration();var c=
15
- a.youbora;void 0===c[ju]&&(c[ju]=b.isLive);void 0===c["content.title"]&&(c["content.title"]=b.name);void 0===c.viewerId&&(c.viewerId=a.viewerId);this.a||this.Ae(new youbora.Plugin(c));this.a.setOptions(c)}}onPlayerWillRelease(){}onPlayerWillDestroy(){}id(){return"youbora"}};_.x(iu,pu);pu.prototype.getAdsAdapter=pu.prototype.getAdsAdapter;pu.prototype.getAdapter=pu.prototype.getAdapter;pu.prototype.setYouboraPlugin=pu.prototype.Ae;pu.Id="youbora";_.Vo(new class{create(){return new pu}});};f.call(g, window);
1
+ import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var ju="clpp.npaw.YouboraPlugin",ku="content.isLive",lu=function(a,b){if(b.namespace()===_.jd)return a.g.info("Youbora does not report when casting."),!1;const c=b.getConfiguration().youbora;if(!_.Rg(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(_.A(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},mu=a=>(a=a.getConfiguration().youbora)&&a.errorFilter?a.errorFilter:b=>({code:`${b.code}`,message:b.message,severity:b.severity}),nu=(a,b,c,d)=>{b=mu(b)(a);if(!b)return c.debug("Error not sent to Youbora",a.code,a.message),null;a=10003===
3
+ a.code?"ad error":_.q;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 ou=a=>{class b extends youbora.Adapter{constructor(c){super(c);this.m=c;this.a=new _.$r;this.g=new _.S("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.oa())&&(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.Ra())?c.frameRate:null}getPlayerName(){return _.ra}getVersion(){return"6.16.0-castlabsadapter-js"}getPlayerVersion(){return _.fa}registerListeners(){this.m&&this.a&&(this.g.debug("registering listeners"),
5
+ youbora.Util.logAllEvents(this.m),this.a.on(this.m,_.Jf,this.I.bind(this)),this.a.on(this.m,_.q,this.F.bind(this)),this.a.on(this.m,_.bg,this.H.bind(this)),this.a.on(this.m,_.ag,this.G.bind(this)),this.a.on(this.m,_.tc,this.C.bind(this)),this.a.on(this.m,_.Wc,this.D.bind(this)))}unregisterListeners(){this.g.debug(_.Ob);_.lh(this.a)}dispose(){super.dispose()}l(){return this.m.getStats()||_.En()}o(){return!!this.m.getConfiguration().autoplay}I(c){c=c.detail;this.j("state change",c);if(c)switch(c.currentState){case _.Sn:this.o()&&
6
+ this.f();break;case _.Un:this.f();this.A();this.fireResume();this.fireBufferEnd();break;case _.Tn:this.o()&&this.f();this.A();this.fireBufferEnd();this.firePause();break;case _.Rn:this.fireBufferEnd();this.fireStop();break;case _.Jn:this.fireBufferEnd();this.w&&this.plugin.getAdsAdapter()?this.firePause():this.fireStop();break;case _.Mn: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(_.Ke)?"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=nu(c,this.m,this.g,this))&&c.severity===_.E&&(this.h=!0)}H(){this.m.isEnded()||(this.j(_.Bf),this.f(),this.fireSeekBegin())}G(){this.j(_.Af);this.fireSeekEnd()}C(c){this.g.debug("adsTimeline",
8
+ c);c=c.adsTimeline;this.w=!!c&&c.Ab()}D(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 pu=a=>{class b extends youbora.Adapter{constructor(c){super(c);this.m=c;this.j=this.a=null;this.f=new _.$r;this.g=new _.S("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.Kb(),this.a.Jb(),this.a.yb()));return c}getBitrate(){return this.a&&this.a.yb()}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.lb()){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.Lb()}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.16.0-castlabsadsadapter-js"}getPlayerVersion(){return _.fa}registerListeners(){this.m&&
11
+ this.f&&(this.f.on(this.m,_.tc,this.N.bind(this)),this.f.on(this.m,_.pc,this.M.bind(this)),this.f.on(this.m,_.lc,this.I.bind(this)),this.f.on(this.m,_.nc,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,_.jc,this.o.bind(this,2)),this.f.on(this.m,_.rc,this.o.bind(this,3)),this.f.on(this.m,_.ec,this.F.bind(this)),this.f.on(this.m,_.oc,this.K.bind(this)),this.f.on(this.m,_.q,this.H.bind(this)),this.f.on(this.m,_.bc,this.A.bind(this)),
12
+ this.f.on(this.m,_.cc,this.C.bind(this)),this.f.on(this.m,_.dc,this.D.bind(this)),this.f.on(this.m,_.mc,this.w.bind(this)))}unregisterListeners(){_.lh(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()}D(){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.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()}C(){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&&nu(c,this.m,this.g,this)}h(c,...d){this.g.debug(`Reporting "${c}" event to Youbora`,...d)}}return new b(a)};var qu=class extends _.iu{constructor(){super();this.a=null;this.g=new _.S(ju);this.m=null}Ie(a){this.a&&(this.a.removeAdsAdapter(),this.a.removeAdapter());if(this.a=a)this.a.setAdapter(ou(this.m)),this.a.setAdsAdapter(pu(this.m))}getAdapter(){return this.a&&this.a.getAdapter()}getAdsAdapter(){return this.a&&this.a.getAdsAdapter()}onPlayerCreated(a){this.m=a;lu(this,a)&&(a=a.getConfiguration().youbora,this.Ie(new youbora.Plugin(a)))}onContentWillLoad(a,b){if(lu(this,a)){a=a.getConfiguration();var c=
15
+ a.youbora;void 0===c[ku]&&(c[ku]=b.isLive);void 0===c["content.title"]&&(c["content.title"]=b.name);void 0===c.viewerId&&(c.viewerId=a.viewerId);this.a||this.Ie(new youbora.Plugin(c));this.a.setOptions(c)}}onPlayerWillRelease(){}onPlayerWillDestroy(){}id(){return"youbora"}};_.z(ju,qu);qu.prototype.getAdsAdapter=qu.prototype.getAdsAdapter;qu.prototype.getAdapter=qu.prototype.getAdapter;qu.prototype.setYouboraPlugin=qu.prototype.Ie;qu.Id="youbora";_.Wo(new class{create(){return new qu}});};f.call(g, window);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@castlabs/prestoplay",
3
3
  "description": "PRESTOplay Video Player",
4
- "version": "6.15.0",
4
+ "version": "6.16.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/castlabs/prestoplay-web.git"
package/typings.d.ts CHANGED
@@ -892,6 +892,22 @@ export namespace clpp {
892
892
  xlinkFailGracefully: boolean;
893
893
  }
894
894
 
895
+ /**
896
+ * Media source configuration.
897
+ */
898
+ export type MediaSourceConfiguration = {
899
+ /**
900
+ * The switching
901
+ * strategy determines how to handle codec changes during playback. The `SMOOTH`
902
+ * strategy uses `SourceBuffer.changeType()` - if it’s available and reliably
903
+ * supported on a device - to dynamically switch between streams encoded with
904
+ * different codecs. The `PREVENT` strategy, which is the default, actively
905
+ * tries to prevent scenarios where different codecs are available for
906
+ * switching, whether through ABR or user selection.
907
+ */
908
+ codecSwitchingStrategy: clpp.CodecSwitchingStrategy;
909
+ }
910
+
895
911
  /**
896
912
  * Mux Data plugin configuration.
897
913
  */
@@ -1193,6 +1209,10 @@ export namespace clpp {
1193
1209
  * Manifest configuration and settings.
1194
1210
  */
1195
1211
  manifest?: Partial<clpp.ManifestConfiguration>;
1212
+ /**
1213
+ * Media source configuration and settings.
1214
+ */
1215
+ mediaSource?: Partial<clpp.MediaSourceConfiguration>;
1196
1216
  /**
1197
1217
  * Defaults to undefined.
1198
1218
  *
@@ -2851,6 +2871,32 @@ export namespace clpp {
2851
2871
  severity: clpp.Error.Severity;
2852
2872
  }
2853
2873
 
2874
+ /**
2875
+ * Codec switching strategy.
2876
+ */
2877
+ export enum CodecSwitchingStrategy {
2878
+ /**
2879
+ * Prevent codec switching. This strategy actively tries to prevent a
2880
+ * situation where different codecs are available for switching, whether by
2881
+ * ABR or user selection. It select only the codecs that are possible to adapt
2882
+ * within the period and between periods.
2883
+ */
2884
+ PREVENT = "prevent",
2885
+ /**
2886
+ * Enable codec switching using `SourceBuffer.changeType()`. This checks if
2887
+ * `SourceBuffer.changeType()` is available and reliably supported on a
2888
+ * device, and if so, uses it.
2889
+ * Note: Some devices expose the `MediaSource.changeType()` API but are
2890
+ * known to have unreliable support, which can lead to issues like playback
2891
+ * hanging after the `changeType()` request. Currently, we explicitly include
2892
+ * Tizen 6.0 and 6.5 in the list of devices with problematic `changeType()`
2893
+ * support and disable the use of the `SMOOTH` strategy to prevent potential
2894
+ * issues. We are also aware that some Chromecast devices and Edge on Windows
2895
+ * have similar problems, so these may be added to the list in the future.
2896
+ */
2897
+ SMOOTH = "smooth",
2898
+ }
2899
+
2854
2900
  /**
2855
2901
  * Speed-up mode to use during trick play.
2856
2902
  */