@oddin-gg/havik-player 2.28.0 → 2.28.1

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.
package/docs/API.md CHANGED
@@ -381,6 +381,15 @@ is derived above it.
381
381
  30 s of healthy playback; a slow start, a seek, a pause, a hidden tab and an
382
382
  offline browser never count. Counted in `stuckReloads`; `stuckReload: false`
383
383
  turns it off.
384
+ - **A buffer hole hls.js cannot nudge across jumps to live.** When hls.js gives
385
+ up seeking the playhead over a hole in the buffer (its fatal
386
+ `bufferSeekOverHole`, or a `bufferStalledError` after its nudge budget) on a
387
+ live stream, the SDK restarts loading at the live edge, which is past the
388
+ hole, with the media element, the buffer and the DRM key sessions still in
389
+ place. Twice per 30 s of healthy playback, out of the same three-recovery
390
+ budget the MediaSource rebuild uses; after that, and on VOD, the
391
+ MediaSource is rebuilt as before, and the fourth consecutive failure is the
392
+ fatal error it always was.
384
393
 
385
394
  - **Futile catch‑up is stopped.** hls.js speeds playback up (to 1.1×) whenever
386
395
  latency sits above the target, and only lowers its ambition after a counted
package/embed/index.html CHANGED
@@ -28,7 +28,7 @@
28
28
  beacons endpoint can be derived and QoE analytics is silently off.
29
29
  `analytics` is honoured from the injected config only, never the query.
30
30
  -->
31
- <script src="https://cdn.jsdelivr.net/npm/@oddin-gg/havik-player@2.28.0/dist/havik-player.global.js" integrity="sha384-d22l6E/5nLGZ474vyfD82Dwvx1PeYb2GLOr+aN/78lgvtAVhGrdhXpBBJKOkRIwE" crossorigin="anonymous"></script>
31
+ <script src="https://cdn.jsdelivr.net/npm/@oddin-gg/havik-player@2.28.1/dist/havik-player.global.js" integrity="sha384-MsDlqFBRNSeEkb89GR3AJ7jOau99rUmmttHqnHzmad+L9+HpYWywrL4YuFIPn+4o" crossorigin="anonymous"></script>
32
32
  <script>
33
33
  HavikPlayer.bootEmbed();
34
34
  </script>
@@ -12,7 +12,7 @@
12
12
  shipped in each npm release is pinned to that release with Subresource
13
13
  Integrity, injected at publish time (scripts/inject-sri.mjs). In
14
14
  production, always use a pinned + SRI'd tag like the released copy. -->
15
- <script src="https://cdn.jsdelivr.net/npm/@oddin-gg/havik-player@2.28.0/dist/havik-player.global.js" integrity="sha384-d22l6E/5nLGZ474vyfD82Dwvx1PeYb2GLOr+aN/78lgvtAVhGrdhXpBBJKOkRIwE" crossorigin="anonymous"></script>
15
+ <script src="https://cdn.jsdelivr.net/npm/@oddin-gg/havik-player@2.28.1/dist/havik-player.global.js" integrity="sha384-MsDlqFBRNSeEkb89GR3AJ7jOau99rUmmttHqnHzmad+L9+HpYWywrL4YuFIPn+4o" crossorigin="anonymous"></script>
16
16
  <script>
17
17
  (async () => {
18
18
  const player = await HavikPlayer.createPlayer({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oddin-gg/havik-player",
3
- "version": "2.28.0",
3
+ "version": "2.28.1",
4
4
  "description": "Havik HTML5 player SDK — LL-HLS + DRM playback for Oddin live streams (managed, bring-your-own-player, and iframe-embed modes).",
5
5
  "type": "module",
6
6
  "sideEffects": false,