shaka-player 4.1.3 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/CHANGELOG.md +33 -34
  2. package/demo/common/assets.js +25 -0
  3. package/demo/common/message_ids.js +2 -0
  4. package/demo/config.js +5 -1
  5. package/demo/index.html +1 -1
  6. package/demo/locales/en.json +2 -0
  7. package/demo/locales/source.json +8 -0
  8. package/dist/demo.compiled.debug.js +25 -23
  9. package/dist/demo.compiled.debug.map +3 -3
  10. package/dist/demo.compiled.js +25 -23
  11. package/dist/demo.compiled.map +3 -3
  12. package/dist/deps.js +3 -2
  13. package/dist/locales.js +31 -31
  14. package/dist/receiver.compiled.debug.js +24 -22
  15. package/dist/receiver.compiled.debug.map +3 -3
  16. package/dist/receiver.compiled.js +24 -22
  17. package/dist/receiver.compiled.map +3 -3
  18. package/dist/shaka-player.compiled.d.ts +57 -4
  19. package/dist/shaka-player.compiled.debug.d.ts +57 -4
  20. package/dist/shaka-player.compiled.debug.externs.js +62 -4
  21. package/dist/shaka-player.compiled.debug.js +285 -241
  22. package/dist/shaka-player.compiled.debug.map +4 -4
  23. package/dist/shaka-player.compiled.externs.js +62 -4
  24. package/dist/shaka-player.compiled.js +815 -798
  25. package/dist/shaka-player.compiled.map +4 -4
  26. package/dist/shaka-player.ui.d.ts +57 -4
  27. package/dist/shaka-player.ui.debug.d.ts +57 -4
  28. package/dist/shaka-player.ui.debug.externs.js +62 -4
  29. package/dist/shaka-player.ui.debug.js +283 -239
  30. package/dist/shaka-player.ui.debug.map +4 -4
  31. package/dist/shaka-player.ui.externs.js +62 -4
  32. package/dist/shaka-player.ui.js +979 -960
  33. package/dist/shaka-player.ui.map +4 -4
  34. package/docs/tutorials/fairplay.md +149 -0
  35. package/docs/tutorials/ui.md +6 -6
  36. package/externs/shaka/abr_manager.js +8 -0
  37. package/externs/shaka/manifest.js +43 -0
  38. package/externs/shaka/player.js +13 -2
  39. package/lib/abr/simple_abr_manager.js +72 -4
  40. package/lib/hls/hls_parser.js +117 -25
  41. package/lib/media/drm_engine.js +0 -2
  42. package/lib/media/segment_index.js +8 -0
  43. package/lib/media/segment_reference.js +7 -1
  44. package/lib/media/streaming_engine.js +38 -2
  45. package/lib/net/networking_engine.js +1 -0
  46. package/lib/player.js +8 -1
  47. package/lib/polyfill/patchedmediakeys_apple.js +729 -0
  48. package/lib/text/vtt_text_parser.js +61 -4
  49. package/lib/util/error.js +21 -1
  50. package/lib/util/fairplay_utils.js +100 -2
  51. package/lib/util/platform.js +12 -1
  52. package/lib/util/player_configuration.js +3 -10
  53. package/package.json +1 -1
  54. package/shaka-player.uncompiled.js +1 -0
  55. package/test/hls/hls_parser_unit.js +49 -33
  56. package/test/media/streaming_engine_unit.js +79 -5
  57. package/test/test/util/simple_fakes.js +4 -0
  58. package/test/test/util/streaming_engine_util.js +10 -2
  59. package/test/text/vtt_text_parser_unit.js +26 -0
@@ -464,6 +464,7 @@ declare namespace shaka.abr {
464
464
  init (switchCallback : any ) : any ;
465
465
  playbackRateChanged (rate : any ) : any ;
466
466
  segmentDownloaded (deltaTimeMs : any , numBytes : any ) : any ;
467
+ setMediaElement (mediaElement : any ) : any ;
467
468
  setVariants (variants : any ) : any ;
468
469
  stop ( ) : any ;
469
470
  }
@@ -1102,6 +1103,7 @@ declare namespace shaka.media {
1102
1103
  */
1103
1104
  constructor (segmentIndex : shaka.media.SegmentIndex | null , index : number , partialSegmentIndex : number ) ;
1104
1105
  current ( ) : shaka.media.SegmentReference | null ;
1106
+ currentPosition ( ) : number ;
1105
1107
  next ( ) : any ;
1106
1108
  }
1107
1109
  }
@@ -1113,7 +1115,7 @@ declare namespace shaka.media {
1113
1115
  */
1114
1116
  class SegmentReference {
1115
1117
  private noStructuralTyping_shaka_media_SegmentReference : any;
1116
- constructor (startTime : number , endTime : number , uris : ( ) => string [] , startByte : number , endByte : number | null , initSegmentReference : shaka.media.InitSegmentReference | null , timestampOffset : number , appendWindowStart : number , appendWindowEnd : number , partialReferences ? : shaka.media.SegmentReference [] , tilesLayout ? : string | null , tileDuration ? : number | null , syncTime ? : number | null , status ? : shaka.media.SegmentReference.Status ) ;
1118
+ constructor (startTime : number , endTime : number , uris : ( ) => string [] , startByte : number , endByte : number | null , initSegmentReference : shaka.media.InitSegmentReference | null , timestampOffset : number , appendWindowStart : number , appendWindowEnd : number , partialReferences ? : shaka.media.SegmentReference [] , tilesLayout ? : string | null , tileDuration ? : number | null , syncTime ? : number | null , status ? : shaka.media.SegmentReference.Status , hlsAes128Key ? : shaka.extern.HlsAes128Key | null ) ;
1117
1119
  /**
1118
1120
  * Returns the offset from the start of the resource to the end of the
1119
1121
  * segment, inclusive. A value of null indicates that the segment extends to
@@ -1332,6 +1334,7 @@ declare namespace shaka.net.NetworkingEngine {
1332
1334
  */
1333
1335
  enum RequestType {
1334
1336
  APP = 3.0 ,
1337
+ KEY = 6.0 ,
1335
1338
  LICENSE = 2.0 ,
1336
1339
  MANIFEST = 0.0 ,
1337
1340
  SEGMENT = 1.0 ,
@@ -1532,6 +1535,16 @@ declare namespace shaka.polyfill {
1532
1535
  }
1533
1536
  }
1534
1537
  // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.ui.externs.js
1538
+ declare namespace shaka.polyfill {
1539
+ class PatchedMediaKeysApple {
1540
+ private noStructuralTyping_shaka_polyfill_PatchedMediaKeysApple : any;
1541
+ /**
1542
+ * Installs the polyfill if needed.
1543
+ */
1544
+ static install ( ) : any ;
1545
+ }
1546
+ }
1547
+ // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.ui.externs.js
1535
1548
  declare namespace shaka.polyfill {
1536
1549
  class PatchedMediaKeysNop {
1537
1550
  private noStructuralTyping_shaka_polyfill_PatchedMediaKeysNop : any;
@@ -2690,10 +2703,13 @@ declare namespace shaka.util.Error {
2690
2703
  FAILED_TO_CREATE_SESSION = 6005.0 ,
2691
2704
  FAILED_TO_GENERATE_LICENSE_REQUEST = 6006.0 ,
2692
2705
  HLS_AES_128_ENCRYPTION_NOT_SUPPORTED = 4034.0 ,
2706
+ HLS_AES_128_INVALID_IV_LENGTH = 4043.0 ,
2707
+ HLS_AES_128_INVALID_KEY_LENGTH = 4044.0 ,
2693
2708
  HLS_COULD_NOT_GUESS_CODECS = 4025.0 ,
2694
2709
  HLS_INTERNAL_SKIP_STREAM = 4035.0 ,
2695
2710
  HLS_INVALID_PLAYLIST_HIERARCHY = 4017.0 ,
2696
2711
  HLS_KEYFORMATS_NOT_SUPPORTED = 4026.0 ,
2712
+ HLS_MSE_ENCRYPTED_LEGACY_APPLE_MEDIA_KEYS_NOT_SUPPORTED = 4041.0 ,
2697
2713
  HLS_MSE_ENCRYPTED_MP2T_NOT_SUPPORTED = 4040.0 ,
2698
2714
  HLS_MULTIPLE_MEDIA_INIT_SECTIONS_FOUND = 4020.0 ,
2699
2715
  HLS_PLAYLIST_HEADER_MISSING = 4015.0 ,
@@ -2736,6 +2752,7 @@ declare namespace shaka.util.Error {
2736
2752
  NO_RECOGNIZED_KEY_SYSTEMS = 6000.0 ,
2737
2753
  NO_VARIANTS = 4036.0 ,
2738
2754
  NO_VIDEO_ELEMENT = 7002.0 ,
2755
+ NO_WEB_CRYPTO_API = 4042.0 ,
2739
2756
  OBJECT_DESTROYED = 7003.0 ,
2740
2757
  OFFLINE_SESSION_REMOVED = 6013.0 ,
2741
2758
  OPERATION_ABORTED = 7001.0 ,
@@ -2831,11 +2848,27 @@ declare namespace shaka.util {
2831
2848
  * Common FairPlay response transform for some DRMs providers.
2832
2849
  */
2833
2850
  static commonFairPlayResponse (type : shaka.net.NetworkingEngine.RequestType , response : shaka.extern.Response ) : any ;
2851
+ /**
2852
+ * Conax FairPlay request.
2853
+ */
2854
+ static conaxFairPlayRequest (type : shaka.net.NetworkingEngine.RequestType , request : shaka.extern.Request ) : any ;
2855
+ /**
2856
+ * Conax initDataTransform configuration.
2857
+ */
2858
+ static conaxInitDataTransform (initData : Uint8Array , initDataType : string , drmInfo : shaka.extern.DrmInfo | null ) : any ;
2834
2859
  /**
2835
2860
  * Using the default method, extract a content ID from the init data. This is
2836
2861
  * based on the FairPlay example documentation.
2837
2862
  */
2838
2863
  static defaultGetContentId (initData : ArrayBuffer | ArrayBufferView ) : string ;
2864
+ /**
2865
+ * EZDRM FairPlay request.
2866
+ */
2867
+ static ezdrmFairPlayRequest (type : shaka.net.NetworkingEngine.RequestType , request : shaka.extern.Request ) : any ;
2868
+ /**
2869
+ * EZDRM initDataTransform configuration.
2870
+ */
2871
+ static ezdrmInitDataTransform (initData : Uint8Array , initDataType : string , drmInfo : shaka.extern.DrmInfo | null ) : any ;
2839
2872
  /**
2840
2873
  * Transforms the init data buffer using the given data. The format is:
2841
2874
  * <pre>
@@ -2854,9 +2887,13 @@ declare namespace shaka.util {
2854
2887
  */
2855
2888
  static isFairPlaySupported ( ) : Promise < boolean > ;
2856
2889
  /**
2857
- * SPC FairPlay request.
2890
+ * Verimatrix FairPlay request.
2891
+ */
2892
+ static verimatrixFairPlayRequest (type : shaka.net.NetworkingEngine.RequestType , request : shaka.extern.Request ) : any ;
2893
+ /**
2894
+ * Verimatrix initDataTransform configuration.
2858
2895
  */
2859
- static spcFairPlayRequest (type : shaka.net.NetworkingEngine.RequestType , request : shaka.extern.Request ) : any ;
2896
+ static verimatrixInitDataTransform (initData : Uint8Array , initDataType : string , drmInfo : shaka.extern.DrmInfo | null ) : any ;
2860
2897
  }
2861
2898
  }
2862
2899
  // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.ui.externs.js
@@ -3765,6 +3802,10 @@ declare namespace shaka.extern {
3765
3802
  * @param numBytes The total number of bytes transferred.
3766
3803
  */
3767
3804
  segmentDownloaded (deltaTimeMs : number , numBytes : number ) : any ;
3805
+ /**
3806
+ * Set media element.
3807
+ */
3808
+ setMediaElement (mediaElement : HTMLMediaElement | null ) : any ;
3768
3809
  /**
3769
3810
  * Updates manager's variants collection.
3770
3811
  */
@@ -3900,6 +3941,18 @@ declare namespace shaka.extern {
3900
3941
  type DrmInfo = { audioRobustness : string , distinctiveIdentifierRequired : boolean , initData : shaka.extern.InitDataOverride [] | null , keyIds : Set < string > | null , keySystem : string , licenseServerUri : string , persistentStateRequired : boolean , serverCertificate : Uint8Array | null , serverCertificateUri : string , sessionType : string , videoRobustness : string } ;
3901
3942
  }
3902
3943
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest.js
3944
+ declare namespace shaka.extern {
3945
+ /**
3946
+ * A function that fetches the crypto keys for AES-128.
3947
+ * Returns a promise that resolves when the keys have been fetched.
3948
+ */
3949
+ type FetchCryptoKeysFunction = ( ) => Promise < any > ;
3950
+ }
3951
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest.js
3952
+ declare namespace shaka.extern {
3953
+ type HlsAes128Key = { cryptoKey ? : webCrypto.CryptoKey | null , fetchKey ? : shaka.extern.CreateSegmentIndexFunction , firstMediaSequenceNumber : number , iv ? : Uint8Array , method : string } ;
3954
+ }
3955
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest.js
3903
3956
  declare namespace shaka.extern {
3904
3957
  type InitDataOverride = { initData : Uint8Array , initDataType : string , keyId : string | null } ;
3905
3958
  }
@@ -4253,7 +4306,7 @@ declare namespace shaka.extern {
4253
4306
  }
4254
4307
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4255
4308
  declare namespace shaka.extern {
4256
- type AbrConfiguration = { advanced : shaka.extern.AdvancedAbrConfiguration , bandwidthDowngradeTarget : number , bandwidthUpgradeTarget : number , defaultBandwidthEstimate : number , enabled : boolean , restrictions : shaka.extern.Restrictions , switchInterval : number , useNetworkInformation : boolean } ;
4309
+ type AbrConfiguration = { advanced : shaka.extern.AdvancedAbrConfiguration , bandwidthDowngradeTarget : number , bandwidthUpgradeTarget : number , defaultBandwidthEstimate : number , enabled : boolean , ignoreDevicePixelRatio : boolean , restrictToElementSize : boolean , restrictions : shaka.extern.Restrictions , switchInterval : number , useNetworkInformation : boolean } ;
4257
4310
  }
4258
4311
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4259
4312
  declare namespace shaka.extern {
@@ -464,6 +464,7 @@ declare namespace shaka.abr {
464
464
  init (switchCallback : any ) : any ;
465
465
  playbackRateChanged (rate : any ) : any ;
466
466
  segmentDownloaded (deltaTimeMs : any , numBytes : any ) : any ;
467
+ setMediaElement (mediaElement : any ) : any ;
467
468
  setVariants (variants : any ) : any ;
468
469
  stop ( ) : any ;
469
470
  }
@@ -1102,6 +1103,7 @@ declare namespace shaka.media {
1102
1103
  */
1103
1104
  constructor (segmentIndex : shaka.media.SegmentIndex | null , index : number , partialSegmentIndex : number ) ;
1104
1105
  current ( ) : shaka.media.SegmentReference | null ;
1106
+ currentPosition ( ) : number ;
1105
1107
  next ( ) : any ;
1106
1108
  }
1107
1109
  }
@@ -1113,7 +1115,7 @@ declare namespace shaka.media {
1113
1115
  */
1114
1116
  class SegmentReference {
1115
1117
  private noStructuralTyping_shaka_media_SegmentReference : any;
1116
- constructor (startTime : number , endTime : number , uris : ( ) => string [] , startByte : number , endByte : number | null , initSegmentReference : shaka.media.InitSegmentReference | null , timestampOffset : number , appendWindowStart : number , appendWindowEnd : number , partialReferences ? : shaka.media.SegmentReference [] , tilesLayout ? : string | null , tileDuration ? : number | null , syncTime ? : number | null , status ? : shaka.media.SegmentReference.Status ) ;
1118
+ constructor (startTime : number , endTime : number , uris : ( ) => string [] , startByte : number , endByte : number | null , initSegmentReference : shaka.media.InitSegmentReference | null , timestampOffset : number , appendWindowStart : number , appendWindowEnd : number , partialReferences ? : shaka.media.SegmentReference [] , tilesLayout ? : string | null , tileDuration ? : number | null , syncTime ? : number | null , status ? : shaka.media.SegmentReference.Status , hlsAes128Key ? : shaka.extern.HlsAes128Key | null ) ;
1117
1119
  /**
1118
1120
  * Returns the offset from the start of the resource to the end of the
1119
1121
  * segment, inclusive. A value of null indicates that the segment extends to
@@ -1332,6 +1334,7 @@ declare namespace shaka.net.NetworkingEngine {
1332
1334
  */
1333
1335
  enum RequestType {
1334
1336
  APP = 3.0 ,
1337
+ KEY = 6.0 ,
1335
1338
  LICENSE = 2.0 ,
1336
1339
  MANIFEST = 0.0 ,
1337
1340
  SEGMENT = 1.0 ,
@@ -1532,6 +1535,16 @@ declare namespace shaka.polyfill {
1532
1535
  }
1533
1536
  }
1534
1537
  // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.ui.debug.externs.js
1538
+ declare namespace shaka.polyfill {
1539
+ class PatchedMediaKeysApple {
1540
+ private noStructuralTyping_shaka_polyfill_PatchedMediaKeysApple : any;
1541
+ /**
1542
+ * Installs the polyfill if needed.
1543
+ */
1544
+ static install ( ) : any ;
1545
+ }
1546
+ }
1547
+ // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.ui.debug.externs.js
1535
1548
  declare namespace shaka.polyfill {
1536
1549
  class PatchedMediaKeysNop {
1537
1550
  private noStructuralTyping_shaka_polyfill_PatchedMediaKeysNop : any;
@@ -2690,10 +2703,13 @@ declare namespace shaka.util.Error {
2690
2703
  FAILED_TO_CREATE_SESSION = 6005.0 ,
2691
2704
  FAILED_TO_GENERATE_LICENSE_REQUEST = 6006.0 ,
2692
2705
  HLS_AES_128_ENCRYPTION_NOT_SUPPORTED = 4034.0 ,
2706
+ HLS_AES_128_INVALID_IV_LENGTH = 4043.0 ,
2707
+ HLS_AES_128_INVALID_KEY_LENGTH = 4044.0 ,
2693
2708
  HLS_COULD_NOT_GUESS_CODECS = 4025.0 ,
2694
2709
  HLS_INTERNAL_SKIP_STREAM = 4035.0 ,
2695
2710
  HLS_INVALID_PLAYLIST_HIERARCHY = 4017.0 ,
2696
2711
  HLS_KEYFORMATS_NOT_SUPPORTED = 4026.0 ,
2712
+ HLS_MSE_ENCRYPTED_LEGACY_APPLE_MEDIA_KEYS_NOT_SUPPORTED = 4041.0 ,
2697
2713
  HLS_MSE_ENCRYPTED_MP2T_NOT_SUPPORTED = 4040.0 ,
2698
2714
  HLS_MULTIPLE_MEDIA_INIT_SECTIONS_FOUND = 4020.0 ,
2699
2715
  HLS_PLAYLIST_HEADER_MISSING = 4015.0 ,
@@ -2736,6 +2752,7 @@ declare namespace shaka.util.Error {
2736
2752
  NO_RECOGNIZED_KEY_SYSTEMS = 6000.0 ,
2737
2753
  NO_VARIANTS = 4036.0 ,
2738
2754
  NO_VIDEO_ELEMENT = 7002.0 ,
2755
+ NO_WEB_CRYPTO_API = 4042.0 ,
2739
2756
  OBJECT_DESTROYED = 7003.0 ,
2740
2757
  OFFLINE_SESSION_REMOVED = 6013.0 ,
2741
2758
  OPERATION_ABORTED = 7001.0 ,
@@ -2831,11 +2848,27 @@ declare namespace shaka.util {
2831
2848
  * Common FairPlay response transform for some DRMs providers.
2832
2849
  */
2833
2850
  static commonFairPlayResponse (type : shaka.net.NetworkingEngine.RequestType , response : shaka.extern.Response ) : any ;
2851
+ /**
2852
+ * Conax FairPlay request.
2853
+ */
2854
+ static conaxFairPlayRequest (type : shaka.net.NetworkingEngine.RequestType , request : shaka.extern.Request ) : any ;
2855
+ /**
2856
+ * Conax initDataTransform configuration.
2857
+ */
2858
+ static conaxInitDataTransform (initData : Uint8Array , initDataType : string , drmInfo : shaka.extern.DrmInfo | null ) : any ;
2834
2859
  /**
2835
2860
  * Using the default method, extract a content ID from the init data. This is
2836
2861
  * based on the FairPlay example documentation.
2837
2862
  */
2838
2863
  static defaultGetContentId (initData : ArrayBuffer | ArrayBufferView ) : string ;
2864
+ /**
2865
+ * EZDRM FairPlay request.
2866
+ */
2867
+ static ezdrmFairPlayRequest (type : shaka.net.NetworkingEngine.RequestType , request : shaka.extern.Request ) : any ;
2868
+ /**
2869
+ * EZDRM initDataTransform configuration.
2870
+ */
2871
+ static ezdrmInitDataTransform (initData : Uint8Array , initDataType : string , drmInfo : shaka.extern.DrmInfo | null ) : any ;
2839
2872
  /**
2840
2873
  * Transforms the init data buffer using the given data. The format is:
2841
2874
  * <pre>
@@ -2854,9 +2887,13 @@ declare namespace shaka.util {
2854
2887
  */
2855
2888
  static isFairPlaySupported ( ) : Promise < boolean > ;
2856
2889
  /**
2857
- * SPC FairPlay request.
2890
+ * Verimatrix FairPlay request.
2891
+ */
2892
+ static verimatrixFairPlayRequest (type : shaka.net.NetworkingEngine.RequestType , request : shaka.extern.Request ) : any ;
2893
+ /**
2894
+ * Verimatrix initDataTransform configuration.
2858
2895
  */
2859
- static spcFairPlayRequest (type : shaka.net.NetworkingEngine.RequestType , request : shaka.extern.Request ) : any ;
2896
+ static verimatrixInitDataTransform (initData : Uint8Array , initDataType : string , drmInfo : shaka.extern.DrmInfo | null ) : any ;
2860
2897
  }
2861
2898
  }
2862
2899
  // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.ui.debug.externs.js
@@ -3765,6 +3802,10 @@ declare namespace shaka.extern {
3765
3802
  * @param numBytes The total number of bytes transferred.
3766
3803
  */
3767
3804
  segmentDownloaded (deltaTimeMs : number , numBytes : number ) : any ;
3805
+ /**
3806
+ * Set media element.
3807
+ */
3808
+ setMediaElement (mediaElement : HTMLMediaElement | null ) : any ;
3768
3809
  /**
3769
3810
  * Updates manager's variants collection.
3770
3811
  */
@@ -3900,6 +3941,18 @@ declare namespace shaka.extern {
3900
3941
  type DrmInfo = { audioRobustness : string , distinctiveIdentifierRequired : boolean , initData : shaka.extern.InitDataOverride [] | null , keyIds : Set < string > | null , keySystem : string , licenseServerUri : string , persistentStateRequired : boolean , serverCertificate : Uint8Array | null , serverCertificateUri : string , sessionType : string , videoRobustness : string } ;
3901
3942
  }
3902
3943
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest.js
3944
+ declare namespace shaka.extern {
3945
+ /**
3946
+ * A function that fetches the crypto keys for AES-128.
3947
+ * Returns a promise that resolves when the keys have been fetched.
3948
+ */
3949
+ type FetchCryptoKeysFunction = ( ) => Promise < any > ;
3950
+ }
3951
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest.js
3952
+ declare namespace shaka.extern {
3953
+ type HlsAes128Key = { cryptoKey ? : webCrypto.CryptoKey | null , fetchKey ? : shaka.extern.CreateSegmentIndexFunction , firstMediaSequenceNumber : number , iv ? : Uint8Array , method : string } ;
3954
+ }
3955
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest.js
3903
3956
  declare namespace shaka.extern {
3904
3957
  type InitDataOverride = { initData : Uint8Array , initDataType : string , keyId : string | null } ;
3905
3958
  }
@@ -4253,7 +4306,7 @@ declare namespace shaka.extern {
4253
4306
  }
4254
4307
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4255
4308
  declare namespace shaka.extern {
4256
- type AbrConfiguration = { advanced : shaka.extern.AdvancedAbrConfiguration , bandwidthDowngradeTarget : number , bandwidthUpgradeTarget : number , defaultBandwidthEstimate : number , enabled : boolean , restrictions : shaka.extern.Restrictions , switchInterval : number , useNetworkInformation : boolean } ;
4309
+ type AbrConfiguration = { advanced : shaka.extern.AdvancedAbrConfiguration , bandwidthDowngradeTarget : number , bandwidthUpgradeTarget : number , defaultBandwidthEstimate : number , enabled : boolean , ignoreDevicePixelRatio : boolean , restrictToElementSize : boolean , restrictions : shaka.extern.Restrictions , switchInterval : number , useNetworkInformation : boolean } ;
4257
4310
  }
4258
4311
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4259
4312
  declare namespace shaka.extern {
@@ -265,6 +265,10 @@ shaka.util.Error.Code = {
265
265
  'INCONSISTENT_DRM_ACROSS_PERIODS': 4038,
266
266
  'HLS_VARIABLE_NOT_FOUND': 4039,
267
267
  'HLS_MSE_ENCRYPTED_MP2T_NOT_SUPPORTED': 4040,
268
+ 'HLS_MSE_ENCRYPTED_LEGACY_APPLE_MEDIA_KEYS_NOT_SUPPORTED': 4041,
269
+ 'NO_WEB_CRYPTO_API': 4042,
270
+ 'HLS_AES_128_INVALID_IV_LENGTH': 4043,
271
+ 'HLS_AES_128_INVALID_KEY_LENGTH': 4044,
268
272
  'STREAMING_ENGINE_STARTUP_INVALID_STATE': 5006,
269
273
  'NO_RECOGNIZED_KEY_SYSTEMS': 6000,
270
274
  'REQUESTED_KEY_SYSTEM_CONFIG_UNAVAILABLE': 6001,
@@ -1207,6 +1211,10 @@ shaka.abr.SimpleAbrManager = class {
1207
1211
  * @override
1208
1212
  */
1209
1213
  playbackRateChanged(rate) {}
1214
+ /**
1215
+ * @override
1216
+ */
1217
+ setMediaElement(mediaElement) {}
1210
1218
  /**
1211
1219
  * @override
1212
1220
  */
@@ -1440,7 +1448,8 @@ shaka.net.NetworkingEngine.RequestType = {
1440
1448
  'LICENSE': 2,
1441
1449
  'APP': 3,
1442
1450
  'TIMING': 4,
1443
- 'SERVER_CERTIFICATE': 5
1451
+ 'SERVER_CERTIFICATE': 5,
1452
+ 'KEY': 6
1444
1453
  };
1445
1454
  /**
1446
1455
  * Priority level for network scheme plugins.
@@ -1809,8 +1818,10 @@ shaka.media.SegmentReference = class {
1809
1818
  * @param {shaka.media.SegmentReference.Status=} status
1810
1819
  * The segment status is used to indicate that a segment does not exist or is
1811
1820
  * not available.
1821
+ * @param {?shaka.extern.HlsAes128Key=} hlsAes128Key
1822
+ * The segment's AES-128-CBC full segment encryption key and iv.
1812
1823
  */
1813
- constructor(startTime, endTime, uris, startByte, endByte, initSegmentReference, timestampOffset, appendWindowStart, appendWindowEnd, partialReferences, tilesLayout, tileDuration, syncTime, status) {}
1824
+ constructor(startTime, endTime, uris, startByte, endByte, initSegmentReference, timestampOffset, appendWindowStart, appendWindowEnd, partialReferences, tilesLayout, tileDuration, syncTime, status, hlsAes128Key) {}
1814
1825
  /**
1815
1826
  * Creates and returns the URIs of the resource containing the segment.
1816
1827
  * @return {!Array.<string>}
@@ -2157,6 +2168,10 @@ shaka.media.SegmentIterator = class {
2157
2168
  * @param {number} partialSegmentIndex
2158
2169
  */
2159
2170
  constructor(segmentIndex, index, partialSegmentIndex) {}
2171
+ /**
2172
+ * @return {number}
2173
+ */
2174
+ currentPosition() {}
2160
2175
  /**
2161
2176
  * @return {shaka.media.SegmentReference}
2162
2177
  */
@@ -3827,6 +3842,16 @@ shaka.polyfill.Orientation = class {
3827
3842
  */
3828
3843
  static install() {}
3829
3844
  };
3845
+ /**
3846
+ * @summary A polyfill to implement modern, standardized EME on top of Apple's
3847
+ * prefixed EME in Safari.
3848
+ */
3849
+ shaka.polyfill.PatchedMediaKeysApple = class {
3850
+ /**
3851
+ * Installs the polyfill if needed.
3852
+ */
3853
+ static install() {}
3854
+ };
3830
3855
  /**
3831
3856
  * @summary A polyfill to stub out
3832
3857
  * {@link https://bit.ly/EmeMar15 EME draft 12 March 2015} on browsers without
@@ -4106,11 +4131,44 @@ shaka.util.FairPlayUtils = class {
4106
4131
  */
4107
4132
  static initDataTransform(initData, contentId, cert) {}
4108
4133
  /**
4109
- * SPC FairPlay request.
4134
+ * Verimatrix initDataTransform configuration.
4135
+ * @param {!Uint8Array} initData
4136
+ * @param {string} initDataType
4137
+ * @param {?shaka.extern.DrmInfo} drmInfo
4138
+ */
4139
+ static verimatrixInitDataTransform(initData, initDataType, drmInfo) {}
4140
+ /**
4141
+ * EZDRM initDataTransform configuration.
4142
+ * @param {!Uint8Array} initData
4143
+ * @param {string} initDataType
4144
+ * @param {?shaka.extern.DrmInfo} drmInfo
4145
+ */
4146
+ static ezdrmInitDataTransform(initData, initDataType, drmInfo) {}
4147
+ /**
4148
+ * Conax initDataTransform configuration.
4149
+ * @param {!Uint8Array} initData
4150
+ * @param {string} initDataType
4151
+ * @param {?shaka.extern.DrmInfo} drmInfo
4152
+ */
4153
+ static conaxInitDataTransform(initData, initDataType, drmInfo) {}
4154
+ /**
4155
+ * Verimatrix FairPlay request.
4156
+ * @param {shaka.net.NetworkingEngine.RequestType} type
4157
+ * @param {shaka.extern.Request} request
4158
+ */
4159
+ static verimatrixFairPlayRequest(type, request) {}
4160
+ /**
4161
+ * EZDRM FairPlay request.
4162
+ * @param {shaka.net.NetworkingEngine.RequestType} type
4163
+ * @param {shaka.extern.Request} request
4164
+ */
4165
+ static ezdrmFairPlayRequest(type, request) {}
4166
+ /**
4167
+ * Conax FairPlay request.
4110
4168
  * @param {shaka.net.NetworkingEngine.RequestType} type
4111
4169
  * @param {shaka.extern.Request} request
4112
4170
  */
4113
- static spcFairPlayRequest(type, request) {}
4171
+ static conaxFairPlayRequest(type, request) {}
4114
4172
  /**
4115
4173
  * Common FairPlay response transform for some DRMs providers.
4116
4174
  * @param {shaka.net.NetworkingEngine.RequestType} type