@oddin-gg/havik-player 2.26.0 → 2.27.0

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/dist/index.d.cts CHANGED
@@ -256,6 +256,21 @@ export declare interface CreatePlayerOptions {
256
256
  * stepping.
257
257
  */
258
258
  adaptiveHoldBackCeiling?: number;
259
+ /**
260
+ * Stall-aware quality ceiling (hls.js engine): after a playback stall (not in
261
+ * the first 10 s after playback starts or resumes, not while seeking, not
262
+ * with media still buffered ahead, not a wait at the live edge for a part
263
+ * not yet published) the player caps quality one rung below
264
+ * the rendition that stalled, and gives one rung back per 3 minutes of
265
+ * playback without another stall. Without it, ABR climbs straight back onto
266
+ * a rung the link just failed to carry: on measured production sessions
267
+ * 55-65 % of rebuffer time was such a repeat stall within 3 minutes. Each step counts
268
+ * in `stallDownCaps`; while it is the binding ceiling, `capReason` is
269
+ * `'stall'`. Default: true. Ignored while the viewer pinned a quality, and
270
+ * off when `hlsConfig.capLevelToPlayerSize` or `capLevelOnFPSDrop: true`
271
+ * hands capping to hls.js.
272
+ */
273
+ stallCap?: boolean;
259
274
  /**
260
275
  * DRM cold start: download the first init segment and parts while the
261
276
  * first key is still being acquired, instead of after it (hls.js waits for
@@ -1072,17 +1087,21 @@ export declare interface PlaybackStats {
1072
1087
  /** Times the ABR ceiling was stepped down because the device kept dropping
1073
1088
  * frames on the rendition it played (hls.js engine only). */
1074
1089
  fpsDownCaps?: number;
1090
+ /** Times a playback stall stepped the ABR ceiling down one rung this session
1091
+ * (hls.js engine only; see `stallCap`). */
1092
+ stallDownCaps?: number;
1075
1093
  /** Height of the highest rendition ABR may pick right now (hls.js engine
1076
1094
  * only). Present only while a ceiling is in force; a viewer stuck at 540p
1077
1095
  * reads it next to `levelHeight` to see the ceiling, not the network. */
1078
1096
  maxLevelHeight?: number;
1079
1097
  /** Which SDK-owned cap set `maxLevelHeight`: the player's pixel box, the
1080
- * caller's `maxBitrate` budget, or frame-drop capping. Present only while
1081
- * the SDK's own ceiling is applied; when two caps land on the same rung the
1082
- * first of size, bitrate, fps is reported. Omitted when the caller handed
1098
+ * caller's `maxBitrate` budget, frame-drop capping, or the stall-aware
1099
+ * ceiling. Present only while the SDK's own ceiling is applied; when two
1100
+ * caps land on the same rung the first of size, bitrate, fps, stall is
1101
+ * reported. Omitted when the caller handed
1083
1102
  * capping to hls.js (`capLevelToPlayerSize` / `capLevelOnFPSDrop`), even if
1084
1103
  * `maxLevelHeight` is set from hls.js's own cap. */
1085
- capReason?: 'size' | 'bitrate' | 'fps';
1104
+ capReason?: 'size' | 'bitrate' | 'fps' | 'stall';
1086
1105
  /** Bitrate of the current rendition in kbps, when known. */
1087
1106
  renditionBitrateKbps?: number;
1088
1107
  /** Duration of the most recent DRM license acquisition in ms (0 = none yet). */
package/dist/index.d.ts CHANGED
@@ -256,6 +256,21 @@ export declare interface CreatePlayerOptions {
256
256
  * stepping.
257
257
  */
258
258
  adaptiveHoldBackCeiling?: number;
259
+ /**
260
+ * Stall-aware quality ceiling (hls.js engine): after a playback stall (not in
261
+ * the first 10 s after playback starts or resumes, not while seeking, not
262
+ * with media still buffered ahead, not a wait at the live edge for a part
263
+ * not yet published) the player caps quality one rung below
264
+ * the rendition that stalled, and gives one rung back per 3 minutes of
265
+ * playback without another stall. Without it, ABR climbs straight back onto
266
+ * a rung the link just failed to carry: on measured production sessions
267
+ * 55-65 % of rebuffer time was such a repeat stall within 3 minutes. Each step counts
268
+ * in `stallDownCaps`; while it is the binding ceiling, `capReason` is
269
+ * `'stall'`. Default: true. Ignored while the viewer pinned a quality, and
270
+ * off when `hlsConfig.capLevelToPlayerSize` or `capLevelOnFPSDrop: true`
271
+ * hands capping to hls.js.
272
+ */
273
+ stallCap?: boolean;
259
274
  /**
260
275
  * DRM cold start: download the first init segment and parts while the
261
276
  * first key is still being acquired, instead of after it (hls.js waits for
@@ -1072,17 +1087,21 @@ export declare interface PlaybackStats {
1072
1087
  /** Times the ABR ceiling was stepped down because the device kept dropping
1073
1088
  * frames on the rendition it played (hls.js engine only). */
1074
1089
  fpsDownCaps?: number;
1090
+ /** Times a playback stall stepped the ABR ceiling down one rung this session
1091
+ * (hls.js engine only; see `stallCap`). */
1092
+ stallDownCaps?: number;
1075
1093
  /** Height of the highest rendition ABR may pick right now (hls.js engine
1076
1094
  * only). Present only while a ceiling is in force; a viewer stuck at 540p
1077
1095
  * reads it next to `levelHeight` to see the ceiling, not the network. */
1078
1096
  maxLevelHeight?: number;
1079
1097
  /** Which SDK-owned cap set `maxLevelHeight`: the player's pixel box, the
1080
- * caller's `maxBitrate` budget, or frame-drop capping. Present only while
1081
- * the SDK's own ceiling is applied; when two caps land on the same rung the
1082
- * first of size, bitrate, fps is reported. Omitted when the caller handed
1098
+ * caller's `maxBitrate` budget, frame-drop capping, or the stall-aware
1099
+ * ceiling. Present only while the SDK's own ceiling is applied; when two
1100
+ * caps land on the same rung the first of size, bitrate, fps, stall is
1101
+ * reported. Omitted when the caller handed
1083
1102
  * capping to hls.js (`capLevelToPlayerSize` / `capLevelOnFPSDrop`), even if
1084
1103
  * `maxLevelHeight` is set from hls.js's own cap. */
1085
- capReason?: 'size' | 'bitrate' | 'fps';
1104
+ capReason?: 'size' | 'bitrate' | 'fps' | 'stall';
1086
1105
  /** Bitrate of the current rendition in kbps, when known. */
1087
1106
  renditionBitrateKbps?: number;
1088
1107
  /** Duration of the most recent DRM license acquisition in ms (0 = none yet). */