@castlabs/prestoplay 6.6.1-beta.2 → 6.7.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 (59) hide show
  1. package/CHANGELOG.md +20 -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 +110 -110
  6. package/cjs/cl.conviva.js +33 -33
  7. package/cjs/cl.core.js +403 -403
  8. package/cjs/cl.crypto.js +10 -10
  9. package/cjs/cl.dash.js +71 -71
  10. package/cjs/cl.externs.js +47 -41
  11. package/cjs/cl.freewheel.js +24 -24
  12. package/cjs/cl.hls.js +68 -49
  13. package/cjs/cl.hlssmpte.js +6 -6
  14. package/cjs/cl.htmlcue.js +31 -31
  15. package/cjs/cl.ima.js +24 -23
  16. package/cjs/cl.mse.js +263 -260
  17. package/cjs/cl.muxdata.js +11 -12
  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.smooth.js +70 -69
  22. package/cjs/cl.thumbnails.js +24 -24
  23. package/cjs/cl.tizen.js +71 -71
  24. package/cjs/cl.ttml.js +27 -27
  25. package/cjs/cl.verimatrix.js +5 -5
  26. package/cjs/cl.vimond.js +13 -13
  27. package/cjs/cl.vr.js +13 -13
  28. package/cjs/cl.vtt.js +11 -11
  29. package/cjs/cl.youbora.js +19 -19
  30. package/cl.adobe.js +3 -3
  31. package/cl.airplay.js +3 -3
  32. package/cl.broadpeak.js +5 -5
  33. package/cl.cast.js +88 -88
  34. package/cl.conviva.js +27 -27
  35. package/cl.core.js +345 -343
  36. package/cl.crypto.js +8 -8
  37. package/cl.dash.js +67 -67
  38. package/cl.externs.js +47 -41
  39. package/cl.freewheel.js +19 -19
  40. package/cl.hls.js +57 -40
  41. package/cl.hlssmpte.js +5 -5
  42. package/cl.htmlcue.js +25 -25
  43. package/cl.ima.js +17 -16
  44. package/cl.mse.js +227 -227
  45. package/cl.muxdata.js +9 -8
  46. package/cl.onboard.js +4 -4
  47. package/cl.persistent.js +10 -10
  48. package/cl.playlist.js +5 -5
  49. package/cl.smooth.js +58 -58
  50. package/cl.thumbnails.js +17 -17
  51. package/cl.tizen.js +57 -57
  52. package/cl.ttml.js +22 -22
  53. package/cl.verimatrix.js +4 -4
  54. package/cl.vimond.js +8 -8
  55. package/cl.vr.js +15 -15
  56. package/cl.vtt.js +12 -12
  57. package/cl.youbora.js +14 -14
  58. package/package.json +1 -1
  59. package/typings.d.ts +118 -12
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 sq=" The setting will be ignored.",tq="VTT parser encountered an invalid VTT setting: ",uq="application/x-subrip",vq="text/srt",wq='text/vtt; codecs\x3d"vtt"',xq='text/vtt; codecs\x3d"wvtt"',yq=function(a){return a.a==a.f.length?null:(a=_.ug(a,/[^ \t\n]*/gm))?a[0]:null},zq=function(a){_.ug(a,/[ \t]+/gm)},Aq=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},Bq=function(a){a=_.ug(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)},Dq=function(a,b,c){let d;if(d=/^align:(start|middle|center|end|left|right)$/.exec(b))b=d[1],"middle"==b?a.textAlign=_.xo:a.textAlign=_.Do[b.toUpperCase()];else if(d=/^vertical:(lr|rl)$/.exec(b))a.writingMode="lr"==d[1]?_.Ge:_.He;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==_.ld||b==_.je?_.ld:b==_.md||b==_.Yc?_.md:
4
- _.uc);else if(d=/^region:(.*)$/.exec(b)){if(b=Cq(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=_.Eo[c[2].toUpperCase()]);else if(c=/^line:(-?\d+)(?:,(start|end|center))?$/.exec(b))a.lineInterpretation=_.zo,a.line=Number(c[1]),c[2]&&(a.lineAlign=_.Eo[c[2].toUpperCase()]);else{a=!1;break a}a=!0}return a}return!0},Cq=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)},Fq=function(a,b,c){let d,e,f;(new _.Mj).M("payl",_.Hj(g=>{d=_.Ig(g)})).M("iden",_.Hj(g=>{e=_.Ig(g)})).M("sttg",_.Hj(g=>{f=_.Ig(g)})).parse(a);return d?Eq(d,e,f,b,c):null},Eq=function(a,b,c,d,e){a=new _.Co(d,e,a);b&&(a.id=b);if(c)for(b=new _.vg(c),c=yq(b);c;)Dq(a,c,[])||_.B(tq,c,sq),zq(b),c=yq(b);return a},Gq=class{a(a){a=_.Ig(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+=Aq(c)}return _.Mg(b)}},Hq=class{create(){return new Gq}probe(a,b){return(a===vq||a===uq)&&b===_.te}};var Iq=class{constructor(a){this.a=a}parseInit(){}parseMedia(a,b){a=_.Ig(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(_.F,2,2E3);a=b.periodStart;if(c[0].includes("X-TIMESTAMP-MAP")){var d=c[0].match(/LOCAL:((?:(\d{1,}):)?(\d{2}):(\d{2})\.(\d{3}))/m),e=c[0].match(/MPEGTS:(\d+)/m);if(d&&e){a=Bq(new _.vg(d[1]));if(null==a)throw new _.G(_.F,2,2E3);e=Number(e[1]);for(d=b.segmentStart;95443.7176888889<=d;)d-=95443.7176888889,e+=
7
- 8589934592;a=b.periodStart+e/9E4-a}}else this.a.streaming.relativeTextTimestamp&&null!==b.segmentStart&&(a=b.segmentStart);b=[];for(var f of c)if(/^region/.test(f.toLowerCase())){e=new _.vg(f.replace(/\n/g," "));d=new _.Ho;yq(e);zq(e);for(var g=yq(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,sq);zq(e);g=yq(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 _.vg(l[0]);g=Bq(d);const q=_.ug(d,/[ \t]+--\x3e[ \t]+/g);k=Bq(d);if(null==g||null==q||null==k)throw new _.G(_.F,2,2001);g+=h;k+=h;l=l.slice(1).join("\n").trim();g=new _.Co(g,k,l,_.Oe);e&&(g.id=e);zq(d);for(k=yq(d);k;)Dq(g,k,c)||_.B(tq,k,sq),zq(d),k=yq(d);null!=e&&(g.id=e);c=g}c&&m.push(c)}return{cues:m,styles:f}}};var Jq=class extends Iq{parseMedia(a,b){return super.parseMedia((new Gq).a(a),b)}};var Kq=class{constructor(){this.a=null;this.f=new _.O("clpp.vtt.mp4")}parseInit(a){let b=!1;(new _.Mj).M(_.wd,_.N).M(_.we,_.N).M(_.rd,_.N).X("mdhd",c=>{0==c.version?(c.reader.skip(4),c.reader.skip(4),this.a=_.M(c.reader),c.reader.skip(4)):(c.reader.skip(8),c.reader.skip(8),this.a=_.M(c.reader),c.reader.skip(8));c.reader.skip(4)}).M(_.vd,_.N).M(_.me,_.N).X(_.oe,_.Gj).M("wvtt",()=>{b=!0}).parse(a);if(!this.a)throw new _.G(_.F,2,2008);if(!b)throw new _.G(_.F,2,2008);}parseMedia(a,b){if(!this.a)throw this.f.error("No init segment for MP4+VTT!"),
10
- new _.G(_.F,2,2008);let c=0,d=[],e;const f=[];let g=!1,h=!1,k=!1,l=null;(new _.Mj).M("moof",_.N).M("traf",_.N).X("tfdt",q=>{g=!0;c=0==q.version?_.M(q.reader):_.Cj(q.reader)}).X("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?_.M(q):null}).X("trun",q=>{h=!0;{var t=q.version,u=q.flags;q=q.reader;const y=_.M(q);u&1&&q.skip(4);u&4&&q.skip(4);const A=[];for(let E=0;E<y;E++){const D={duration:null,sampleSize:null,Yd:null};u&256&&(D.duration=_.M(q));u&512&&(D.sampleSize=
11
- _.M(q));u&1024&&q.skip(4);u&2048&&(D.Yd=0==t?_.M(q):_.Aj(q));A.push(D)}d=A}}).M(_.qd,_.Hj(q=>{k=!0;e=q})).parse(a);if(!k&&!g&&!h)throw new _.G(_.F,2,2008);a=c;var m=new DataView(e.buffer,e.byteOffset,e.byteLength);m=new _.vk(m,!1);for(const q of d){const t=q.duration||l,u=q.Yd?c+q.Yd:a;a=u+(t||0);let y=0;do{const A=_.M(m);y+=A;var n=_.M(m);n=_.Fj(n);let E=null;"vttc"==n?8<A&&(E=_.Dj(m,A-8)):("vtte"!=n&&this.f.error("Unknown box "+n+"! Skipping!"),m.skip(A-8));t?E&&f.push(Fq(E,b.periodStart+u/this.a,
12
- b.periodStart+a/this.a)):this.f.error("WVTT sample duration unknown, and no default found!")}while(q.sampleSize&&y<q.sampleSize)}return{cues:f.filter(_.dg),styles:[]}}};_.x("clpp.vtt.VttComponent",class extends _.Lp{constructor(){super();this.h=new Hq}f(){_.io[_.te]=Iq;_.io[wq]=Iq;_.io[xq]=Iq;_.io[_.Xb]=Kq;_.io[vq]=Jq;_.io[uq]=Jq;_.Jh.push(this.h)}a(){_.jo(_.te);_.jo(wq);_.jo(xq);_.jo(_.Xb);_.jo(vq);_.jo(uq);_.Lh(this.h)}id(){return _.re}});};f.call(g, window);
1
+ import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var tq=" The setting will be ignored.",uq="VTT parser encountered an invalid VTT setting: ",vq="application/x-subrip",wq="text/srt",xq='text/vtt; codecs\x3d"vtt"',yq='text/vtt; codecs\x3d"wvtt"',zq=function(a){return a.a==a.f.length?null:(a=_.bh(a,/[^ \t\n]*/gm))?a[0]:null},Aq=function(a){_.bh(a,/[ \t]+/gm)},Bq=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},Cq=function(a){a=_.bh(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)},Eq=function(a,b,c){let d;if(d=/^align:(start|middle|center|end|left|right)$/.exec(b))b=d[1],"middle"==b?a.textAlign=_.xo:a.textAlign=_.Do[b.toUpperCase()];else if(d=/^vertical:(lr|rl)$/.exec(b))a.writingMode="lr"==d[1]?_.Ge:_.Ie;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==_.ld||b==_.je?_.ld:b==_.md||b==_.Yc?_.md:
4
+ _.uc);else if(d=/^region:(.*)$/.exec(b)){if(b=Dq(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=_.Eo[c[2].toUpperCase()]);else if(c=/^line:(-?\d+)(?:,(start|end|center))?$/.exec(b))a.lineInterpretation=_.zo,a.line=Number(c[1]),c[2]&&(a.lineAlign=_.Eo[c[2].toUpperCase()]);else{a=!1;break a}a=!0}return a}return!0},Dq=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)},Gq=function(a,b,c){let d,e,f;(new _.Mj).L("payl",_.Hj(g=>{d=_.Fg(g)})).L("iden",_.Hj(g=>{e=_.Fg(g)})).L("sttg",_.Hj(g=>{f=_.Fg(g)})).parse(a);return d?Fq(d,e,f,b,c):null},Fq=function(a,b,c,d,e){a=new _.Co(d,e,a);b&&(a.id=b);if(c)for(b=new _.ch(c),c=zq(b);c;)Eq(a,c,[])||_.C(uq,c,tq),Aq(b),c=zq(b);return a},Hq=class{a(a){a=_.Fg(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+=Bq(c)}return _.Jg(b)}},Iq=class{create(){return new Hq}probe(a,b){return(a===wq||a===vq)&&b===_.te}};var Jq=class{constructor(a){this.a=a}parseInit(){}parseMedia(a,b){a=_.Fg(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=Cq(new _.ch(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 _.ch(f.replace(/\n/g," "));d=new _.Ho;zq(e);Aq(e);for(var g=zq(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,tq);Aq(e);g=zq(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 _.ch(l[0]);g=Cq(d);const q=_.bh(d,/[ \t]+--\x3e[ \t]+/g);k=Cq(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 _.Co(g,k,l,_.Pe);e&&(g.id=e);Aq(d);for(k=zq(d);k;)Eq(g,k,c)||_.C(uq,k,tq),Aq(d),k=zq(d);null!=e&&(g.id=e);c=g}c&&m.push(c)}return{cues:m,styles:f}}};var Kq=class extends Jq{parseMedia(a,b){return super.parseMedia((new Hq).a(a),b)}};var Lq=class{constructor(){this.a=null;this.f=new _.O("clpp.vtt.mp4")}parseInit(a){let b=!1;(new _.Mj).L(_.wd,_.Fj).L(_.we,_.Fj).L(_.rd,_.Fj).Y("mdhd",c=>{0==c.version?(c.reader.skip(4),c.reader.skip(4),this.a=_.N(c.reader),c.reader.skip(4)):(c.reader.skip(8),c.reader.skip(8),this.a=_.N(c.reader),c.reader.skip(8));c.reader.skip(4)}).L(_.vd,_.Fj).L(_.me,_.Fj).Y(_.oe,_.Gj).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.f.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 _.Mj).L("moof",_.Fj).L("traf",_.Fj).Y("tfdt",q=>{g=!0;c=0==q.version?_.N(q.reader):_.Bj(q.reader)}).Y("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?_.N(q):null}).Y("trun",q=>{h=!0;{var t=q.version,u=q.flags;q=q.reader;const x=_.N(q);u&1&&q.skip(4);u&4&&q.skip(4);const A=[];for(let E=0;E<x;E++){const D={duration:null,sampleSize:null,ae:null};u&256&&(D.duration=_.N(q));u&512&&(D.sampleSize=
11
+ _.N(q));u&1024&&q.skip(4);u&2048&&(D.ae=0==t?_.N(q):_.zj(q));A.push(D)}d=A}}).L(_.qd,_.Hj(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 _.vk(m,!1);for(const q of d){const t=q.duration||l,u=q.ae?c+q.ae:a;a=u+(t||0);let x=0;do{const A=_.N(m);x+=A;var n=_.N(m);n=_.Ej(n);let E=null;"vttc"==n?8<A&&(E=_.Cj(m,A-8)):("vtte"!=n&&this.f.error("Unknown box "+n+"! Skipping!"),m.skip(A-8));t?E&&f.push(Gq(E,b.periodStart+u/this.a,
12
+ b.periodStart+a/this.a)):this.f.error("WVTT sample duration unknown, and no default found!")}while(q.sampleSize&&x<q.sampleSize)}return{cues:f.filter(_.cg),styles:[]}}};_.z("clpp.vtt.VttComponent",class extends _.Mp{constructor(){super();this.h=new Iq}f(){_.io[_.te]=Jq;_.io[xq]=Jq;_.io[yq]=Jq;_.io[_.Yb]=Lq;_.io[wq]=Kq;_.io[vq]=Kq;_.Sh.push(this.h)}a(){_.jo(_.te);_.jo(xq);_.jo(yq);_.jo(_.Yb);_.jo(wq);_.jo(vq);_.Uh(this.h)}id(){return _.re}});};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 kq="clpp.npaw.YouboraPlugin",lq="content.isLive",mq=function(a,b){if(b.namespace()===_.Ac)return a.f.info("Youbora does not report when casting."),!1;const c=b.getConfiguration().youbora;if(!_.of(c))return a.f.warn("Youbora plugin is loaded but not configured. Will do nothing."),!1;if(!c.accountCode)return a.f.warn("accountCode key is missing in Youbora config"),b.onError(new _.G(1,9,9101)),!1;if(_.z(window.youbora))return a.f.warn("Youbora SDK not found."),b.onError(new _.G(1,9,
2
- 9100)),!1;"6.8.49"!==youbora.VERSION&&(a.f.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},nq=a=>(a=a.getConfiguration().youbora)&&a.errorFilter?a.errorFilter:b=>({code:`${b.code}`,message:b.message,severity:b.severity}),oq=(a,b,c,d)=>{b=nq(b)(a);if(!b)return c.debug("Error not sent to Youbora",a.code,a.message),null;a=10003===
3
- a.code?"ad error":_.$c;b.severity===_.F?(d.fireFatalError(b.code,b.message,b.metadata),c.debug(`Reporting "fatal ${a}" to Youbora`,b.code,b)):(d.fireError(b.code,b.message,b.metadata),c.debug(`Reporting "${a}" to Youbora`,b.code,b));return b};var pq=a=>{class b extends youbora.Adapter{constructor(c){super(c);this.l=c;this.a=new _.uo;this.f=new _.O("clpp.npaw.YouboraAdapter");this.h=this.w=!1;this.registerListeners()}getPlayhead(){return this.getIsLive()?-1:this.l.getPosition()}getDuration(){return this.l.getDuration()}getRendition(){let c,d,e;var f=this.l.getTrackManager();f&&(f=f.fa())&&(c=f.width,d=f.height,e=f.bandwidth);c&&d&&e||(f=this.m(),c=c||f.width,d=d||f.height,e=e||f.streamBandwidth);return youbora.Util.buildRenditionString(c,
4
- d,e)}getIsLive(){return this.l.isLive()}getResource(){const c=this.l.getLoadedSource();return c&&c.url}getBitrate(){return this.m().streamBandwidth}getThroughput(){return this.m().estimatedBandwidth}getPlayrate(){return this.l.getPlaybackRate()}getFramesPerSecond(){var c=this.l.getTrackManager();return c&&(c=c.Ca())?c.frameRate:null}getPlayerName(){return _.oa}getVersion(){return"6.6.1-beta.2-castlabsadapter-js"}getPlayerVersion(){return _.da}registerListeners(){this.l&&this.a&&(this.f.debug("registering listeners"),
5
- youbora.Util.logAllEvents(this.l),this.a.on(this.l,_.ke,this.I.bind(this)),this.a.on(this.l,_.$c,this.F.bind(this)),this.a.on(this.l,_.Ee,this.H.bind(this)),this.a.on(this.l,_.Ce,this.G.bind(this)),this.a.on(this.l,_.Ob,this.B.bind(this)),this.a.on(this.l,_.qc,this.C.bind(this)))}unregisterListeners(){this.f.debug(_.pb);_.Of(this.a)}dispose(){super.dispose()}m(){return this.l.getStats()||_.Cl()}o(){return!!this.l.getConfiguration().autoplay}I(c){c=c.detail;this.j("state change",c);if(c)switch(c.currentState){case _.Ql:this.o()&&
1
+ import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var lq="clpp.npaw.YouboraPlugin",mq="content.isLive",nq=function(a,b){if(b.namespace()===_.Ac)return a.f.info("Youbora does not report when casting."),!1;const c=b.getConfiguration().youbora;if(!_.pf(c))return a.f.warn("Youbora plugin is loaded but not configured. Will do nothing."),!1;if(!c.accountCode)return a.f.warn("accountCode key is missing in Youbora config"),b.onError(new _.H(1,9,9101)),!1;if(_.B(window.youbora))return a.f.warn("Youbora SDK not found."),b.onError(new _.H(1,9,
2
+ 9100)),!1;"6.8.49"!==youbora.VERSION&&(a.f.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},oq=a=>(a=a.getConfiguration().youbora)&&a.errorFilter?a.errorFilter:b=>({code:`${b.code}`,message:b.message,severity:b.severity}),pq=(a,b,c,d)=>{b=oq(b)(a);if(!b)return c.debug("Error not sent to Youbora",a.code,a.message),null;a=10003===
3
+ a.code?"ad error":_.$c;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 qq=a=>{class b extends youbora.Adapter{constructor(c){super(c);this.l=c;this.a=new _.uo;this.f=new _.O("clpp.npaw.YouboraAdapter");this.h=this.w=!1;this.registerListeners()}getPlayhead(){return this.getIsLive()?-1:this.l.getPosition()}getDuration(){return this.l.getDuration()}getRendition(){let c,d,e;var f=this.l.getTrackManager();f&&(f=f.ia())&&(c=f.width,d=f.height,e=f.bandwidth);c&&d&&e||(f=this.m(),c=c||f.width,d=d||f.height,e=e||f.streamBandwidth);return youbora.Util.buildRenditionString(c,
4
+ d,e)}getIsLive(){return this.l.isLive()}getResource(){const c=this.l.getLoadedSource();return c&&c.url}getBitrate(){return this.m().streamBandwidth}getThroughput(){return this.m().estimatedBandwidth}getPlayrate(){return this.l.getPlaybackRate()}getFramesPerSecond(){var c=this.l.getTrackManager();return c&&(c=c.Ga())?c.frameRate:null}getPlayerName(){return _.oa}getVersion(){return"6.7.0-castlabsadapter-js"}getPlayerVersion(){return _.da}registerListeners(){this.l&&this.a&&(this.f.debug("registering listeners"),
5
+ youbora.Util.logAllEvents(this.l),this.a.on(this.l,_.ke,this.I.bind(this)),this.a.on(this.l,_.$c,this.F.bind(this)),this.a.on(this.l,_.De,this.H.bind(this)),this.a.on(this.l,_.Ce,this.G.bind(this)),this.a.on(this.l,_.Ob,this.B.bind(this)),this.a.on(this.l,_.qc,this.C.bind(this)))}unregisterListeners(){this.f.debug(_.pb);_.Nf(this.a)}dispose(){super.dispose()}m(){return this.l.getStats()||_.Cl()}o(){return!!this.l.getConfiguration().autoplay}I(c){c=c.detail;this.j("state change",c);if(c)switch(c.currentState){case _.Ql:this.o()&&
6
6
  this.g();break;case _.Sl:this.g();this.A();this.fireResume();this.fireBufferEnd();break;case _.Rl:this.o()&&this.g();this.A();this.fireBufferEnd();this.firePause();break;case _.Pl:this.fireBufferEnd();this.fireStop();break;case _.Hl:this.fireBufferEnd();this.w&&this.plugin.getAdsAdapter()?this.firePause():this.fireStop();break;case _.Kl:this.fireBufferBegin();break;default:this.f.debug("Unhandled state",c)}}g(){this.plugin.isInitiated||(this.h=!1,this.fireInit())}A(){var c=this.l.getDrmInfo();c&&
7
- (c=c.keySystem,(c=c.startsWith(_.Kc)?"Widevine":c.startsWith(_.Ic)?"FairPlay":c.match(/^com\.(microsoft|chromecast)\.playready/)?"PlayReady":c.startsWith(_.Md)?"ClearKey":c.startsWith(_.Hc)?"Primetime":c)&&this.plugin.setOptions({"content.drm":c}));this.fireJoin()}F(c){!(c=c.detail)||this.h||10003===c.code&&this.plugin.getAdsAdapter()||(c=oq(c,this.l,this.f,this))&&c.severity===_.F&&(this.h=!0)}H(){this.j(_.fe);this.l.isEnded()||(this.g(),this.fireSeekBegin())}G(){this.j(_.ee);this.fireSeekEnd()}B(c){this.f.debug("adsTimeline",
8
- c);c=c.adsTimeline;this.w=!!c&&c.eb()}C(c){this.f.debug("Casting",c);this.fireCasted()}j(c,...d){this.f.debug(`Reporting "${c}" event to Youbora`,...d)}}return new b(a)};var qq=a=>{class b extends youbora.Adapter{constructor(c){super(c);this.l=c;this.j=this.a=null;this.f=new _.uo;this.h=new _.O("clpp.npaw.YouboraAdsAdapter");this.registerListeners()}getDuration(){return this.a&&this.a.getDuration()}getRendition(){let c=null;this.a&&(c=youbora.Util.buildRenditionString(this.a.pb(),this.a.ob(),this.a.cb()));return c}getBitrate(){return this.a&&this.a.cb()}getPlayhead(){const c=this.l.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.Oa()){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.l.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.rb()}getGivenAds(){return this.getExpectedAds()}getBreaksTime(){return this.j&&this.j.getCuePoints().map(c=>-1===c?this.l.getDuration():c)}getIsFullscreen(){return this.l.getSurface().isFullscreen()}getIsVisible(){var c=this.l.getSurface().getContainer();c=youbora.Util.calculateAdViewability(c);this.h.debug("is container visible",c);return c}getPlayerName(){return _.oa}getVersion(){return"6.6.1-beta.2-castlabsadsadapter-js"}getPlayerVersion(){return _.da}registerListeners(){this.l&&
11
- this.f&&(this.f.on(this.l,_.Ob,this.L.bind(this)),this.f.on(this.l,_.Kb,this.K.bind(this)),this.f.on(this.l,_.Gb,this.G.bind(this)),this.f.on(this.l,_.Ib,this.I.bind(this)),this.f.on(this.l,_.Bb,this.C.bind(this)),this.f.on(this.l,_.Cb,this.m.bind(this,1)),this.f.on(this.l,_.Fb,this.m.bind(this,2)),this.f.on(this.l,_.Mb,this.m.bind(this,3)),this.f.on(this.l,_.Ab,this.B.bind(this)),this.f.on(this.l,_.Jb,this.J.bind(this)),this.f.on(this.l,_.$c,this.F.bind(this)),this.f.on(this.l,_.xb,this.o.bind(this)),
12
- this.f.on(this.l,_.yb,this.w.bind(this)),this.f.on(this.l,_.zb,this.A.bind(this)),this.f.on(this.l,_.Hb,this.H.bind(this)))}unregisterListeners(){_.Of(this.f)}dispose(){super.dispose()}L(c){this.h.debug("ad timeline changed",c);this.j=c.adsTimeline}K(c){this.a=c.ad;this.g("ad start",this.a);this.fireStart();this.fireJoin()}C(){this.g("ad ended");this.fireStop()}G(){this.g("ad pause");this.firePause()}I(){this.g("ad resume");this.fireResume()}A(){this.g("ad buffering started");this.fireBufferBegin()}H(){this.g("ad buffering ended");
13
- this.fireBufferEnd()}m(c){this.g("ad quartile",c);this.fireQuartile(c)}B(){this.g("ad clicked");const c=this.a&&this.a.Cb();this.h.debug("ad click through url: ",c);this.fireClick(c)}J(){this.g("ad skipped");this.fireSkip()}o(c){this.a=c.ad;this.g("ad break start",this.a);this.fireBreakStart()}w(){this.g("ad break stop");this.fireBreakStop();if(this.getPosition()===youbora.Constants.AdPosition.Postroll){const c=this.plugin.getAdapter();c&&c.fireStop()}}F(c){(c=c.detail)&&10003===c.code&&oq(c,this.l,
14
- this.h,this)}g(c,...d){this.h.debug(`Reporting "${c}" event to Youbora`,...d)}}return new b(a)};var rq=class extends _.jq{constructor(){super();this.a=null;this.f=new _.O(kq);this.l=null}Ud(a){this.a&&(this.a.removeAdsAdapter(),this.a.removeAdapter());if(this.a=a)this.a.setAdapter(pq(this.l)),this.a.setAdsAdapter(qq(this.l))}getAdapter(){return this.a&&this.a.getAdapter()}getAdsAdapter(){return this.a&&this.a.getAdsAdapter()}onPlayerCreated(a){this.l=a;mq(this,a)&&(a=a.getConfiguration().youbora,this.Ud(new youbora.Plugin(a)))}onContentWillLoad(a,b){if(mq(this,a)){a=a.getConfiguration();var c=
15
- a.youbora;void 0===c[lq]&&(c[lq]=b.isLive);void 0===c["content.title"]&&(c["content.title"]=b.name);void 0===c.viewerId&&(c.viewerId=a.viewerId);this.a||this.Ud(new youbora.Plugin(c));this.a.setOptions(c)}}onPlayerWillRelease(){}onPlayerWillDestroy(){}id(){return"youbora"}};_.x(kq,rq);rq.prototype.getAdsAdapter=rq.prototype.getAdsAdapter;rq.prototype.getAdapter=rq.prototype.getAdapter;rq.prototype.setYouboraPlugin=rq.prototype.Ud;rq.Id="youbora";_.Sm(new class{create(){return new rq}});};f.call(g, window);
7
+ (c=c.keySystem,(c=c.startsWith(_.Kc)?"Widevine":c.startsWith(_.Ic)?"FairPlay":c.match(/^com\.(microsoft|chromecast)\.playready/)?"PlayReady":c.startsWith(_.Kd)?"ClearKey":c.startsWith(_.Hc)?"Primetime":c)&&this.plugin.setOptions({"content.drm":c}));this.fireJoin()}F(c){!(c=c.detail)||this.h||10003===c.code&&this.plugin.getAdsAdapter()||(c=pq(c,this.l,this.f,this))&&c.severity===_.G&&(this.h=!0)}H(){this.j(_.fe);this.l.isEnded()||(this.g(),this.fireSeekBegin())}G(){this.j(_.ee);this.fireSeekEnd()}B(c){this.f.debug("adsTimeline",
8
+ c);c=c.adsTimeline;this.w=!!c&&c.fb()}C(c){this.f.debug("Casting",c);this.fireCasted()}j(c,...d){this.f.debug(`Reporting "${c}" event to Youbora`,...d)}}return new b(a)};var rq=a=>{class b extends youbora.Adapter{constructor(c){super(c);this.l=c;this.j=this.a=null;this.f=new _.uo;this.h=new _.O("clpp.npaw.YouboraAdsAdapter");this.registerListeners();this.m=!1}getDuration(){return this.a&&this.a.getDuration()}getRendition(){let c=null;this.a&&(c=youbora.Util.buildRenditionString(this.a.qb(),this.a.pb(),this.a.eb()));return c}getBitrate(){return this.a&&this.a.eb()}getPlayhead(){const c=this.l.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.Qa()){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.l.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.sb()}getGivenAds(){return this.getExpectedAds()}getBreaksTime(){return this.j&&this.j.getCuePoints().map(c=>-1===c?this.l.getDuration():c)}getIsFullscreen(){return this.l.getSurface().isFullscreen()}getIsVisible(){var c=this.l.getSurface().getContainer();c=youbora.Util.calculateAdViewability(c);this.h.debug("is container visible",c);return c}getPlayerName(){return _.oa}getVersion(){return"6.7.0-castlabsadsadapter-js"}getPlayerVersion(){return _.da}registerListeners(){this.l&&
11
+ this.f&&(this.f.on(this.l,_.Ob,this.O.bind(this)),this.f.on(this.l,_.Kb,this.M.bind(this)),this.f.on(this.l,_.Gb,this.I.bind(this)),this.f.on(this.l,_.Ib,this.J.bind(this)),this.f.on(this.l,_.Bb,this.G.bind(this)),this.f.on(this.l,_.Cb,this.o.bind(this,1)),this.f.on(this.l,_.Fb,this.o.bind(this,2)),this.f.on(this.l,_.Mb,this.o.bind(this,3)),this.f.on(this.l,_.Ab,this.F.bind(this)),this.f.on(this.l,_.Jb,this.K.bind(this)),this.f.on(this.l,_.$c,this.H.bind(this)),this.f.on(this.l,_.xb,this.A.bind(this)),
12
+ this.f.on(this.l,_.yb,this.B.bind(this)),this.f.on(this.l,_.zb,this.C.bind(this)),this.f.on(this.l,_.Hb,this.w.bind(this)))}unregisterListeners(){_.Nf(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.m=!0;this.g("ad buffering started");
13
+ this.fireBufferBegin()}w(){this.m&&(this.g("ad buffering ended"),this.m=!1,this.fireBufferEnd())}o(c){this.g("ad quartile",c);this.fireQuartile(c)}F(){this.g("ad clicked");const c=this.a&&this.a.Gb();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&&pq(c,this.l,this.h,this)}g(c,...d){this.h.debug(`Reporting "${c}" event to Youbora`,...d)}}return new b(a)};var sq=class extends _.kq{constructor(){super();this.a=null;this.f=new _.O(lq);this.l=null}Xd(a){this.a&&(this.a.removeAdsAdapter(),this.a.removeAdapter());if(this.a=a)this.a.setAdapter(qq(this.l)),this.a.setAdsAdapter(rq(this.l))}getAdapter(){return this.a&&this.a.getAdapter()}getAdsAdapter(){return this.a&&this.a.getAdsAdapter()}onPlayerCreated(a){this.l=a;nq(this,a)&&(a=a.getConfiguration().youbora,this.Xd(new youbora.Plugin(a)))}onContentWillLoad(a,b){if(nq(this,a)){a=a.getConfiguration();var c=
15
+ a.youbora;void 0===c[mq]&&(c[mq]=b.isLive);void 0===c["content.title"]&&(c["content.title"]=b.name);void 0===c.viewerId&&(c.viewerId=a.viewerId);this.a||this.Xd(new youbora.Plugin(c));this.a.setOptions(c)}}onPlayerWillRelease(){}onPlayerWillDestroy(){}id(){return"youbora"}};_.z(lq,sq);sq.prototype.getAdsAdapter=sq.prototype.getAdsAdapter;sq.prototype.getAdapter=sq.prototype.getAdapter;sq.prototype.setYouboraPlugin=sq.prototype.Xd;sq.Id="youbora";_.Sm(new class{create(){return new sq}});};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.6.1-beta.2",
4
+ "version": "6.7.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/castlabs/prestoplay-web.git"
package/typings.d.ts CHANGED
@@ -196,7 +196,11 @@ export namespace clpp {
196
196
  bandwidthUpgradeTarget: number;
197
197
  /**
198
198
  * The default bandwidth estimate to use if there is not enough data, in
199
- * bit/sec.
199
+ * bit/sec. This value is used for initial video track selection when there
200
+ * is no bandwidth estimation from previous playbacks. If the player instance
201
+ * is destroyed, any new load() call will use this value. Otherwise
202
+ * bandwidth estimation from current playback is transfered to the next
203
+ * playback.
200
204
  */
201
205
  defaultBandwidthEstimate: number;
202
206
  /**
@@ -206,7 +210,8 @@ export namespace clpp {
206
210
  /**
207
211
  * Restrictions used only for initial ABR selection. This can be used i.e.
208
212
  * in DRM multikey scenarios, to ensure that first selected track will be
209
- * playable on any platform.
213
+ * playable on any platform. Restrictions are applied on every playback
214
+ * attempt if defined.
210
215
  */
211
216
  initialRestrictions?: clpp.Restrictions;
212
217
  /**
@@ -714,6 +719,16 @@ export namespace clpp {
714
719
  * Default value, -1, means the bitrate will be selected by the SDK.
715
720
  */
716
721
  bitrate: number;
722
+ /**
723
+ * Disables SDK for SmartTVs devices (Tizen and WebOS).
724
+ * Could be used to disable ad playback in case of issues on devices using
725
+ * single video element for both ads and content.
726
+ * WARNING NOTE:
727
+ * This is an experimental feature and is currently disabled by default. We're
728
+ * planning to enable it by default in the future, but for now, we don't
729
+ * recommend using it in production. Default: `true`.
730
+ */
731
+ disableCustomPlayback: boolean;
717
732
  /**
718
733
  * Enables preloading of video assets.
719
734
  */
@@ -869,17 +884,85 @@ export namespace clpp {
869
884
  */
870
885
  export type MuxDataConfiguration = {
871
886
  /**
872
- * Your environment key.
887
+ * Your MUX Data environment key.
873
888
  */
874
889
  envKey: string;
875
890
  /**
876
- * The MUX data SDK
891
+ * The MUX Data SDK API instance. By default PRESTOPlay looks for the MUX
892
+ * Data SDK API in the global namespace variable `window.mux`, but that can
893
+ * be overridden by passing the API instance explicitly here through this
894
+ * config.
877
895
  */
878
896
  muxLib?: Object;
879
897
  /**
880
- * Pass more or/and override MUX SDK options.
898
+ * Pass additional or overriding MUX SDK options, which will be passed
899
+ * to the call of `mux.init()`.
900
+ */
901
+ muxOptionsOverride?: clpp.MuxOverride;
902
+ }
903
+
904
+ /**
905
+ * Options metadata.
906
+ */
907
+ export type MuxOptionsData = {
908
+ /**
909
+ * A key identifying a MUX Data environment/bucket/project.
910
+ */
911
+ env_key: string;
912
+ /**
913
+ * The name of the plugin being built (some descriptive string).
914
+ */
915
+ player_mux_plugin_name?: string;
916
+ /**
917
+ * The version of the plugin being built (a version string).
918
+ */
919
+ player_mux_plugin_version?: string;
920
+ /**
921
+ * Player Software being used to play the Video (e.g. Video.js, JW Player,
922
+ * etc.). Note this was previously named player_software
923
+ */
924
+ player_software_name?: string;
925
+ /**
926
+ * Player Software Version (e.g. 2.45.5).
927
+ */
928
+ player_software_version?: string;
929
+ /**
930
+ * As you make changes to your player you can compare how new versions of your
931
+ * player perform. This is not the player software version (e.g. Video.js
932
+ * 5.0.0), which is tracked automatically by the SDK.
933
+ */
934
+ player_version?: string;
935
+ /**
936
+ * Your internal ID for the video.
937
+ */
938
+ video_id?: string;
939
+ /**
940
+ * Title of the video player (e.g.: 'Awesome Show: Pilot')
881
941
  */
882
- muxOptionsOverride: Record<string, any>;
942
+ video_title?: string;
943
+ /**
944
+ * An ID representing the viewer who is watching the stream. Use this to look
945
+ * up video views for an individual viewer. If no value is specified, a unique
946
+ * ID will be generated by the SDK. Note: You should not use any value that is
947
+ * personally identifiable on its own (such as email address, username, etc).
948
+ * Instead, you should supply an anonymized viewer ID which you have stored
949
+ * within your own system.
950
+ */
951
+ viewer_user_id?: string;
952
+ }
953
+
954
+ /**
955
+ * Overriding options to pass to the MUX Data SDK.
956
+ */
957
+ export type MuxOverride = {
958
+ /**
959
+ * Data about the viewer, video and the integration.
960
+ */
961
+ data?: clpp.MuxOptionsData;
962
+ /**
963
+ * Controls whether debug log statements are logged to the console.
964
+ */
965
+ debug?: boolean;
883
966
  }
884
967
 
885
968
  /**
@@ -1097,7 +1180,7 @@ export namespace clpp {
1097
1180
  */
1098
1181
  muted?: boolean;
1099
1182
  /**
1100
- * Mux Data configuration.
1183
+ * Mux Data Analytics configuration.
1101
1184
  */
1102
1185
  muxdata?: Partial<clpp.MuxDataConfiguration>;
1103
1186
  /**
@@ -2609,7 +2692,7 @@ export namespace clpp {
2609
2692
  */
2610
2693
  RELEASING = "releasing",
2611
2694
  /**
2612
- * Triggered when the player and its components are about to be released
2695
+ * Triggered when the player and its components are released
2613
2696
  */
2614
2697
  RELEASED = "released",
2615
2698
  /**
@@ -2617,7 +2700,7 @@ export namespace clpp {
2617
2700
  */
2618
2701
  DESTROYING = "destroying",
2619
2702
  /**
2620
- * Triggered when the player and its components are about to be destroyed
2703
+ * Triggered when the player and its components are destroyed
2621
2704
  */
2622
2705
  DESTROYED = "destroyed",
2623
2706
  /**
@@ -4102,8 +4185,8 @@ export namespace clpp {
4102
4185
  */
4103
4186
  DASH_DUPLICATE_REPRESENTATION_ID = 4018,
4104
4187
  /**
4105
- * HLS manifest has several #EXT-X-MAP tags. We can only
4106
- * support one at the moment.
4188
+ * HLS manifest is invalid because multiple #EXT-X-MAP tags
4189
+ * were found attached to the same segment.
4107
4190
  */
4108
4191
  HLS_MULTIPLE_MEDIA_INIT_SECTIONS_FOUND = 4020,
4109
4192
  /**
@@ -4239,6 +4322,20 @@ export namespace clpp {
4239
4322
  * HLS media playlist does not contain any media segments.
4240
4323
  */
4241
4324
  HLS_PLAYLIST_EMPTY = 4043,
4325
+ /**
4326
+ * Some tag or attribute value in the HLS playlist is invalid.
4327
+ */
4328
+ HLS_INVALID_VALUE = 4044,
4329
+ /**
4330
+ * Encountered a complex HLS playlist with discontinuities.
4331
+ * Discontinuity in HLS is not fully supported yet,
4332
+ * only certain simple playlists are supported.
4333
+ */
4334
+ HLS_DISCONTINUITY_NOT_SUPPORTED = 4045,
4335
+ /**
4336
+ * Encountered a feature of HLS which is not currently supported.
4337
+ */
4338
+ HLS_UNSUPPORTED_FEATURE = 4046,
4242
4339
  /**
4243
4340
  * The StreamingEngine called onChooseStreams() but the callback receiver
4244
4341
  * did not return the correct number or type of Streams.
@@ -6165,6 +6262,11 @@ export namespace clpp {
6165
6262
  * of request modifiers that will be applied to this request
6166
6263
  */
6167
6264
  requestModifiers: Array<clpp.net.RequestModifier>;
6265
+ /**
6266
+ * Timestamp when the request
6267
+ * was started. Optional and only set and used now for purposes of analytics.
6268
+ */
6269
+ requestStartTimestamp: number|null;
6168
6270
  /**
6169
6271
  * The list
6170
6272
  * of request modifiers that will be applied to this request
@@ -6231,7 +6333,7 @@ export namespace clpp {
6231
6333
  * Use `clpp.utils.ab2str` to convert data to text and `clpp.utils.str2ab` to
6232
6334
  * convert data back to ArrayBuffer.
6233
6335
  */
6234
- data: ArrayBuffer|null;
6336
+ data: ArrayBuffer;
6235
6337
  /**
6236
6338
  * Optional. If true, this response was from a cache and should be ignored
6237
6339
  * for bandwidth estimation.
@@ -6247,6 +6349,10 @@ export namespace clpp {
6247
6349
  * The associated request
6248
6350
  */
6249
6351
  request?: clpp.net.Request;
6352
+ /**
6353
+ * Optional. The time it took to get the first byte of the response, in ms.
6354
+ */
6355
+ responseStartMs?: number;
6250
6356
  /**
6251
6357
  * The HTTP status code
6252
6358
  */