shaka-player 4.1.4 → 4.1.6

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 (95) 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 +3 -0
  11. package/CHANGELOG.md +35 -0
  12. package/CONTRIBUTORS +3 -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 +6 -6
  18. package/dist/demo.compiled.debug.map +2 -2
  19. package/dist/demo.compiled.js +6 -6
  20. package/dist/demo.compiled.map +2 -2
  21. package/dist/deps.js +3 -3
  22. package/dist/locales.js +31 -31
  23. package/dist/receiver.compiled.debug.js +3 -3
  24. package/dist/receiver.compiled.debug.map +2 -2
  25. package/dist/receiver.compiled.js +3 -3
  26. package/dist/receiver.compiled.map +2 -2
  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 +233 -224
  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 +800 -797
  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 +286 -278
  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 +939 -935
  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/streaming_engine.js +79 -14
  57. package/lib/offline/indexeddb/storage_mechanism.js +24 -0
  58. package/lib/offline/storage.js +1 -0
  59. package/lib/player.js +17 -5
  60. package/lib/polyfill/media_capabilities.js +7 -6
  61. package/lib/text/ttml_text_parser.js +69 -87
  62. package/lib/text/vtt_text_parser.js +1 -1
  63. package/lib/util/error.js +7 -0
  64. package/lib/util/periods.js +9 -9
  65. package/lib/util/platform.js +19 -5
  66. package/lib/util/player_configuration.js +4 -0
  67. package/lib/util/pssh.js +2 -1
  68. package/lib/util/stream_utils.js +2 -1
  69. package/lib/util/xml_utils.js +45 -6
  70. package/package.json +1 -1
  71. package/test/cea/cea608_memory_unit.js +88 -0
  72. package/test/dash/dash_parser_content_protection_unit.js +1 -0
  73. package/test/dash/dash_parser_live_unit.js +1 -0
  74. package/test/dash/dash_parser_manifest_unit.js +1 -0
  75. package/test/dash/dash_parser_segment_base_unit.js +1 -0
  76. package/test/dash/dash_parser_segment_list_unit.js +1 -0
  77. package/test/dash/dash_parser_segment_template_unit.js +1 -0
  78. package/test/hls/hls_live_unit.js +169 -247
  79. package/test/hls/hls_parser_unit.js +60 -2
  80. package/test/media/drm_engine_unit.js +61 -0
  81. package/test/media/media_source_engine_integration.js +36 -0
  82. package/test/media/media_source_engine_unit.js +118 -1
  83. package/test/media/streaming_engine_integration.js +9 -7
  84. package/test/media/streaming_engine_unit.js +29 -0
  85. package/test/offline/offline_integration.js +3 -3
  86. package/test/offline/storage_integration.js +30 -0
  87. package/test/player_integration.js +2 -2
  88. package/test/test/util/dash_parser_util.js +2 -0
  89. package/test/test/util/ttml_utils.js +0 -2
  90. package/test/text/ttml_text_parser_unit.js +46 -0
  91. package/test/text/vtt_text_parser_unit.js +23 -1
  92. package/test/ui/text_displayer_layout_unit.js +17 -2
  93. package/test/util/periods_unit.js +149 -11
  94. package/test/util/xml_utils_unit.js +64 -0
  95. package/ui/controls.js +0 -7
@@ -2236,6 +2236,7 @@ declare namespace shaka.util.Error {
2236
2236
  HTTP_ERROR = 1002.0 ,
2237
2237
  INCONSISTENT_DRM_ACROSS_PERIODS = 4038.0 ,
2238
2238
  INDEXED_DB_ERROR = 9001.0 ,
2239
+ INDEXED_DB_INIT_TIMED_OUT = 9017.0 ,
2239
2240
  INIT_DATA_TRANSFORM_ERROR = 6016.0 ,
2240
2241
  INVALID_HLS_TAG = 4016.0 ,
2241
2242
  INVALID_MP4_CEA = 2010.0 ,
@@ -3521,7 +3522,7 @@ declare namespace shaka.extern.ManifestParser {
3521
3522
  }
3522
3523
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest_parser.js
3523
3524
  declare namespace shaka.extern.ManifestParser {
3524
- 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 } ;
3525
+ 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 } ;
3525
3526
  }
3526
3527
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/mp4_parser.js
3527
3528
  declare namespace shaka.extern {
@@ -3818,7 +3819,7 @@ declare namespace shaka.extern {
3818
3819
  }
3819
3820
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3820
3821
  declare namespace shaka.extern {
3821
- 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 } ;
3822
+ 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 } ;
3822
3823
  }
3823
3824
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3824
3825
  declare namespace shaka.extern {
@@ -2236,6 +2236,7 @@ declare namespace shaka.util.Error {
2236
2236
  HTTP_ERROR = 1002.0 ,
2237
2237
  INCONSISTENT_DRM_ACROSS_PERIODS = 4038.0 ,
2238
2238
  INDEXED_DB_ERROR = 9001.0 ,
2239
+ INDEXED_DB_INIT_TIMED_OUT = 9017.0 ,
2239
2240
  INIT_DATA_TRANSFORM_ERROR = 6016.0 ,
2240
2241
  INVALID_HLS_TAG = 4016.0 ,
2241
2242
  INVALID_MP4_CEA = 2010.0 ,
@@ -3521,7 +3522,7 @@ declare namespace shaka.extern.ManifestParser {
3521
3522
  }
3522
3523
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest_parser.js
3523
3524
  declare namespace shaka.extern.ManifestParser {
3524
- 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 } ;
3525
+ 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 } ;
3525
3526
  }
3526
3527
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/mp4_parser.js
3527
3528
  declare namespace shaka.extern {
@@ -3818,7 +3819,7 @@ declare namespace shaka.extern {
3818
3819
  }
3819
3820
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3820
3821
  declare namespace shaka.extern {
3821
- 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 } ;
3822
+ 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 } ;
3822
3823
  }
3823
3824
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3824
3825
  declare namespace shaka.extern {
@@ -647,6 +647,7 @@ shaka.util.Error.Code = {
647
647
  'STORAGE_LIMIT_REACHED': 9014,
648
648
  'DOWNLOAD_SIZE_CALLBACK_ERROR': 9015,
649
649
  'MODIFY_OPERATION_NOT_SUPPORTED': 9016,
650
+ 'INDEXED_DB_INIT_TIMED_OUT': 9017,
650
651
  'CS_IMA_SDK_MISSING': 10000,
651
652
  'CS_AD_MANAGER_NOT_INITIALIZED': 10001,
652
653
  'SS_IMA_SDK_MISSING': 10002,
@@ -1420,30 +1421,6 @@ shaka.util.EventManager = class {
1420
1421
  * @typedef {function(!Event)}
1421
1422
  */
1422
1423
  shaka.util.EventManager.ListenerType;
1423
- /**
1424
- * @summary An interface to register manifest parsers.
1425
- */
1426
- shaka.media.ManifestParser = class {
1427
- /**
1428
- * Registers a manifest parser by file extension.
1429
- * @param {string} extension The file extension of the manifest.
1430
- * @param {shaka.extern.ManifestParser.Factory} parserFactory The factory
1431
- * used to create parser instances.
1432
- */
1433
- static registerParserByExtension(extension, parserFactory) {}
1434
- /**
1435
- * Registers a manifest parser by MIME type.
1436
- * @param {string} mimeType The MIME type of the manifest.
1437
- * @param {shaka.extern.ManifestParser.Factory} parserFactory The factory
1438
- * used to create parser instances.
1439
- */
1440
- static registerParserByMime(mimeType, parserFactory) {}
1441
- /**
1442
- * Unregisters a manifest parser by MIME type.
1443
- * @param {string} mimeType The MIME type of the manifest.
1444
- */
1445
- static unregisterParserByMime(mimeType) {}
1446
- };
1447
1424
  /**
1448
1425
  * @summary DataViewReader abstracts a DataView object.
1449
1426
  */
@@ -1614,6 +1591,30 @@ shaka.util.Mp4Parser = class {
1614
1591
  * @typedef {function(!shaka.extern.ParsedBox)}
1615
1592
  */
1616
1593
  shaka.util.Mp4Parser.CallbackType;
1594
+ /**
1595
+ * @summary An interface to register manifest parsers.
1596
+ */
1597
+ shaka.media.ManifestParser = class {
1598
+ /**
1599
+ * Registers a manifest parser by file extension.
1600
+ * @param {string} extension The file extension of the manifest.
1601
+ * @param {shaka.extern.ManifestParser.Factory} parserFactory The factory
1602
+ * used to create parser instances.
1603
+ */
1604
+ static registerParserByExtension(extension, parserFactory) {}
1605
+ /**
1606
+ * Registers a manifest parser by MIME type.
1607
+ * @param {string} mimeType The MIME type of the manifest.
1608
+ * @param {shaka.extern.ManifestParser.Factory} parserFactory The factory
1609
+ * used to create parser instances.
1610
+ */
1611
+ static registerParserByMime(mimeType, parserFactory) {}
1612
+ /**
1613
+ * Unregisters a manifest parser by MIME type.
1614
+ * @param {string} mimeType The MIME type of the manifest.
1615
+ */
1616
+ static unregisterParserByMime(mimeType) {}
1617
+ };
1617
1618
  /**
1618
1619
  * Creates an InitSegmentReference, which provides the location to an
1619
1620
  * initialization segment.