@castlabs/prestoplay 6.8.0 → 6.10.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.
- package/CHANGELOG.md +66 -0
- package/cjs/cl.adobe.js +3 -3
- package/cjs/cl.airplay.js +3 -3
- package/cjs/cl.broadpeak.js +6 -6
- package/cjs/cl.cast.js +111 -110
- package/cjs/cl.conviva.js +33 -33
- package/cjs/cl.core.js +414 -411
- package/cjs/cl.crypto.js +10 -9
- package/cjs/cl.dash.js +72 -72
- package/cjs/cl.externs.js +36 -37
- package/cjs/cl.freewheel.js +24 -24
- package/cjs/cl.hls.js +73 -67
- package/cjs/cl.hlssmpte.js +6 -6
- package/cjs/cl.htmlcue.js +29 -31
- package/cjs/cl.ima.js +22 -22
- package/cjs/cl.mse.js +275 -274
- package/cjs/cl.muxdata.js +14 -15
- package/cjs/cl.onboard.js +3 -3
- package/cjs/cl.persistent.js +13 -13
- package/cjs/cl.playlist.js +6 -6
- package/cjs/cl.smooth.js +70 -70
- package/cjs/cl.thumbnails.js +24 -24
- package/cjs/cl.tizen.js +70 -70
- package/cjs/cl.ttml.js +27 -27
- package/cjs/cl.verimatrix.js +5 -5
- package/cjs/cl.vimond.js +13 -13
- package/cjs/cl.vr.js +19 -19
- package/cjs/cl.vtt.js +14 -14
- package/cjs/cl.youbora.js +19 -19
- package/cl.adobe.js +3 -3
- package/cl.airplay.js +3 -3
- package/cl.broadpeak.js +5 -5
- package/cl.cast.js +88 -88
- package/cl.conviva.js +27 -27
- package/cl.core.js +366 -362
- package/cl.crypto.js +9 -9
- package/cl.dash.js +66 -66
- package/cl.externs.js +36 -37
- package/cl.freewheel.js +19 -19
- package/cl.hls.js +61 -58
- package/cl.hlssmpte.js +5 -5
- package/cl.htmlcue.js +26 -25
- package/cl.ima.js +17 -17
- package/cl.mse.js +238 -239
- package/cl.muxdata.js +12 -12
- package/cl.onboard.js +4 -4
- package/cl.persistent.js +9 -9
- package/cl.playlist.js +5 -5
- package/cl.smooth.js +59 -58
- package/cl.thumbnails.js +17 -17
- package/cl.tizen.js +57 -57
- package/cl.ttml.js +22 -22
- package/cl.verimatrix.js +4 -4
- package/cl.vimond.js +8 -8
- package/cl.vr.js +14 -14
- package/cl.vtt.js +12 -12
- package/cl.youbora.js +15 -15
- package/package.json +1 -1
- package/typings.d.ts +74 -2
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
|
|
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},
|
|
3
|
-
c+60*b+3600*(Number(a[1])||0)},
|
|
4
|
-
_.
|
|
5
|
-
b," The region will be ignored."),null)},
|
|
6
|
-
"WEBVTT\n\n";for(const c of a)b+=
|
|
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 _.
|
|
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,
|
|
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 _.
|
|
10
|
-
new _.H(_.G,2,2008);let c=0,d=[],e;const f=[];let g=!1,h=!1,k=!1,l=null;(new _.
|
|
11
|
-
_.
|
|
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(_.
|
|
1
|
+
import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var oq=" The setting will be ignored.",pq="VTT parser encountered an invalid VTT setting: ",qq="application/x-subrip",rq="text/srt",sq='text/vtt; codecs\x3d"vtt"',tq='text/vtt; codecs\x3d"wvtt"',uq=function(a){return a.a==a.f.length?null:(a=_.eh(a,/[^ \t\n]*/gm))?a[0]:null},vq=function(a){_.eh(a,/[ \t]+/gm)},wq=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},xq=function(a){a=_.eh(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)},zq=function(a,b,c){let d;if(d=/^align:(start|middle|center|end|left|right)$/.exec(b))b=d[1],"middle"==b?a.textAlign=_.so:a.textAlign=_.yo[b.toUpperCase()];else if(d=/^vertical:(lr|rl)$/.exec(b))a.writingMode="lr"==d[1]?_.He:_.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==_.nd||b==_.le?_.nd:b==_.od||b==_.Zc?_.od:
|
|
4
|
+
_.vc);else if(d=/^region:(.*)$/.exec(b)){if(b=yq(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=_.zo[c[2].toUpperCase()]);else if(c=/^line:(-?\d+)(?:,(start|end|center))?$/.exec(b))a.lineInterpretation=_.uo,a.line=Number(c[1]),c[2]&&(a.lineAlign=_.zo[c[2].toUpperCase()]);else{a=!1;break a}a=!0}return a}return!0},yq=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)},Bq=function(a,b,c){let d,e,f;(new _.Qj).L("payl",_.Lj(g=>{d=_.Ig(g)})).L("iden",_.Lj(g=>{e=_.Ig(g)})).L("sttg",_.Lj(g=>{f=_.Ig(g)})).parse(a);return d?Aq(d,e,f,b,c):null},Aq=function(a,b,c,d,e){a=new _.xo(d,e,a,_.Pe);b&&(a.id=b);if(c)for(b=new _.fh(c),c=uq(b);c;)zq(a,c,[])||_.C(pq,c,oq),vq(b),c=uq(b);return a},Cq=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+=wq(c)}return _.Mg(b)}},Dq=class{create(){return new Cq}probe(a,b){return(a===rq||a===qq)&&b===_.ve}};var Eq=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 _.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=xq(new _.fh(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 _.fh(f.replace(/\n/g," "));d=new _.Co;uq(e);vq(e);for(var g=uq(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,oq);vq(e);g=uq(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 _.fh(l[0]);g=xq(d);const q=_.eh(d,/[ \t]+--\x3e[ \t]+/g);k=xq(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 _.xo(g,k,l,_.Pe);e&&(g.id=e);vq(d);for(k=uq(d);k;)zq(g,k,c)||_.C(pq,k,oq),vq(d),k=uq(d);null!=e&&(g.id=e);c=g}c&&m.push(c)}return{cues:m,styles:f}}};var Fq=class extends Eq{parseMedia(a,b){return super.parseMedia((new Cq).a(a),b)}};var Gq=class{constructor(){this.a=null;this.f=new _.Q("clpp.vtt.mp4")}parseInit(a){let b=!1;(new _.Qj).L(_.yd,_.Jj).L(_.ye,_.Jj).L(_.td,_.Jj).Z("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(_.xd,_.Jj).L(_.oe,_.Jj).Z(_.qe,_.Kj).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 _.Qj).L("moof",_.Jj).L("traf",_.Jj).Z("tfdt",q=>{g=!0;c=0==q.version?_.P(q.reader):_.Ej(q.reader)}).Z("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}).Z("trun",q=>{h=!0;{var t=q.version,v=q.flags;q=q.reader;const x=_.P(q);v&1&&q.skip(4);v&4&&q.skip(4);const A=[];for(let D=0;D<x;D++){const E={duration:null,sampleSize:null,je:null};v&256&&(E.duration=_.P(q));v&512&&(E.sampleSize=
|
|
11
|
+
_.P(q));v&1024&&q.skip(4);v&2048&&(E.je=0==t?_.P(q):_.Dj(q));A.push(E)}d=A}}).L(_.sd,_.Lj(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 _.wk(m,!1);for(const q of d){const t=q.duration||l,v=q.je?c+q.je:a;a=v+(t||0);let x=0;do{const A=_.P(m);x+=A;var n=_.P(m);n=_.Ij(n);let D=null;"vttc"==n?8<A&&(D=_.Gj(m,A-8)):("vtte"!=n&&this.f.error("Unknown box "+n+"! Skipping!"),m.skip(A-8));t?D&&f.push(Bq(D,b.periodStart+v/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(_.fg),styles:[]}}};_.z("clpp.vtt.VttComponent",class extends _.Fp{constructor(){super();this.h=new Dq}f(){_.co[_.ve]=Eq;_.co[sq]=Eq;_.co[tq]=Eq;_.co[_.Xb]=Gq;_.co[rq]=Fq;_.co[qq]=Fq;_.Wh.push(this.h)}a(){_.eo(_.ve);_.eo(sq);_.eo(tq);_.eo(_.Xb);_.eo(rq);_.eo(qq);_.Yh(this.h)}id(){return _.te}});};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
|
|
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},
|
|
3
|
-
a.code?"ad error":_
|
|
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.
|
|
5
|
-
youbora.Util.logAllEvents(this.l),this.a.on(this.l,_.
|
|
6
|
-
this.g();break;case _.
|
|
7
|
-
(c=c.keySystem,(c=c.startsWith(_.
|
|
8
|
-
c);c=c.adsTimeline;this.w=!!c&&c.
|
|
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.
|
|
10
|
-
this.j.getCuePoints().length}getGivenBreaks(){return this.getExpectedBreaks()}getExpectedAds(){return this.a&&this.a.
|
|
11
|
-
this.f&&(this.f.on(this.l,_.Nb,this.N.bind(this)),this.f.on(this.l,_.Jb,this.
|
|
12
|
-
this.f.on(this.l,_.xb,this.B.bind(this)),this.f.on(this.l,_.yb,this.C.bind(this)),this.f.on(this.l,_.Gb,this.w.bind(this)))}unregisterListeners(){_.
|
|
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.
|
|
14
|
-
c&&c.fireStop()}}H(c){(c=c.detail)&&10003===c.code&&
|
|
15
|
-
a.youbora;void 0===c[
|
|
1
|
+
import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var gq="clpp.npaw.YouboraPlugin",hq="content.isLive",iq=function(a,b){if(b.namespace()===_.Bc)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},jq=a=>(a=a.getConfiguration().youbora)&&a.errorFilter?a.errorFilter:b=>({code:`${b.code}`,message:b.message,severity:b.severity}),kq=(a,b,c,d)=>{b=jq(b)(a);if(!b)return c.debug("Error not sent to Youbora",a.code,a.message),null;a=10003===
|
|
3
|
+
a.code?"ad error":_.ad;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 lq=a=>{class b extends youbora.Adapter{constructor(c){super(c);this.l=c;this.a=new _.po;this.f=new _.Q("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.Ja())?c.frameRate:null}getPlayerName(){return _.ma}getVersion(){return"6.10.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,_.me,this.I.bind(this)),this.a.on(this.l,_.ad,this.F.bind(this)),this.a.on(this.l,_.Fe,this.H.bind(this)),this.a.on(this.l,_.Ee,this.G.bind(this)),this.a.on(this.l,_.Nb,this.B.bind(this)),this.a.on(this.l,_.rc,this.C.bind(this)))}unregisterListeners(){this.f.debug(_.ob);_.Nf(this.a)}dispose(){super.dispose()}m(){return this.l.getStats()||_.xl()}o(){return!!this.l.getConfiguration().autoplay}I(c){c=c.detail;this.j("state change",c);if(c)switch(c.currentState){case _.Ll:this.o()&&
|
|
6
|
+
this.g();break;case _.Nl:this.g();this.A();this.fireResume();this.fireBufferEnd();break;case _.Ml:this.o()&&this.g();this.A();this.fireBufferEnd();this.firePause();break;case _.Kl:this.fireBufferEnd();this.fireStop();break;case _.Cl:this.fireBufferEnd();this.w&&this.plugin.getAdsAdapter()?this.firePause():this.fireStop();break;case _.Fl: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(_.Lc)?"Widevine":c.startsWith(_.Jc)?"FairPlay":c.match(/^com\.(microsoft|chromecast)\.playready/)?"PlayReady":c.startsWith(_.Ld)?"ClearKey":c.startsWith(_.Ic)?"Primetime":c)&&this.plugin.setOptions({"content.drm":c}));this.fireJoin()}F(c){!(c=c.detail)||this.h||10003===c.code&&this.plugin.getAdsAdapter()||(c=kq(c,this.l,this.f,this))&&c.severity===_.G&&(this.h=!0)}H(){this.j(_.he);this.l.isEnded()||(this.g(),this.fireSeekBegin())}G(){this.j(_.ge);this.fireSeekEnd()}B(c){this.f.debug("adsTimeline",
|
|
8
|
+
c);c=c.adsTimeline;this.w=!!c&&c.hb()}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 mq=a=>{class b extends youbora.Adapter{constructor(c){super(c);this.l=c;this.j=this.a=null;this.f=new _.po;this.h=new _.Q("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.sb(),this.a.rb(),this.a.gb()));return c}getBitrate(){return this.a&&this.a.gb()}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.Sa()){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.ub()}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 _.ma}getVersion(){return"6.10.0-castlabsadsadapter-js"}getPlayerVersion(){return _.da}registerListeners(){this.l&&
|
|
11
|
+
this.f&&(this.f.on(this.l,_.Nb,this.N.bind(this)),this.f.on(this.l,_.Jb,this.M.bind(this)),this.f.on(this.l,_.Fb,this.I.bind(this)),this.f.on(this.l,_.Hb,this.J.bind(this)),this.f.on(this.l,_.Ab,this.G.bind(this)),this.f.on(this.l,_.Bb,this.o.bind(this,1)),this.f.on(this.l,_.Eb,this.o.bind(this,2)),this.f.on(this.l,_.Lb,this.o.bind(this,3)),this.f.on(this.l,_.zb,this.F.bind(this)),this.f.on(this.l,_.Ib,this.K.bind(this)),this.f.on(this.l,_.ad,this.H.bind(this)),this.f.on(this.l,_.wb,this.A.bind(this)),
|
|
12
|
+
this.f.on(this.l,_.xb,this.B.bind(this)),this.f.on(this.l,_.yb,this.C.bind(this)),this.f.on(this.l,_.Gb,this.w.bind(this)))}unregisterListeners(){_.Nf(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.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.Hb();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&&kq(c,this.l,this.h,this)}g(c,...d){this.h.debug(`Reporting "${c}" event to Youbora`,...d)}}return new b(a)};var nq=class extends _.fq{constructor(){super();this.a=null;this.f=new _.Q(gq);this.l=null}ee(a){this.a&&(this.a.removeAdsAdapter(),this.a.removeAdapter());if(this.a=a)this.a.setAdapter(lq(this.l)),this.a.setAdsAdapter(mq(this.l))}getAdapter(){return this.a&&this.a.getAdapter()}getAdsAdapter(){return this.a&&this.a.getAdsAdapter()}onPlayerCreated(a){this.l=a;iq(this,a)&&(a=a.getConfiguration().youbora,this.ee(new youbora.Plugin(a)))}onContentWillLoad(a,b){if(iq(this,a)){a=a.getConfiguration();var c=
|
|
15
|
+
a.youbora;void 0===c[hq]&&(c[hq]=b.isLive);void 0===c["content.title"]&&(c["content.title"]=b.name);void 0===c.viewerId&&(c.viewerId=a.viewerId);this.a||this.ee(new youbora.Plugin(c));this.a.setOptions(c)}}onPlayerWillRelease(){}onPlayerWillDestroy(){}id(){return"youbora"}};_.z(gq,nq);nq.prototype.getAdsAdapter=nq.prototype.getAdsAdapter;nq.prototype.getAdapter=nq.prototype.getAdapter;nq.prototype.setYouboraPlugin=nq.prototype.ee;nq.Id="youbora";_.Nm(new class{create(){return new nq}});};f.call(g, window);
|
package/package.json
CHANGED
package/typings.d.ts
CHANGED
|
@@ -1346,6 +1346,12 @@ export namespace clpp {
|
|
|
1346
1346
|
* generated
|
|
1347
1347
|
*/
|
|
1348
1348
|
disableContainer: boolean;
|
|
1349
|
+
/**
|
|
1350
|
+
* If true, a performance patch will be applied on webOS 4,5,6 devices
|
|
1351
|
+
* in order to reduce startup time by setting
|
|
1352
|
+
* 'controls' attribute on the video element.
|
|
1353
|
+
*/
|
|
1354
|
+
webOSStartupPatch: boolean;
|
|
1349
1355
|
}
|
|
1350
1356
|
|
|
1351
1357
|
/**
|
|
@@ -1576,6 +1582,11 @@ export namespace clpp {
|
|
|
1576
1582
|
* Note that in order for this feature to work, NAME attributes of
|
|
1577
1583
|
* #EXT-X-MEDIA tags must be unique per type (i.e. no two audio tracks
|
|
1578
1584
|
* share the same name, no two text tracks share the same name).
|
|
1585
|
+
*
|
|
1586
|
+
*
|
|
1587
|
+
* Note that this requires an additional load of the manifest since
|
|
1588
|
+
* this information is currently not exposed directly by Safaris native
|
|
1589
|
+
* player. For this reason, fetching additional meta-data is off by default.
|
|
1579
1590
|
*/
|
|
1580
1591
|
enableMetadata?: boolean;
|
|
1581
1592
|
}
|
|
@@ -1887,6 +1898,28 @@ export namespace clpp {
|
|
|
1887
1898
|
* that the manifest times and the segment media times are in alignment
|
|
1888
1899
|
*/
|
|
1889
1900
|
ignoreDrift: boolean;
|
|
1901
|
+
/**
|
|
1902
|
+
* Defaults to false.
|
|
1903
|
+
*
|
|
1904
|
+
* The option allows the player to ignore the Managed Media Source (MMS)
|
|
1905
|
+
* `startstreaming` and `endstreaming` events. These events are normally used
|
|
1906
|
+
* as hints from the User Agent to optimize streaming performance in relation
|
|
1907
|
+
* to network conditions and device power management.
|
|
1908
|
+
* When this option is set to `true`, the application will ignore these hints,
|
|
1909
|
+
* enabling continuous streaming regardless of the underlying network
|
|
1910
|
+
* conditions or device constraints. This can be particularly useful in
|
|
1911
|
+
* scenarios where consistent streaming is prioritized over battery and
|
|
1912
|
+
* bandwidth optimization.
|
|
1913
|
+
* Setting this option to `false` (default) will allow the application to
|
|
1914
|
+
* adhere to the `startstreaming` and `endstreaming` events. This is
|
|
1915
|
+
* recommended for general use cases to ensure an optimal balance between
|
|
1916
|
+
* streaming performance and resource utilization.
|
|
1917
|
+
* Note:
|
|
1918
|
+
* Use this option judiciously, as ignoring these hints can impact device
|
|
1919
|
+
* battery life and network efficiency, especially in varying network
|
|
1920
|
+
* conditions or on constrained devices.
|
|
1921
|
+
*/
|
|
1922
|
+
ignoreManagedMediaSourceStreamingHints?: boolean;
|
|
1890
1923
|
/**
|
|
1891
1924
|
* Defaults to false.
|
|
1892
1925
|
*
|
|
@@ -2151,6 +2184,28 @@ export namespace clpp {
|
|
|
2151
2184
|
value: string;
|
|
2152
2185
|
}
|
|
2153
2186
|
|
|
2187
|
+
/**
|
|
2188
|
+
* Information about the wall-clock time of the player's timeline. It can be
|
|
2189
|
+
* used to display the wall-clock time of the playback of a live stream
|
|
2190
|
+
* in the UI.
|
|
2191
|
+
* This is only available for HLS playback via the MSE player.
|
|
2192
|
+
*/
|
|
2193
|
+
export type TimelineOffset = {
|
|
2194
|
+
/**
|
|
2195
|
+
* The offset in seconds that can be added to timeline position and seek
|
|
2196
|
+
* range in order to get the wall-clock time for these values.
|
|
2197
|
+
*/
|
|
2198
|
+
offsetDateTime: number;
|
|
2199
|
+
/**
|
|
2200
|
+
* The wall-clock time in seconds of the initial start of the seek range.
|
|
2201
|
+
* (Seek range changes during live playback as new segments become available
|
|
2202
|
+
* and old ones stop being available. This value refers to the seek range
|
|
2203
|
+
* at the very beginning of playback of the stream.) This value is taken
|
|
2204
|
+
* directly from the EXT-X-PROGRAM-DATE-TIME HLS tag.
|
|
2205
|
+
*/
|
|
2206
|
+
seekRangeStartDateTime: number;
|
|
2207
|
+
}
|
|
2208
|
+
|
|
2154
2209
|
/**
|
|
2155
2210
|
* Conviva plugin configuration.
|
|
2156
2211
|
*/
|
|
@@ -3159,6 +3214,12 @@ export namespace clpp {
|
|
|
3159
3214
|
* Returns an array of timeline cues.
|
|
3160
3215
|
*/
|
|
3161
3216
|
getTimelineCues(): Array<clpp.TimelineCue>;
|
|
3217
|
+
/**
|
|
3218
|
+
* Returns the timeline offset for live HLS streams when MSE Player is used.
|
|
3219
|
+
* The timeline offset is based on the value of the EXT-X-PROGRAM-DATE-TIME
|
|
3220
|
+
* tag.
|
|
3221
|
+
*/
|
|
3222
|
+
getTimelineOffset(): clpp.TimelineOffset|null;
|
|
3162
3223
|
/**
|
|
3163
3224
|
* Returns track manager.
|
|
3164
3225
|
*/
|
|
@@ -3701,12 +3762,21 @@ export namespace clpp {
|
|
|
3701
3762
|
label: string|null;
|
|
3702
3763
|
/**
|
|
3703
3764
|
* The language associated with this track.
|
|
3765
|
+
* This value is normalized - language part is always lowercase
|
|
3766
|
+
* and translated to ISO-639-1 if possible.
|
|
3704
3767
|
*/
|
|
3705
3768
|
language: string|null;
|
|
3706
3769
|
/**
|
|
3707
3770
|
* The MIME type of this track.
|
|
3708
3771
|
*/
|
|
3709
3772
|
mimeType: string|null;
|
|
3773
|
+
/**
|
|
3774
|
+
* The original language manifest value associated with this track.
|
|
3775
|
+
* Language value of the track, as it is present in the manifest.
|
|
3776
|
+
* This is the exact value provided in the manifest;
|
|
3777
|
+
* for normalized value use `language` property.
|
|
3778
|
+
*/
|
|
3779
|
+
originalLanguage: string|null;
|
|
3710
3780
|
/**
|
|
3711
3781
|
* Renditions of this track.
|
|
3712
3782
|
*/
|
|
@@ -7352,9 +7422,11 @@ export namespace clpp {
|
|
|
7352
7422
|
* Creates a DataViewReader, which abstracts a DataView object.
|
|
7353
7423
|
*
|
|
7354
7424
|
* @param dataView The data view
|
|
7355
|
-
* @param
|
|
7425
|
+
* @param endian Endianness,
|
|
7426
|
+
* by default little endian. True for little endian, false
|
|
7427
|
+
* for big endian.
|
|
7356
7428
|
*/
|
|
7357
|
-
constructor(dataView: DataView,
|
|
7429
|
+
constructor(dataView: DataView, endian?: boolean);
|
|
7358
7430
|
|
|
7359
7431
|
}
|
|
7360
7432
|
}
|