shaka-player 4.2.1 → 4.2.3

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 (97) hide show
  1. package/.github/workflows/build-and-test.yaml +42 -22
  2. package/.github/workflows/compute-incremental-coverage.py +14 -3
  3. package/.github/workflows/custom-actions/set-commit-status/action.yaml +1 -5
  4. package/.github/workflows/deflake.yaml +28 -0
  5. package/.github/workflows/demo-version-index.yaml +1 -1
  6. package/.github/workflows/nightly-demo.yaml +1 -1
  7. package/.github/workflows/release-please.yaml +5 -5
  8. package/.github/workflows/report-incremental-coverage.yaml +1 -1
  9. package/.github/workflows/selenium-lab-tests.yaml +21 -10
  10. package/AUTHORS +4 -0
  11. package/CHANGELOG.md +36 -0
  12. package/CONTRIBUTORS +4 -0
  13. package/demo/common/message_ids.js +1 -0
  14. package/demo/config.js +3 -1
  15. package/demo/locales/en.json +1 -0
  16. package/demo/locales/source.json +4 -0
  17. package/dist/demo.compiled.debug.js +7 -6
  18. package/dist/demo.compiled.debug.map +3 -3
  19. package/dist/demo.compiled.js +7 -6
  20. package/dist/demo.compiled.map +3 -3
  21. package/dist/deps.js +4 -4
  22. package/dist/locales.js +32 -32
  23. package/dist/receiver.compiled.debug.js +4 -3
  24. package/dist/receiver.compiled.debug.map +3 -3
  25. package/dist/receiver.compiled.js +4 -3
  26. package/dist/receiver.compiled.map +3 -3
  27. package/dist/shaka-player.compiled.d.ts +3 -2
  28. package/dist/shaka-player.compiled.debug.d.ts +3 -2
  29. package/dist/shaka-player.compiled.debug.externs.js +25 -24
  30. package/dist/shaka-player.compiled.debug.js +268 -259
  31. package/dist/shaka-player.compiled.debug.map +4 -4
  32. package/dist/shaka-player.compiled.externs.js +25 -24
  33. package/dist/shaka-player.compiled.js +749 -746
  34. package/dist/shaka-player.compiled.map +4 -4
  35. package/dist/shaka-player.ui.d.ts +3 -2
  36. package/dist/shaka-player.ui.debug.d.ts +3 -2
  37. package/dist/shaka-player.ui.debug.externs.js +25 -24
  38. package/dist/shaka-player.ui.debug.js +243 -234
  39. package/dist/shaka-player.ui.debug.map +4 -4
  40. package/dist/shaka-player.ui.externs.js +25 -24
  41. package/dist/shaka-player.ui.js +908 -904
  42. package/dist/shaka-player.ui.map +4 -4
  43. package/docs/jsdoc-template/publish.js +33 -0
  44. package/docs/jsdoc-template/tmpl/container.tmpl +4 -1
  45. package/docs/jsdoc.conf.json +1 -0
  46. package/docs/tutorials/welcome.md +2 -2
  47. package/externs/shaka/manifest_parser.js +4 -1
  48. package/externs/shaka/player.js +7 -1
  49. package/lib/ads/client_side_ad_manager.js +12 -2
  50. package/lib/cast/cast_sender.js +39 -14
  51. package/lib/cea/cea608_memory.js +4 -0
  52. package/lib/hls/hls_parser.js +48 -15
  53. package/lib/media/drm_engine.js +59 -7
  54. package/lib/media/media_source_engine.js +43 -15
  55. package/lib/media/playhead.js +1 -1
  56. package/lib/media/segment_index.js +4 -1
  57. package/lib/media/streaming_engine.js +79 -14
  58. package/lib/offline/indexeddb/storage_mechanism.js +24 -0
  59. package/lib/offline/storage.js +1 -0
  60. package/lib/player.js +17 -5
  61. package/lib/polyfill/media_capabilities.js +7 -6
  62. package/lib/text/ttml_text_parser.js +69 -87
  63. package/lib/text/vtt_text_parser.js +1 -1
  64. package/lib/util/error.js +7 -0
  65. package/lib/util/periods.js +9 -9
  66. package/lib/util/platform.js +19 -5
  67. package/lib/util/player_configuration.js +4 -0
  68. package/lib/util/pssh.js +2 -1
  69. package/lib/util/stream_utils.js +2 -1
  70. package/lib/util/xml_utils.js +45 -6
  71. package/package.json +1 -1
  72. package/test/cea/cea608_memory_unit.js +88 -0
  73. package/test/dash/dash_parser_content_protection_unit.js +1 -0
  74. package/test/dash/dash_parser_live_unit.js +1 -0
  75. package/test/dash/dash_parser_manifest_unit.js +1 -0
  76. package/test/dash/dash_parser_segment_base_unit.js +1 -0
  77. package/test/dash/dash_parser_segment_list_unit.js +1 -0
  78. package/test/dash/dash_parser_segment_template_unit.js +1 -0
  79. package/test/hls/hls_live_unit.js +169 -247
  80. package/test/hls/hls_parser_unit.js +60 -2
  81. package/test/media/drm_engine_unit.js +61 -0
  82. package/test/media/media_source_engine_integration.js +36 -0
  83. package/test/media/media_source_engine_unit.js +118 -1
  84. package/test/media/segment_index_unit.js +28 -2
  85. package/test/media/streaming_engine_integration.js +9 -7
  86. package/test/media/streaming_engine_unit.js +29 -0
  87. package/test/offline/offline_integration.js +3 -3
  88. package/test/offline/storage_integration.js +30 -0
  89. package/test/player_integration.js +2 -2
  90. package/test/test/util/dash_parser_util.js +2 -0
  91. package/test/test/util/ttml_utils.js +0 -2
  92. package/test/text/ttml_text_parser_unit.js +46 -0
  93. package/test/text/vtt_text_parser_unit.js +23 -1
  94. package/test/ui/text_displayer_layout_unit.js +17 -2
  95. package/test/util/periods_unit.js +149 -11
  96. package/test/util/xml_utils_unit.js +64 -0
  97. package/ui/controls.js +0 -7
@@ -2717,6 +2717,7 @@ declare namespace shaka.util.Error {
2717
2717
  HTTP_ERROR = 1002.0 ,
2718
2718
  INCONSISTENT_DRM_ACROSS_PERIODS = 4038.0 ,
2719
2719
  INDEXED_DB_ERROR = 9001.0 ,
2720
+ INDEXED_DB_INIT_TIMED_OUT = 9017.0 ,
2720
2721
  INIT_DATA_TRANSFORM_ERROR = 6016.0 ,
2721
2722
  INVALID_HLS_TAG = 4016.0 ,
2722
2723
  INVALID_MP4_CEA = 2010.0 ,
@@ -4039,7 +4040,7 @@ declare namespace shaka.extern.ManifestParser {
4039
4040
  }
4040
4041
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest_parser.js
4041
4042
  declare namespace shaka.extern.ManifestParser {
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 } ;
4043
+ 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 } ;
4043
4044
  }
4044
4045
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/mp4_parser.js
4045
4046
  declare namespace shaka.extern {
@@ -4336,7 +4337,7 @@ declare namespace shaka.extern {
4336
4337
  }
4337
4338
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4338
4339
  declare namespace shaka.extern {
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 , preferredKeySystems : string [] , retryParameters : shaka.extern.RetryParameters , servers : { [ key: string ]: string } , updateExpirationTime : number } ;
4340
+ 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 } ;
4340
4341
  }
4341
4342
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4342
4343
  declare namespace shaka.extern {
@@ -2717,6 +2717,7 @@ declare namespace shaka.util.Error {
2717
2717
  HTTP_ERROR = 1002.0 ,
2718
2718
  INCONSISTENT_DRM_ACROSS_PERIODS = 4038.0 ,
2719
2719
  INDEXED_DB_ERROR = 9001.0 ,
2720
+ INDEXED_DB_INIT_TIMED_OUT = 9017.0 ,
2720
2721
  INIT_DATA_TRANSFORM_ERROR = 6016.0 ,
2721
2722
  INVALID_HLS_TAG = 4016.0 ,
2722
2723
  INVALID_MP4_CEA = 2010.0 ,
@@ -4039,7 +4040,7 @@ declare namespace shaka.extern.ManifestParser {
4039
4040
  }
4040
4041
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest_parser.js
4041
4042
  declare namespace shaka.extern.ManifestParser {
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 } ;
4043
+ 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 } ;
4043
4044
  }
4044
4045
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/mp4_parser.js
4045
4046
  declare namespace shaka.extern {
@@ -4336,7 +4337,7 @@ declare namespace shaka.extern {
4336
4337
  }
4337
4338
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4338
4339
  declare namespace shaka.extern {
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 , preferredKeySystems : string [] , retryParameters : shaka.extern.RetryParameters , servers : { [ key: string ]: string } , updateExpirationTime : number } ;
4340
+ 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 } ;
4340
4341
  }
4341
4342
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4342
4343
  declare namespace shaka.extern {
@@ -310,6 +310,7 @@ shaka.util.Error.Code = {
310
310
  'STORAGE_LIMIT_REACHED': 9014,
311
311
  'DOWNLOAD_SIZE_CALLBACK_ERROR': 9015,
312
312
  'MODIFY_OPERATION_NOT_SUPPORTED': 9016,
313
+ 'INDEXED_DB_INIT_TIMED_OUT': 9017,
313
314
  'CS_IMA_SDK_MISSING': 10000,
314
315
  'CS_AD_MANAGER_NOT_INITIALIZED': 10001,
315
316
  'SS_IMA_SDK_MISSING': 10002,
@@ -1534,30 +1535,6 @@ shaka.util.EventManager = class {
1534
1535
  * @typedef {function(!Event)}
1535
1536
  */
1536
1537
  shaka.util.EventManager.ListenerType;
1537
- /**
1538
- * @summary An interface to register manifest parsers.
1539
- */
1540
- shaka.media.ManifestParser = class {
1541
- /**
1542
- * Registers a manifest parser by file extension.
1543
- * @param {string} extension The file extension of the manifest.
1544
- * @param {shaka.extern.ManifestParser.Factory} parserFactory The factory
1545
- * used to create parser instances.
1546
- */
1547
- static registerParserByExtension(extension, parserFactory) {}
1548
- /**
1549
- * Registers a manifest parser by MIME type.
1550
- * @param {string} mimeType The MIME type of the manifest.
1551
- * @param {shaka.extern.ManifestParser.Factory} parserFactory The factory
1552
- * used to create parser instances.
1553
- */
1554
- static registerParserByMime(mimeType, parserFactory) {}
1555
- /**
1556
- * Unregisters a manifest parser by MIME type.
1557
- * @param {string} mimeType The MIME type of the manifest.
1558
- */
1559
- static unregisterParserByMime(mimeType) {}
1560
- };
1561
1538
  /**
1562
1539
  * @summary DataViewReader abstracts a DataView object.
1563
1540
  */
@@ -1728,6 +1705,30 @@ shaka.util.Mp4Parser = class {
1728
1705
  * @typedef {function(!shaka.extern.ParsedBox)}
1729
1706
  */
1730
1707
  shaka.util.Mp4Parser.CallbackType;
1708
+ /**
1709
+ * @summary An interface to register manifest parsers.
1710
+ */
1711
+ shaka.media.ManifestParser = class {
1712
+ /**
1713
+ * Registers a manifest parser by file extension.
1714
+ * @param {string} extension The file extension of the manifest.
1715
+ * @param {shaka.extern.ManifestParser.Factory} parserFactory The factory
1716
+ * used to create parser instances.
1717
+ */
1718
+ static registerParserByExtension(extension, parserFactory) {}
1719
+ /**
1720
+ * Registers a manifest parser by MIME type.
1721
+ * @param {string} mimeType The MIME type of the manifest.
1722
+ * @param {shaka.extern.ManifestParser.Factory} parserFactory The factory
1723
+ * used to create parser instances.
1724
+ */
1725
+ static registerParserByMime(mimeType, parserFactory) {}
1726
+ /**
1727
+ * Unregisters a manifest parser by MIME type.
1728
+ * @param {string} mimeType The MIME type of the manifest.
1729
+ */
1730
+ static unregisterParserByMime(mimeType) {}
1731
+ };
1731
1732
  /**
1732
1733
  * Creates an InitSegmentReference, which provides the location to an
1733
1734
  * initialization segment.