@castlabs/prestoplay 6.2.6-rc-1 → 6.2.6

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 ADDED
@@ -0,0 +1,414 @@
1
+ # 6.2.6
2
+
3
+ With this version we started to publish PRESTOplay to NPM. You can now simply integrate the
4
+ player and its modules my installing it as a dependency:
5
+
6
+ ```
7
+ npm install @castlabs/prestoplay
8
+ ```
9
+
10
+ **Note** that we needed to make some changes to the file names and folder structure of the SDK. In
11
+ previous releases we were using `.esm.js` and `.min.js` to differentiate CJS (UMD) and ESM modules. We
12
+ needed to change the structure slightly and use `esm` and `cjs` folders now instead while keeping the
13
+ actual file names the same.
14
+
15
+ ## Changes
16
+
17
+ * Introduced API for changing EME implementation to use.
18
+ * Due to that it is now possible to use MSE with encrypted content on Apple
19
+ devices.
20
+ * Please refer to DRM section in a manual for more info.
21
+ * Added a `streaming.preferNativeHlsOnSafari` config option to explicitly
22
+ specify should we play HLS content using MSE or native playback.
23
+ * By default, this option is set to `true`.
24
+ * Please refer to Components section in a manual for more info.
25
+ * Fix `PLAYER_ERROR_NOT_SUPPORTED_FILE` issue on Tizen for certain DASH streams.
26
+ * Fix startup issue for certain live streams on webOS 6.
27
+ * Improved `player.getSeekRange()` for native Safari playback.
28
+ * Simplified DRMtoday FairPlay certificate request structure
29
+ * Introduce the `PlayerConfiguration.forceWaitForTracks` flag to indicate that
30
+ the load promise should only resolve once data is loaded. This allows the load
31
+ promise to wait until data arrived and the track model is fully initialized.
32
+ Note that, if at all, this is only required for some special cases on Safari
33
+ native playback to make sure that tracks are resolved before load resolves.
34
+ In the regular case the track model is already initialized when the load promise
35
+ resolves.
36
+ * Fixed regression on default FPS license response handling. We missed
37
+ a case where license responses should still be base64 decoded.
38
+ * Fix seekRange() values for HLS LIVE streams with MSE.
39
+ * Fixed issue with DRMtoday and FairPlay integration for multi-key cases
40
+ where the SKD erroneously contains not only a keyId but also an
41
+ asset id
42
+ * Added basic TTML to VTT transcoder. This allows to sideload TTML subtitles with
43
+ native text displayer (e.g. iPhone Safari). Be aware that in this iteration we
44
+ skip most of the styling information from TTML, so just text cues are transcoded.
45
+ * Added support for manually setting the Widevine Server Certificate in an easy way
46
+ * Added support for automatic retries in case a wrong Widevine Certificate was used
47
+
48
+
49
+ # 6.2.5
50
+ * ESM files are now compatible with ECMAScript 2015.
51
+ * Improved start up time on webOS 4+ devices.
52
+ * Broadpeak plugin has been upgraded to version 4.
53
+ * Minimum supported version is now 4.1.1-f5f806. Version 3 does not work
54
+ anymore with current implementation.
55
+ * Fix playback of PlayReady protected content on WebOS TVs.
56
+ * Fix disabling ABR when selected track/rendition is currently active.
57
+ * Upgrade Conviva integration to latest version (v4.5.8)
58
+ * Add Verimatrix VCAS component for easy integration with Verimatrix DRM license servers.
59
+ * Prevent timeline discontinuity playback issues on webOS 6.
60
+ * Fix DASH alternative audio tracks unavailable for encrypted content.
61
+ * Fire tracking requests for DASH events with duration equal to 0.
62
+ * Fix HLS AES-128 encryption for streams without IVs provided in the playlist.
63
+ * Add support to attach custom Youbora Plugin object to Castlabs analytics plugin.
64
+ * Chromecast - do not fail on text stream failures.
65
+
66
+ # 6.2.4
67
+ * Expose Youbora Adapter & Youbora Ads Adapter in `clpp.npaw.YouboraPlugin` via
68
+ `getAdapter()` and `getAdsAdapter()` methods.
69
+ * Please refer to documentation for more info.
70
+ * Fix Conviva support on Chromecast with PRESTOplay SDK for Android sender
71
+ * Added `config.preferredAudioCodec` to support manual prioritization of audio codecs
72
+ * `config.preferredVideoCodec` now accepts array of preferred codecs in priority order
73
+ * Fix `player.load()` not working on Tizen 4 & 5 after going to background and
74
+ back to foreground.
75
+
76
+ # 6.2.3
77
+ * Add support for HLS Image Media Playlist. Refer to Thumbnails section in
78
+ manual for more info.
79
+ * Added `abr.initialRestrictions` configuration to specify restrictions for the
80
+ first ABR switch.
81
+ * Plugin IDs unification.
82
+ * Fix issues with setting `startTime` in Safari.
83
+ * Report initialized components to Download Portal.
84
+ * Prevent multiple `/register` calls to Download Portal.
85
+ * Added `pauseWhenInBackground` configuration. When set to `true`, the playback
86
+ will be paused when the application is put into background and resumed once
87
+ the application is back in foreground.
88
+ * Added `streaming.patchEdgeWhenMixedContent` field in player configuration to apply content workarounds.
89
+ * Clear text cues on seek
90
+ * Support for `SegmentTemplate.endNumber` in a DASH manifest
91
+
92
+ # 6.2.2
93
+ * iOS - fix rare bug with going to ended state on some iOS devices.
94
+ * iOS - fix false positive online events on ConnectivityChecker.
95
+ * DRM updates:
96
+ * Introduced `clpp.drm.InitDataTransformer` modifier to provide the ability to
97
+ directly parse and manipulate initData and construct custom payloads for
98
+ exchange with the CDM in use. Check the DRM configuration section in manual
99
+ for more info and examples.
100
+ * `clpp.drm.KeySystem` enum is now extended with `NONE` and `CLEAR_KEY` values
101
+ for more consistent and less error prone handling of DrmEnvironment's key
102
+ system configuration.
103
+ * Added `sessionId` field to network request. This allows a request/response
104
+ modifier to determine which EME session made the request.
105
+ * A set of `clpp.utils.FairplayUtils` utils are now available for handling
106
+ common FairPlay DRM tasks.
107
+ * `clpp.utils.BufferUtils` are now available for use with array buffers.
108
+
109
+ # 6.2.1
110
+ * Added ability to specify Widevine and PlayReady robustness in the `config.drm.customData`
111
+ * Fixed subtitles not visible when the HTML text displayer not loaded in Safari
112
+ * Added `connectivityCheck` field in player configuration to check is network
113
+ available.
114
+ * When network availability status changes, player now emits
115
+ `clpp.events.ONLINE_STATUS_CHANGED` event with `online` boolean property.
116
+ * Added the `config.streaming.addMissingTimelineCues` option
117
+ * TTML parser
118
+ * Add the presentation time offset to cue timestamps
119
+ * Do not set server certificate on WebOS 3 due to a bug in WebOS'
120
+ `MediaKeys.setServerCertificate()` implementation.
121
+
122
+ # 6.2.0
123
+ * Player Surface improvements:
124
+ * `clpp.Player#getSurface()` method now returns `clpp.IPlayerSurface`.
125
+ * `clpp.IPlayerSurface` interface is now exported.
126
+ * `clpp.PlayerSurfaceCss` has been removed.
127
+ * Following options from `clpp.PlayerSurfaceConfiguration` has been removed.
128
+ Please check Migration Guide for more info.
129
+ - `moveCssToContainer`
130
+ - `containerTag`
131
+ - `mediaTag`
132
+ - `controls`
133
+ - `css`
134
+ * Added manual for Player Surface configuration.
135
+ * Subtitles improvements
136
+ * SRT / VTT
137
+ * The parser has been moved to an independent component, `clpp.vtt.min.js`
138
+ * Please check `v6.2 Migration Guide` for more info.
139
+ * TTML
140
+ * The parser has been moved to an independent component, `clpp.ttml.min.js`
141
+ * The parser is compatible with TTML v1 now
142
+ * The parser converts pixel sizes to percentages in order to build responsive layouts
143
+ * Please check `v6.2 Migration Guide` for more info.
144
+ * The HTML text displayer
145
+ * Following options from `clpp.PlayerConfiguration` has been removed.
146
+ * `enableEnhancedSubtitleManager` (use `enableHtmlCue` instead)
147
+ * `clpp.utils.strings` fixes:
148
+ * `durationToStirng()` renamed to `durationToString()`.
149
+ * Removed `toBase64()` and `fromBase64()`. You can still use equivalent
150
+ methods from `clpp.utils.Uint8ArrayUtils`.
151
+ * DRM updates:
152
+ * Introduced `clpp.drm.SessionContext` object for various interactions during
153
+ DRM session. Object is passed as a 3rd argument to license request &
154
+ response modifiers.
155
+ * `clpp.drm.SessionContext#ldlDelay` can be used to manually set delay between
156
+ license requests when `license-renewal` event is not fired by CDM. This is
157
+ primarily a case for PlayReady implementation.
158
+ * Conviva updates:
159
+ * Do not set `osVersion` by default for LG and Hisense TVs.
160
+ * add `deviceMetadata` field in conviva configuration to pass any needed
161
+ metadata by user. See `clpp.ConvivaConfiguration` doc for more details.
162
+ * Dropping support for IE 11
163
+ * Due to the consistently low level of usage,
164
+ our PRESTOplay team has decided to discontinue IE 11 support with 6.2.0 release.
165
+ However, maintenance support for IE 11 will still be provided
166
+ for the next 6 months (ending 1 May 2022) through our 6.1.X versions.
167
+ Dropping support for IE 11 will also allow our team to focus more time
168
+ on providing the best in modern playback features and experiences.
169
+
170
+ # 6.1.13
171
+ * Do not preconfigure DRM Engine when `source.drmProtected` is set to `false`.
172
+ * Playback of direct MP4 files on Tizen
173
+ * Optimize audio track switching on Smart TV (prevent playback from freezing after track switch)
174
+
175
+
176
+ # 6.1.12
177
+ * Improve HLS with discontinuities playback when
178
+ `#EXT-X-DISCONTINUITY-SEQUENCE` is missing.
179
+ * Add `manifest.playreadyVersion` field to force update of PlayReady header
180
+ to specified version.
181
+ * Speed up `HtmlTextDisplayer` component on slower devices.
182
+ * Fix state reporting bug on Tizen 2.3
183
+
184
+ # 6.1.11
185
+ * Allow to configure network request parameters in DRM module by
186
+ `clpp.DrmConfiguration.attemptParameters` configuration field.
187
+ * Use `com.microsoft.playready.recommendation` key system on Microsoft Edge:
188
+ * Player tries to enforce hardware protection by default if DRMtoday is in use.
189
+ * Robustness levels might be also specified in custom DRM environments.
190
+ * Robustness levels for Playready are introduced in `clpp.drm.PlayreadyRobustnessLevel`.
191
+ * Send detailed message about license & certificate request failures to MuxData
192
+ plugin.
193
+ * Youbora - add calculation of ad visibility.
194
+ * MuxData - fix order of ad-related events.
195
+ * Conviva + Chromecast - do not start new session on sender during casting.
196
+ * Fixed issue with video only content and codec selection
197
+ * Fixed issue with Widevine PSSH creating from newer PlayReady PSSH data
198
+ * Prefer native playback capabilities in Safari
199
+ * Fixed Conviva seek event order on Tizen platforms
200
+ * Recognize the `stpp.ttml` codec for subtitles
201
+ * Add preferred audio language support for Tizen 2.x
202
+ * Fixed issue with selected audio track not being available on Tizen 2.4
203
+
204
+ # 6.1.10
205
+ * Youbora - report DRM system in use.
206
+ * Youbora - do not start session when no intent to play.
207
+ * Conviva - add a way to set device brand and connection type. Please check
208
+ `clpp.ConvivaConfiguration` doc for more info.
209
+ * HLS - introduced support for `#EXT-X-DISCONTINUITY` &
210
+ `#EXT-X-DISCONTINUITY-SEQUENCE` tags.
211
+ * Fixed aborting a loading operation
212
+ * Fixed resetting a text displayer on track changed
213
+ * Add `clpp.cast.Receiver#setLoadRequestDataInterceptor()` method. Please check
214
+ documentation for more info.
215
+ * Fixed the order of nested cues when rendering with the HtmlCue component
216
+ * Improved positioning logic in the htmlcue component.
217
+ * The `display: inline` has been added to the `.clpp-text-cue` class
218
+ * The `line-height` has been added to the `.clpp-text-cue` class
219
+ * The `line-height` has been removed from the `.clpp-text-container` class
220
+ * `position, inset, display` inline attributes have been removed from cue nodes
221
+ * `visibility, direction` inline attributes have been added to cue wrapper nodes
222
+ * `config.preferredTextLanguage` and `config.preferredAudioLanguage` options
223
+ accept an array of languages
224
+ * Muted the operation aborted error
225
+ * Mux Data plugin fixes:
226
+ * More accurate Video Startup Time metrics when autoplay is on.
227
+ * `timeupdate` events reporting.
228
+
229
+ # 6.1.9
230
+ * Introduced CDN error fallback. Check `clpp.Player.setCdnFallback()`
231
+ documentation for more info.
232
+ * Youbora - do not create new session when seeking beyond end of content on
233
+ Safari.
234
+ * Fix Chromecast + Conviva integration.
235
+ * Youbora - do not call `/bufferUnderrun` twice.
236
+ * Add support for IMSC1 text based & image based subtitles.
237
+ * Add support for changing player name in Conviva configuration.
238
+ * Fix Endless loop after seek on Tizen 3
239
+ * Fix wrong video height and width using AVplay on Tizen with resolution below 1080p
240
+ * Prefer text streamer for tizen native playback to mitigate issues with subtitles
241
+
242
+ # 6.1.8
243
+ * Fix going to background and foreground mode again on 2021 TV platforms.
244
+ * Fix issue with Smooth Streaming playback freezes when subtitles are enabled.
245
+ * Fix playback of DASH with PlayReady ContentProtection only on Firefox.
246
+ * Fixed removing XML tags from text cues.
247
+ * Youbora - fire `/join` request when autoplay is blocked.
248
+ * Added SMPTE-TT Embedded in ID3 for HTTP Live Streaming support
249
+ * Added support for nested SMPTE-TT tags
250
+ * clpp.tizen.TizenComponent: Normalize language code for tracks.
251
+
252
+ # 6.1.7
253
+ * Added a new config option, i.e. `config.htmlcue.enableResizeObserver`
254
+ * Added support for MPEG-DASH Callback Event
255
+ * Introduced new `clpp.TimelineCueType.DASH_CALLBACK` timeline cue type.
256
+ * Fix issue with Fairplay multikey playback when using DRMtoday Onboard.
257
+
258
+ # 6.1.6
259
+ * Fixed an issue with seeking after DASH dynamic to static conversion.
260
+ * Fixed the initialization of the player container.
261
+ * Fixed the vertical rl mode in the html cue component
262
+ * Fix issue with subtitles selection after period transition.
263
+ * Do not play IMA ads if platform uses single video element.
264
+ * Optimize playback of Smooth Streaming content on TV platforms (webOS, Tizen).
265
+ * Fix playback of AES-128 encrypted content on webOS devices.
266
+ * Fix `HTMLTextDisplayer` component stalls on webOS 3.x devices.
267
+ * Update manual section about playback on older Tizen TV platforms.
268
+ * Added support for SMPTE-TT images (TTML)
269
+ * Added support for cue regions (WebVTT)
270
+ * Added support for embedded styles (WebVTT)
271
+
272
+ # 6.1.5
273
+ * Added the `player.setDrmCustomDataModifier` to the player interface.
274
+ The method allows modifying DRM custom data before casting to Apple TV.
275
+ * Added `muxdata.muxOptionsOverride` config field. This allows to extend and/or
276
+ override the config that is passed to the Mux SDK by the Mux Data plugin.
277
+ * Skip displaying subtitles if dimensions of the text container are zero.
278
+ * Enable MSE/EME (spec version 0.1b/Aug 2012) based playback on older Tizen devices (version 2.X).
279
+ * Follow redirections when playing Smooth Streaming content.
280
+ * Try to load Smooth Streaming manifest from URL with `/Manifest` suffix if
281
+ first request with original URL resulted with HTTP error.
282
+
283
+ # 6.1.4
284
+ * Accept empty TTML segments
285
+ * Fix text track selection based on the `preferredTextLanguage` option
286
+ * Fixed cue offset when X-TIMESTAMP-MAP not defined
287
+ * Tizen Improvements:
288
+ * Fix PlayReady protected playback on legacy Tizen devices (version 2.x)
289
+ * Add preliminary Widevine support
290
+ * Improved error handling and reporting
291
+ * Add implementation for `getDrmInfo`
292
+ * Fix native and MSE based playback on Tizen 3.0
293
+ * Fixed rare bug with incorrect seek ranges for live streams during casting.
294
+ * Add Mux Data plugin
295
+ * Support timeline cues (EventStream / SCTE-35) for Chromecast receiver.
296
+ * Chromecast - use PlayReady for Smooth Streaming playback.
297
+ * Preserve media element mute state in subsequent load requests.
298
+
299
+ # 6.1.3
300
+ * Fixed text track selection based on the `preferredTextLanguage` option
301
+ * Generate Widevine or Playready content protection elements if needed
302
+ * Added header based DRM
303
+ * Add a way to pass optional playback config when starting casting.
304
+ * Check `clpp.cast.CastProxy#cast()` spec for more info.
305
+ * Introduced Live Edge Chasing algorithm. New configuration fields added.
306
+ Please refer to the documentation to learn more about it.
307
+ * `streaming.enableLiveEdgeChasing`
308
+ * `streaming.chasingRate`
309
+ * `streaming.startChasingAt`
310
+ * `streaming.stopChasingAt`
311
+ * `streaming.chaseJumpDistance`
312
+ * Chromecast metadata management.
313
+ * Introduced `clpp.cast.CastProxy` methods to set content metadata.
314
+ * Ability to check current metadata on receiver side by
315
+ `clpp.cast.Receiver#getContentMetadata()` API.
316
+ * Please refer to `clpp.cast.CastProxy` and `clpp.cast.Receiver`
317
+ for more info.
318
+ * Conviva: Fix initial bitrate selection not reported when autoplay is disabled.
319
+ * Fixed triggering response modifiers on error
320
+
321
+ # 6.1.2
322
+ * Adobe Milestone Analytics support (BETA).
323
+ * Fixes issue with offline license loading
324
+ * Guess MP4 text codec when manifest does not specify it explicitly.
325
+ * Conviva bug fixes
326
+ * Ensure that a player release can only be triggered once until completed
327
+ The `release()` method on the player will now always returns the same promise
328
+ until the release is completed.
329
+ * Fixed issue with manifest retry parameters on live playback
330
+
331
+ # 6.1.1
332
+ * Fixed issue with FPS requests triggered by AppleTV devices in Airplay sessions
333
+ * Block rendition selected by ABR if it cannot be downloaded.
334
+ * Chromecast: do not disable text track when switching audio tracks on sender.
335
+ * Added support for DASH live to vod transition.
336
+ * Added `clpp.events.MPD_TYPE_CHANGED` event to reflect this change.
337
+ * Fix PlayReady playback when PlayReady PSSH is not available.
338
+ * Add Vimond plugin
339
+ * Fix issue with AirPlay state not being consistent when starting or resuming
340
+ an Airplay session. Please note that this seems to be a bug in Safari and
341
+ to work around it we put the local player back into playing state. This will
342
+ result in very short state jump into paused state and before the player goes
343
+ back into playing state.
344
+
345
+ # 6.1.0
346
+ * Fix playback issues with HLS audio only content on MSE.
347
+ * Fix incorrect audio TS handling on Microsoft Edge
348
+ * Persistent license.
349
+ * Introduce `clpp.persistent.fetchLicense()` API to fetch license without
350
+ player instance. Check manual for more info.
351
+ * Prevent sending license request twice when Persistent Component is in use.
352
+ * Smooth Streaming improvements.
353
+ * Add support for segment timescales.
354
+ * Fix bug with non-switchable tracks on protected content.
355
+ * Add `manifest.liveRefreshPeriod` configuration field to manually set how
356
+ often Smooth manifest should be updated.
357
+ * Chromecast improvements.
358
+ * Prevent `INVALID_MEDIA_SESSION_ID` rejection when trying to play/pause/seek
359
+ content in ended state.
360
+ * Map `defaultBandwidthEstimate` field from `clpp.AbrConfiguration` to CAF's
361
+ `cast.framework.PlaybackConfig.initialBandwidth`.
362
+ * Add `onResumeLocal` callback as an `clpp.cast.CastProxy`'s optional
363
+ parameter.
364
+ * Resolve load promise when Never Auto-Play set to true on Safari 13.1.x
365
+ * FreeWheel integration (BETA).
366
+ * PRESTOplay SDK now comes with FreeWheel ads integration. To check it, please
367
+ add FreeWheel SDK and our FreeWheel plugin to your project.
368
+ * Add `clpp.AbrConfiguration#useSwitchIntervalForInitialSwitch` flag to prevent
369
+ quick ABR switch once the estimator has enough data.
370
+ * Add `clpp.Player#resetAbr()` method for resetting ABR estimate.
371
+ * Youbora integration.
372
+ * Always fire `/pause` event to Youbora before reporting postroll.
373
+ * Expose text displayer interface.
374
+ * Text displayer is now in BETA state with some known issues.
375
+ * Improved multi-key handling and added support for multi-key deliveries for Playready
376
+
377
+ # 6.0.4
378
+ * Added `preferredDrmSystem` option to the `clpp.DrmConfiguration` to enforce
379
+ using specific DRM technology (i.e. force PlayReady on Edge Chromium).
380
+ * Introduces `TimelineCue` data structure and related events.
381
+ * Fixes for handling muxed audio+video TS-based content.
382
+ * Added `clpp.events.USER_SEEKING` & `clpp.events.USER_SEEKED` events
383
+ * Those events are fired only during seeking initiated by calling
384
+ `clpp.Player#seek()` method.
385
+ * Fix Conviva integration error.
386
+
387
+ # 6.0.3
388
+ * Support for Chromecast
389
+ * Check manual and documentation for more info
390
+ * Support for persistent licenses
391
+ * Adds `originalId` field to the `clpp.Rendition` class
392
+ * This field contains rendition id that appeared in original manifest
393
+
394
+ # 6.0.2
395
+ * Improves HLS + AES-128 support
396
+ * Relative AES key URI
397
+ * Adds DRMtoday Onboard support
398
+ * Adds AirPlay support
399
+ * Bug fixes and improvements
400
+
401
+ # 6.0.1
402
+ * Adds Broadpeak's SmartLib v3-3.0.4-2950 integration (plugin).
403
+ * Introduces the crypto component (`clpp.crypto.CryptoComponent`)
404
+ * The crypto component adds HLS + AES-128 playback capability to the player.
405
+ * Improves support of muxed audio+video TS-based contents.
406
+
407
+ # 6.0.0
408
+ PRESTOplay SDK for browsers version 6 has been re-designed from the ground up to
409
+ build a faster, more modular, and smaller player SDK. We focused on the core
410
+ components of video playback and the underlying media playback engine.
411
+
412
+ Since the new architecture was only possible with drastic measures, we needed to
413
+ adapt and change the previous API. Please, consult the migration guide from our
414
+ manual to upgrade from version 5.
@@ -20,6 +20,10 @@ Once installed, you can follow the [getting started guide](https://demo.castlabs
20
20
  example, but here is how it would look like:
21
21
 
22
22
  ```javascript
23
+ import {clpp} from "@castlabs/pretoplay"
24
+ import "@castlabs/prestoplay/cl.mse"
25
+ import "@castlabs/prestoplay/cl.dash"
26
+
23
27
  const player = new clpp.Player("video");
24
28
  player.use(clpp.dash.DashComponent);
25
29
 
package/cjs/cl.core.js CHANGED
@@ -1,7 +1,7 @@
1
1
  (function(){var g={}; var _ = {};
2
2
  (function(window){var ba,ca,la,pa,qa,ta,ua,va,za,Ea,Fa,Ga,Ha,Ia,Ja,Ka,Pa,Qa,Ta,Ua,Va,Wa,db,hb,jb,lb,mb,ob,pb,qb,sb,Yb,kc,lc,rc,sc,uc,xc,yc,zc,Hc,Nc,Qc,Rc,Sc,Xc,cd,ed,fd,kd,nd,Hd,Od,Wd,Yd,fe,ie,qe,ye,Me,Qe,Re,Se,Te,Ue,We,Xe,Ye,af,ef,jf,lf,kf,mf,nf,of,sf,vf,tf,uf,wf,yf,zf,Df,Ff,Kf,Lf,Rf,Sf,Zf,Xf,$f,bg,ag,dg,gg,tg,ug,vg,Ag,Cg,Fg,Ig,Kg,Lg,Og,Jg,Gg,Pg,dh,hh,jh,kh,mh,wh,xh,yh,Ah,zh,Bh,Ch,Dh,Eh,Fh,Ih,Jh,Kh,Ph,Qh,Uh,Vh,Wh,Zh,ai,ci,$h,Xh,ki,li,wi,yi,zi,Ai,Li,oi,Bi,Oi,Qi,Si,bj,kj,lj,mj,nj,tj,vj,Kj,Lj,Mj,Oj,Vj,Zj,ak,ek,kk,lk,
3
3
  nk,ok,tk,wk,Ck,Lk,Nk,Pk,Tk,Uk,Xk,Jk,Hk,Vk,bl,al,gl,el,fl,yk,Ok,dl,zk,$k,Gk,Zk,Ik,Bk,hl,nl,pl,ql,rl,sl,xl,Bl,Cl,El,Il,Nl,Al,Ol,Pl,Sl,Vl,Wl,Yl,Zl,Ul,Tl,$l,am,fm,rm,qm,sm,tm,vm,um,xm,ym,zm,Am,wm,Cm,Em,Fm,Gm,Hm,Im,Jm,Km,Lm,Nm,Om,Pm,Qm,Mm,Tm,S,Vm,Um,Xm,Zm,$m,dn,an,U,gn,hn,jn,em,kn,mn,nn,on,pn,qn,rn,sn,tn,un,vn,wn,xn,yn,zn,An,Dn,Bn,En,Gn,Hn,Cn,Fn,In,Jn,Kn,Ln,Mn,Nn,On,Pn,Qn,Rn,Tn,Vn,Wn,Xn,Un,ao,bo,go,lo,mo,oo,no,hi,qo,to,so,uo,vo,ro,xo,yo,wo,zo,ii,Co,di,Oo,Ro,cf,To;_.aa=" is registered.";ba=" is unsupported on this platform.";
4
- ca=" to a log level. Falling back to default!";_.da="6.2.6-rc-1";_.fa="AdaptationSet";_.ha="Already destroyed. No-op";_.ia="Already released. No-op";_.ja="Autoplay is not allowed due to browser policy.";_.ka="CODECS";la="Can not set volume to ";_.ma="Cannot retrieve buffer information due to platform limitations";_.oa="CastlabsPlayer";pa="Content-Length";qa="Content-Type";_.ra="Could not find configured DRM environment.";_.sa="DRM environment '";ta="DRM licenses loaded";ua="DRMtoday";va="Destroying player";
4
+ ca=" to a log level. Falling back to default!";_.da="6.2.6";_.fa="AdaptationSet";_.ha="Already destroyed. No-op";_.ia="Already released. No-op";_.ja="Autoplay is not allowed due to browser policy.";_.ka="CODECS";la="Can not set volume to ";_.ma="Cannot retrieve buffer information due to platform limitations";_.oa="CastlabsPlayer";pa="Content-Length";qa="Content-Type";_.ra="Could not find configured DRM environment.";_.sa="DRM environment '";ta="DRM licenses loaded";ua="DRMtoday";va="Destroying player";
5
5
  _.wa="Disable track type ";za="Error while decoding string!";_.Ba="Error while fetching license!";_.Ca="FairPlay Certificate URL is not defined";_.Da="FairPlay License URL is not defined";Ea="HW_SECURE_CRYPTO";Fa="HW_SECURE_DECODE";Ga="HeaderDrm";Ha="Ignoring duplicate init data.";Ia="Invalid track type: ";Ja="InvalidStateError";Ka="License verification failed: ";_.La="Loading player with configuration";_.Na="MaxHeight";_.Oa="MaxWidth";Pa="Missing media element";Qa="No drmtoday configuration found in player configuration. Unable to modify the DRM license request!";
6
6
  Ta="No event provided!";Ua="No track data attached to the event, unable to add track!";Va="Not a persistent session.";Wa="NotSupportedError";_.Xa="PlayReady License URL is not defined";_.Ya="Player sources";_.Za="Player state change: ";_.$a="Please make sure ";_.ab="QualityLevel";_.bb="Releasing player with source";_.cb="Representation";db="STANDARD";_.fb="SW_SECURE_CRYPTO";_.gb="SW_SECURE_DECODE";hb="Setting native ";jb="Signature Verification failed";_.kb="SmoothStreamingMedia";lb="The index is not in the allowed range.";
7
7
  mb="Unable to translate ";_.nb="Unregistering listeners";ob="Unsupported keySystem";pb="Using VTTCue polyfill from 3 argument TextTrackCue.";qb="WebkitEmeManager.MediaKeySession.load";_.rb="Widevine License URL is not defined";sb="Will create EME Manager: ";_.tb="ad-break-started";_.ub="ad-break-stopped";_.vb="ad-buffering";_.wb="ad-clicked";_.xb="ad-completed";_.yb="ad-first-quartile";_.zb="ad-impression";_.Ab="ad-loaded";_.Cb="ad-midpoint";_.Db="ad-paused";_.Eb="ad-progress";_.Fb="ad-resumed";
package/cjs/cl.youbora.js CHANGED
@@ -3,14 +3,14 @@ var f=function(window){var zp="accountCode key is missing",Ap="clpp.npaw.Youbora
3
3
  "ClearKey":b.startsWith(_.Cc)?"Primetime":b)&&a.plugin.setOptions({"content.drm":b}));a.fireJoin()},Fp=function(a){var b=youbora.Adapter.call(this,a)||this;b.l=a;b.a=null;b.h=null;b.f=new _.Vf;b.g=new _.C("clpp.npaw.YouboraAdsAdapter");b.registerListeners();return b},Gp=function(){this.a=null;this.f=!1;this.g=new _.C(Ap);this.h=this.j=null},Hp=function(a,b){var c=b.getConfiguration();a.f=!_.H.R(c.youbora)&&typeof c.youbora===_.Ad;a.f?window.youbora&&6<=+youbora.VERSION.split(".")[0]?b.namespace()===
4
4
  _.wc&&(a.f=!1,a.g.info("Youbora does not report when casting.")):(a.g.warn("No valid Youbora SDK available. Youbora SDK is supported","starting from version",6),a.f=!1,b.onError(new _.J(1,9,9100))):a.g.warn("Youbora plugin is loaded but not configured. Will do nothing.")},Ip=function(){};_.u(Cp,youbora.Adapter);_.h=Cp.prototype;_.h.getPlayhead=function(){return this.l.getPosition()};_.h.getDuration=function(){return this.l.getDuration()};
5
5
  _.h.getRendition=function(){var a=this.l.getTrackManager();if(a&&(a=a.fa())){var b=a.width;var c=a.height;var d=a.bandwidth}b&&c&&d||(a=this.l.getStats()||_.ul(),b=b||a.width,c=c||a.height,d=d||a.streamBandwidth);return youbora.Util.buildRenditionString(b,c,d)};_.h.getIsLive=function(){return this.l.isLive()};_.h.getResource=function(){var a=this.l.getLoadedSource();return a&&a.url};_.h.getBitrate=function(){return(this.l.getStats()||_.ul()).streamBandwidth};
6
- _.h.getThroughput=function(){return(this.l.getStats()||_.ul()).estimatedBandwidth};_.h.getPlayrate=function(){return this.l.getPlaybackRate()};_.h.getFramesPerSecond=function(){var a=this.l.getTrackManager();return a&&(a=a.Ca())?a.frameRate:null};_.h.getPlayerName=function(){return _.oa};_.h.getVersion=function(){return"6.2.6-rc-1-castlabsadapter-js"};_.h.getPlayerVersion=function(){return _.da};
6
+ _.h.getThroughput=function(){return(this.l.getStats()||_.ul()).estimatedBandwidth};_.h.getPlayrate=function(){return this.l.getPlaybackRate()};_.h.getFramesPerSecond=function(){var a=this.l.getTrackManager();return a&&(a=a.Ca())?a.frameRate:null};_.h.getPlayerName=function(){return _.oa};_.h.getVersion=function(){return"6.2.6-castlabsadapter-js"};_.h.getPlayerVersion=function(){return _.da};
7
7
  _.h.registerListeners=function(){this.l&&this.f&&(this.a.debug("registering listeners"),youbora.Util.logAllEvents(this.l),this.f.on(this.l,_.he,this.yj.bind(this)),this.f.on(this.l,_.Wc,this.Th.bind(this)),this.f.on(this.l,_.Ce,this.tj.bind(this)),this.f.on(this.l,_.Be,this.sj.bind(this)),this.f.on(this.l,_.Lb,this.Ag.bind(this)),this.f.on(this.l,_.mc,this.Fg.bind(this)))};_.h.unregisterListeners=function(){this.a.debug(_.nb);_.Yf(this.f)};
8
8
  _.h.yj=function(a){this.a.debug("State changed",a);if(a=a.detail)switch(a.currentState){case _.Kl:this.l.getConfiguration().autoplay&&Dp(this);break;case _.Ml:Dp(this);Ep(this);this.fireResume();this.fireBufferEnd();break;case _.Ll:this.l.getConfiguration().autoplay&&Dp(this);Ep(this);this.fireBufferEnd();this.firePause();break;case _.yl:this.fireBufferEnd();this.fireStop();break;case _.Fl:this.fireBufferEnd();this.h&&this.plugin.getAdsAdapter()?this.firePause():this.fireStop();break;case _.Dl:this.fireBufferBegin();
9
9
  break;default:this.a.debug("Unhandled state",a)}};_.h.Th=function(a){this.a.debug("Fire error",a);!(a=a.detail)||this.g||10003===a.code&&this.plugin.getAdsAdapter()||(a.severity===_.K?(this.g=!0,this.fireFatalError(""+a.code,a.message)):this.fireError(""+a.code,a.message))};_.h.tj=function(a){this.a.debug("Seeking",a);this.l.isEnded()||(Dp(this),this.fireSeekBegin())};_.h.sj=function(a){this.a.debug("Seeked",a);this.fireSeekEnd()};
10
10
  _.h.Ag=function(a){this.a.debug("adsTimeline",a);a=a.adsTimeline;this.h=!!a&&a.ab()};_.h.Fg=function(a){this.a.debug("Casting",a);this.fireCasted()};_.u(Fp,youbora.Adapter);_.h=Fp.prototype;_.h.getDuration=function(){return this.a&&this.a.getDuration()};_.h.getRendition=function(){var a=null;this.a&&(a=youbora.Util.buildRenditionString(this.a.pb(),this.a.ob(),this.a.$a()));return a};_.h.getBitrate=function(){return this.a&&this.a.$a()};_.h.getPlayhead=function(){var a=this.l.getAdsManager();return a&&a.getPosition()};_.h.getResource=function(){return this.a&&this.a.getMediaUrl()};_.h.getTitle=function(){return this.a&&this.a.getTitle()};
11
11
  _.h.getProvider=function(){return this.a&&this.a.getAdvertiserName()};_.h.getCreativeId=function(){return this.a&&this.a.getCreativeId()};_.h.getPosition=function(){var a=youbora.Constants.AdPosition,b=null;if(this.a)switch(this.a.Qa()){case 0:b=a.Preroll;break;case 2:b=a.Postroll;break;case 1:b=a.Midroll}this.g.debug("Ad position",b);return b};_.h.getIsSkippable=function(){return this.a&&-1!==this.a.getSkipTimeOffset()};_.h.getAudioEnabled=function(){var a=this.l.getAdsManager();return a&&0<a.getVolume()};
12
12
  _.h.getExpectedBreaks=function(){return this.h&&this.h.getCuePoints().length};_.h.getGivenBreaks=function(){return this.getExpectedBreaks()};_.h.getExpectedAds=function(){return this.a&&this.a.rb()};_.h.getGivenAds=function(){return this.getExpectedAds()};_.h.getBreaksTime=function(){var a=this;return this.h&&this.h.getCuePoints().map(function(b){return-1===b?a.l.getDuration():b})};_.h.getIsFullscreen=function(){return this.l.getSurface().isFullscreen()};
13
- _.h.getIsVisible=function(){var a=this.l.getSurface().getContainer();a=youbora.Util.calculateAdViewability(a);this.g.debug("is container visible",a);return a};_.h.getPlayerName=function(){return _.oa};_.h.getVersion=function(){return"6.2.6-rc-1-castlabsadsadapter-js"};_.h.getPlayerVersion=function(){return _.da};
13
+ _.h.getIsVisible=function(){var a=this.l.getSurface().getContainer();a=youbora.Util.calculateAdViewability(a);this.g.debug("is container visible",a);return a};_.h.getPlayerName=function(){return _.oa};_.h.getVersion=function(){return"6.2.6-castlabsadsadapter-js"};_.h.getPlayerVersion=function(){return _.da};
14
14
  _.h.registerListeners=function(){this.l&&this.f&&(this.f.on(this.l,_.Lb,this.zg.bind(this)),this.f.on(this.l,_.Hb,this.wg.bind(this)),this.f.on(this.l,_.Db,this.tg.bind(this)),this.f.on(this.l,_.Fb,this.ug.bind(this)),this.f.on(this.l,_.xb,this.rg.bind(this)),this.f.on(this.l,_.yb,this.Sd.bind(this,1)),this.f.on(this.l,_.Cb,this.Sd.bind(this,2)),this.f.on(this.l,_.Jb,this.Sd.bind(this,3)),this.f.on(this.l,_.wb,this.qg.bind(this)),this.f.on(this.l,_.Gb,this.vg.bind(this)),this.f.on(this.l,_.Wc,this.sg.bind(this)),
15
15
  this.f.on(this.l,_.tb,this.Dg.bind(this)),this.f.on(this.l,_.ub,this.Eg.bind(this)),this.f.on(this.l,_.vb,this.Ji.bind(this)),this.f.on(this.l,_.Eb,this.Xi.bind(this)))};_.h.unregisterListeners=function(){_.Yf(this.f)};_.h.zg=function(a){this.g.debug("ad timeline changed",a);this.h=a.adsTimeline};_.h.wg=function(a){this.g.debug("ad start",a);this.a=a.ad;this.fireStart();this.fireJoin()};_.h.rg=function(a){this.g.debug("ad end",a);this.fireStop()};_.h.tg=function(a){this.g.debug("ad pause",a);this.firePause()};
16
16
  _.h.ug=function(a){this.g.debug("ad resume",a);this.fireResume()};_.h.Ji=function(a){this.g.debug("on buffering",a);this.fireBufferBegin()};_.h.Xi=function(a){this.g.debug("on progress",a);this.fireBufferEnd()};_.h.Sd=function(a,b){this.g.debug("ad quartile",a,b);this.fireQuartile(a)};_.h.qg=function(a){this.g.debug("ad clicked",a);a=this.a&&this.a.Hb();this.g.debug("ad click through url: ",a);this.fireClick(a)};_.h.vg=function(a){this.g.debug("ad skipped",a);this.fireSkip()};
package/cl.core.js CHANGED
@@ -1,18 +1,18 @@
1
1
  let g={}; let _ = {};let f=function(window){'use strict';var ba,ca,ma,oa,qa,ra,sa,va,za,Aa,Ba,Ca,Da,Ea,Ka,La,Ma,Na,Oa,Pa,Wa,bb,db,eb,gb,ib,jb,lb,Qb,bc,cc,lc,mc,oc,qc,rc,sc,Ac,Gc,Jc,Kc,Lc,Pc,Xc,Zc,$c,ed,hd,yd,Id,Qd,Sd,$d,ce,je,qe,Fe,Je,Ke,Le,Me,Ne,Pe,Qe,Re,Se,Te,Ue,Xe,Ye,cf,$e,jf,kf,pf,rf,Cf,Mf,Nf,Gf,Jf,Of,Pf,Sf,Vf,Xf,Zf,Yf,$f,ag,bg,eg,fg,ug,yg,zg,Ag,Bg,Kg,Lg,Pg,Qg,Sg,Rg,Tg,Ug,Xg,Yg,Zg,$g,ah,bh,eh,fh,gh,jh,lh,nh,kh,hh,oh,sh,xh,zh,wh,Jh,Ch,Bh,Vh,Xh,fi,ni,oi,pi,vi,wi,Hi,Ii,Mi,Ti,bj,Pi,Xi,gj,ij,jj,kj,qj,tj,uj,wj,vj,rj,xj,yj,zj,Aj,Bj,Cj,Ij,Nj,Pj,
2
- Rj,Qj,Kj,Lj,Xj,Wj,Oj,Yj,Zj,gk,hk,ik,lk,sk,tk,vk,qk,pk,Dk,Ek,Ik,Hk,Kk,Mk,Nk,Jk,Pk,Uk,al,Zk,$k,fl,gl,el,hl,dl,bl,jl,ll,nl,ol,pl,ql,rl,sl,tl,ul,vl,wl,Al,El,Fl,Hl,Jl,Ml,Nl,Ol,Rl,Tl,Ul,Xl,Vl,Wl,Yl,Zl,$l,am,bm,cm,dm,em,fm,gm,im,jm,km,mm,pm,um,vm,wm,ym,zm,Am,Cm,Dm,Bm,Em,Hm,Gm,Fm,Lm,Km,Qm,Ve,We;_.aa=" is registered.";ba=" is unsupported on this platform.";ca=" to a log level. Falling back to default!";_.da="6.2.6-rc-1";_.ea="AdaptationSet";_.fa="Already destroyed. No-op";_.ha="Already released. No-op";
3
- _.ia="Autoplay is not allowed due to browser policy.";_.ja="CODECS";_.ka="Cannot retrieve buffer information due to platform limitations";_.la="CastlabsPlayer";ma="Content-Length";oa="Content-Type";_.pa="Could not find configured DRM environment.";qa="DRM licenses loaded";ra="DRMtoday";sa="Destroying player";_.ua="Disable track type ";va="Error while decoding string!";_.wa="Error while fetching license!";_.xa="FairPlay Certificate URL is not defined";_.ya="FairPlay License URL is not defined";
4
- za="HW_SECURE_CRYPTO";Aa="HW_SECURE_DECODE";Ba="HeaderDrm";Ca="Ignoring duplicate init data.";Da="InvalidStateError";Ea="License verification failed: ";_.Fa="Loading player with configuration";_.Ha="MaxHeight";_.Ja="MaxWidth";Ka="Missing media element";La="No drmtoday configuration found in player configuration. Unable to modify the DRM license request!";Ma="No event provided!";Na="No track data attached to the event, unable to add track!";Oa="Not a persistent session.";Pa="NotSupportedError";
5
- _.Qa="PlayReady License URL is not defined";_.Ra="Player sources";_.Sa="Please make sure ";_.Ta="QualityLevel";_.Ua="Releasing player with source";_.Va="Representation";Wa="STANDARD";_.Xa="SW_SECURE_CRYPTO";_.Ya="SW_SECURE_DECODE";bb="Signature Verification failed";_.cb="SmoothStreamingMedia";db="The index is not in the allowed range.";eb="Unable to translate ";_.fb="Unregistering listeners";gb="Unsupported keySystem";ib="Using VTTCue polyfill from 3 argument TextTrackCue.";jb="WebkitEmeManager.MediaKeySession.load";
6
- _.kb="Widevine License URL is not defined";lb="Will create EME Manager: ";_.mb="ad-break-started";_.nb="ad-break-stopped";_.ob="ad-buffering";_.pb="ad-clicked";_.qb="ad-completed";_.rb="ad-first-quartile";_.sb="ad-impression";_.tb="ad-loaded";_.ub="ad-midpoint";_.vb="ad-paused";_.wb="ad-progress";_.xb="ad-resumed";_.yb="ad-skipped";_.zb="ad-started";_.Ab="ad-stopped";_.Bb="ad-third-quartile";_.Cb="addtrack";_.Db="ads-timeline-changed";_.Eb="airplay-casting-ended";_.Fb="airplay-casting-started";
7
- _.Gb="airplay-status-changed";_.Hb="application/cea-608";_.Jb="application/dash+xml";_.Kb="application/mp4";_.Lb='application/mp4; codecs\x3d"stpp"';_.Mb='application/mp4; codecs\x3d"wvtt"';_.Nb="application/ttml+xml";_.Ob="application/vnd.ms-sstr+xml";_.Pb="application/x-mpegurl";Qb="application/x-www-form-urlencoded";_.Rb="audio";_.Sb="audio/aac";_.Tb="audio/ac3";_.Ub="audio/eac3";_.Vb="audio/mp4";_.Wb="audiobufferchanged";_.Xb="autoplaynotallowed";_.Yb="bitratechanged";_.Zb="boolean";_.$b="bufferingended";
8
- _.ac="bufferingstarted";bc="canplay";cc="canplaythrough";_.gc="castingstarted";_.hc="caststatuschanged";_.ic="cdn-switch-success";_.jc="cenc";_.kc="center";lc="change";mc="clpp-container";_.nc="clpp-fill";oc="clpp-hidden";_.pc="clpp.cast.CastSender";qc="clpp.drm.HeaderDrm";rc="clpp.native.Player";sc="clpp.utils.Platform";_.tc="codecs";_.uc="column-reverse";_.vc="com.adobe.primetime";_.wc="com.apple.fps";_.xc="com.microsoft.playready";_.yc="com.widevine.alpha";_.zc="config.drm.customData is not defined";
9
- Ac="controls";_.Bc="cuechange";_.Cc="destroy()";_.Dc="disabled";_.Ec="div";_.Fc="drmexpirationupdate";Gc="drmrenewalstarted";_.Hc="drmsessionpersisted";_.Ic="drmsessionupdate";Jc="drmtoday";Kc="durationchange";Lc="encrypted";_.Mc="end";_.Nc="ended";_.Oc="error";Pc="fullscreenElement";_.Qc="function";_.Rc="height";_.Sc="hidden";_.Tc="image";_.Wc="internal-error";Xc="keystatuseschange";_.Yc="left";Zc="license-renewal";$c="license-request";_.ad="line-left";_.bd="line-right";_.cd="loadeddata";_.dd="loadedmetadata";
10
- ed="loadstart";_.fd="mdat";_.gd="mdia";hd="message";_.id="metadata";_.jd="mimeType";_.kd="minf";_.ld="moov";_.md="mp4";_.nd="mpd-type-changed";_.od="mpeg-dash-callback-event";_.pd="native";_.qd="none";_.p="number";_.rd="object";_.sd="onBitrateChanged()";_.td="onContentLoaded";_.ud="onPlayerError()";_.vd="onPlayerWillDestroy";_.wd="onPlayerWillRelease";_.xd="onStateChanged()";yd="online-status-changed";_.Ad="optional";_.Bd="org.w3.clearkey";_.Cd="output-restricted";_.Fd="pause";_.Gd="persistent";
11
- _.Hd="persistent-license";Id="picture-in-picture";_.Jd="play";_.Kd="playing";_.Ld="playlist-item-changed";_.Md="playlist-modified";_.Nd="progress";_.Od="px";_.Pd="ratechange";Qd="released";_.Rd="releasing";Sd="removetrack";_.Td="required";_.Ud="resize";_.Vd="right";_.Wd="seeked";_.Xd="seeking";_.Yd="showing";_.Zd="single-native";$d="stalled";_.ae="start";_.be="statechanged";ce="status-pending";_.de="stbl";_.ee="string";_.fe="stsd";_.ge="style";_.he="subtitles-htmlcue";_.ie="subtitles-ttml";je="temporary";
12
- _.r="text";_.ke="text/vtt";_.le="text/xml";_.me="timeupdate";_.ne="trak";_.oe="ttml-xml";_.pe="und";qe="unknown";_.re="urn:scte:scte35";_.se="urn:scte:scte35:2014";_.te="user-seeked";_.ve="user-seeking";_.xe="value";_.ye="vertical-lr";_.ze="vertical-rl";_.u="video";_.Ae="video/mp2t";_.Be="video/mp4";_.Ce="videobufferchanged";_.De="videotrackchanged";_.Ee="vimond-response";Fe="visibilitychange";_.Ge="vtt-xml";_.He="waiting";_.Ie="waitingforkey";Je="webkit-org.w3.clearkey";Ke="webkitkeyadded";Le="webkitkeyerror";
13
- Me="webkitkeymessage";Ne="webkitneedkey";_.Oe="width";Pe="x-dt-csl-tracking-token";Qe="x-dt-follow-up-token";Re="x-dt-resp-code";Te=function(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}}};Ue=function(a){var b="undefined"!=typeof Symbol&&Symbol.iterator&&a[Symbol.iterator];return b?b.call(a):{next:Te(a)}};
14
- Xe=function(a,b){if(b){var c=Ve;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&We(c,a,{configurable:!0,writable:!0,value:b})}};Ye=function(a){function b(d){return a.next(d)}function c(d){return a.throw(d)}return new Promise(function(d,e){function f(g){g.done?d(g.value):Promise.resolve(g.value).then(b,c).then(f,e)}f(a.next())})};_.v=function(a){return Ye(a())};
15
- _.x=function(a,b){a=a.split(".");var c=Ze;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a[0]);for(var d;a.length&&(d=a.shift());)a.length||void 0===b?c[d]&&c[d]!==Object.prototype[d]?c=c[d]:c=c[d]={}:c[d]=b};_.bf=function(a){return _.y(a)||$e(a)?a:_.af(a)};_.af=function(a){let b={};for(let c=0;c<arguments.length;c++)null!==arguments[c]&&void 0!==arguments[c]&&(b=cf(b,{merging:arguments[c]}));return b.merging};
2
+ Rj,Qj,Kj,Lj,Xj,Wj,Oj,Yj,Zj,gk,hk,ik,lk,sk,tk,vk,qk,pk,Dk,Ek,Ik,Hk,Kk,Mk,Nk,Jk,Pk,Uk,al,Zk,$k,fl,gl,el,hl,dl,bl,jl,ll,nl,ol,pl,ql,rl,sl,tl,ul,vl,wl,Al,El,Fl,Hl,Jl,Ml,Nl,Ol,Rl,Tl,Ul,Xl,Vl,Wl,Yl,Zl,$l,am,bm,cm,dm,em,fm,gm,im,jm,km,mm,pm,um,vm,wm,ym,zm,Am,Cm,Dm,Bm,Em,Hm,Gm,Fm,Lm,Km,Qm,Ve,We;_.aa=" is registered.";ba=" is unsupported on this platform.";ca=" to a log level. Falling back to default!";_.da="6.2.6";_.ea="AdaptationSet";_.fa="Already destroyed. No-op";_.ha="Already released. No-op";_.ia="Autoplay is not allowed due to browser policy.";
3
+ _.ja="CODECS";_.ka="Cannot retrieve buffer information due to platform limitations";_.la="CastlabsPlayer";ma="Content-Length";oa="Content-Type";_.pa="Could not find configured DRM environment.";qa="DRM licenses loaded";ra="DRMtoday";sa="Destroying player";_.ua="Disable track type ";va="Error while decoding string!";_.wa="Error while fetching license!";_.xa="FairPlay Certificate URL is not defined";_.ya="FairPlay License URL is not defined";za="HW_SECURE_CRYPTO";Aa="HW_SECURE_DECODE";Ba="HeaderDrm";
4
+ Ca="Ignoring duplicate init data.";Da="InvalidStateError";Ea="License verification failed: ";_.Fa="Loading player with configuration";_.Ha="MaxHeight";_.Ja="MaxWidth";Ka="Missing media element";La="No drmtoday configuration found in player configuration. Unable to modify the DRM license request!";Ma="No event provided!";Na="No track data attached to the event, unable to add track!";Oa="Not a persistent session.";Pa="NotSupportedError";_.Qa="PlayReady License URL is not defined";_.Ra="Player sources";
5
+ _.Sa="Please make sure ";_.Ta="QualityLevel";_.Ua="Releasing player with source";_.Va="Representation";Wa="STANDARD";_.Xa="SW_SECURE_CRYPTO";_.Ya="SW_SECURE_DECODE";bb="Signature Verification failed";_.cb="SmoothStreamingMedia";db="The index is not in the allowed range.";eb="Unable to translate ";_.fb="Unregistering listeners";gb="Unsupported keySystem";ib="Using VTTCue polyfill from 3 argument TextTrackCue.";jb="WebkitEmeManager.MediaKeySession.load";_.kb="Widevine License URL is not defined";
6
+ lb="Will create EME Manager: ";_.mb="ad-break-started";_.nb="ad-break-stopped";_.ob="ad-buffering";_.pb="ad-clicked";_.qb="ad-completed";_.rb="ad-first-quartile";_.sb="ad-impression";_.tb="ad-loaded";_.ub="ad-midpoint";_.vb="ad-paused";_.wb="ad-progress";_.xb="ad-resumed";_.yb="ad-skipped";_.zb="ad-started";_.Ab="ad-stopped";_.Bb="ad-third-quartile";_.Cb="addtrack";_.Db="ads-timeline-changed";_.Eb="airplay-casting-ended";_.Fb="airplay-casting-started";_.Gb="airplay-status-changed";_.Hb="application/cea-608";
7
+ _.Jb="application/dash+xml";_.Kb="application/mp4";_.Lb='application/mp4; codecs\x3d"stpp"';_.Mb='application/mp4; codecs\x3d"wvtt"';_.Nb="application/ttml+xml";_.Ob="application/vnd.ms-sstr+xml";_.Pb="application/x-mpegurl";Qb="application/x-www-form-urlencoded";_.Rb="audio";_.Sb="audio/aac";_.Tb="audio/ac3";_.Ub="audio/eac3";_.Vb="audio/mp4";_.Wb="audiobufferchanged";_.Xb="autoplaynotallowed";_.Yb="bitratechanged";_.Zb="boolean";_.$b="bufferingended";_.ac="bufferingstarted";bc="canplay";cc="canplaythrough";
8
+ _.gc="castingstarted";_.hc="caststatuschanged";_.ic="cdn-switch-success";_.jc="cenc";_.kc="center";lc="change";mc="clpp-container";_.nc="clpp-fill";oc="clpp-hidden";_.pc="clpp.cast.CastSender";qc="clpp.drm.HeaderDrm";rc="clpp.native.Player";sc="clpp.utils.Platform";_.tc="codecs";_.uc="column-reverse";_.vc="com.adobe.primetime";_.wc="com.apple.fps";_.xc="com.microsoft.playready";_.yc="com.widevine.alpha";_.zc="config.drm.customData is not defined";Ac="controls";_.Bc="cuechange";_.Cc="destroy()";
9
+ _.Dc="disabled";_.Ec="div";_.Fc="drmexpirationupdate";Gc="drmrenewalstarted";_.Hc="drmsessionpersisted";_.Ic="drmsessionupdate";Jc="drmtoday";Kc="durationchange";Lc="encrypted";_.Mc="end";_.Nc="ended";_.Oc="error";Pc="fullscreenElement";_.Qc="function";_.Rc="height";_.Sc="hidden";_.Tc="image";_.Wc="internal-error";Xc="keystatuseschange";_.Yc="left";Zc="license-renewal";$c="license-request";_.ad="line-left";_.bd="line-right";_.cd="loadeddata";_.dd="loadedmetadata";ed="loadstart";_.fd="mdat";_.gd="mdia";
10
+ hd="message";_.id="metadata";_.jd="mimeType";_.kd="minf";_.ld="moov";_.md="mp4";_.nd="mpd-type-changed";_.od="mpeg-dash-callback-event";_.pd="native";_.qd="none";_.p="number";_.rd="object";_.sd="onBitrateChanged()";_.td="onContentLoaded";_.ud="onPlayerError()";_.vd="onPlayerWillDestroy";_.wd="onPlayerWillRelease";_.xd="onStateChanged()";yd="online-status-changed";_.Ad="optional";_.Bd="org.w3.clearkey";_.Cd="output-restricted";_.Fd="pause";_.Gd="persistent";_.Hd="persistent-license";Id="picture-in-picture";
11
+ _.Jd="play";_.Kd="playing";_.Ld="playlist-item-changed";_.Md="playlist-modified";_.Nd="progress";_.Od="px";_.Pd="ratechange";Qd="released";_.Rd="releasing";Sd="removetrack";_.Td="required";_.Ud="resize";_.Vd="right";_.Wd="seeked";_.Xd="seeking";_.Yd="showing";_.Zd="single-native";$d="stalled";_.ae="start";_.be="statechanged";ce="status-pending";_.de="stbl";_.ee="string";_.fe="stsd";_.ge="style";_.he="subtitles-htmlcue";_.ie="subtitles-ttml";je="temporary";_.r="text";_.ke="text/vtt";_.le="text/xml";
12
+ _.me="timeupdate";_.ne="trak";_.oe="ttml-xml";_.pe="und";qe="unknown";_.re="urn:scte:scte35";_.se="urn:scte:scte35:2014";_.te="user-seeked";_.ve="user-seeking";_.xe="value";_.ye="vertical-lr";_.ze="vertical-rl";_.u="video";_.Ae="video/mp2t";_.Be="video/mp4";_.Ce="videobufferchanged";_.De="videotrackchanged";_.Ee="vimond-response";Fe="visibilitychange";_.Ge="vtt-xml";_.He="waiting";_.Ie="waitingforkey";Je="webkit-org.w3.clearkey";Ke="webkitkeyadded";Le="webkitkeyerror";Me="webkitkeymessage";Ne="webkitneedkey";
13
+ _.Oe="width";Pe="x-dt-csl-tracking-token";Qe="x-dt-follow-up-token";Re="x-dt-resp-code";Te=function(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}}};Ue=function(a){var b="undefined"!=typeof Symbol&&Symbol.iterator&&a[Symbol.iterator];return b?b.call(a):{next:Te(a)}};Xe=function(a,b){if(b){var c=Ve;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&We(c,a,{configurable:!0,writable:!0,value:b})}};
14
+ Ye=function(a){function b(d){return a.next(d)}function c(d){return a.throw(d)}return new Promise(function(d,e){function f(g){g.done?d(g.value):Promise.resolve(g.value).then(b,c).then(f,e)}f(a.next())})};_.v=function(a){return Ye(a())};_.x=function(a,b){a=a.split(".");var c=Ze;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a[0]);for(var d;a.length&&(d=a.shift());)a.length||void 0===b?c[d]&&c[d]!==Object.prototype[d]?c=c[d]:c=c[d]={}:c[d]=b};
15
+ _.bf=function(a){return _.y(a)||$e(a)?a:_.af(a)};_.af=function(a){let b={};for(let c=0;c<arguments.length;c++)null!==arguments[c]&&void 0!==arguments[c]&&(b=cf(b,{merging:arguments[c]}));return b.merging};
16
16
  cf=function(a,b,c){const d=c+1||1;if(_.y(a)||!_.df(a))a={};for(const e in b)c=b[e],$e(c)||_.y(c)||_.ef(c)?a[e]=c:_.df(c)&&c.buffer&&c.buffer instanceof ArrayBuffer&&_.ef(c.subarray)?a[e]=c.subarray(0):c instanceof Array?a[e]=cf([],c):!_.y(c)&&!_.y(c)&&_.df(c)&&c.constructor===Object&&20>d&&(a[e]=cf(a[e],c,d));return a};$e=function(a){a=typeof a;return a===_.ee||a===_.p||a===_.Zb};_.y=function(a){return null===a||"undefined"===typeof a};_.df=function(a){return typeof a===_.rd};
17
17
  _.ef=function(a){return typeof a===_.Qc};_.ff=function(a){return typeof a===_.ee};_.gf=function(a){return typeof a===_.p};
18
18
  _.hf=function(a,b,c,d){if(a===b||null===a&&null===b||void 0===a&&void 0===b)return!0;if(null===a&&null!==b||null!==a&&null===b||void 0!==a&&void 0===b||void 0===a&&void 0!==b||!_.df(a)||!_.df(b))return!1;const e=c||Object.keys(a),f={};for(let g=0;g<e.length;g++){const h=e[g];if(_.y(d)||0>d.indexOf(h))if(f[h]=!0,a[h]!==b[h])return!1}if(_.y(c))for(a=Object.keys(b),b=0;b<a.length;b++)if(c=a[b],(_.y(d)||0>d.indexOf(c))&&!f[c])return!1;return!0};
package/cl.youbora.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var Vo="accountCode key is missing",Wo="clpp.npaw.YouboraPlugin",Xo="content.isLive",Yo=function(a){a.plugin.isInitiated||(a.g=!1,a.fireInit())},Zo=function(a){var b=a.l.getDrmInfo();b&&(b=b.keySystem,(b=b.startsWith(_.yc)?"Widevine":b.startsWith(_.wc)?"FairPlay":b.match(/^com\.(microsoft|chromecast)\.playready/)?"PlayReady":b.startsWith(_.Bd)?"ClearKey":b.startsWith(_.vc)?"Primetime":b)&&a.plugin.setOptions({"content.drm":b}));a.fireJoin()},$o=function(a,b){const c=b.getConfiguration();
2
2
  a.f=!_.y(c.youbora)&&typeof c.youbora===_.rd;a.f?window.youbora&&6<=+youbora.VERSION.split(".")[0]?b.namespace()===_.pc&&(a.f=!1,a.g.info("Youbora does not report when casting.")):(a.g.warn("No valid Youbora SDK available. Youbora SDK is supported","starting from version",6),a.f=!1,b.onError(new _.H(1,9,9100))):a.g.warn("Youbora plugin is loaded but not configured. Will do nothing.")},ap=class extends youbora.Adapter{constructor(a){super(a);this.l=a;this.f=new _.cn;this.a=new _.O("clpp.npaw.YouboraAdapter");
3
3
  this.g=this.h=!1;this.registerListeners()}getPlayhead(){return this.l.getPosition()}getDuration(){return this.l.getDuration()}getRendition(){let a,b,c;var d=this.l.getTrackManager();d&&(d=d.fa())&&(a=d.width,b=d.height,c=d.bandwidth);a&&b&&c||(d=this.l.getStats()||_.jk(),a=a||d.width,b=b||d.height,c=c||d.streamBandwidth);return youbora.Util.buildRenditionString(a,b,c)}getIsLive(){return this.l.isLive()}getResource(){const a=this.l.getLoadedSource();return a&&a.url}getBitrate(){return(this.l.getStats()||
4
- _.jk()).streamBandwidth}getThroughput(){return(this.l.getStats()||_.jk()).estimatedBandwidth}getPlayrate(){return this.l.getPlaybackRate()}getFramesPerSecond(){var a=this.l.getTrackManager();return a&&(a=a.Aa())?a.frameRate:null}getPlayerName(){return _.la}getVersion(){return"6.2.6-rc-1-castlabsadapter-js"}getPlayerVersion(){return _.da}registerListeners(){this.l&&this.f&&(this.a.debug("registering listeners"),youbora.Util.logAllEvents(this.l),this.f.on(this.l,_.be,this.B.bind(this)),this.f.on(this.l,
4
+ _.jk()).streamBandwidth}getThroughput(){return(this.l.getStats()||_.jk()).estimatedBandwidth}getPlayrate(){return this.l.getPlaybackRate()}getFramesPerSecond(){var a=this.l.getTrackManager();return a&&(a=a.Aa())?a.frameRate:null}getPlayerName(){return _.la}getVersion(){return"6.2.6-castlabsadapter-js"}getPlayerVersion(){return _.da}registerListeners(){this.l&&this.f&&(this.a.debug("registering listeners"),youbora.Util.logAllEvents(this.l),this.f.on(this.l,_.be,this.B.bind(this)),this.f.on(this.l,
5
5
  _.Oc,this.o.bind(this)),this.f.on(this.l,_.ve,this.A.bind(this)),this.f.on(this.l,_.te,this.w.bind(this)),this.f.on(this.l,_.Db,this.j.bind(this)),this.f.on(this.l,_.gc,this.m.bind(this)))}unregisterListeners(){this.a.debug(_.fb);_.Df(this.f)}B(a){this.a.debug("State changed",a);if(a=a.detail)switch(a.currentState){case _.Ak:this.l.getConfiguration().autoplay&&Yo(this);break;case _.Ck:Yo(this);Zo(this);this.fireResume();this.fireBufferEnd();break;case _.Bk:this.l.getConfiguration().autoplay&&Yo(this);
6
6
  Zo(this);this.fireBufferEnd();this.firePause();break;case _.zk:this.fireBufferEnd();this.fireStop();break;case _.rk:this.fireBufferEnd();this.h&&this.plugin.getAdsAdapter()?this.firePause():this.fireStop();break;case _.uk:this.fireBufferBegin();break;default:this.a.debug("Unhandled state",a)}}o(a){this.a.debug("Fire error",a);!(a=a.detail)||this.g||10003===a.code&&this.plugin.getAdsAdapter()||(a.severity===_.G?(this.g=!0,this.fireFatalError(`${a.code}`,a.message)):this.fireError(`${a.code}`,a.message))}A(a){this.a.debug("Seeking",
7
7
  a);this.l.isEnded()||(Yo(this),this.fireSeekBegin())}w(a){this.a.debug("Seeked",a);this.fireSeekEnd()}j(a){this.a.debug("adsTimeline",a);a=a.adsTimeline;this.h=!!a&&a.Xa()}m(a){this.a.debug("Casting",a);this.fireCasted()}};var bp=class extends youbora.Adapter{constructor(a){super(a);this.l=a;this.h=this.a=null;this.f=new _.cn;this.g=new _.O("clpp.npaw.YouboraAdsAdapter");this.registerListeners()}getDuration(){return this.a&&this.a.getDuration()}getRendition(){let a=null;this.a&&(a=youbora.Util.buildRenditionString(this.a.jb(),this.a.ib(),this.a.Wa()));return a}getBitrate(){return this.a&&this.a.Wa()}getPlayhead(){const a=this.l.getAdsManager();return a&&a.getPosition()}getResource(){return this.a&&this.a.getMediaUrl()}getTitle(){return this.a&&
8
8
  this.a.getTitle()}getProvider(){return this.a&&this.a.getAdvertiserName()}getCreativeId(){return this.a&&this.a.getCreativeId()}getPosition(){const a=youbora.Constants.AdPosition;let b=null;if(this.a)switch(this.a.Ja()){case 0:b=a.Preroll;break;case 2:b=a.Postroll;break;case 1:b=a.Midroll}this.g.debug("Ad position",b);return b}getIsSkippable(){return this.a&&-1!==this.a.getSkipTimeOffset()}getAudioEnabled(){const a=this.l.getAdsManager();return a&&0<a.getVolume()}getExpectedBreaks(){return this.h&&
9
- this.h.getCuePoints().length}getGivenBreaks(){return this.getExpectedBreaks()}getExpectedAds(){return this.a&&this.a.lb()}getGivenAds(){return this.getExpectedAds()}getBreaksTime(){return this.h&&this.h.getCuePoints().map(a=>-1===a?this.l.getDuration():a)}getIsFullscreen(){return this.l.getSurface().isFullscreen()}getIsVisible(){var a=this.l.getSurface().getContainer();a=youbora.Util.calculateAdViewability(a);this.g.debug("is container visible",a);return a}getPlayerName(){return _.la}getVersion(){return"6.2.6-rc-1-castlabsadsadapter-js"}getPlayerVersion(){return _.da}registerListeners(){this.l&&
9
+ this.h.getCuePoints().length}getGivenBreaks(){return this.getExpectedBreaks()}getExpectedAds(){return this.a&&this.a.lb()}getGivenAds(){return this.getExpectedAds()}getBreaksTime(){return this.h&&this.h.getCuePoints().map(a=>-1===a?this.l.getDuration():a)}getIsFullscreen(){return this.l.getSurface().isFullscreen()}getIsVisible(){var a=this.l.getSurface().getContainer();a=youbora.Util.calculateAdViewability(a);this.g.debug("is container visible",a);return a}getPlayerName(){return _.la}getVersion(){return"6.2.6-castlabsadsadapter-js"}getPlayerVersion(){return _.da}registerListeners(){this.l&&
10
10
  this.f&&(this.f.on(this.l,_.Db,this.F.bind(this)),this.f.on(this.l,_.zb,this.D.bind(this)),this.f.on(this.l,_.vb,this.A.bind(this)),this.f.on(this.l,_.xb,this.B.bind(this)),this.f.on(this.l,_.qb,this.o.bind(this)),this.f.on(this.l,_.rb,this.j.bind(this,1)),this.f.on(this.l,_.ub,this.j.bind(this,2)),this.f.on(this.l,_.Bb,this.j.bind(this,3)),this.f.on(this.l,_.pb,this.m.bind(this)),this.f.on(this.l,_.yb,this.C.bind(this)),this.f.on(this.l,_.Oc,this.w.bind(this)),this.f.on(this.l,_.mb,this.H.bind(this)),
11
11
  this.f.on(this.l,_.nb,this.I.bind(this)),this.f.on(this.l,_.ob,this.J.bind(this)),this.f.on(this.l,_.wb,this.K.bind(this)))}unregisterListeners(){_.Df(this.f)}F(a){this.g.debug("ad timeline changed",a);this.h=a.adsTimeline}D(a){this.g.debug("ad start",a);this.a=a.ad;this.fireStart();this.fireJoin()}o(a){this.g.debug("ad end",a);this.fireStop()}A(a){this.g.debug("ad pause",a);this.firePause()}B(a){this.g.debug("ad resume",a);this.fireResume()}J(a){this.g.debug("on buffering",a);this.fireBufferBegin()}K(a){this.g.debug("on progress",
12
12
  a);this.fireBufferEnd()}j(a,b){this.g.debug("ad quartile",a,b);this.fireQuartile(a)}m(a){this.g.debug("ad clicked",a);a=this.a&&this.a.xb();this.g.debug("ad click through url: ",a);this.fireClick(a)}C(a){this.g.debug("ad skipped",a);this.fireSkip()}H(a){this.g.debug("break start",a);this.a=a.ad;this.fireBreakStart()}I(a){this.g.debug("ad break stop",a);this.fireBreakStop();this.getPosition()===youbora.Constants.AdPosition.Postroll&&(a=this.plugin.getAdapter())&&a.fireStop()}w(a){this.g.warn("ad error",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@castlabs/prestoplay",
3
3
  "description": "PRESTOplay Video Player",
4
- "version": "6.2.6-rc-1",
4
+ "version": "6.2.6",
5
5
  "homepage": "https://castlabs.com/prestoplay/",
6
6
  "bugs": {
7
7
  "url": "https://castlabs.com/support/"
@@ -11,7 +11,9 @@
11
11
  "files": [
12
12
  "*.js",
13
13
  "*.css",
14
- "cjs/*"
14
+ "cjs/*",
15
+ "README.md",
16
+ "CHANGELOG.md"
15
17
  ],
16
18
  "peerDependencies": {
17
19
  "mux.js": "^5.14.1",