@castlabs/prestoplay 6.12.0 → 6.13.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 (62) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/cjs/cl.adobe.js +3 -3
  3. package/cjs/cl.airplay.js +3 -3
  4. package/cjs/cl.broadpeak.js +6 -6
  5. package/cjs/cl.cast.js +106 -106
  6. package/cjs/cl.conviva.js +33 -33
  7. package/cjs/cl.core.js +504 -505
  8. package/cjs/cl.crypto.js +9 -9
  9. package/cjs/cl.dash.js +72 -72
  10. package/cjs/cl.externs.js +53 -50
  11. package/cjs/cl.freewheel.js +22 -22
  12. package/cjs/cl.hls.js +66 -66
  13. package/cjs/cl.hlssmpte.js +6 -6
  14. package/cjs/cl.htmlcue.js +30 -30
  15. package/cjs/cl.ima.js +21 -21
  16. package/cjs/cl.mse.js +269 -267
  17. package/cjs/cl.muxdata.js +14 -14
  18. package/cjs/cl.onboard.js +3 -3
  19. package/cjs/cl.persistent.js +13 -13
  20. package/cjs/cl.playlist.js +6 -6
  21. package/cjs/cl.simid.js +15 -15
  22. package/cjs/cl.smooth.js +71 -71
  23. package/cjs/cl.thumbnails.js +26 -24
  24. package/cjs/cl.tizen.js +68 -68
  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 +16 -16
  31. package/cjs/polyfill.min.js +26 -23
  32. package/cl.adobe.js +3 -3
  33. package/cl.airplay.js +3 -3
  34. package/cl.broadpeak.js +5 -5
  35. package/cl.cast.js +83 -83
  36. package/cl.conviva.js +27 -27
  37. package/cl.core.js +416 -416
  38. package/cl.crypto.js +9 -9
  39. package/cl.dash.js +67 -67
  40. package/cl.externs.js +53 -50
  41. package/cl.freewheel.js +15 -15
  42. package/cl.hls.js +69 -69
  43. package/cl.hlssmpte.js +5 -5
  44. package/cl.htmlcue.js +26 -26
  45. package/cl.ima.js +15 -15
  46. package/cl.mse.js +232 -231
  47. package/cl.muxdata.js +12 -12
  48. package/cl.onboard.js +4 -4
  49. package/cl.persistent.js +10 -10
  50. package/cl.playlist.js +5 -5
  51. package/cl.simid.js +13 -13
  52. package/cl.smooth.js +59 -59
  53. package/cl.thumbnails.js +19 -17
  54. package/cl.tizen.js +57 -57
  55. package/cl.ttml.js +22 -22
  56. package/cl.verimatrix.js +4 -4
  57. package/cl.vimond.js +8 -8
  58. package/cl.vr.js +14 -14
  59. package/cl.vtt.js +12 -12
  60. package/cl.youbora.js +13 -13
  61. package/package.json +1 -1
  62. package/typings.d.ts +82 -13
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 Ht="touchmove",It="touchstart",Kt=function(a,b,c){c*=.5;const d=Math.sqrt(a*a+b*b),e=Math.sin(c);return new Jt(a/d*e,b/d*e,0/d*e,Math.cos(c))},Lt=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)},Mt=function(a,b){isFinite(b)?(a.x*=b,a.y*=b,a.a*=b):(a.x=0,a.y=0,a.a=0)},Nt=function(a,b){return a.x*b.x+a.y*b.y+a.a*b.a},Ot=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},Pt=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},Rt=function(a){var b=new Qt(0,0,0),c=new Qt(0,0,1);const d=new Qt,e=new Qt,f=new Qt;a=a.a;var g=
3
- new Qt(0,1,0);f.x=b.x-g.x;f.y=b.y-g.y;f.a=b.a-g.a;g=f.length();Mt(f,1/g);c=Ot(d,c,f);g=c.length();Mt(c,1/g);Ot(e,f,d);a[0]=d.x;a[1]=d.y;a[2]=d.a;a[3]=-Nt(d,b);a[4]=e.x;a[5]=e.y;a[6]=e.a;a[7]=-Nt(e,b);a[8]=f.x;a[9]=f.y;a[10]=f.a;a[11]=-Nt(f,b);a[12]=0;a[13]=0;a[14]=0;a[15]=1},St=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},Tt=function(a){a.a&&(a.a.removeEventListener("mousemove",a.A,!1),a.a.removeEventListener(Ht,a.A,!1),a.a.removeEventListener("mouseup",a.B,!1),a.a.removeEventListener("touchend",a.B,!1))},Ut=function(a){const b=Kt(1,0,a.l*Math.PI/180);Lt(Kt(0,1,a.j*Math.PI/180),a.R);Lt(b,a.T);Rt(a.aa);Pt(a.ba,a.R,a.aa);Pt(a.G,a.T,a.ba)},Jt=class{constructor(a,b,c,d){this.x=a||0;this.y=b||0;this.a=c||0;this.f=d||1}};var Qt=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 Vt=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 Wt=class{constructor(a){this.a=a;this.f=a.createProgram();this.l=St(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=St(this,!0,"precision highp float;\nuniform sampler2D Texture0;\nvarying highp vec2 oTexCoord;\nvoid main()\n{\n gl_FragColor \x3d texture2D(Texture0, oTexCoord);\n gl_FragColor.w \x3d 1.0;\n}\n");
5
- a.attachShader(this.f,this.l);a.attachShader(this.f,this.j);a.bindAttribLocation(this.f,0,"aPosition");a.bindAttribLocation(this.f,1,"aTexCoord");a.linkProgram(this.f);if(!a.getProgramParameter(this.f,a.LINK_STATUS))throw new _.H(1,9,9004,"Unable to initialize shader");a.useProgram(this.f);this.g=a.getUniformLocation(this.f,"Mvpm");a.uniform1i(a.getUniformLocation(this.f,"Texture0"),0);a.useProgram(null)}};var Xt=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 Yt=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 Zt={alpha:!1,depth:!0,stencil:!1,antialias:!0,premultipliedAlpha:!1,preserveDrawingBuffer:!1,devicePixelRatio:1},$t=class extends _.ft{constructor(){super();this.o=this.w=this.K=this.I=this.C=this.Z=this.G=this.f=this.a=this.m=null;this.h=new _.R("clpp.vr");this.H=70;this.W=1;this.O=this.M=!1;this.F=()=>{if(this.a&&this.f){this.f.viewport(0,0,this.a.width,this.a.height);{const a=this.K.a,b=Math.tan(.5*this.H*Math.PI/180);a[0]=1/(this.a.width/this.a.height*b);a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=1/
7
- b;a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=2E3/-1999.9;a[11]=200/-1999.9;a[12]=0;a[13]=0;a[14]=-1;a[15]=1}}};this.l=this.j=0;this.g={x:0,y:0};this.R=new Vt;this.T=new Vt;this.aa=new Vt;this.ba=new Vt;this.A=this.ja.bind(this);this.B=this.Oa.bind(this);this.J=this.fa.bind(this)}onPlayerCreated(a){this.h.info("Player created");this.m=a}onContentWillLoad(a){const b=a.getConfiguration();if(b.vr&&b.vr.enable){{var c=b.vr,d=c.fieldOfView;const e=c.sensitivity,f=c.invertHorizontalControl;c=c.invertVerticalControl;
8
- if(void 0!==d&&_.Ag(d))this.H=d;else throw new _.H(1,7,7100,"fieldOfView configuration must be a number");if(void 0!==e&&_.Ag(e)&&0<e)this.W=e;else throw new _.H(1,7,7100,"sensitivity configuration must be a positive number");this.M=!!f;this.O=!!c}if(a=a.getSurface())if((d=a.getMedia())&&d.tagName.toLowerCase()===_.w){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",Zt)||this.a.getContext("experimental-webgl",
9
- Zt);if(!this.f)throw new _.H(1,9,9003,"Unable to create GL context");this.G=new Vt;Rt(this.G);this.Z=new Xt(this.f);this.C=new Wt(this.f);this.I=new Vt;this.K=new Vt;this.o=this.w=null;this.a.addEventListener(_.ff,this.F)}a.addElementToContainer(this.a,!0,!0);a.hideMediaElement();b.vr.attachMouseListener&&(this.a.addEventListener("mousedown",this.J,!1),this.a.addEventListener(It,this.J,!1));this.F();this.V()}else this.h.info("No video element found, can not initialize VR plugin");else this.h.info("No surface found, can not initialize VR plugin")}}onPlayerWillRelease(){this.h.info("Releasing VR plugin resources");
10
- this.w&&cancelAnimationFrame(this.w);this.g.x=0;this.l=this.j=this.g.y=0;this.f&&(delete this.f,this.f=null);this.a&&(Tt(this),this.a.removeEventListener(_.ff,this.F),this.a.parentElement.removeChild(this.a),this.a.removeEventListener("mousedown",this.J,!1),delete this.a,this.a=null)}onPlayerWillDestroy(){const a=this;return _.x(function*(){a.m=null})}id(){return"vr"}V(){if(this.m&&this.f){var a=this.m.getSurface();if(a&&(a=a.getMedia())&&a.tagName.toLowerCase()===_.w){this.w=requestAnimationFrame(this.V.bind(this));
11
- var b=this.f;this.o||a.readyState!==a.HAVE_ENOUGH_DATA||(this.o=new Yt(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=Pt(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 Lt="touchmove",Mt="touchstart",Ot=function(a,b,c){c*=.5;const d=Math.sqrt(a*a+b*b),e=Math.sin(c);return new Nt(a/d*e,b/d*e,0/d*e,Math.cos(c))},Pt=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)},Qt=function(a,b){isFinite(b)?(a.x*=b,a.y*=b,a.a*=b):(a.x=0,a.y=0,a.a=0)},Rt=function(a,b){return a.x*b.x+a.y*b.y+a.a*b.a},St=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},Tt=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},Vt=function(a){var b=new Ut(0,0,0),c=new Ut(0,0,1);const d=new Ut,e=new Ut,f=new Ut;a=a.a;var g=
3
+ new Ut(0,1,0);f.x=b.x-g.x;f.y=b.y-g.y;f.a=b.a-g.a;g=f.length();Qt(f,1/g);c=St(d,c,f);g=c.length();Qt(c,1/g);St(e,f,d);a[0]=d.x;a[1]=d.y;a[2]=d.a;a[3]=-Rt(d,b);a[4]=e.x;a[5]=e.y;a[6]=e.a;a[7]=-Rt(e,b);a[8]=f.x;a[9]=f.y;a[10]=f.a;a[11]=-Rt(f,b);a[12]=0;a[13]=0;a[14]=0;a[15]=1},Wt=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},Xt=function(a){a.a&&(a.a.removeEventListener("mousemove",a.A,!1),a.a.removeEventListener(Lt,a.A,!1),a.a.removeEventListener("mouseup",a.B,!1),a.a.removeEventListener("touchend",a.B,!1))},Yt=function(a){const b=Ot(1,0,a.l*Math.PI/180);Pt(Ot(0,1,a.j*Math.PI/180),a.R);Pt(b,a.T);Vt(a.aa);Tt(a.ba,a.R,a.aa);Tt(a.G,a.T,a.ba)},Nt=class{constructor(a,b,c,d){this.x=a||0;this.y=b||0;this.a=c||0;this.f=d||1}};var Ut=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 Zt=class{constructor(){this.a=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}set(a,b,c,d,e,f,g,h,k,l,m,n,q,t,v,y){const A=this.a;A[0]=a;A[4]=b;A[8]=c;A[12]=d;A[1]=e;A[5]=f;A[9]=g;A[13]=h;A[2]=k;A[6]=l;A[10]=m;A[14]=n;A[3]=q;A[7]=t;A[11]=v;A[15]=y;return this}};var $t=class{constructor(a){this.a=a;this.f=a.createProgram();this.l=Wt(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=Wt(this,!0,"precision highp float;\nuniform sampler2D Texture0;\nvarying highp vec2 oTexCoord;\nvoid main()\n{\n gl_FragColor \x3d texture2D(Texture0, oTexCoord);\n gl_FragColor.w \x3d 1.0;\n}\n");
5
+ a.attachShader(this.f,this.l);a.attachShader(this.f,this.j);a.bindAttribLocation(this.f,0,"aPosition");a.bindAttribLocation(this.f,1,"aTexCoord");a.linkProgram(this.f);if(!a.getProgramParameter(this.f,a.LINK_STATUS))throw new _.H(1,9,9004,"Unable to initialize shader");a.useProgram(this.f);this.g=a.getUniformLocation(this.f,"Mvpm");a.uniform1i(a.getUniformLocation(this.f,"Texture0"),0);a.useProgram(null)}};var au=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 bu=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 cu={alpha:!1,depth:!0,stencil:!1,antialias:!0,premultipliedAlpha:!1,preserveDrawingBuffer:!1,devicePixelRatio:1},du=class extends _.jt{constructor(){super();this.o=this.w=this.K=this.I=this.C=this.Z=this.G=this.f=this.a=this.m=null;this.h=new _.R("clpp.vr");this.H=70;this.W=1;this.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.g={x:0,y:0};this.R=new Zt;this.T=new Zt;this.aa=new Zt;this.ba=new Zt;this.A=this.ja.bind(this);this.B=this.Ga.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&&_.Bg(d))this.H=d;else throw new _.H(1,7,7100,"fieldOfView configuration must be a number");if(void 0!==e&&_.Bg(e)&&0<e)this.W=e;else throw new _.H(1,7,7100,"sensitivity configuration must be a positive number");this.M=!!f;this.N=!!c}if(a=a.getSurface())if((d=a.getMedia())&&d.tagName.toLowerCase()===_.w){this.h.info("Initialize VR Surface");if(!this.a){this.a=document.createElement("canvas");this.a.style.width="100%";this.f=this.a.getContext("webgl",cu)||this.a.getContext("experimental-webgl",
9
+ cu);if(!this.f)throw new _.H(1,9,9003,"Unable to create GL context");this.G=new Zt;Vt(this.G);this.Z=new au(this.f);this.C=new $t(this.f);this.I=new Zt;this.K=new Zt;this.o=this.w=null;this.a.addEventListener(_.gf,this.F)}a.addElementToContainer(this.a,!0,!0);a.hideMediaElement();b.vr.attachMouseListener&&(this.a.addEventListener("mousedown",this.J,!1),this.a.addEventListener(Mt,this.J,!1));this.F();this.V()}else this.h.info("No video element found, can not initialize VR plugin");else this.h.info("No surface found, can not initialize VR plugin")}}onPlayerWillRelease(){this.h.info("Releasing VR plugin resources");
10
+ this.w&&cancelAnimationFrame(this.w);this.g.x=0;this.l=this.j=this.g.y=0;this.f&&(delete this.f,this.f=null);this.a&&(Xt(this),this.a.removeEventListener(_.gf,this.F),this.a.parentElement.removeChild(this.a),this.a.removeEventListener("mousedown",this.J,!1),delete this.a,this.a=null)}onPlayerWillDestroy(){const a=this;return _.x(function*(){a.m=null})}id(){return"vr"}V(){if(this.m&&this.f){var a=this.m.getSurface();if(a&&(a=a.getMedia())&&a.tagName.toLowerCase()===_.w){this.w=requestAnimationFrame(this.V.bind(this));
11
+ var b=this.f;this.o||a.readyState!==a.HAVE_ENOUGH_DATA||(this.o=new bu(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=Tt(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.g,!1,this.I.a);c=this.o;c.a.activeTexture(c.a.TEXTURE0);c.a.bindTexture(c.a.TEXTURE_2D,c.f);b.texImage2D(b.TEXTURE_2D,0,b.RGB,b.RGB,b.UNSIGNED_BYTE,a);a=this.Z;a.a.bindBuffer(a.a.ARRAY_BUFFER,a.f);a.a.vertexAttribPointer(0,3,a.a.FLOAT,!1,20,0);a.a.vertexAttribPointer(1,2,a.a.FLOAT,!1,20,12);a.a.enableVertexAttribArray(0);a.a.enableVertexAttribArray(1);a.a.drawArrays(a.a.TRIANGLES,
13
- 0,a.g);a=this.o;a.a.bindTexture(a.a.TEXTURE_2D,null);this.C.a.useProgram(null)}}}}fa(a){this.h.debug("Mouse Down. Enable VR mouse interaction");a.preventDefault();if(0===a.button||a.type===It)a.type===It?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(Ht,this.A,!1),this.a.addEventListener("mouseup",this.B,!1),this.a.addEventListener("touchend",
14
- this.B,!1)}ja(a){a.preventDefault();var b=a.clientX;let c=a.clientY;a.type===Ht&&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 {Tf:e,Uf:f}={Tf:a*b*(this.M?-1:1),Uf:d*b*(this.O?-1:1)};this.j+=e;this.l+=f;Ut(this)}Oa(a){this.h.debug("Mouse Up. Removing mouse interaction listeners");a.preventDefault();Tt(this)}Eg(a,b){this.l=b;this.j=a;Ut(this)}mg(){return{x:this.j,y:this.l}}Sg(a){this.H=a;this.F()}};
15
- _.z("clpp.vr.VrPlugin",$t);$t.prototype.setCameraFieldOfView=$t.prototype.Sg;$t.prototype.getCameraCoordinates=$t.prototype.mg;$t.prototype.moveCamera=$t.prototype.Eg;$t.Id="vr";_.oo(new class{create(){return new $t}});};f.call(g, window);
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===Mt)a.type===Mt?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(Lt,this.A,!1),this.a.addEventListener("mouseup",this.B,!1),this.a.addEventListener("touchend",
14
+ this.B,!1)}ja(a){a.preventDefault();var b=a.clientX;let c=a.clientY;a.type===Lt&&a.touches[0]&&(b=a.touches[0].clientX,c=a.touches[0].clientY);a=this.g.x-b;const d=this.g.y-c;this.g.x=b;this.g.y=c;b=this.W;const {Sf:e,Tf:f}={Sf:a*b*(this.M?-1:1),Tf:d*b*(this.N?-1:1)};this.j+=e;this.l+=f;Yt(this)}Ga(a){this.h.debug("Mouse Up. Removing mouse interaction listeners");a.preventDefault();Xt(this)}Dg(a,b){this.l=b;this.j=a;Yt(this)}lg(){return{x:this.j,y:this.l}}Rg(a){this.H=a;this.F()}};
15
+ _.z("clpp.vr.VrPlugin",du);du.prototype.setCameraFieldOfView=du.prototype.Rg;du.prototype.getCameraCoordinates=du.prototype.lg;du.prototype.moveCamera=du.prototype.Dg;du.Id="vr";_.ro(new class{create(){return new du}});};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 ot=" The setting will be ignored.",pt="VTT parser encountered an invalid VTT setting: ",qt="application/x-subrip",rt="text/srt",st='text/vtt; codecs\x3d"vtt"',tt='text/vtt; codecs\x3d"wvtt"',ut=function(a){return a.a==a.f.length?null:(a=_.ji(a,/[^ \t\n]*/gm))?a[0]:null},vt=function(a){_.ji(a,/[ \t]+/gm)},wt=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},xt=function(a){a=_.ji(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)},zt=function(a,b,c){let d;if(d=/^align:(start|middle|center|end|left|right)$/.exec(b))b=d[1],"middle"==b?a.textAlign=_.er:a.textAlign=_.kr[b.toUpperCase()];else if(d=/^vertical:(lr|rl)$/.exec(b))a.writingMode="lr"==d[1]?_.Lf:_.Mf;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==_.ce||b==_.pf?_.ce:b==_.de||b==_.Kd?_.de:
4
- _.Tc);else if(d=/^region:(.*)$/.exec(b)){if(b=yt(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=_.lr[c[2].toUpperCase()]);else if(c=/^line:(-?\d+)(?:,(start|end|center))?$/.exec(b))a.lineInterpretation=_.gr,a.line=Number(c[1]),c[2]&&(a.lineAlign=_.lr[c[2].toUpperCase()]);else{a=!1;break a}a=!0}return a}return!0},yt=function(a,b){a=a.filter(c=>c.id==b);return a.length?a[0]:(_.C("VTT parser could not find a region with id: ",
5
- b," The region will be ignored."),null)},Bt=function(a,b,c){let d,e,f;(new _.dl).L("payl",_.Yk(g=>{d=_.Ph(g)})).L("iden",_.Yk(g=>{e=_.Ph(g)})).L("sttg",_.Yk(g=>{f=_.Ph(g)})).parse(a);return d?At(d,e,f,b,c):null},At=function(a,b,c,d,e){a=new _.jr(d,e,a,_.Yf);b&&(a.id=b);if(c)for(b=new _.ki(c),c=ut(b);c;)zt(a,c,[])||_.C(pt,c,ot),vt(b),c=ut(b);return a},Ct=class{a(a){a=_.Ph(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+=wt(c)}return _.Th(b)}},Dt=class{create(){return new Ct}probe(a,b){return(a===rt||a===qt)&&b===_.yf}};var Et=class{constructor(a){this.a=a}parseInit(){}parseMedia(a,b){a=_.Ph(a);a=a.replace(/\r\n|\r(?=[^\n]|$)/gm,"\n");var c=a.split(/\n{2,}/m);if(!/^WEBVTT($|[ \t\n])/m.test(c[0]))throw new _.H(_.G,2,2E3);a=b.periodStart;if(c[0].includes("X-TIMESTAMP-MAP")){var d=c[0].match(/LOCAL:((?:(\d{1,}):)?(\d{2}):(\d{2})\.(\d{3}))/m),e=c[0].match(/MPEGTS:(\d+)/m);if(d&&e){a=xt(new _.ki(d[1]));if(null==a)throw new _.H(_.G,2,2E3);e=Number(e[1]);for(d=b.segmentStart;95443.7176888889<=d;)d-=95443.7176888889,e+=
7
- 8589934592;a=b.periodStart+e/9E4-a}}else this.a.streaming.relativeTextTimestamp&&null!==b.segmentStart&&(a=b.segmentStart);b=[];for(var f of c)if(/^region/.test(f.toLowerCase())){e=new _.ki(f.replace(/\n/g," "));d=new _.or;ut(e);vt(e);for(var g=ut(e);g;){a:{var h;var k=d;var l=g;if(h=/^id:(.*)$/.exec(l))k.id=h[1];else if(h=/^width:(\d{1,2}|100)%$/.exec(l))k.width=Number(h[1]);else if(h=/^lines:(\d+)$/.exec(l))k.height=Number(h[1]),k.heightUnits=2;else if(h=/^regionanchor:(\d{1,2}|100)%,(\d{1,2}|100)%$/.exec(l))k.regionAnchorX=
8
- Number(h[1]),k.regionAnchorY=Number(h[2]);else if(h=/^viewportanchor:(\d{1,2}|100)%,(\d{1,2}|100)%$/.exec(l))k.viewportAnchorX=Number(h[1]),k.viewportAnchorY=Number(h[2]);else if(/^scroll:up$/.exec(l))k.scroll="up";else{k=!1;break a}k=!0}k||_.C("VTT parser encountered an invalid VTTRegion setting: ",g,ot);vt(e);g=ut(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 _.ki(l[0]);g=xt(d);const q=_.ji(d,/[ \t]+--\x3e[ \t]+/g);k=xt(d);if(null==g||null==q||null==k)throw new _.H(_.G,2,2001);g+=h;k+=h;l=l.slice(1).join("\n").trim();g=new _.jr(g,k,l,_.Yf);e&&(g.id=e);vt(d);for(k=ut(d);k;)zt(g,k,c)||_.C(pt,k,ot),vt(d),k=ut(d);null!=e&&(g.id=e);c=g}c&&m.push(c)}return{cues:m,styles:f}}};var Ft=class extends Et{parseMedia(a,b){return super.parseMedia((new Ct).a(a),b)}};var Gt=class{constructor(){this.a=null;this.h=new _.R("clpp.vtt.mp4")}parseInit(a){let b=!1;(new _.dl).L(_.oe,_.Wk).L(_.Bf,_.Wk).L(_.je,_.Wk).$("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(_.ne,_.Wk).L(_.sf,_.Wk).$(_.uf,_.Xk).L("wvtt",()=>{b=!0}).parse(a);if(!this.a)throw new _.H(_.G,2,2008);if(!b)throw new _.H(_.G,2,2008);}parseMedia(a,b){if(!this.a)throw this.h.error("No init segment for MP4+VTT!"),
10
- new _.H(_.G,2,2008);let c=0,d=[],e;const f=[];let g=!1,h=!1,k=!1,l=null;(new _.dl).L("moof",_.Wk).L("traf",_.Wk).$("tfdt",q=>{g=!0;c=0==q.version?_.P(q.reader):_.Rk(q.reader)}).$("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?_.P(q):null}).$("trun",q=>{h=!0;{var u=q.version,v=q.flags;q=q.reader;const y=_.P(q);v&1&&q.skip(4);v&4&&q.skip(4);const A=[];for(let D=0;D<y;D++){const E={duration:null,sampleSize:null,ye:null};v&256&&(E.duration=_.P(q));v&512&&(E.sampleSize=
11
- _.P(q));v&1024&&q.skip(4);v&2048&&(E.ye=0==u?_.P(q):_.Qk(q));A.push(E)}d=A}}).L(_.ie,_.Yk(q=>{k=!0;e=q})).parse(a);if(!k&&!g&&!h)throw new _.H(_.G,2,2008);a=c;var m=new DataView(e.buffer,e.byteOffset,e.byteLength);m=new _.Ql(m,!1);for(const q of d){const u=q.duration||l,v=q.ye?c+q.ye:a;a=v+(u||0);let y=0;do{const A=_.P(m);y+=A;var n=_.P(m);n=_.Vk(n);let D=null;"vttc"==n?8<A&&(D=_.Tk(m,A-8)):("vtte"!=n&&this.h.error("Unknown box "+n+"! Skipping!"),m.skip(A-8));u?D&&f.push(Bt(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(_.kh),styles:[]}}};_.z("clpp.vtt.VttComponent",class extends _.Ds{constructor(){super();this.j=new Dt}f(){_.Oq[_.yf]=Et;_.Oq[st]=Et;_.Oq[tt]=Et;_.Oq[_.zc]=Gt;_.Oq[rt]=Ft;_.Oq[qt]=Ft;_.dj.push(this.j)}a(){_.Pq(_.yf);_.Pq(st);_.Pq(tt);_.Pq(_.zc);_.Pq(rt);_.Pq(qt);_.fj(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 st=" The setting will be ignored.",tt="VTT parser encountered an invalid VTT setting: ",ut="application/x-subrip",vt="text/srt",wt='text/vtt; codecs\x3d"vtt"',xt='text/vtt; codecs\x3d"wvtt"',yt=function(a){return a.a==a.f.length?null:(a=_.ki(a,/[^ \t\n]*/gm))?a[0]:null},zt=function(a){_.ki(a,/[ \t]+/gm)},At=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},Bt=function(a){a=_.ki(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)},Dt=function(a,b,c){let d;if(d=/^align:(start|middle|center|end|left|right)$/.exec(b))b=d[1],"middle"==b?a.textAlign=_.kr:a.textAlign=_.qr[b.toUpperCase()];else if(d=/^vertical:(lr|rl)$/.exec(b))a.writingMode="lr"==d[1]?_.Mf:_.Nf;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==_.de||b==_.qf?_.de:b==_.ee||b==_.Ld?_.ee:
4
+ _.Tc);else if(d=/^region:(.*)$/.exec(b)){if(b=Ct(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=_.rr[c[2].toUpperCase()]);else if(c=/^line:(-?\d+)(?:,(start|end|center))?$/.exec(b))a.lineInterpretation=_.mr,a.line=Number(c[1]),c[2]&&(a.lineAlign=_.rr[c[2].toUpperCase()]);else{a=!1;break a}a=!0}return a}return!0},Ct=function(a,b){a=a.filter(c=>c.id==b);return a.length?a[0]:(_.C("VTT parser could not find a region with id: ",
5
+ b," The region will be ignored."),null)},Ft=function(a,b,c){let d,e,f;(new _.el).L("payl",_.Zk(g=>{d=_.Qh(g)})).L("iden",_.Zk(g=>{e=_.Qh(g)})).L("sttg",_.Zk(g=>{f=_.Qh(g)})).parse(a);return d?Et(d,e,f,b,c):null},Et=function(a,b,c,d,e){a=new _.pr(d,e,a,_.Zf);b&&(a.id=b);if(c)for(b=new _.li(c),c=yt(b);c;)Dt(a,c,[])||_.C(tt,c,st),zt(b),c=yt(b);return a},Gt=class{a(a){a=_.Qh(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+=At(c)}return _.Uh(b)}},Ht=class{create(){return new Gt}probe(a,b){return(a===vt||a===ut)&&b===_.zf}};var It=class{constructor(a){this.a=a}parseInit(){}parseMedia(a,b){a=_.Qh(a);a=a.replace(/\r\n|\r(?=[^\n]|$)/gm,"\n");var c=a.split(/\n{2,}/m);if(!/^WEBVTT($|[ \t\n])/m.test(c[0]))throw new _.H(_.G,2,2E3);a=b.periodStart;if(c[0].includes("X-TIMESTAMP-MAP")){var d=c[0].match(/LOCAL:((?:(\d{1,}):)?(\d{2}):(\d{2})\.(\d{3}))/m),e=c[0].match(/MPEGTS:(\d+)/m);if(d&&e){a=Bt(new _.li(d[1]));if(null==a)throw new _.H(_.G,2,2E3);e=Number(e[1]);for(d=b.segmentStart;95443.7176888889<=d;)d-=95443.7176888889,e+=
7
+ 8589934592;a=b.periodStart+e/9E4-a}}else this.a.streaming.relativeTextTimestamp&&null!==b.segmentStart&&(a=b.segmentStart);b=[];for(var f of c)if(/^region/.test(f.toLowerCase())){e=new _.li(f.replace(/\n/g," "));d=new _.ur;yt(e);zt(e);for(var g=yt(e);g;){a:{var h;var k=d;var l=g;if(h=/^id:(.*)$/.exec(l))k.id=h[1];else if(h=/^width:(\d{1,2}|100)%$/.exec(l))k.width=Number(h[1]);else if(h=/^lines:(\d+)$/.exec(l))k.height=Number(h[1]),k.heightUnits=2;else if(h=/^regionanchor:(\d{1,2}|100)%,(\d{1,2}|100)%$/.exec(l))k.regionAnchorX=
8
+ Number(h[1]),k.regionAnchorY=Number(h[2]);else if(h=/^viewportanchor:(\d{1,2}|100)%,(\d{1,2}|100)%$/.exec(l))k.viewportAnchorX=Number(h[1]),k.viewportAnchorY=Number(h[2]);else if(/^scroll:up$/.exec(l))k.scroll="up";else{k=!1;break a}k=!0}k||_.C("VTT parser encountered an invalid VTTRegion setting: ",g,st);zt(e);g=yt(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 _.li(l[0]);g=Bt(d);const q=_.ki(d,/[ \t]+--\x3e[ \t]+/g);k=Bt(d);if(null==g||null==q||null==k)throw new _.H(_.G,2,2001);g+=h;k+=h;l=l.slice(1).join("\n").trim();g=new _.pr(g,k,l,_.Zf);e&&(g.id=e);zt(d);for(k=yt(d);k;)Dt(g,k,c)||_.C(tt,k,st),zt(d),k=yt(d);null!=e&&(g.id=e);c=g}c&&m.push(c)}return{cues:m,styles:f}}};var Jt=class extends It{parseMedia(a,b){return super.parseMedia((new Gt).a(a),b)}};var Kt=class{constructor(){this.a=null;this.h=new _.R("clpp.vtt.mp4")}parseInit(a){let b=!1;(new _.el).L(_.pe,_.Xk).L(_.Cf,_.Xk).L(_.ke,_.Xk).$("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(_.oe,_.Xk).L(_.tf,_.Xk).$(_.vf,_.Yk).L("wvtt",()=>{b=!0}).parse(a);if(!this.a)throw new _.H(_.G,2,2008);if(!b)throw new _.H(_.G,2,2008);}parseMedia(a,b){if(!this.a)throw this.h.error("No init segment for MP4+VTT!"),
10
+ new _.H(_.G,2,2008);let c=0,d=[],e;const f=[];let g=!1,h=!1,k=!1,l=null;(new _.el).L("moof",_.Xk).L("traf",_.Xk).$("tfdt",q=>{g=!0;c=0==q.version?_.P(q.reader):_.Sk(q.reader)}).$("tfhd",q=>{var t=q.flags;q=q.reader;q.skip(4);t&1&&q.skip(8);t&2&&q.skip(4);l=t&8?_.P(q):null}).$("trun",q=>{h=!0;{var t=q.version,v=q.flags;q=q.reader;const y=_.P(q);v&1&&q.skip(4);v&4&&q.skip(4);const A=[];for(let D=0;D<y;D++){const E={duration:null,sampleSize:null,xe:null};v&256&&(E.duration=_.P(q));v&512&&(E.sampleSize=
11
+ _.P(q));v&1024&&q.skip(4);v&2048&&(E.xe=0==t?_.P(q):_.Rk(q));A.push(E)}d=A}}).L(_.je,_.Zk(q=>{k=!0;e=q})).parse(a);if(!k&&!g&&!h)throw new _.H(_.G,2,2008);a=c;var m=new DataView(e.buffer,e.byteOffset,e.byteLength);m=new _.Rl(m,!1);for(const q of d){const t=q.duration||l,v=q.xe?c+q.xe:a;a=v+(t||0);let y=0;do{const A=_.P(m);y+=A;var n=_.P(m);n=_.Wk(n);let D=null;"vttc"==n?8<A&&(D=_.Uk(m,A-8)):("vtte"!=n&&this.h.error("Unknown box "+n+"! Skipping!"),m.skip(A-8));t?D&&f.push(Ft(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(_.lh),styles:[]}}};_.z("clpp.vtt.VttComponent",class extends _.Js{constructor(){super();this.j=new Ht}f(){_.Wq[_.zf]=It;_.Wq[wt]=It;_.Wq[xt]=It;_.Wq[_.wc]=Kt;_.Wq[vt]=Jt;_.Wq[ut]=Jt;_.ej.push(this.j)}a(){_.Xq(_.zf);_.Xq(wt);_.Xq(xt);_.Xq(_.wc);_.Xq(vt);_.Xq(ut);_.gj(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 gt="clpp.npaw.YouboraPlugin",ht="content.isLive",it=function(a,b){if(b.namespace()===_.dd)return a.h.info("Youbora does not report when casting."),!1;const c=b.getConfiguration().youbora;if(!_.yg(c))return a.h.warn("Youbora plugin is loaded but not configured. Will do nothing."),!1;if(!c.accountCode)return a.h.warn("accountCode key is missing in Youbora config"),b.onError(new _.H(1,9,9101)),!1;if(_.B(window.youbora))return a.h.warn("Youbora SDK not found."),b.onError(new _.H(1,9,
2
- 9100)),!1;"6.8.49"!==youbora.VERSION&&(a.h.warn("Youbora SDK version is not supported. The supported version is 6.8.49, found "+`version ${youbora.VERSION}. Some or all features of YouboraPlugin `+"may not work correctly."),b.onError(new _.H(1,9,9102)));return!0},jt=a=>(a=a.getConfiguration().youbora)&&a.errorFilter?a.errorFilter:b=>({code:`${b.code}`,message:b.message,severity:b.severity}),kt=(a,b,c,d)=>{b=jt(b)(a);if(!b)return c.debug("Error not sent to Youbora",a.code,a.message),null;a=10003===
3
- a.code?"ad error":_.Md;b.severity===_.G?(d.fireFatalError(b.code,b.message,b.metadata),c.debug(`Reporting "fatal ${a}" to Youbora`,b.code,b)):(d.fireError(b.code,b.message,b.metadata),c.debug(`Reporting "${a}" to Youbora`,b.code,b));return b};var lt=a=>{class b extends youbora.Adapter{constructor(c){super(c);this.m=c;this.a=new _.br;this.h=new _.R("clpp.npaw.YouboraAdapter");this.g=this.w=!1;this.registerListeners()}getPlayhead(){return this.getIsLive()?-1:this.m.getPosition()}getDuration(){return this.m.getDuration()}getRendition(){let c,d,e;var f=this.m.getTrackManager();f&&(f=f.ia())&&(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 _.pa}getVersion(){return"6.12.0-castlabsadapter-js"}getPlayerVersion(){return _.da}registerListeners(){this.m&&this.a&&(this.h.debug("registering listeners"),
5
- youbora.Util.logAllEvents(this.m),this.a.on(this.m,_.qf,this.I.bind(this)),this.a.on(this.m,_.Md,this.F.bind(this)),this.a.on(this.m,_.Jf,this.H.bind(this)),this.a.on(this.m,_.If,this.G.bind(this)),this.a.on(this.m,_.nc,this.B.bind(this)),this.a.on(this.m,_.Pc,this.C.bind(this)))}unregisterListeners(){this.h.debug(_.Jb);_.Sg(this.a)}dispose(){super.dispose()}l(){return this.m.getStats()||_.Xm()}o(){return!!this.m.getConfiguration().autoplay}I(c){c=c.detail;this.j("state change",c);if(c)switch(c.currentState){case _.ln:this.o()&&
6
- this.f();break;case _.nn:this.f();this.A();this.fireResume();this.fireBufferEnd();break;case _.mn:this.o()&&this.f();this.A();this.fireBufferEnd();this.firePause();break;case _.kn:this.fireBufferEnd();this.fireStop();break;case _.bn:this.fireBufferEnd();this.w&&this.plugin.getAdsAdapter()?this.firePause():this.fireStop();break;case _.en: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(_.sd)?"Widevine":c.startsWith(_.nd)?"FairPlay":c.match(/^com\.(microsoft|chromecast)\.playready/)?"PlayReady":c.startsWith(_.Be)?"ClearKey":c.startsWith(_.md)?"Primetime":c)&&this.plugin.setOptions({"content.drm":c}));this.fireJoin()}F(c){!(c=c.detail)||this.g||10003===c.code&&this.plugin.getAdsAdapter()||(c=kt(c,this.m,this.h,this))&&c.severity===_.G&&(this.g=!0)}H(){this.j(_.jf);this.m.isEnded()||(this.f(),this.fireSeekBegin())}G(){this.j(_.hf);this.fireSeekEnd()}B(c){this.h.debug("adsTimeline",
8
- c);c=c.adsTimeline;this.w=!!c&&c.jb()}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 mt=a=>{class b extends youbora.Adapter{constructor(c){super(c);this.m=c;this.j=this.a=null;this.f=new _.br;this.h=new _.R("clpp.npaw.YouboraAdsAdapter");this.registerListeners();this.l=!1}getDuration(){return this.a&&this.a.getDuration()}getRendition(){let c=null;this.a&&(c=youbora.Util.buildRenditionString(this.a.vb(),this.a.ub(),this.a.ib()));return c}getBitrate(){return this.a&&this.a.ib()}getPlayhead(){const c=this.m.getAdsManager();return c&&c.getPosition()}getResource(){return this.a&&this.a.getMediaUrl()}getTitle(){return this.a&&
1
+ import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var kt="clpp.npaw.YouboraPlugin",lt="content.isLive",mt=function(a,b){if(b.namespace()===_.dd)return a.h.info("Youbora does not report when casting."),!1;const c=b.getConfiguration().youbora;if(!_.zg(c))return a.h.warn("Youbora plugin is loaded but not configured. Will do nothing."),!1;if(!c.accountCode)return a.h.warn("accountCode key is missing in Youbora config"),b.onError(new _.H(1,9,9101)),!1;if(_.B(window.youbora))return a.h.warn("Youbora SDK not found."),b.onError(new _.H(1,9,
2
+ 9100)),!1;"6.8.49"!==youbora.VERSION&&(a.h.warn("Youbora SDK version is not supported. The supported version is 6.8.49, found "+`version ${youbora.VERSION}. Some or all features of YouboraPlugin `+"may not work correctly."),b.onError(new _.H(1,9,9102)));return!0},nt=a=>(a=a.getConfiguration().youbora)&&a.errorFilter?a.errorFilter:b=>({code:`${b.code}`,message:b.message,severity:b.severity}),ot=(a,b,c,d)=>{b=nt(b)(a);if(!b)return c.debug("Error not sent to Youbora",a.code,a.message),null;a=10003===
3
+ a.code?"ad error":_.Nd;b.severity===_.G?(d.fireFatalError(b.code,b.message,b.metadata),c.debug(`Reporting "fatal ${a}" to Youbora`,b.code,b)):(d.fireError(b.code,b.message,b.metadata),c.debug(`Reporting "${a}" to Youbora`,b.code,b));return b};var pt=a=>{class b extends youbora.Adapter{constructor(c){super(c);this.m=c;this.a=new _.hr;this.h=new _.R("clpp.npaw.YouboraAdapter");this.g=this.w=!1;this.registerListeners()}getPlayhead(){return this.getIsLive()?-1:this.m.getPosition()}getDuration(){return this.m.getDuration()}getRendition(){let c,d,e;var f=this.m.getTrackManager();f&&(f=f.ia())&&(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.13.0-castlabsadapter-js"}getPlayerVersion(){return _.da}registerListeners(){this.m&&this.a&&(this.h.debug("registering listeners"),
5
+ youbora.Util.logAllEvents(this.m),this.a.on(this.m,_.rf,this.I.bind(this)),this.a.on(this.m,_.Nd,this.F.bind(this)),this.a.on(this.m,_.Kf,this.H.bind(this)),this.a.on(this.m,_.Jf,this.G.bind(this)),this.a.on(this.m,_.nc,this.B.bind(this)),this.a.on(this.m,_.Pc,this.C.bind(this)))}unregisterListeners(){this.h.debug(_.Jb);_.Tg(this.a)}dispose(){super.dispose()}l(){return this.m.getStats()||_.$m()}o(){return!!this.m.getConfiguration().autoplay}I(c){c=c.detail;this.j("state change",c);if(c)switch(c.currentState){case _.on:this.o()&&
6
+ this.f();break;case _.qn:this.f();this.A();this.fireResume();this.fireBufferEnd();break;case _.pn:this.o()&&this.f();this.A();this.fireBufferEnd();this.firePause();break;case _.nn:this.fireBufferEnd();this.fireStop();break;case _.en:this.fireBufferEnd();this.w&&this.plugin.getAdsAdapter()?this.firePause():this.fireStop();break;case _.hn: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(_.rd)?"Widevine":c.startsWith(_.nd)?"FairPlay":c.match(/^com\.(microsoft|chromecast)\.playready/)?"PlayReady":c.startsWith(_.Ce)?"ClearKey":c.startsWith(_.md)?"Primetime":c)&&this.plugin.setOptions({"content.drm":c}));this.fireJoin()}F(c){!(c=c.detail)||this.g||10003===c.code&&this.plugin.getAdsAdapter()||(c=ot(c,this.m,this.h,this))&&c.severity===_.G&&(this.g=!0)}H(){this.j(_.kf);this.m.isEnded()||(this.f(),this.fireSeekBegin())}G(){this.j(_.jf);this.fireSeekEnd()}B(c){this.h.debug("adsTimeline",
8
+ c);c=c.adsTimeline;this.w=!!c&&c.jb()}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 qt=a=>{class b extends youbora.Adapter{constructor(c){super(c);this.m=c;this.j=this.a=null;this.f=new _.hr;this.h=new _.R("clpp.npaw.YouboraAdsAdapter");this.registerListeners();this.l=!1}getDuration(){return this.a&&this.a.getDuration()}getRendition(){let c=null;this.a&&(c=youbora.Util.buildRenditionString(this.a.vb(),this.a.ub(),this.a.ib()));return c}getBitrate(){return this.a&&this.a.ib()}getPlayhead(){const c=this.m.getAdsManager();return c&&c.getPosition()}getResource(){return this.a&&this.a.getMediaUrl()}getTitle(){return this.a&&
9
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 _.pa}getVersion(){return"6.12.0-castlabsadsadapter-js"}getPlayerVersion(){return _.da}registerListeners(){this.m&&
11
- this.f&&(this.f.on(this.m,_.nc,this.O.bind(this)),this.f.on(this.m,_.jc,this.M.bind(this)),this.f.on(this.m,_.fc,this.I.bind(this)),this.f.on(this.m,_.hc,this.J.bind(this)),this.f.on(this.m,_.ac,this.G.bind(this)),this.f.on(this.m,_.bc,this.o.bind(this,1)),this.f.on(this.m,_.ec,this.o.bind(this,2)),this.f.on(this.m,_.lc,this.o.bind(this,3)),this.f.on(this.m,_.$b,this.F.bind(this)),this.f.on(this.m,_.ic,this.K.bind(this)),this.f.on(this.m,_.Md,this.H.bind(this)),this.f.on(this.m,_.Wb,this.A.bind(this)),
12
- this.f.on(this.m,_.Xb,this.B.bind(this)),this.f.on(this.m,_.Yb,this.C.bind(this)),this.f.on(this.m,_.gc,this.w.bind(this)))}unregisterListeners(){_.Sg(this.f)}dispose(){super.dispose()}O(c){this.h.debug("ad timeline changed",c);this.j=c.adsTimeline}M(c){this.a=c.ad;this.g("ad start",this.a);this.fireStart();this.fireJoin()}G(){this.g("ad ended");this.fireStop()}I(){this.g("ad pause");this.w();this.firePause()}J(){this.g("ad resume");this.w();this.fireResume()}C(){this.l=!0;this.g("ad buffering started");
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 _.pa}getVersion(){return"6.13.0-castlabsadsadapter-js"}getPlayerVersion(){return _.da}registerListeners(){this.m&&
11
+ this.f&&(this.f.on(this.m,_.nc,this.N.bind(this)),this.f.on(this.m,_.jc,this.M.bind(this)),this.f.on(this.m,_.fc,this.I.bind(this)),this.f.on(this.m,_.hc,this.J.bind(this)),this.f.on(this.m,_.ac,this.G.bind(this)),this.f.on(this.m,_.bc,this.o.bind(this,1)),this.f.on(this.m,_.ec,this.o.bind(this,2)),this.f.on(this.m,_.lc,this.o.bind(this,3)),this.f.on(this.m,_.$b,this.F.bind(this)),this.f.on(this.m,_.ic,this.K.bind(this)),this.f.on(this.m,_.Nd,this.H.bind(this)),this.f.on(this.m,_.Wb,this.A.bind(this)),
12
+ this.f.on(this.m,_.Xb,this.B.bind(this)),this.f.on(this.m,_.Yb,this.C.bind(this)),this.f.on(this.m,_.gc,this.w.bind(this)))}unregisterListeners(){_.Tg(this.f)}dispose(){super.dispose()}N(c){this.h.debug("ad timeline changed",c);this.j=c.adsTimeline}M(c){this.a=c.ad;this.g("ad start",this.a);this.fireStart();this.fireJoin()}G(){this.g("ad ended");this.fireStop()}I(){this.g("ad pause");this.w();this.firePause()}J(){this.g("ad resume");this.w();this.fireResume()}C(){this.l=!0;this.g("ad buffering started");
13
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&&kt(c,this.m,this.h,this)}g(c,...d){this.h.debug(`Reporting "${c}" event to Youbora`,...d)}}return new b(a)};var nt=class extends _.ft{constructor(){super();this.a=null;this.h=new _.R(gt);this.m=null}ue(a){this.a&&(this.a.removeAdsAdapter(),this.a.removeAdapter());if(this.a=a)this.a.setAdapter(lt(this.m)),this.a.setAdsAdapter(mt(this.m))}getAdapter(){return this.a&&this.a.getAdapter()}getAdsAdapter(){return this.a&&this.a.getAdsAdapter()}onPlayerCreated(a){this.m=a;it(this,a)&&(a=a.getConfiguration().youbora,this.ue(new youbora.Plugin(a)))}onContentWillLoad(a,b){if(it(this,a)){a=a.getConfiguration();var c=
15
- a.youbora;void 0===c[ht]&&(c[ht]=b.isLive);void 0===c["content.title"]&&(c["content.title"]=b.name);void 0===c.viewerId&&(c.viewerId=a.viewerId);this.a||this.ue(new youbora.Plugin(c));this.a.setOptions(c)}}onPlayerWillRelease(){}onPlayerWillDestroy(){}id(){return"youbora"}};_.z(gt,nt);nt.prototype.getAdsAdapter=nt.prototype.getAdsAdapter;nt.prototype.getAdapter=nt.prototype.getAdapter;nt.prototype.setYouboraPlugin=nt.prototype.ue;nt.Id="youbora";_.oo(new class{create(){return new nt}});};f.call(g, window);
14
+ c&&c.fireStop()}}H(c){(c=c.detail)&&10003===c.code&&ot(c,this.m,this.h,this)}g(c,...d){this.h.debug(`Reporting "${c}" event to Youbora`,...d)}}return new b(a)};var rt=class extends _.jt{constructor(){super();this.a=null;this.h=new _.R(kt);this.m=null}te(a){this.a&&(this.a.removeAdsAdapter(),this.a.removeAdapter());if(this.a=a)this.a.setAdapter(pt(this.m)),this.a.setAdsAdapter(qt(this.m))}getAdapter(){return this.a&&this.a.getAdapter()}getAdsAdapter(){return this.a&&this.a.getAdsAdapter()}onPlayerCreated(a){this.m=a;mt(this,a)&&(a=a.getConfiguration().youbora,this.te(new youbora.Plugin(a)))}onContentWillLoad(a,b){if(mt(this,a)){a=a.getConfiguration();var c=
15
+ a.youbora;void 0===c[lt]&&(c[lt]=b.isLive);void 0===c["content.title"]&&(c["content.title"]=b.name);void 0===c.viewerId&&(c.viewerId=a.viewerId);this.a||this.te(new youbora.Plugin(c));this.a.setOptions(c)}}onPlayerWillRelease(){}onPlayerWillDestroy(){}id(){return"youbora"}};_.z(kt,rt);rt.prototype.getAdsAdapter=rt.prototype.getAdsAdapter;rt.prototype.getAdapter=rt.prototype.getAdapter;rt.prototype.setYouboraPlugin=rt.prototype.te;rt.Id="youbora";_.ro(new class{create(){return new rt}});};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.12.0",
4
+ "version": "6.13.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/castlabs/prestoplay-web.git"
package/typings.d.ts CHANGED
@@ -137,19 +137,19 @@ export namespace clpp {
137
137
  */
138
138
  id(): string;
139
139
  /**
140
- * Callback that is triggered after content is loaded
140
+ * Callback that is triggered after content is loaded.
141
141
  *
142
142
  * @param player The player
143
143
  * @param optArgs Optional arguments
144
144
  */
145
145
  onContentLoaded(player: clpp.Player, ...optArgs: any[]): void|Promise<void>;
146
146
  /**
147
- * Callback that is triggered before content is loaded
147
+ * Callback that is triggered before content is loaded.
148
148
  *
149
149
  * @param player The player
150
150
  * @param source The chosen source
151
151
  */
152
- onContentWillLoad(player: clpp.Player, source: clpp.Source): void;
152
+ onContentWillLoad(player: clpp.Player, source: clpp.Source): void|Promise<void>;
153
153
  /**
154
154
  * Callback that is triggered when the player is created, i.e. when an instance
155
155
  * of {@link clpp.Player} is created.
@@ -164,7 +164,7 @@ export namespace clpp {
164
164
  */
165
165
  onPlayerWillDestroy(player: clpp.Player): void;
166
166
  /**
167
- * Callback that is triggered when the player is released
167
+ * Callback that is triggered when the player is released.
168
168
  *
169
169
  * @param player The player
170
170
  */
@@ -172,7 +172,7 @@ export namespace clpp {
172
172
  }
173
173
 
174
174
  /**
175
- * Implementation of this factory are used to create new player plugins
175
+ * Implementations of this factory are used to create new player plugins.
176
176
  */
177
177
  export interface PlayerPluginFactory {
178
178
  /**
@@ -1313,6 +1313,10 @@ export namespace clpp {
1313
1313
  * Tizen specific configuration
1314
1314
  */
1315
1315
  tizen?: Partial<clpp.TizenConfiguration>;
1316
+ /**
1317
+ * Trick play specific configuration
1318
+ */
1319
+ trickPlay?: Partial<clpp.TrickPlayConfiguration>;
1316
1320
  /**
1317
1321
  * TTML component configuration.
1318
1322
  */
@@ -2318,6 +2322,41 @@ export namespace clpp {
2318
2322
  value: string;
2319
2323
  }
2320
2324
 
2325
+ /**
2326
+ * Configuration for Trick play.
2327
+ * This is only available for MSE player.
2328
+ */
2329
+ export type TrickPlayConfiguration = {
2330
+ /**
2331
+ * If enabled,
2332
+ * and the content contains a Trickplay (usually I-frame only) track,
2333
+ * it will be selected during Trickplay playback.
2334
+ */
2335
+ preferTrickPlayTracks?: boolean;
2336
+ /**
2337
+ * {@link clpp.SpeedUpMode}
2338
+ * Decoder mode
2339
+ * This is the default mode.
2340
+ * The player will play the content at the indicated speed.
2341
+ * Decoder mode is limited in range of playback rates,
2342
+ * support also varies per platforms.
2343
+ * This mode cannot be used for backwards playback.
2344
+ * For playback rates < 0, or other unsupported rates we
2345
+ * fallback to Seek mode by default.
2346
+ * Seek mode
2347
+ * This mode internally pause the playback
2348
+ * and continuously perform seek operations.
2349
+ * This mode is preferable for very high playback rates,
2350
+ * as only a few segments must be downloaded,
2351
+ * also with seeking mode is possible to perform backwards playback.
2352
+ * This mode is also recommended as default for platform
2353
+ * where decoder mode is limited.
2354
+ * With Seek mode playback will continuously stutter,
2355
+ * so hiding the buffering indicator on your app UI is encouraged.
2356
+ */
2357
+ speedUpMode?: clpp.SpeedUpMode;
2358
+ }
2359
+
2321
2360
  /**
2322
2361
  * TTML component configuration.
2323
2362
  */
@@ -2729,6 +2768,23 @@ export namespace clpp {
2729
2768
  severity: clpp.Error.Severity;
2730
2769
  }
2731
2770
 
2771
+ /**
2772
+ * Speed-up mode to use during trick play.
2773
+ */
2774
+ export enum SpeedUpMode {
2775
+ /**
2776
+ * Decoder mode
2777
+ * play the content at the indicated speed, using native play rate.
2778
+ */
2779
+ DECODER = "decoder",
2780
+ /**
2781
+ * Seek mode
2782
+ * will internally pause the playback and continuously perform
2783
+ * seek operations.
2784
+ */
2785
+ SEEK = "seek",
2786
+ }
2787
+
2732
2788
  /**
2733
2789
  * Timeline cue types.
2734
2790
  */
@@ -3600,8 +3656,12 @@ export namespace clpp {
3600
3656
  setNetworkEngine(engine: clpp.net.NetworkEngine): void;
3601
3657
  /**
3602
3658
  * Set speed of the playback, where 1 means "normal" speed.
3659
+ * For MSE playback, optional `speedUpMode` can be passed.
3660
+ * {@link clpp.SpeedUpMode}
3603
3661
  *
3604
3662
  * @param rate The rate
3663
+ * @param opt_mode The speedUpMode
3664
+ * to use during trick play
3605
3665
  *
3606
3666
  * @example // Play at double speed.
3607
3667
  *
@@ -3614,8 +3674,16 @@ export namespace clpp {
3614
3674
  * @example // Play at normal speed.
3615
3675
  *
3616
3676
  * player.setPlaybackRate(1);
3677
+ *
3678
+ * @example // Play at double speed backwards.
3679
+ *
3680
+ * player.setPlaybackRate(-2);
3681
+ *
3682
+ * @example // Play at double speed, using seek mode.
3683
+ *
3684
+ * player.setPlaybackRate(2, 'seek');
3617
3685
  */
3618
- setPlaybackRate(rate: number): void;
3686
+ setPlaybackRate(rate: number, opt_mode?: clpp.SpeedUpMode): void;
3619
3687
  /**
3620
3688
  * Use this to set the volume of the video as a value between 0 and 1. Please
3621
3689
  * note that on some platforms setting the volume is not permitted. For
@@ -4166,6 +4234,10 @@ export namespace clpp {
4166
4234
  * Thumbnail file(s) failed to load.
4167
4235
  */
4168
4236
  THUMBNAILS_FAILED_TO_LOAD = 2013,
4237
+ /**
4238
+ * Thumbnail-related error.
4239
+ */
4240
+ THUMBNAIL_ERROR = 2014,
4169
4241
  /**
4170
4242
  * Some component tried to read past the end of a buffer. The segment index,
4171
4243
  * init segment, or PSSH may be malformed.
@@ -7823,16 +7895,13 @@ export namespace clpp {
7823
7895
  * is requested for.
7824
7896
  *
7825
7897
  * @example // Access the thumbnails plugin and add a thumbnail to a container element,
7826
- scaling the thumbnail to a width of 180 pixel.
7898
+ scaling the thumbnail to a width of 180 pixels.
7827
7899
  *
7828
- * let container = ... // Element that is used to host thumbnails
7829
- * // You should null check that. It is only available if the plugin was
7830
- * // loaded
7831
- * let thumbsPlugin = player.getPlugin(clpp.thumbnails.ThumbnailsPlugin.Id);
7900
+ * const container = document.getElementById('thumbnail-container');
7901
+ * const thumbsPlugin = player.getPlugin(clpp.thumbnails.ThumbnailsPlugin.Id);
7832
7902
  *
7833
- * // Get a thumbnail for 12 seconds
7903
+ * // Get a thumbnail at 12 seconds
7834
7904
  * thumbsPlugin.get(12)
7835
- * .then(thumb => thumb.load())
7836
7905
  * .then(thumb => thumb.element(180))
7837
7906
  * .then(container.appendChild);
7838
7907
  */