@castlabs/prestoplay 6.17.1 → 6.19.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 (64) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/cjs/cl.adobe.js +3 -3
  3. package/cjs/cl.airplay.js +3 -3
  4. package/cjs/cl.broadpeak.js +7 -7
  5. package/cjs/cl.cast.js +115 -114
  6. package/cjs/cl.conviva.js +33 -33
  7. package/cjs/cl.core.js +575 -565
  8. package/cjs/cl.crypto.js +9 -9
  9. package/cjs/cl.dash.js +77 -74
  10. package/cjs/cl.externs.js +175 -293
  11. package/cjs/cl.freewheel.js +24 -24
  12. package/cjs/cl.hls.js +70 -69
  13. package/cjs/cl.hlssmpte.js +6 -6
  14. package/cjs/cl.htmlcue.js +29 -29
  15. package/cjs/cl.ima.js +24 -24
  16. package/cjs/cl.mse.js +315 -314
  17. package/cjs/cl.muxdata.js +15 -15
  18. package/cjs/cl.onboard.js +3 -3
  19. package/cjs/cl.persistent.js +14 -14
  20. package/cjs/cl.playlist.js +6 -6
  21. package/cjs/cl.sessions.js +16 -15
  22. package/cjs/cl.simid.js +15 -15
  23. package/cjs/cl.smooth.js +72 -72
  24. package/cjs/cl.thumbnails.js +26 -26
  25. package/cjs/cl.tizen.js +71 -71
  26. package/cjs/cl.ttml.js +29 -28
  27. package/cjs/cl.verimatrix.js +5 -5
  28. package/cjs/cl.vimond.js +13 -13
  29. package/cjs/cl.vr.js +19 -19
  30. package/cjs/cl.vtt.js +14 -14
  31. package/cjs/cl.youbora.js +18 -18
  32. package/cl.adobe.js +3 -3
  33. package/cl.airplay.js +3 -3
  34. package/cl.broadpeak.js +5 -5
  35. package/cl.cast.js +90 -89
  36. package/cl.conviva.js +27 -27
  37. package/cl.core.js +473 -466
  38. package/cl.crypto.js +9 -9
  39. package/cl.dash.js +72 -70
  40. package/cl.externs.js +172 -294
  41. package/cl.freewheel.js +19 -19
  42. package/cl.hls.js +74 -72
  43. package/cl.hlssmpte.js +5 -5
  44. package/cl.htmlcue.js +26 -26
  45. package/cl.ima.js +17 -17
  46. package/cl.mse.js +276 -273
  47. package/cl.muxdata.js +13 -13
  48. package/cl.onboard.js +4 -4
  49. package/cl.persistent.js +11 -11
  50. package/cl.playlist.js +5 -5
  51. package/cl.sessions.js +10 -10
  52. package/cl.simid.js +13 -13
  53. package/cl.smooth.js +59 -59
  54. package/cl.thumbnails.js +19 -19
  55. package/cl.tizen.js +57 -57
  56. package/cl.ttml.js +22 -22
  57. package/cl.verimatrix.js +4 -4
  58. package/cl.vimond.js +8 -8
  59. package/cl.vr.js +15 -15
  60. package/cl.vtt.js +12 -12
  61. package/cl.youbora.js +15 -15
  62. package/clpp.styles.css +14 -0
  63. package/package.json +2 -2
  64. package/typings.d.ts +406 -377
package/CHANGELOG.md CHANGED
@@ -1,3 +1,58 @@
1
+ # 6.19.0
2
+
3
+ ## New Features
4
+
5
+ * Add support for CMSD (Common Media Server Data)
6
+ * When `CMSD-Dynamic` or `CMSD-Static` header is parsed from network request, player now emits event `clpp.events.CMSD_EVENT`.
7
+ * For details refer to [CMSD Event](https://demo.castlabs.com/#/docs?q=clpp.events#CMSD_EVENT).
8
+ * MSE player now also supports CMSD headers **estimatedThroughput** and **maxSuggestedBitrate** to drive its ABR decisions.
9
+ * For details refer to [config.abr.useCmsd](https://demo.castlabs.com/#/docs?q=clpp#AbrConfiguration).
10
+ * Add `clpp.events.TIMELINE_CUES_CHANGED` event indicating a change in timeline cues.
11
+ * Support EXT-X-DATERANGE augmentation in HLS.
12
+ * Add Chromecast Web Receiver methods `setContentMetadata`, `updateContentMetadata` supporting set or
13
+ merge the current content metadata.
14
+ * Add support for HLS interstitials.
15
+
16
+ ## Changes
17
+
18
+ * Evict old timeline cues in live streams.
19
+ * Allow extra whitespaces in HLS playlists.
20
+ * Fix a problem with text track selection when `preferForcedSubtitles` is configured.
21
+ * Fix typescript typings of utility functions.
22
+ * For Low Latency streams and `lowLatencyMode` the streaming configuration `ignoreDrift` is now `false` by default
23
+ * `ignoreDrift` could cause additional startup delay for some streams. In case you still want to disable drift detection for
24
+ low latency streams, set `ignoreDrift` of [streaming configuration](https://demo.castlabs.com/#/docs?q=clpp#StreamingConfiguration).
25
+
26
+ # 6.18.0
27
+
28
+ ## New Features
29
+
30
+ * Add startover timeline type for DASH which supports seeking back to the start
31
+ of the stream. Enable this timeline mode by configuring
32
+ `manifest.timeline.type: "startover"` for startover streams.
33
+ * Make Widevine key system version configurable via `drm.widevineVersion` to allow
34
+ for the selection of experimental key systems such as `com.widevine.alpha.experiment`.
35
+ * Support multiple HLS EXT-X-MAP tags in a playlist.
36
+ * Upgrade supported version of `youboralib` to 6.8.59. Please upgrade to this version (e.g. `npm i youboralib@6.8.59`).
37
+ * Support EXT-X-DATERANGE tags in Live HLS Streams.
38
+
39
+ ## Changes
40
+
41
+ * Improve DRM logs.
42
+ * Fix an issue with segment eviction in startover DASH.
43
+ * Fixed handling of same GROUP-IDs across different media types in HLS.
44
+ * Fix an event `clpp.events.BITRATE_CHANGED` which wasn't properly triggered.
45
+ * Fix session initialization in the Broadpeak plugin.
46
+ * Update DRMToday Widevine server certificate.
47
+ * Fix reporting of bitrate by Conviva Analytics Plugin.
48
+ * Fix crash in repeated calls to `load()` on Tizen 4 and 5.
49
+
50
+ ## Known Issues
51
+
52
+ * Breaking change of latest [Google Cast SDK Web Receiver version 3.0.0137](https://developers.google.com/cast/docs/release-notes#september-4,-2024-november-1,-2024)
53
+ * Causes a regression in audio and subtitle track selection when casting to Chromecast devices. Tracks appear disabled during the casting session.
54
+ * Affects all SDK versions.
55
+
1
56
  # 6.17.1
2
57
 
3
58
  ## Changes
package/cjs/cl.adobe.js CHANGED
@@ -1,7 +1,7 @@
1
1
  (function(){var g={}; var _ = _ || {}
2
- var f=function(window){var VV=function(){this.m=this.f=null;this.a="";this.g=new _.K("clpp.adobe.AdobePlugin")},YV=function(a){a.f=new _.Uh;a.f.on(a.m,_.Dg,function(){return WV(a)});a.f.on(a.m,_.Cg,function(){s.Media.play(a.a,a.m.getPosition())});a.f.on(a.m,_.Je,function(){return XV(a)});a.f.on(a.m,_.gg,function(b){b=b.detail;switch(b.currentState){case _.zp:a.a.length||XV(a);s.Media.play(a.a,a.m.getPosition());break;case _.yp:case _.qp:WV(a);break;case _.sp:case _.lp:case _.wp:a.g.info("Close session for "+a.a+" in player state "+
3
- (b.currentState+".")),WV(a),s.Media.close(a.a),a.a=""}})},XV=function(a){var b=a.m.getLoadedSource();a.a=b?b.name||b.url:"";a.g.info("Open session for "+a.a+" with duration "+a.m.getDuration());s.Media.open(a.a,a.m.getDuration(),_.va)},WV=function(a){s.Media.stop(a.a,a.m.getPosition())},ZV=function(){};_.x(VV,_.zu);VV.prototype.onPlayerCreated=function(a){window.s&&s.Media?(this.m=a,YV(this)):this.g.warn("Adobe API not available.")};
4
- VV.prototype.onPlayerWillDestroy=function(){this.f&&(this.f.release(),this.f=null);this.m=null;this.a=""};VV.prototype.id=function(){return"adobe"};_.J("clpp.adobe.AdobeAnalyticsPlugin",VV);VV.Id="adobe";ZV.prototype.create=function(){return new VV};_.$q(new ZV);};
2
+ var f=function(window){var mW=function(){this.m=this.f=null;this.a="";this.g=new _.K("clpp.adobe.AdobePlugin")},pW=function(a){a.f=new _.Sh;a.f.on(a.m,_.yg,function(){return nW(a)});a.f.on(a.m,_.xg,function(){s.Media.play(a.a,a.m.getPosition())});a.f.on(a.m,_.He,function(){return oW(a)});a.f.on(a.m,_.cg,function(b){b=b.detail;switch(b.currentState){case _.xp:a.a.length||oW(a);s.Media.play(a.a,a.m.getPosition());break;case _.wp:case _.op:nW(a);break;case _.qp:case _.jp:case _.up:a.g.info("Close session for "+a.a+" in player state "+
3
+ (b.currentState+".")),nW(a),s.Media.close(a.a),a.a=""}})},oW=function(a){var b=a.m.getLoadedSource();a.a=b?b.name||b.url:"";a.g.info("Open session for "+a.a+" with duration "+a.m.getDuration());s.Media.open(a.a,a.m.getDuration(),_.va)},nW=function(a){s.Media.stop(a.a,a.m.getPosition())},qW=function(){};_.x(mW,_.Cu);mW.prototype.onPlayerCreated=function(a){window.s&&s.Media?(this.m=a,pW(this)):this.g.warn("Adobe API not available.")};
4
+ mW.prototype.onPlayerWillDestroy=function(){this.f&&(this.f.release(),this.f=null);this.m=null;this.a=""};mW.prototype.id=function(){return"adobe"};_.J("clpp.adobe.AdobeAnalyticsPlugin",mW);mW.Id="adobe";qW.prototype.create=function(){return new mW};_.qs(new qW);};
5
5
  if(typeof(module)!="undefined"&&module.exports){var x=require("./cl.core.js");_ = x._;(f.call(g,this));module.exports=g;}
6
6
  else if (typeof(define)!="undefined"&&define.amd) {define(["./cl.core"], function(c){_=c._;(f.call(g,this));return g;});}
7
7
  else{_=this.clpp._;(f.call(g,this));}
package/cjs/cl.airplay.js CHANGED
@@ -1,7 +1,7 @@
1
1
  (function(){var g={}; var _ = _ || {}
2
- var f=function(window){var TV=function(){var a=this;this.a=this.m=null;this.l=this.f=this.j=!1;this.o=new _.Uk(function(){a.m.play()["catch"](function(){})});this.h=new _.Uh},UV=function(){};_.x(TV,_.zu);_.t=TV.prototype;_.t.onPlayerCreated=function(a){this.m=a;this.a=a.getSurface().getMedia()};_.t.onContentWillLoad=function(){this.a&&(this.h.on(this.a,"webkitplaybacktargetavailabilitychanged",this.Wl.bind(this)),this.h.on(this.a,"webkitcurrentplaybacktargetiswirelesschanged",this.ym.bind(this)))};
3
- _.t.onPlayerWillRelease=function(){this.o.stop();this.h.release()};_.t.id=function(){return"airplay"};_.t.Wl=function(a){switch(a.availability){case "available":this.f=!0;break;case "not-available":this.f=!1}this.m.trigger(new _.L(_.Rc,{canCast:this.f}))};_.t.ym=function(){var a=(this.j=this.a.webkitCurrentPlaybackTargetIsWireless)?_.Qc:_.Pc;if(this.l||!this.m.isPaused()||this.m.getState()===_.zp)this.l?this.m.play()["catch"](function(){}):this.o.da(.01);this.m.trigger(new _.L(a))};_.t.tb=function(){return this.j};
4
- _.t.kf=function(){return this.f};_.t.fn=function(){this.f&&(this.l=!this.m.isPaused(),this.a.webkitShowPlaybackTargetPicker())};_.J("clpp.airplay.AirPlayPlugin",TV);TV.prototype.showCastMenu=TV.prototype.fn;TV.prototype.canCast=TV.prototype.kf;TV.prototype.isCasting=TV.prototype.tb;TV.Id="airplay";UV.prototype.create=function(){return new TV};_.$q(new UV);};
2
+ var f=function(window){var kW=function(){var a=this;this.a=this.m=null;this.l=this.f=this.j=!1;this.o=new _.Tk(function(){a.m.play()["catch"](function(){})});this.h=new _.Sh},lW=function(){};_.x(kW,_.Cu);_.u=kW.prototype;_.u.onPlayerCreated=function(a){this.m=a;this.a=a.getSurface().getMedia()};_.u.onContentWillLoad=function(){this.a&&(this.h.on(this.a,"webkitplaybacktargetavailabilitychanged",this.em.bind(this)),this.h.on(this.a,"webkitcurrentplaybacktargetiswirelesschanged",this.Gm.bind(this)))};
3
+ _.u.onPlayerWillRelease=function(){this.o.stop();this.h.release()};_.u.id=function(){return"airplay"};_.u.em=function(a){switch(a.availability){case "available":this.f=!0;break;case "not-available":this.f=!1}this.m.trigger(new _.L(_.Qc,{canCast:this.f}))};_.u.Gm=function(){var a=(this.j=this.a.webkitCurrentPlaybackTargetIsWireless)?_.Pc:_.Oc;if(this.l||!this.m.isPaused()||this.m.getState()===_.xp)this.l?this.m.play()["catch"](function(){}):this.o.ea(.01);this.m.trigger(new _.L(a))};_.u.Hb=function(){return this.j};
4
+ _.u.tf=function(){return this.f};_.u.un=function(){this.f&&(this.l=!this.m.isPaused(),this.a.webkitShowPlaybackTargetPicker())};_.J("clpp.airplay.AirPlayPlugin",kW);kW.prototype.showCastMenu=kW.prototype.un;kW.prototype.canCast=kW.prototype.tf;kW.prototype.isCasting=kW.prototype.Hb;kW.Id="airplay";lW.prototype.create=function(){return new kW};_.qs(new lW);};
5
5
  if(typeof(module)!="undefined"&&module.exports){var x=require("./cl.core.js");_ = x._;(f.call(g,this));module.exports=g;}
6
6
  else if (typeof(define)!="undefined"&&define.amd) {define(["./cl.core"], function(c){_=c._;(f.call(g,this));return g;});}
7
7
  else{_=this.clpp._;(f.call(g,this));}
@@ -1,11 +1,11 @@
1
1
  (function(){var g={}; var _ = _ || {}
2
- var f=function(window){var LV=function(a,b){this.m=a;this.f=b;this.a=new _.Uh;this.h=!1},MV=function(a){function b(c){var d=GenericPlayerApi.call(this)||this;d.m=c;d.a=_.Xj();return d}_.x(b,GenericPlayerApi);b.prototype.getPlayerName=function(){return _.va};b.prototype.getVersion=function(){return _.ia};b.prototype.getOSName=function(){return this.a.os};b.prototype.getDeviceVersion=function(){return this.a.osVersion.name};b.prototype.getDeviceType=function(){return"browser"};b.prototype.getTotalDuration=function(){return this.m.isLive()?
3
- 0:1E3*this.m.getDuration()};b.prototype.getCurrentPosition=function(){return 1E3*this.m.getPosition()};b.prototype.getCurrentBitrate=function(){var c=this.m.getStats();return(c?c.streamBandwidth:0)/1E3};return new b(a)},NV=function(){this.l=this.f=this.a=this.h=this.m=null;this.o=new _.Uh;this.j=!1},OV=function(a,b){var c=b.analyticsAddress||null,d=b.nanoCDNHost||null,e=b.broadpeakDomainNames||"",f=b.uuid||null;a.h||(a.h=SmartLib.getInstance(),a.h.init(c,d,e),typeof f===_.jg&&a.h.setUUID(f))},PV=
4
- function(a,b){var c=b.customParameters||{};a.a=a.h.createStreamingSession();a.a.setOption(StreamingSessionOptions.SESSION_PRECACHE,!0);for(var d in c)a.a.setCustomParameter(d,c[d]);a.o.on(a.m,_.re,a.T.bind(a));a.l=MV(a.m);a.a.attachPlayer(a.l)},QV=function(a,b){_.Xh(a.o);a.f&&(a.f.release(),a.f=null);a.a&&(a.a.stopStreamingSession(b),a.a=null)},RV=function(){return!window.SmartLib||!window.GenericPlayerApi},SV=function(){};_.t=LV.prototype;
5
- _.t.init=function(){var a=this.m,b=this.a;b.on(a,_.gg,this.cj.bind(this));b.on(a,_.jd,this.aj.bind(this));b.on(a,"seek",this.bj.bind(this))};_.t.aj=function(a){a=a.detail;typeof a.bandwidth===_.k&&this.f.notifyLayerSwitch(a.bandwidth/1E3)};_.t.cj=function(a){var b=this.m,c=this.f;a=a.detail;var d=a.currentState;a.previousState===_.qp&&c.notifyStallEnd(!b.isPaused());switch(d){case _.qp:c.notifyStallStart();break;case _.zp:this.h?c.notifyResume():(c.notifyFirstImage(),this.h=!0);break;case _.yp:c.notifyPause()}};
6
- _.t.bj=function(){var a=1E3*this.m.getPosition();this.f.notifySeek(a)};_.t.release=function(){this.a&&(_.Xh(this.a),this.a=null)};_.x(NV,_.zu);_.t=NV.prototype;_.t.onPlayerCreated=function(a){this.m=a};_.t.onContentWillLoad=function(a,b){var c=this,d=a.getConfiguration().broadpeak;if(d){if(RV())return a.onError(new _.P(1,9,11E3));this.j=!0;OV(this,d);PV(this,d);return this.a.getURL(b.url).then(function(e){if(e.isError()){var f=e.getDetailedErrorCode();e=e.getDetailedErrorMessage();c.m.onError(new _.P(1,9,11001,{bpkErrorCode:f,message:e}));QV(c,void 0)}else b.url=e.getURL(),c.f=new LV(c.m,c.l),c.f.init()})}};
7
- _.t.onContentLoaded=function(){!1!==this.j&&this.a.precacheEnded()};_.t.T=function(a){a=a.detail;if(7003===a.code)QV(this,SmartLib.BPFormatNotSupportedError);else if(a.severity===_.Q)switch(a.category){case 3:QV(this,SmartLib.BPDecodingError);break;case 1:QV(this,SmartLib.BPNetworkingError);break;case 6:QV(this,SmartLib.BPAccessRightError);break;default:QV(this,SmartLib.BPUnspecifiedError)}};_.t.onPlayerWillRelease=function(){RV()||QV(this,SmartLib.BPSessionEndsNormally);this.j=!1};_.t.id=function(){return"broadpeak"};
8
- _.J("clpp.broadpeak.BroadpeakPlugin",NV);NV.isSdkMissing=RV;NV.Id="broadpeak";SV.prototype.create=function(){return new NV};_.$q(new SV);};
2
+ var f=function(window){var cW=function(a,b){this.m=a;this.f=b;this.a=new _.Sh;this.h=!1},dW=function(a){function b(c){var d=GenericPlayerApi.call(this)||this;d.m=c;d.a=_.Wj();return d}_.x(b,GenericPlayerApi);b.prototype.getPlayerName=function(){return _.va};b.prototype.getVersion=function(){return _.ia};b.prototype.getOSName=function(){return this.a.os};b.prototype.getDeviceVersion=function(){return this.a.osVersion.name};b.prototype.getDeviceType=function(){return"browser"};b.prototype.getTotalDuration=function(){return this.m.isLive()?
3
+ 0:1E3*this.m.getDuration()};b.prototype.getCurrentPosition=function(){return 1E3*this.m.getPosition()};b.prototype.getCurrentBitrate=function(){var c=this.m.getStats();return(c?c.streamBandwidth:0)/1E3};return new b(a)},eW=function(){this.l=this.f=this.a=this.h=this.m=null;this.o=new _.Sh;this.j=!1},fW=function(a,b){var c=b.analyticsAddress||null,d=b.nanoCDNHost||null,e=b.broadpeakDomainNames||"",f=b.uuid||null;a.h||(a.h=SmartLib.getInstance(),a.h.init(c,d,e),typeof f===_.fg&&a.h.setUUID(f))},gW=
4
+ function(a,b){var c=b.customParameters||{};a.a=a.h.createStreamingSession();a.a.setOption(StreamingSessionOptions.SESSION_PRECACHE,!0);for(var d in c)a.a.setCustomParameter(d,c[d]);a.o.on(a.m,_.ne,a.S.bind(a));a.l=dW(a.m);a.a.attachPlayer(a.l)},hW=function(a,b){_.Vh(a.o);a.f&&(a.f.release(),a.f=null);a.a&&(a.a.stopStreamingSession(b),a.a=null)},iW=function(){return!window.SmartLib||!window.GenericPlayerApi},jW=function(){};_.u=cW.prototype;
5
+ _.u.init=function(){var a=this.m,b=this.a;b.on(a,_.cg,this.qj.bind(this));b.on(a,_.id,this.oj.bind(this));b.on(a,"seek",this.pj.bind(this))};_.u.oj=function(a){a=a.detail;typeof a.bandwidth===_.k&&this.f.notifyLayerSwitch(a.bandwidth/1E3)};_.u.qj=function(a){var b=this.m,c=this.f;a=a.detail;var d=a.currentState;a.previousState===_.op&&c.notifyStallEnd(!b.isPaused());switch(d){case _.op:c.notifyStallStart();break;case _.xp:this.h?c.notifyResume():(c.notifyFirstImage(),this.h=!0);break;case _.wp:c.notifyPause()}};
6
+ _.u.pj=function(){var a=1E3*this.m.getPosition();this.f.notifySeek(a)};_.u.release=function(){this.a&&(_.Vh(this.a),this.a=null)};_.x(eW,_.Cu);_.u=eW.prototype;_.u.onPlayerCreated=function(a){this.m=a};_.u.onContentWillLoad=function(a,b){var c=this,d=a.getConfiguration().broadpeak;if(d){if(iW())return a.onError(new _.N(1,9,11E3));this.j=!0;fW(this,d);gW(this,d);return this.a.getURL(b.url).then(function(e){if(e.isError()){var f=e.getDetailedErrorCode();e=e.getDetailedErrorMessage();c.m.onError(new _.N(1,9,11001,{bpkErrorCode:f,message:e}));hW(c,void 0)}else b.url=e.getURL(),c.f=new cW(c.m,c.l),c.f.init()})}};
7
+ _.u.onContentLoaded=function(){!1!==this.j&&this.a.precacheEnded()};_.u.S=function(a){a=a.detail;if(7003===a.code)hW(this,SmartLib.BPFormatNotSupportedError);else if(a.severity===_.O)switch(a.category){case 3:hW(this,SmartLib.BPDecodingError);break;case 1:hW(this,SmartLib.BPNetworkingError);break;case 6:hW(this,SmartLib.BPAccessRightError);break;default:hW(this,SmartLib.BPUnspecifiedError)}};_.u.onPlayerWillRelease=function(){iW()||hW(this,SmartLib.BPSessionEndsNormally);this.j=!1};_.u.id=function(){return"broadpeak"};
8
+ _.J("clpp.broadpeak.BroadpeakPlugin",eW);eW.isSdkMissing=iW;eW.Id="broadpeak";jW.prototype.create=function(){return new eW};_.qs(new jW);};
9
9
  if(typeof(module)!="undefined"&&module.exports){var x=require("./cl.core.js");_ = x._;(f.call(g,this));module.exports=g;}
10
10
  else if (typeof(define)!="undefined"&&define.amd) {define(["./cl.core"], function(c){_=c._;(f.call(g,this));return g;});}
11
11
  else{_=this.clpp._;(f.call(g,this));}