shaka-player 4.13.0 → 4.13.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 (67) hide show
  1. package/CONTRIBUTORS +1 -0
  2. package/dist/deps.js +4 -4
  3. package/dist/locales.js +36 -36
  4. package/dist/shaka-player.compiled.d.ts +1 -1
  5. package/dist/shaka-player.compiled.debug.d.ts +1 -1
  6. package/dist/shaka-player.compiled.debug.externs.js +2 -9
  7. package/dist/shaka-player.compiled.debug.js +491 -478
  8. package/dist/shaka-player.compiled.debug.map +4 -4
  9. package/dist/shaka-player.compiled.externs.js +2 -9
  10. package/dist/shaka-player.compiled.js +1455 -1443
  11. package/dist/shaka-player.compiled.map +4 -4
  12. package/dist/shaka-player.ui.d.ts +1 -1
  13. package/dist/shaka-player.ui.debug.d.ts +1 -1
  14. package/dist/shaka-player.ui.debug.externs.js +2 -9
  15. package/dist/shaka-player.ui.debug.js +544 -530
  16. package/dist/shaka-player.ui.debug.map +4 -4
  17. package/dist/shaka-player.ui.externs.js +2 -9
  18. package/dist/shaka-player.ui.js +1627 -1613
  19. package/dist/shaka-player.ui.map +4 -4
  20. package/eslint.config.mjs +14 -1
  21. package/lib/cast/cast_proxy.js +50 -12
  22. package/lib/cast/cast_receiver.js +6 -9
  23. package/lib/cast/cast_sender.js +14 -11
  24. package/lib/cast/cast_utils.js +43 -46
  25. package/lib/cea/mp4_cea_parser.js +23 -23
  26. package/lib/dash/content_protection.js +1 -1
  27. package/lib/dash/dash_parser.js +39 -29
  28. package/lib/dash/mpd_utils.js +8 -9
  29. package/lib/dash/segment_list.js +2 -2
  30. package/lib/dash/segment_template.js +9 -9
  31. package/lib/debug/log.js +16 -17
  32. package/lib/hls/hls_parser.js +122 -99
  33. package/lib/media/closed_caption_parser.js +5 -5
  34. package/lib/media/content_workarounds.js +78 -0
  35. package/lib/media/example_based_criteria.js +4 -3
  36. package/lib/media/manifest_parser.js +8 -12
  37. package/lib/media/media_source_engine.js +136 -119
  38. package/lib/media/preload_manager.js +10 -5
  39. package/lib/media/region_observer.js +9 -8
  40. package/lib/media/region_timeline.js +10 -8
  41. package/lib/media/streaming_engine.js +25 -9
  42. package/lib/mss/mss_parser.js +6 -7
  43. package/lib/net/http_plugin_utils.js +1 -1
  44. package/lib/net/networking_engine.js +7 -7
  45. package/lib/net/networking_utils.js +38 -39
  46. package/lib/offline/stream_bandwidth_estimator.js +8 -8
  47. package/lib/player.js +98 -47
  48. package/lib/polyfill/media_capabilities.js +8 -9
  49. package/lib/text/cue.js +6 -2
  50. package/lib/text/text_engine.js +7 -7
  51. package/lib/text/ttml_text_parser.js +14 -16
  52. package/lib/text/ui_text_displayer.js +25 -4
  53. package/lib/transmuxer/ac3_transmuxer.js +6 -1
  54. package/lib/transmuxer/transmuxer_engine.js +6 -6
  55. package/lib/util/manifest_parser_utils.js +7 -8
  56. package/lib/util/mp4_generator.js +23 -8
  57. package/lib/util/mp4_parser.js +10 -10
  58. package/lib/util/multi_map.js +22 -20
  59. package/lib/util/platform.js +40 -9
  60. package/lib/util/player_configuration.js +1 -1
  61. package/lib/util/stream_utils.js +35 -17
  62. package/package.json +2 -2
  63. package/project-words.txt +1 -0
  64. package/third_party/closure-uri/uri.js +13 -13
  65. package/ui/ad_statistics_button.js +17 -16
  66. package/ui/audio_language_selection.js +6 -1
  67. package/ui/statistics_button.js +36 -35
@@ -77,11 +77,11 @@ shaka.ui.StatisticsButton = class extends shaka.ui.Element {
77
77
  /** @private {!Array} */
78
78
  this.skippedStats_ = ['stateHistory', 'switchHistory'];
79
79
 
80
- /** @private {!Object<string, number>} */
80
+ /** @private {!shaka.extern.Stats} */
81
81
  this.currentStats_ = this.player.getStats();
82
82
 
83
- /** @private {!Object<string, HTMLElement>} */
84
- this.displayedElements_ = {};
83
+ /** @private {!Map<string, HTMLElement>} */
84
+ this.displayedElements_ = new Map();
85
85
 
86
86
 
87
87
  const parsePx = (name) => {
@@ -127,7 +127,9 @@ shaka.ui.StatisticsButton = class extends shaka.ui.Element {
127
127
 
128
128
  const parseBytes = (name) => {
129
129
  const bytes = parseInt(this.currentStats_[name], 10);
130
- if (bytes > 1e6) {
130
+ if (bytes > 2 * 1e9) {
131
+ return (bytes / 1e9).toFixed(2) + 'GB';
132
+ } else if (bytes > 1e6) {
131
133
  return (bytes / 1e6).toFixed(2) + 'MB';
132
134
  } else if (bytes > 1e3) {
133
135
  return (bytes / 1e3).toFixed(2) + 'KB';
@@ -136,33 +138,32 @@ shaka.ui.StatisticsButton = class extends shaka.ui.Element {
136
138
  }
137
139
  };
138
140
 
139
- /** @private {!Object<string, function(string): string>} */
140
- this.parseFrom_ = {
141
- 'width': parsePx,
142
- 'height': parsePx,
143
- 'completionPercent': parsePercent,
144
- 'bufferingTime': parseSeconds,
145
- 'drmTimeSeconds': parseSeconds,
146
- 'licenseTime': parseSeconds,
147
- 'liveLatency': parseSeconds,
148
- 'loadLatency': parseSeconds,
149
- 'manifestTimeSeconds': parseSeconds,
150
- 'estimatedBandwidth': parseBits,
151
- 'streamBandwidth': parseBits,
152
- 'maxSegmentDuration': parseTime,
153
- 'pauseTime': parseTime,
154
- 'playTime': parseTime,
155
- 'corruptedFrames': parseFrames,
156
- 'decodedFrames': parseFrames,
157
- 'droppedFrames': parseFrames,
158
- 'stallsDetected': parseStalls,
159
- 'gapsJumped': parseGaps,
160
- 'manifestSizeBytes': parseBytes,
161
- 'bytesDownloaded': parseBytes,
162
- 'nonFatalErrorCount': parseErrors,
163
- 'manifestPeriodCount': parsePeriods,
164
- 'manifestGapCount': parseGaps,
165
- };
141
+ /** @private {!Map<string, function(string): string>} */
142
+ this.parseFrom_ = new Map()
143
+ .set('width', parsePx)
144
+ .set('height', parsePx)
145
+ .set('completionPercent', parsePercent)
146
+ .set('bufferingTime', parseSeconds)
147
+ .set('drmTimeSeconds', parseSeconds)
148
+ .set('licenseTime', parseSeconds)
149
+ .set('liveLatency', parseSeconds)
150
+ .set('loadLatency', parseSeconds)
151
+ .set('manifestTimeSeconds', parseSeconds)
152
+ .set('estimatedBandwidth', parseBits)
153
+ .set('streamBandwidth', parseBits)
154
+ .set('maxSegmentDuration', parseTime)
155
+ .set('pauseTime', parseTime)
156
+ .set('playTime', parseTime)
157
+ .set('corruptedFrames', parseFrames)
158
+ .set('decodedFrames', parseFrames)
159
+ .set('droppedFrames', parseFrames)
160
+ .set('stallsDetected', parseStalls)
161
+ .set('gapsJumped', parseGaps)
162
+ .set('manifestSizeBytes', parseBytes)
163
+ .set('bytesDownloaded', parseBytes)
164
+ .set('nonFatalErrorCount', parseErrors)
165
+ .set('manifestPeriodCount', parsePeriods)
166
+ .set('manifestGapCount', parseGaps);
166
167
 
167
168
  /** @private {shaka.util.Timer} */
168
169
  this.timer_ = new shaka.util.Timer(() => {
@@ -233,10 +234,10 @@ shaka.ui.StatisticsButton = class extends shaka.ui.Element {
233
234
  section.appendChild(label);
234
235
 
235
236
  const value = shaka.util.Dom.createHTMLElement('span');
236
- value.textContent = this.parseFrom_[name](name);
237
+ value.textContent = this.parseFrom_.get(name)(name);
237
238
  section.appendChild(value);
238
239
 
239
- this.displayedElements_[name] = value;
240
+ this.displayedElements_.set(name, value);
240
241
 
241
242
  return section;
242
243
  }
@@ -271,8 +272,8 @@ shaka.ui.StatisticsButton = class extends shaka.ui.Element {
271
272
  this.currentStats_ = this.player.getStats();
272
273
 
273
274
  for (const name of this.statisticsList_) {
274
- const element = this.displayedElements_[name];
275
- element.textContent = this.parseFrom_[name](name);
275
+ const element = this.displayedElements_.get(name);
276
+ element.textContent = this.parseFrom_.get(name)(name);
276
277
  if (element && element.parentElement) {
277
278
  shaka.ui.Utils.setDisplay(element.parentElement,
278
279
  !isNaN(this.currentStats_[name]));