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
@@ -2702,11 +2702,9 @@ declare namespace shaka.util.Error {
2702
2702
  FAILED_TO_CREATE_CDM = 6002.0 ,
2703
2703
  FAILED_TO_CREATE_SESSION = 6005.0 ,
2704
2704
  FAILED_TO_GENERATE_LICENSE_REQUEST = 6006.0 ,
2705
- HLS_AES_128_ENCRYPTION_NOT_SUPPORTED = 4034.0 ,
2706
2705
  HLS_AES_128_INVALID_IV_LENGTH = 4043.0 ,
2707
2706
  HLS_AES_128_INVALID_KEY_LENGTH = 4044.0 ,
2708
2707
  HLS_COULD_NOT_GUESS_CODECS = 4025.0 ,
2709
- HLS_INTERNAL_SKIP_STREAM = 4035.0 ,
2710
2708
  HLS_INVALID_PLAYLIST_HIERARCHY = 4017.0 ,
2711
2709
  HLS_KEYFORMATS_NOT_SUPPORTED = 4026.0 ,
2712
2710
  HLS_MSE_ENCRYPTED_LEGACY_APPLE_MEDIA_KEYS_NOT_SUPPORTED = 4041.0 ,
@@ -4041,7 +4039,7 @@ declare namespace shaka.extern.ManifestParser {
4041
4039
  }
4042
4040
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest_parser.js
4043
4041
  declare namespace shaka.extern.ManifestParser {
4044
- 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 } ;
4042
+ 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 } ;
4045
4043
  }
4046
4044
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/mp4_parser.js
4047
4045
  declare namespace shaka.extern {
@@ -4338,7 +4336,7 @@ declare namespace shaka.extern {
4338
4336
  }
4339
4337
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4340
4338
  declare namespace shaka.extern {
4341
- 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 } ;
4339
+ 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 } ;
4342
4340
  }
4343
4341
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4344
4342
  declare namespace shaka.extern {
@@ -2702,11 +2702,9 @@ declare namespace shaka.util.Error {
2702
2702
  FAILED_TO_CREATE_CDM = 6002.0 ,
2703
2703
  FAILED_TO_CREATE_SESSION = 6005.0 ,
2704
2704
  FAILED_TO_GENERATE_LICENSE_REQUEST = 6006.0 ,
2705
- HLS_AES_128_ENCRYPTION_NOT_SUPPORTED = 4034.0 ,
2706
2705
  HLS_AES_128_INVALID_IV_LENGTH = 4043.0 ,
2707
2706
  HLS_AES_128_INVALID_KEY_LENGTH = 4044.0 ,
2708
2707
  HLS_COULD_NOT_GUESS_CODECS = 4025.0 ,
2709
- HLS_INTERNAL_SKIP_STREAM = 4035.0 ,
2710
2708
  HLS_INVALID_PLAYLIST_HIERARCHY = 4017.0 ,
2711
2709
  HLS_KEYFORMATS_NOT_SUPPORTED = 4026.0 ,
2712
2710
  HLS_MSE_ENCRYPTED_LEGACY_APPLE_MEDIA_KEYS_NOT_SUPPORTED = 4041.0 ,
@@ -4041,7 +4039,7 @@ declare namespace shaka.extern.ManifestParser {
4041
4039
  }
4042
4040
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest_parser.js
4043
4041
  declare namespace shaka.extern.ManifestParser {
4044
- 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 } ;
4042
+ 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 } ;
4045
4043
  }
4046
4044
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/mp4_parser.js
4047
4045
  declare namespace shaka.extern {
@@ -4338,7 +4336,7 @@ declare namespace shaka.extern {
4338
4336
  }
4339
4337
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4340
4338
  declare namespace shaka.extern {
4341
- 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 } ;
4339
+ 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 } ;
4342
4340
  }
4343
4341
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4344
4342
  declare namespace shaka.extern {
@@ -258,8 +258,6 @@ shaka.util.Error.Code = {
258
258
  'DASH_XLINK_DEPTH_LIMIT': 4028,
259
259
  'CONTENT_UNSUPPORTED_BY_BROWSER': 4032,
260
260
  'CANNOT_ADD_EXTERNAL_TEXT_TO_LIVE_STREAM': 4033,
261
- 'HLS_AES_128_ENCRYPTION_NOT_SUPPORTED': 4034,
262
- 'HLS_INTERNAL_SKIP_STREAM': 4035,
263
261
  'NO_VARIANTS': 4036,
264
262
  'PERIOD_FLATTENING_FAILED': 4037,
265
263
  'INCONSISTENT_DRM_ACROSS_PERIODS': 4038,
@@ -1536,30 +1534,6 @@ shaka.util.EventManager = class {
1536
1534
  * @typedef {function(!Event)}
1537
1535
  */
1538
1536
  shaka.util.EventManager.ListenerType;
1539
- /**
1540
- * @summary An interface to register manifest parsers.
1541
- */
1542
- shaka.media.ManifestParser = class {
1543
- /**
1544
- * Registers a manifest parser by file extension.
1545
- * @param {string} extension The file extension of the manifest.
1546
- * @param {shaka.extern.ManifestParser.Factory} parserFactory The factory
1547
- * used to create parser instances.
1548
- */
1549
- static registerParserByExtension(extension, parserFactory) {}
1550
- /**
1551
- * Registers a manifest parser by MIME type.
1552
- * @param {string} mimeType The MIME type of the manifest.
1553
- * @param {shaka.extern.ManifestParser.Factory} parserFactory The factory
1554
- * used to create parser instances.
1555
- */
1556
- static registerParserByMime(mimeType, parserFactory) {}
1557
- /**
1558
- * Unregisters a manifest parser by MIME type.
1559
- * @param {string} mimeType The MIME type of the manifest.
1560
- */
1561
- static unregisterParserByMime(mimeType) {}
1562
- };
1563
1537
  /**
1564
1538
  * @summary DataViewReader abstracts a DataView object.
1565
1539
  */
@@ -1730,6 +1704,30 @@ shaka.util.Mp4Parser = class {
1730
1704
  * @typedef {function(!shaka.extern.ParsedBox)}
1731
1705
  */
1732
1706
  shaka.util.Mp4Parser.CallbackType;
1707
+ /**
1708
+ * @summary An interface to register manifest parsers.
1709
+ */
1710
+ shaka.media.ManifestParser = class {
1711
+ /**
1712
+ * Registers a manifest parser by file extension.
1713
+ * @param {string} extension The file extension of the manifest.
1714
+ * @param {shaka.extern.ManifestParser.Factory} parserFactory The factory
1715
+ * used to create parser instances.
1716
+ */
1717
+ static registerParserByExtension(extension, parserFactory) {}
1718
+ /**
1719
+ * Registers a manifest parser by MIME type.
1720
+ * @param {string} mimeType The MIME type of the manifest.
1721
+ * @param {shaka.extern.ManifestParser.Factory} parserFactory The factory
1722
+ * used to create parser instances.
1723
+ */
1724
+ static registerParserByMime(mimeType, parserFactory) {}
1725
+ /**
1726
+ * Unregisters a manifest parser by MIME type.
1727
+ * @param {string} mimeType The MIME type of the manifest.
1728
+ */
1729
+ static unregisterParserByMime(mimeType) {}
1730
+ };
1733
1731
  /**
1734
1732
  * Creates an InitSegmentReference, which provides the location to an
1735
1733
  * initialization segment.