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
@@ -2250,6 +2250,7 @@ declare namespace shaka.util.Error {
2250
2250
  HTTP_ERROR = 1002.0 ,
2251
2251
  INCONSISTENT_DRM_ACROSS_PERIODS = 4038.0 ,
2252
2252
  INDEXED_DB_ERROR = 9001.0 ,
2253
+ INDEXED_DB_INIT_TIMED_OUT = 9017.0 ,
2253
2254
  INIT_DATA_TRANSFORM_ERROR = 6016.0 ,
2254
2255
  INVALID_HLS_TAG = 4016.0 ,
2255
2256
  INVALID_MP4_CEA = 2010.0 ,
@@ -3572,7 +3573,7 @@ declare namespace shaka.extern.ManifestParser {
3572
3573
  }
3573
3574
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest_parser.js
3574
3575
  declare namespace shaka.extern.ManifestParser {
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 } ;
3576
+ 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 } ;
3576
3577
  }
3577
3578
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/mp4_parser.js
3578
3579
  declare namespace shaka.extern {
@@ -3869,7 +3870,7 @@ declare namespace shaka.extern {
3869
3870
  }
3870
3871
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3871
3872
  declare namespace shaka.extern {
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 , preferredKeySystems : string [] , retryParameters : shaka.extern.RetryParameters , servers : { [ key: string ]: string } , updateExpirationTime : number } ;
3873
+ 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 } ;
3873
3874
  }
3874
3875
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3875
3876
  declare namespace shaka.extern {
@@ -2250,6 +2250,7 @@ declare namespace shaka.util.Error {
2250
2250
  HTTP_ERROR = 1002.0 ,
2251
2251
  INCONSISTENT_DRM_ACROSS_PERIODS = 4038.0 ,
2252
2252
  INDEXED_DB_ERROR = 9001.0 ,
2253
+ INDEXED_DB_INIT_TIMED_OUT = 9017.0 ,
2253
2254
  INIT_DATA_TRANSFORM_ERROR = 6016.0 ,
2254
2255
  INVALID_HLS_TAG = 4016.0 ,
2255
2256
  INVALID_MP4_CEA = 2010.0 ,
@@ -3572,7 +3573,7 @@ declare namespace shaka.extern.ManifestParser {
3572
3573
  }
3573
3574
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest_parser.js
3574
3575
  declare namespace shaka.extern.ManifestParser {
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 } ;
3576
+ 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 } ;
3576
3577
  }
3577
3578
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/mp4_parser.js
3578
3579
  declare namespace shaka.extern {
@@ -3869,7 +3870,7 @@ declare namespace shaka.extern {
3869
3870
  }
3870
3871
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3871
3872
  declare namespace shaka.extern {
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 , preferredKeySystems : string [] , retryParameters : shaka.extern.RetryParameters , servers : { [ key: string ]: string } , updateExpirationTime : number } ;
3873
+ 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 } ;
3873
3874
  }
3874
3875
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3875
3876
  declare namespace shaka.extern {
@@ -649,6 +649,7 @@ shaka.util.Error.Code = {
649
649
  'STORAGE_LIMIT_REACHED': 9014,
650
650
  'DOWNLOAD_SIZE_CALLBACK_ERROR': 9015,
651
651
  'MODIFY_OPERATION_NOT_SUPPORTED': 9016,
652
+ 'INDEXED_DB_INIT_TIMED_OUT': 9017,
652
653
  'CS_IMA_SDK_MISSING': 10000,
653
654
  'CS_AD_MANAGER_NOT_INITIALIZED': 10001,
654
655
  'SS_IMA_SDK_MISSING': 10002,
@@ -1427,30 +1428,6 @@ shaka.util.EventManager = class {
1427
1428
  * @typedef {function(!Event)}
1428
1429
  */
1429
1430
  shaka.util.EventManager.ListenerType;
1430
- /**
1431
- * @summary An interface to register manifest parsers.
1432
- */
1433
- shaka.media.ManifestParser = class {
1434
- /**
1435
- * Registers a manifest parser by file extension.
1436
- * @param {string} extension The file extension of the manifest.
1437
- * @param {shaka.extern.ManifestParser.Factory} parserFactory The factory
1438
- * used to create parser instances.
1439
- */
1440
- static registerParserByExtension(extension, parserFactory) {}
1441
- /**
1442
- * Registers a manifest parser by MIME type.
1443
- * @param {string} mimeType The MIME type of the manifest.
1444
- * @param {shaka.extern.ManifestParser.Factory} parserFactory The factory
1445
- * used to create parser instances.
1446
- */
1447
- static registerParserByMime(mimeType, parserFactory) {}
1448
- /**
1449
- * Unregisters a manifest parser by MIME type.
1450
- * @param {string} mimeType The MIME type of the manifest.
1451
- */
1452
- static unregisterParserByMime(mimeType) {}
1453
- };
1454
1431
  /**
1455
1432
  * @summary DataViewReader abstracts a DataView object.
1456
1433
  */
@@ -1621,6 +1598,30 @@ shaka.util.Mp4Parser = class {
1621
1598
  * @typedef {function(!shaka.extern.ParsedBox)}
1622
1599
  */
1623
1600
  shaka.util.Mp4Parser.CallbackType;
1601
+ /**
1602
+ * @summary An interface to register manifest parsers.
1603
+ */
1604
+ shaka.media.ManifestParser = class {
1605
+ /**
1606
+ * Registers a manifest parser by file extension.
1607
+ * @param {string} extension The file extension of the manifest.
1608
+ * @param {shaka.extern.ManifestParser.Factory} parserFactory The factory
1609
+ * used to create parser instances.
1610
+ */
1611
+ static registerParserByExtension(extension, parserFactory) {}
1612
+ /**
1613
+ * Registers a manifest parser by MIME type.
1614
+ * @param {string} mimeType The MIME type of the manifest.
1615
+ * @param {shaka.extern.ManifestParser.Factory} parserFactory The factory
1616
+ * used to create parser instances.
1617
+ */
1618
+ static registerParserByMime(mimeType, parserFactory) {}
1619
+ /**
1620
+ * Unregisters a manifest parser by MIME type.
1621
+ * @param {string} mimeType The MIME type of the manifest.
1622
+ */
1623
+ static unregisterParserByMime(mimeType) {}
1624
+ };
1624
1625
  /**
1625
1626
  * Creates an InitSegmentReference, which provides the location to an
1626
1627
  * initialization segment.