@gcorevideo/player 2.24.10 → 2.24.11

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.
@@ -41692,7 +41692,6 @@ class HlsPlayback extends BasePlayback {
41692
41692
  _extrapolatedWindowNumSegments = 0; // TODO
41693
41693
  highDefinition = false;
41694
41694
  _hls = null;
41695
- _isReadyState = false;
41696
41695
  _lastDuration = null;
41697
41696
  _lastTimeUpdate = null;
41698
41697
  _levels = null;
@@ -41709,9 +41708,15 @@ class HlsPlayback extends BasePlayback {
41709
41708
  _recoveredDecodingError = false;
41710
41709
  _segmentTargetDuration = null;
41711
41710
  _timeUpdateTimer = null;
41711
+ /**
41712
+ * @internal
41713
+ */
41712
41714
  get name() {
41713
41715
  return 'hls';
41714
41716
  }
41717
+ /**
41718
+ * @internal
41719
+ */
41715
41720
  get supportedVersion() {
41716
41721
  return { min: CLAPPR_VERSION$1 };
41717
41722
  }
@@ -41721,9 +41726,6 @@ class HlsPlayback extends BasePlayback {
41721
41726
  get currentLevel() {
41722
41727
  return this._currentLevel ?? AUTO;
41723
41728
  }
41724
- get isReady() {
41725
- return this._isReadyState;
41726
- }
41727
41729
  set currentLevel(id) {
41728
41730
  this._currentLevel = id;
41729
41731
  this.trigger(Events$1.PLAYBACK_LEVEL_SWITCH_START);
@@ -41910,6 +41912,7 @@ class HlsPlayback extends BasePlayback {
41910
41912
  const config = $.extend(true, {
41911
41913
  maxBufferLength: 2,
41912
41914
  maxMaxBufferLength: 4,
41915
+ autoStartLoad: false,
41913
41916
  }, this.options.playback.hlsjsConfig);
41914
41917
  this._hls = new Hls(config);
41915
41918
  }
@@ -41927,6 +41930,7 @@ class HlsPlayback extends BasePlayback {
41927
41930
  assert.ok(this._hls, 'HLS.js is not initialized');
41928
41931
  this.options.hlsPlayback.preload && this._hls.loadSource(this.options.src);
41929
41932
  });
41933
+ // TODO drop?
41930
41934
  const onPlaying = () => {
41931
41935
  if (this._hls) {
41932
41936
  this._hls.config.maxBufferLength =
@@ -41937,8 +41941,13 @@ class HlsPlayback extends BasePlayback {
41937
41941
  this.el.removeEventListener('playing', onPlaying);
41938
41942
  };
41939
41943
  this.el.addEventListener('playing', onPlaying);
41940
- this._hls.on(Hls.Events.MANIFEST_PARSED, () => (this._manifestParsed = true));
41941
- this._hls.on(Hls.Events.LEVEL_LOADED, (evt, data) => this._updatePlaybackType(evt, data));
41944
+ this._hls.on(Hls.Events.MANIFEST_PARSED, () => {
41945
+ this._manifestParsed = true;
41946
+ this._hls.startLoad(-1);
41947
+ });
41948
+ this._hls.on(Hls.Events.LEVEL_LOADED, (evt, data) => {
41949
+ this._updatePlaybackType(evt, data);
41950
+ });
41942
41951
  this._hls.on(Hls.Events.LEVEL_UPDATED, (evt, data) => this._onLevelUpdated(evt, data));
41943
41952
  this._hls.on(Hls.Events.LEVEL_SWITCHING, (evt, data) => this._onLevelSwitch(evt, data));
41944
41953
  this._hls.on(Hls.Events.LEVEL_SWITCHED, (evt, data) => this._onLevelSwitched(evt, data));
@@ -41981,12 +41990,13 @@ class HlsPlayback extends BasePlayback {
41981
41990
  return super.render();
41982
41991
  }
41983
41992
  _ready() {
41984
- if (this._isReadyState) {
41985
- return;
41986
- }
41993
+ trace(`${T$d} _ready`, {
41994
+ isReadyState: this._isReadyState, // is defined in HTML5Video
41995
+ });
41987
41996
  !this._hls && this._setup();
41988
- this._isReadyState = true;
41989
- this.trigger(Events$1.PLAYBACK_READY, this.name);
41997
+ // this._isReadyState = true
41998
+ // this.trigger(Events.PLAYBACK_READY, this.name)
41999
+ super._ready();
41990
42000
  }
41991
42001
  _recover(evt, data, error) {
41992
42002
  assert(this._hls, 'HLS.js is not initialized');
package/dist/index.js CHANGED
@@ -41854,7 +41854,6 @@ class HlsPlayback extends BasePlayback {
41854
41854
  _extrapolatedWindowNumSegments = 0; // TODO
41855
41855
  highDefinition = false;
41856
41856
  _hls = null;
41857
- _isReadyState = false;
41858
41857
  _lastDuration = null;
41859
41858
  _lastTimeUpdate = null;
41860
41859
  _levels = null;
@@ -41871,9 +41870,15 @@ class HlsPlayback extends BasePlayback {
41871
41870
  _recoveredDecodingError = false;
41872
41871
  _segmentTargetDuration = null;
41873
41872
  _timeUpdateTimer = null;
41873
+ /**
41874
+ * @internal
41875
+ */
41874
41876
  get name() {
41875
41877
  return 'hls';
41876
41878
  }
41879
+ /**
41880
+ * @internal
41881
+ */
41877
41882
  get supportedVersion() {
41878
41883
  return { min: CLAPPR_VERSION$1 };
41879
41884
  }
@@ -41883,9 +41888,6 @@ class HlsPlayback extends BasePlayback {
41883
41888
  get currentLevel() {
41884
41889
  return this._currentLevel ?? AUTO;
41885
41890
  }
41886
- get isReady() {
41887
- return this._isReadyState;
41888
- }
41889
41891
  set currentLevel(id) {
41890
41892
  this._currentLevel = id;
41891
41893
  this.trigger(Events$1.PLAYBACK_LEVEL_SWITCH_START);
@@ -42072,6 +42074,7 @@ class HlsPlayback extends BasePlayback {
42072
42074
  const config = $.extend(true, {
42073
42075
  maxBufferLength: 2,
42074
42076
  maxMaxBufferLength: 4,
42077
+ autoStartLoad: false,
42075
42078
  }, this.options.playback.hlsjsConfig);
42076
42079
  trace(`${T$m} _createHLSInstance`, { config });
42077
42080
  this._hls = new Hls(config);
@@ -42090,6 +42093,7 @@ class HlsPlayback extends BasePlayback {
42090
42093
  assert.ok(this._hls, 'HLS.js is not initialized');
42091
42094
  this.options.hlsPlayback.preload && this._hls.loadSource(this.options.src);
42092
42095
  });
42096
+ // TODO drop?
42093
42097
  const onPlaying = () => {
42094
42098
  if (this._hls) {
42095
42099
  this._hls.config.maxBufferLength =
@@ -42100,8 +42104,13 @@ class HlsPlayback extends BasePlayback {
42100
42104
  this.el.removeEventListener('playing', onPlaying);
42101
42105
  };
42102
42106
  this.el.addEventListener('playing', onPlaying);
42103
- this._hls.on(Hls.Events.MANIFEST_PARSED, () => (this._manifestParsed = true));
42104
- this._hls.on(Hls.Events.LEVEL_LOADED, (evt, data) => this._updatePlaybackType(evt, data));
42107
+ this._hls.on(Hls.Events.MANIFEST_PARSED, () => {
42108
+ this._manifestParsed = true;
42109
+ this._hls.startLoad(-1);
42110
+ });
42111
+ this._hls.on(Hls.Events.LEVEL_LOADED, (evt, data) => {
42112
+ this._updatePlaybackType(evt, data);
42113
+ });
42105
42114
  this._hls.on(Hls.Events.LEVEL_UPDATED, (evt, data) => this._onLevelUpdated(evt, data));
42106
42115
  this._hls.on(Hls.Events.LEVEL_SWITCHING, (evt, data) => this._onLevelSwitch(evt, data));
42107
42116
  this._hls.on(Hls.Events.LEVEL_SWITCHED, (evt, data) => this._onLevelSwitched(evt, data));
@@ -42144,12 +42153,13 @@ class HlsPlayback extends BasePlayback {
42144
42153
  return super.render();
42145
42154
  }
42146
42155
  _ready() {
42147
- if (this._isReadyState) {
42148
- return;
42149
- }
42156
+ trace(`${T$m} _ready`, {
42157
+ isReadyState: this._isReadyState, // is defined in HTML5Video
42158
+ });
42150
42159
  !this._hls && this._setup();
42151
- this._isReadyState = true;
42152
- this.trigger(Events$1.PLAYBACK_READY, this.name);
42160
+ // this._isReadyState = true
42161
+ // this.trigger(Events.PLAYBACK_READY, this.name)
42162
+ super._ready();
42153
42163
  }
42154
42164
  _recover(evt, data, error) {
42155
42165
  assert(this._hls, 'HLS.js is not initialized');
@@ -43303,7 +43313,7 @@ class Player {
43303
43313
  }
43304
43314
  }
43305
43315
 
43306
- var version$1 = "2.24.10";
43316
+ var version$1 = "2.24.11";
43307
43317
 
43308
43318
  var packages = {
43309
43319
  "node_modules/@clappr/core": {
@@ -12,7 +12,6 @@ export default class HlsPlayback extends BasePlayback {
12
12
  private _extrapolatedWindowNumSegments;
13
13
  private highDefinition;
14
14
  private _hls;
15
- private _isReadyState;
16
15
  private _lastDuration;
17
16
  private _lastTimeUpdate;
18
17
  private _levels;
@@ -29,13 +28,18 @@ export default class HlsPlayback extends BasePlayback {
29
28
  private _recoveredDecodingError;
30
29
  private _segmentTargetDuration;
31
30
  private _timeUpdateTimer;
31
+ /**
32
+ * @internal
33
+ */
32
34
  get name(): string;
35
+ /**
36
+ * @internal
37
+ */
33
38
  get supportedVersion(): {
34
39
  min: string;
35
40
  };
36
41
  get levels(): QualityLevel[];
37
42
  get currentLevel(): number;
38
- get isReady(): boolean;
39
43
  set currentLevel(id: number);
40
44
  get latency(): number;
41
45
  get currentProgramDateTime(): Date;
@@ -1 +1 @@
1
- {"version":3,"file":"HlsPlayback.d.ts","sourceRoot":"","sources":["../../../src/playback/hls-playback/HlsPlayback.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HlsPlayback.d.ts","sourceRoot":"","sources":["../../../src/playback/hls-playback/HlsPlayback.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,6 @@ export default class HlsPlayback extends BasePlayback {
24
24
  _extrapolatedWindowNumSegments = 0; // TODO
25
25
  highDefinition = false;
26
26
  _hls = null;
27
- _isReadyState = false;
28
27
  _lastDuration = null;
29
28
  _lastTimeUpdate = null;
30
29
  _levels = null;
@@ -41,9 +40,15 @@ export default class HlsPlayback extends BasePlayback {
41
40
  _recoveredDecodingError = false;
42
41
  _segmentTargetDuration = null;
43
42
  _timeUpdateTimer = null;
43
+ /**
44
+ * @internal
45
+ */
44
46
  get name() {
45
47
  return 'hls';
46
48
  }
49
+ /**
50
+ * @internal
51
+ */
47
52
  get supportedVersion() {
48
53
  return { min: CLAPPR_VERSION };
49
54
  }
@@ -53,9 +58,6 @@ export default class HlsPlayback extends BasePlayback {
53
58
  get currentLevel() {
54
59
  return this._currentLevel ?? AUTO;
55
60
  }
56
- get isReady() {
57
- return this._isReadyState;
58
- }
59
61
  set currentLevel(id) {
60
62
  this._currentLevel = id;
61
63
  this.trigger(Events.PLAYBACK_LEVEL_SWITCH_START);
@@ -242,6 +244,7 @@ export default class HlsPlayback extends BasePlayback {
242
244
  const config = $.extend(true, {
243
245
  maxBufferLength: 2,
244
246
  maxMaxBufferLength: 4,
247
+ autoStartLoad: false,
245
248
  }, this.options.playback.hlsjsConfig);
246
249
  trace(`${T} _createHLSInstance`, { config });
247
250
  this._hls = new HLSJS(config);
@@ -260,6 +263,7 @@ export default class HlsPlayback extends BasePlayback {
260
263
  assert.ok(this._hls, 'HLS.js is not initialized');
261
264
  this.options.hlsPlayback.preload && this._hls.loadSource(this.options.src);
262
265
  });
266
+ // TODO drop?
263
267
  const onPlaying = () => {
264
268
  if (this._hls) {
265
269
  this._hls.config.maxBufferLength =
@@ -270,8 +274,13 @@ export default class HlsPlayback extends BasePlayback {
270
274
  this.el.removeEventListener('playing', onPlaying);
271
275
  };
272
276
  this.el.addEventListener('playing', onPlaying);
273
- this._hls.on(HLSJS.Events.MANIFEST_PARSED, () => (this._manifestParsed = true));
274
- this._hls.on(HLSJS.Events.LEVEL_LOADED, (evt, data) => this._updatePlaybackType(evt, data));
277
+ this._hls.on(HLSJS.Events.MANIFEST_PARSED, () => {
278
+ this._manifestParsed = true;
279
+ this._hls.startLoad(-1);
280
+ });
281
+ this._hls.on(HLSJS.Events.LEVEL_LOADED, (evt, data) => {
282
+ this._updatePlaybackType(evt, data);
283
+ });
275
284
  this._hls.on(HLSJS.Events.LEVEL_UPDATED, (evt, data) => this._onLevelUpdated(evt, data));
276
285
  this._hls.on(HLSJS.Events.LEVEL_SWITCHING, (evt, data) => this._onLevelSwitch(evt, data));
277
286
  this._hls.on(HLSJS.Events.LEVEL_SWITCHED, (evt, data) => this._onLevelSwitched(evt, data));
@@ -314,12 +323,13 @@ export default class HlsPlayback extends BasePlayback {
314
323
  return super.render();
315
324
  }
316
325
  _ready() {
317
- if (this._isReadyState) {
318
- return;
319
- }
326
+ trace(`${T} _ready`, {
327
+ isReadyState: this._isReadyState, // is defined in HTML5Video
328
+ });
320
329
  !this._hls && this._setup();
321
- this._isReadyState = true;
322
- this.trigger(Events.PLAYBACK_READY, this.name);
330
+ // this._isReadyState = true
331
+ // this.trigger(Events.PLAYBACK_READY, this.name)
332
+ super._ready();
323
333
  }
324
334
  _recover(evt, data, error) {
325
335
  assert(this._hls, 'HLS.js is not initialized');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gcorevideo/player",
3
- "version": "2.24.10",
3
+ "version": "2.24.11",
4
4
  "description": "Gcore JavaScript video player",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -87,8 +87,6 @@ export default class HlsPlayback extends BasePlayback {
87
87
 
88
88
  private _hls: HLSJS | null = null
89
89
 
90
- private _isReadyState = false
91
-
92
90
  private _lastDuration: number | null = null
93
91
 
94
92
  private _lastTimeUpdate: TimePosition | null = null
@@ -121,10 +119,16 @@ export default class HlsPlayback extends BasePlayback {
121
119
 
122
120
  private _timeUpdateTimer: TimerId | null = null
123
121
 
122
+ /**
123
+ * @internal
124
+ */
124
125
  get name() {
125
126
  return 'hls'
126
127
  }
127
128
 
129
+ /**
130
+ * @internal
131
+ */
128
132
  get supportedVersion() {
129
133
  return { min: CLAPPR_VERSION }
130
134
  }
@@ -137,10 +141,6 @@ export default class HlsPlayback extends BasePlayback {
137
141
  return this._currentLevel ?? AUTO
138
142
  }
139
143
 
140
- get isReady() {
141
- return this._isReadyState
142
- }
143
-
144
144
  set currentLevel(id: number) {
145
145
  this._currentLevel = id
146
146
  this.trigger(Events.PLAYBACK_LEVEL_SWITCH_START)
@@ -369,6 +369,7 @@ export default class HlsPlayback extends BasePlayback {
369
369
  {
370
370
  maxBufferLength: 2,
371
371
  maxMaxBufferLength: 4,
372
+ autoStartLoad: false,
372
373
  },
373
374
  this.options.playback.hlsjsConfig,
374
375
  )
@@ -393,6 +394,7 @@ export default class HlsPlayback extends BasePlayback {
393
394
  this.options.hlsPlayback.preload && this._hls.loadSource(this.options.src)
394
395
  })
395
396
 
397
+ // TODO drop?
396
398
  const onPlaying = () => {
397
399
  if (this._hls) {
398
400
  this._hls.config.maxBufferLength =
@@ -405,14 +407,15 @@ export default class HlsPlayback extends BasePlayback {
405
407
 
406
408
  this.el.addEventListener('playing', onPlaying)
407
409
 
408
- this._hls.on(
409
- HLSJS.Events.MANIFEST_PARSED,
410
- () => (this._manifestParsed = true),
411
- )
410
+ this._hls.on(HLSJS.Events.MANIFEST_PARSED, () => {
411
+ this._manifestParsed = true
412
+ this._hls!.startLoad(-1)
413
+ })
412
414
  this._hls.on(
413
415
  HLSJS.Events.LEVEL_LOADED,
414
- (evt: HlsEvents.LEVEL_LOADED, data: LevelLoadedData) =>
415
- this._updatePlaybackType(evt, data),
416
+ (evt: HlsEvents.LEVEL_LOADED, data: LevelLoadedData) => {
417
+ this._updatePlaybackType(evt, data)
418
+ },
416
419
  )
417
420
  this._hls.on(
418
421
  HLSJS.Events.LEVEL_UPDATED,
@@ -458,7 +461,9 @@ export default class HlsPlayback extends BasePlayback {
458
461
  this._hls.on(HlsEvents.AUDIO_TRACKS_UPDATED, (evt, data) =>
459
462
  this._onAudioTracksUpdated(evt, data),
460
463
  )
461
- this._hls.on(HlsEvents.AUDIO_TRACK_SWITCHED, (evt, data) => this._onAudioTrackSwitched(evt, data))
464
+ this._hls.on(HlsEvents.AUDIO_TRACK_SWITCHED, (evt, data) =>
465
+ this._onAudioTrackSwitched(evt, data),
466
+ )
462
467
  this.bindCustomListeners()
463
468
  }
464
469
 
@@ -499,15 +504,20 @@ export default class HlsPlayback extends BasePlayback {
499
504
  }
500
505
 
501
506
  protected override _ready() {
502
- if (this._isReadyState) {
503
- return
504
- }
507
+ trace(`${T} _ready`, {
508
+ isReadyState: this._isReadyState, // is defined in HTML5Video
509
+ })
505
510
  !this._hls && this._setup()
506
- this._isReadyState = true
507
- this.trigger(Events.PLAYBACK_READY, this.name)
511
+ // this._isReadyState = true
512
+ // this.trigger(Events.PLAYBACK_READY, this.name)
513
+ super._ready()
508
514
  }
509
515
 
510
- private _recover(evt: HlsEvents.ERROR, data: HlsErrorData, error: PlaybackError) {
516
+ private _recover(
517
+ evt: HlsEvents.ERROR,
518
+ data: HlsErrorData,
519
+ error: PlaybackError,
520
+ ) {
511
521
  assert(this._hls, 'HLS.js is not initialized')
512
522
  if (!this._recoveredDecodingError) {
513
523
  this._recoveredDecodingError = true
@@ -1129,12 +1139,21 @@ export default class HlsPlayback extends BasePlayback {
1129
1139
  this._hls.audioTrack = Number(id) // TODO or find index by .id == id?
1130
1140
  }
1131
1141
 
1132
- private _onAudioTracksUpdated(_: HlsEvents.AUDIO_TRACKS_UPDATED, data: AudioTracksUpdatedData) {
1142
+ private _onAudioTracksUpdated(
1143
+ _: HlsEvents.AUDIO_TRACKS_UPDATED,
1144
+ data: AudioTracksUpdatedData,
1145
+ ) {
1133
1146
  trace(`${T} onAudioTracksUpdated`)
1134
- this.trigger(Events.PLAYBACK_AUDIO_AVAILABLE, data.audioTracks.map(toClapprTrack))
1147
+ this.trigger(
1148
+ Events.PLAYBACK_AUDIO_AVAILABLE,
1149
+ data.audioTracks.map(toClapprTrack),
1150
+ )
1135
1151
  }
1136
1152
 
1137
- private _onAudioTrackSwitched(_: HlsEvents.AUDIO_TRACK_SWITCHED, data: AudioTrackSwitchedData) {
1153
+ private _onAudioTrackSwitched(
1154
+ _: HlsEvents.AUDIO_TRACK_SWITCHED,
1155
+ data: AudioTrackSwitchedData,
1156
+ ) {
1138
1157
  trace(`${T} onAudioTrackSwitched`)
1139
1158
  // @ts-ignore
1140
1159
  const track = this._hls.audioTracks[data.id]
@@ -1156,4 +1175,4 @@ function toClapprTrack(t: MediaPlaylist): AudioTrack {
1156
1175
  kind: t.type === 'main' ? 'main' : 'description', // TODO check
1157
1176
  label: t.name,
1158
1177
  }
1159
- }
1178
+ }