shaka-player 4.2.0 → 4.2.2

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 (88) hide show
  1. package/.github/workflows/build-and-test.yaml +31 -16
  2. package/.github/workflows/custom-actions/set-commit-status/action.yaml +1 -5
  3. package/.github/workflows/deflake.yaml +28 -0
  4. package/.github/workflows/selenium-lab-tests.yaml +168 -54
  5. package/AUTHORS +3 -0
  6. package/CHANGELOG.md +30 -0
  7. package/CONTRIBUTORS +3 -0
  8. package/demo/common/message_ids.js +1 -0
  9. package/demo/config.js +3 -1
  10. package/demo/locales/en.json +1 -0
  11. package/demo/locales/source.json +4 -0
  12. package/dist/controls.css +1 -1
  13. package/dist/controls.css.map +1 -1
  14. package/dist/demo.compiled.debug.js +7 -6
  15. package/dist/demo.compiled.debug.map +3 -3
  16. package/dist/demo.compiled.js +7 -6
  17. package/dist/demo.compiled.map +3 -3
  18. package/dist/deps.js +2 -2
  19. package/dist/locales.js +29 -29
  20. package/dist/receiver.compiled.debug.js +4 -3
  21. package/dist/receiver.compiled.debug.map +3 -3
  22. package/dist/receiver.compiled.js +4 -3
  23. package/dist/receiver.compiled.map +3 -3
  24. package/dist/shaka-player.compiled.d.ts +2 -4
  25. package/dist/shaka-player.compiled.debug.d.ts +2 -4
  26. package/dist/shaka-player.compiled.debug.externs.js +24 -26
  27. package/dist/shaka-player.compiled.debug.js +267 -260
  28. package/dist/shaka-player.compiled.debug.map +4 -4
  29. package/dist/shaka-player.compiled.externs.js +24 -26
  30. package/dist/shaka-player.compiled.js +809 -807
  31. package/dist/shaka-player.compiled.map +4 -4
  32. package/dist/shaka-player.ui.d.ts +2 -4
  33. package/dist/shaka-player.ui.debug.d.ts +2 -4
  34. package/dist/shaka-player.ui.debug.externs.js +24 -26
  35. package/dist/shaka-player.ui.debug.js +244 -236
  36. package/dist/shaka-player.ui.debug.map +4 -4
  37. package/dist/shaka-player.ui.externs.js +24 -26
  38. package/dist/shaka-player.ui.js +973 -971
  39. package/dist/shaka-player.ui.map +4 -4
  40. package/docs/jsdoc-template/publish.js +33 -0
  41. package/docs/jsdoc-template/tmpl/container.tmpl +4 -1
  42. package/docs/jsdoc.conf.json +1 -0
  43. package/externs/shaka/manifest_parser.js +4 -1
  44. package/externs/shaka/player.js +7 -1
  45. package/lib/ads/client_side_ad_manager.js +7 -0
  46. package/lib/cast/cast_sender.js +39 -14
  47. package/lib/cea/cea608_memory.js +4 -0
  48. package/lib/hls/hls_parser.js +54 -82
  49. package/lib/media/drm_engine.js +52 -1
  50. package/lib/media/media_source_engine.js +43 -15
  51. package/lib/media/segment_index.js +4 -1
  52. package/lib/media/streaming_engine.js +79 -14
  53. package/lib/offline/storage.js +1 -0
  54. package/lib/player.js +29 -5
  55. package/lib/text/ttml_text_parser.js +6 -0
  56. package/lib/text/ui_text_displayer.js +8 -0
  57. package/lib/util/error.js +2 -10
  58. package/lib/util/platform.js +24 -0
  59. package/lib/util/player_configuration.js +5 -0
  60. package/lib/util/pssh.js +2 -1
  61. package/lib/util/stream_utils.js +2 -1
  62. package/package.json +1 -1
  63. package/test/cea/cea608_memory_unit.js +88 -0
  64. package/test/dash/dash_parser_content_protection_unit.js +1 -0
  65. package/test/dash/dash_parser_live_unit.js +1 -0
  66. package/test/dash/dash_parser_manifest_unit.js +1 -0
  67. package/test/dash/dash_parser_segment_base_unit.js +1 -0
  68. package/test/dash/dash_parser_segment_list_unit.js +1 -0
  69. package/test/dash/dash_parser_segment_template_unit.js +1 -0
  70. package/test/hls/hls_live_unit.js +169 -247
  71. package/test/hls/hls_parser_unit.js +112 -3
  72. package/test/media/drm_engine_unit.js +90 -0
  73. package/test/media/media_source_engine_integration.js +36 -0
  74. package/test/media/media_source_engine_unit.js +118 -1
  75. package/test/media/segment_index_unit.js +28 -2
  76. package/test/media/streaming_engine_integration.js +9 -7
  77. package/test/media/streaming_engine_unit.js +29 -0
  78. package/test/offline/offline_integration.js +3 -3
  79. package/test/player_integration.js +2 -2
  80. package/test/player_src_equals_integration.js +2 -0
  81. package/test/player_unit.js +39 -1
  82. package/test/test/assets/small.mp4 +0 -0
  83. package/test/test/util/dash_parser_util.js +2 -0
  84. package/test/test/util/ttml_utils.js +0 -2
  85. package/test/text/ttml_text_parser_unit.js +46 -0
  86. package/test/ui/text_displayer_layout_unit.js +17 -2
  87. package/ui/controls.js +0 -7
  88. package/ui/less/ad_controls.less +4 -0
@@ -2235,11 +2235,9 @@ declare namespace shaka.util.Error {
2235
2235
  FAILED_TO_CREATE_CDM = 6002.0 ,
2236
2236
  FAILED_TO_CREATE_SESSION = 6005.0 ,
2237
2237
  FAILED_TO_GENERATE_LICENSE_REQUEST = 6006.0 ,
2238
- HLS_AES_128_ENCRYPTION_NOT_SUPPORTED = 4034.0 ,
2239
2238
  HLS_AES_128_INVALID_IV_LENGTH = 4043.0 ,
2240
2239
  HLS_AES_128_INVALID_KEY_LENGTH = 4044.0 ,
2241
2240
  HLS_COULD_NOT_GUESS_CODECS = 4025.0 ,
2242
- HLS_INTERNAL_SKIP_STREAM = 4035.0 ,
2243
2241
  HLS_INVALID_PLAYLIST_HIERARCHY = 4017.0 ,
2244
2242
  HLS_KEYFORMATS_NOT_SUPPORTED = 4026.0 ,
2245
2243
  HLS_MSE_ENCRYPTED_LEGACY_APPLE_MEDIA_KEYS_NOT_SUPPORTED = 4041.0 ,
@@ -3574,7 +3572,7 @@ declare namespace shaka.extern.ManifestParser {
3574
3572
  }
3575
3573
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest_parser.js
3576
3574
  declare namespace shaka.extern.ManifestParser {
3577
- type PlayerInterface = { enableLowLatencyMode : ( ) => any , filter : (a : shaka.extern.Manifest ) => Promise < any > , isAutoLowLatencyMode : ( ) => boolean , isLowLatencyMode : ( ) => boolean , makeTextStreamsForClosedCaptions : (a : shaka.extern.Manifest ) => any , modifyManifestRequest : (a : shaka.extern.Request , b : shaka.util.CmcdManager.ManifestInfo ) => any , modifySegmentRequest : (a : shaka.extern.Request , b : shaka.util.CmcdManager.SegmentInfo ) => any , networkingEngine : shaka.net.NetworkingEngine , onError : (a : shaka.util.Error ) => any , onEvent : shaka.util.EventManager.ListenerType , onTimelineRegionAdded : (a : shaka.extern.TimelineRegionInfo ) => any } ;
3575
+ type PlayerInterface = { enableLowLatencyMode : ( ) => any , filter : (a : shaka.extern.Manifest ) => Promise < any > , isAutoLowLatencyMode : ( ) => boolean , isLowLatencyMode : ( ) => boolean , makeTextStreamsForClosedCaptions : (a : shaka.extern.Manifest ) => any , modifyManifestRequest : (a : shaka.extern.Request , b : shaka.util.CmcdManager.ManifestInfo ) => any , modifySegmentRequest : (a : shaka.extern.Request , b : shaka.util.CmcdManager.SegmentInfo ) => any , networkingEngine : shaka.net.NetworkingEngine , onError : (a : shaka.util.Error ) => any , onEvent : shaka.util.EventManager.ListenerType , onTimelineRegionAdded : (a : shaka.extern.TimelineRegionInfo ) => any , updateDuration : ( ) => any } ;
3578
3576
  }
3579
3577
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/mp4_parser.js
3580
3578
  declare namespace shaka.extern {
@@ -3871,7 +3869,7 @@ declare namespace shaka.extern {
3871
3869
  }
3872
3870
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3873
3871
  declare namespace shaka.extern {
3874
- type DrmConfiguration = { advanced : { [ key: string ]: shaka.extern.AdvancedDrmConfiguration } | null , clearKeys : { [ key: string ]: string } , delayLicenseRequestUntilPlayed : boolean , initDataTransform ? : (a : Uint8Array , b : string , c : shaka.extern.DrmInfo | null ) => Uint8Array , keySystemsMapping : { [ key: string ]: string } , logLicenseExchange : boolean , preferredKeySystems : string [] , retryParameters : shaka.extern.RetryParameters , servers : { [ key: string ]: string } , updateExpirationTime : number } ;
3872
+ type DrmConfiguration = { advanced : { [ key: string ]: shaka.extern.AdvancedDrmConfiguration } | null , clearKeys : { [ key: string ]: string } , delayLicenseRequestUntilPlayed : boolean , initDataTransform ? : (a : Uint8Array , b : string , c : shaka.extern.DrmInfo | null ) => Uint8Array , keySystemsMapping : { [ key: string ]: string } , logLicenseExchange : boolean , parseInbandPsshEnabled : boolean , preferredKeySystems : string [] , retryParameters : shaka.extern.RetryParameters , servers : { [ key: string ]: string } , updateExpirationTime : number } ;
3875
3873
  }
3876
3874
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3877
3875
  declare namespace shaka.extern {
@@ -2235,11 +2235,9 @@ declare namespace shaka.util.Error {
2235
2235
  FAILED_TO_CREATE_CDM = 6002.0 ,
2236
2236
  FAILED_TO_CREATE_SESSION = 6005.0 ,
2237
2237
  FAILED_TO_GENERATE_LICENSE_REQUEST = 6006.0 ,
2238
- HLS_AES_128_ENCRYPTION_NOT_SUPPORTED = 4034.0 ,
2239
2238
  HLS_AES_128_INVALID_IV_LENGTH = 4043.0 ,
2240
2239
  HLS_AES_128_INVALID_KEY_LENGTH = 4044.0 ,
2241
2240
  HLS_COULD_NOT_GUESS_CODECS = 4025.0 ,
2242
- HLS_INTERNAL_SKIP_STREAM = 4035.0 ,
2243
2241
  HLS_INVALID_PLAYLIST_HIERARCHY = 4017.0 ,
2244
2242
  HLS_KEYFORMATS_NOT_SUPPORTED = 4026.0 ,
2245
2243
  HLS_MSE_ENCRYPTED_LEGACY_APPLE_MEDIA_KEYS_NOT_SUPPORTED = 4041.0 ,
@@ -3574,7 +3572,7 @@ declare namespace shaka.extern.ManifestParser {
3574
3572
  }
3575
3573
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest_parser.js
3576
3574
  declare namespace shaka.extern.ManifestParser {
3577
- type PlayerInterface = { enableLowLatencyMode : ( ) => any , filter : (a : shaka.extern.Manifest ) => Promise < any > , isAutoLowLatencyMode : ( ) => boolean , isLowLatencyMode : ( ) => boolean , makeTextStreamsForClosedCaptions : (a : shaka.extern.Manifest ) => any , modifyManifestRequest : (a : shaka.extern.Request , b : shaka.util.CmcdManager.ManifestInfo ) => any , modifySegmentRequest : (a : shaka.extern.Request , b : shaka.util.CmcdManager.SegmentInfo ) => any , networkingEngine : shaka.net.NetworkingEngine , onError : (a : shaka.util.Error ) => any , onEvent : shaka.util.EventManager.ListenerType , onTimelineRegionAdded : (a : shaka.extern.TimelineRegionInfo ) => any } ;
3575
+ type PlayerInterface = { enableLowLatencyMode : ( ) => any , filter : (a : shaka.extern.Manifest ) => Promise < any > , isAutoLowLatencyMode : ( ) => boolean , isLowLatencyMode : ( ) => boolean , makeTextStreamsForClosedCaptions : (a : shaka.extern.Manifest ) => any , modifyManifestRequest : (a : shaka.extern.Request , b : shaka.util.CmcdManager.ManifestInfo ) => any , modifySegmentRequest : (a : shaka.extern.Request , b : shaka.util.CmcdManager.SegmentInfo ) => any , networkingEngine : shaka.net.NetworkingEngine , onError : (a : shaka.util.Error ) => any , onEvent : shaka.util.EventManager.ListenerType , onTimelineRegionAdded : (a : shaka.extern.TimelineRegionInfo ) => any , updateDuration : ( ) => any } ;
3578
3576
  }
3579
3577
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/mp4_parser.js
3580
3578
  declare namespace shaka.extern {
@@ -3871,7 +3869,7 @@ declare namespace shaka.extern {
3871
3869
  }
3872
3870
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3873
3871
  declare namespace shaka.extern {
3874
- type DrmConfiguration = { advanced : { [ key: string ]: shaka.extern.AdvancedDrmConfiguration } | null , clearKeys : { [ key: string ]: string } , delayLicenseRequestUntilPlayed : boolean , initDataTransform ? : (a : Uint8Array , b : string , c : shaka.extern.DrmInfo | null ) => Uint8Array , keySystemsMapping : { [ key: string ]: string } , logLicenseExchange : boolean , preferredKeySystems : string [] , retryParameters : shaka.extern.RetryParameters , servers : { [ key: string ]: string } , updateExpirationTime : number } ;
3872
+ type DrmConfiguration = { advanced : { [ key: string ]: shaka.extern.AdvancedDrmConfiguration } | null , clearKeys : { [ key: string ]: string } , delayLicenseRequestUntilPlayed : boolean , initDataTransform ? : (a : Uint8Array , b : string , c : shaka.extern.DrmInfo | null ) => Uint8Array , keySystemsMapping : { [ key: string ]: string } , logLicenseExchange : boolean , parseInbandPsshEnabled : boolean , preferredKeySystems : string [] , retryParameters : shaka.extern.RetryParameters , servers : { [ key: string ]: string } , updateExpirationTime : number } ;
3875
3873
  }
3876
3874
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3877
3875
  declare namespace shaka.extern {
@@ -597,8 +597,6 @@ shaka.util.Error.Code = {
597
597
  'DASH_XLINK_DEPTH_LIMIT': 4028,
598
598
  'CONTENT_UNSUPPORTED_BY_BROWSER': 4032,
599
599
  'CANNOT_ADD_EXTERNAL_TEXT_TO_LIVE_STREAM': 4033,
600
- 'HLS_AES_128_ENCRYPTION_NOT_SUPPORTED': 4034,
601
- 'HLS_INTERNAL_SKIP_STREAM': 4035,
602
600
  'NO_VARIANTS': 4036,
603
601
  'PERIOD_FLATTENING_FAILED': 4037,
604
602
  'INCONSISTENT_DRM_ACROSS_PERIODS': 4038,
@@ -1429,30 +1427,6 @@ shaka.util.EventManager = class {
1429
1427
  * @typedef {function(!Event)}
1430
1428
  */
1431
1429
  shaka.util.EventManager.ListenerType;
1432
- /**
1433
- * @summary An interface to register manifest parsers.
1434
- */
1435
- shaka.media.ManifestParser = class {
1436
- /**
1437
- * Registers a manifest parser by file extension.
1438
- * @param {string} extension The file extension of the manifest.
1439
- * @param {shaka.extern.ManifestParser.Factory} parserFactory The factory
1440
- * used to create parser instances.
1441
- */
1442
- static registerParserByExtension(extension, parserFactory) {}
1443
- /**
1444
- * Registers a manifest parser by MIME type.
1445
- * @param {string} mimeType The MIME type of the manifest.
1446
- * @param {shaka.extern.ManifestParser.Factory} parserFactory The factory
1447
- * used to create parser instances.
1448
- */
1449
- static registerParserByMime(mimeType, parserFactory) {}
1450
- /**
1451
- * Unregisters a manifest parser by MIME type.
1452
- * @param {string} mimeType The MIME type of the manifest.
1453
- */
1454
- static unregisterParserByMime(mimeType) {}
1455
- };
1456
1430
  /**
1457
1431
  * @summary DataViewReader abstracts a DataView object.
1458
1432
  */
@@ -1623,6 +1597,30 @@ shaka.util.Mp4Parser = class {
1623
1597
  * @typedef {function(!shaka.extern.ParsedBox)}
1624
1598
  */
1625
1599
  shaka.util.Mp4Parser.CallbackType;
1600
+ /**
1601
+ * @summary An interface to register manifest parsers.
1602
+ */
1603
+ shaka.media.ManifestParser = class {
1604
+ /**
1605
+ * Registers a manifest parser by file extension.
1606
+ * @param {string} extension The file extension of the manifest.
1607
+ * @param {shaka.extern.ManifestParser.Factory} parserFactory The factory
1608
+ * used to create parser instances.
1609
+ */
1610
+ static registerParserByExtension(extension, parserFactory) {}
1611
+ /**
1612
+ * Registers a manifest parser by MIME type.
1613
+ * @param {string} mimeType The MIME type of the manifest.
1614
+ * @param {shaka.extern.ManifestParser.Factory} parserFactory The factory
1615
+ * used to create parser instances.
1616
+ */
1617
+ static registerParserByMime(mimeType, parserFactory) {}
1618
+ /**
1619
+ * Unregisters a manifest parser by MIME type.
1620
+ * @param {string} mimeType The MIME type of the manifest.
1621
+ */
1622
+ static unregisterParserByMime(mimeType) {}
1623
+ };
1626
1624
  /**
1627
1625
  * Creates an InitSegmentReference, which provides the location to an
1628
1626
  * initialization segment.