@vindral/web-sdk 4.4.0 → 4.5.0-7-gbf689372

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/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "4.4.0",
2
+ "version": "4.5.0-7-gbf689372",
3
3
  "name": "@vindral/web-sdk",
4
4
  "main": "./legacy.umd.js",
5
5
  "module": "./legacy.es.js",
package/player.d.ts CHANGED
@@ -916,6 +916,24 @@ interface SyncModuleStatistics {
916
916
  * Measures how far off sync the playback typically is, regardless of direction.
917
917
  */
918
918
  averageDrift: number;
919
+ /**
920
+ * Whether the video stream **currently arriving** presents frames out of decode order. Reported
921
+ * from SyncModule rather than the playback modules because it sits upstream of both on every ingest
922
+ * route, so one detector covers MSE and WebCodecs alike and the readout comes from the same
923
+ * observation that gates timeshift.
924
+ *
925
+ * Not the same as *whether timeshift is currently suppressed* — stated as a rule rather than a list
926
+ * of cases, because an earlier version of this comment enumerated them and was incomplete. This is
927
+ * {@link BFrameTracker}'s state, which clears whenever the stream identity changes (rendition or
928
+ * channel) or {@link reset} runs; the gate above it is a session-sticky latch that never clears. Any
929
+ * of those therefore leaves this false — until the detector re-latches a fragment or two later —
930
+ * while timeshift stays suppressed.
931
+ *
932
+ * Both scopes are deliberate: this answers "does the stream in front of us reorder", which is what
933
+ * is useful when watching a ladder, and the gate needs the opposite bias. Do not read either as the
934
+ * other.
935
+ */
936
+ videoHasBFrames: boolean;
919
937
  }
920
938
  interface VideoPlayerStatistics {
921
939
  renderedFrameCount: number;
@@ -1047,6 +1065,12 @@ declare class Vindral extends Emitter<PublicVindralEvents> {
1047
1065
  private userAgentInformation;
1048
1066
  private encryptedMediaExtensions;
1049
1067
  private sampleProcessingSesssions;
1068
+ /**
1069
+ * Dedupe the per-fragment diagnostics to once per rendition stretch — one gate per warning, so a
1070
+ * rendition tripping both reports both. See the warn sites in the moq-data handler.
1071
+ */
1072
+ private readonly unbackedSamplesWarned;
1073
+ private readonly unextractableSamplesWarned;
1050
1074
  private sizes;
1051
1075
  private isSuspended;
1052
1076
  private disconnectTimeout;
package/player.js CHANGED
@@ -1,4 +1,4 @@
1
1
  import { t as e } from "./C2-H3s2r.js";
2
- import "./BMftV7tq.js";
3
- import { t } from "./Dv_XIgKC.js";
2
+ import "./hzC7OGw_.js";
3
+ import { t } from "./C4UNurgu.js";
4
4
  export { t as registerComponents, e as registerDebugComponents };
package/react.d.ts CHANGED
@@ -918,6 +918,24 @@ interface SyncModuleStatistics {
918
918
  * Measures how far off sync the playback typically is, regardless of direction.
919
919
  */
920
920
  averageDrift: number;
921
+ /**
922
+ * Whether the video stream **currently arriving** presents frames out of decode order. Reported
923
+ * from SyncModule rather than the playback modules because it sits upstream of both on every ingest
924
+ * route, so one detector covers MSE and WebCodecs alike and the readout comes from the same
925
+ * observation that gates timeshift.
926
+ *
927
+ * Not the same as *whether timeshift is currently suppressed* — stated as a rule rather than a list
928
+ * of cases, because an earlier version of this comment enumerated them and was incomplete. This is
929
+ * {@link BFrameTracker}'s state, which clears whenever the stream identity changes (rendition or
930
+ * channel) or {@link reset} runs; the gate above it is a session-sticky latch that never clears. Any
931
+ * of those therefore leaves this false — until the detector re-latches a fragment or two later —
932
+ * while timeshift stays suppressed.
933
+ *
934
+ * Both scopes are deliberate: this answers "does the stream in front of us reorder", which is what
935
+ * is useful when watching a ladder, and the gate needs the opposite bias. Do not read either as the
936
+ * other.
937
+ */
938
+ videoHasBFrames: boolean;
921
939
  }
922
940
  interface VideoPlayerStatistics {
923
941
  renderedFrameCount: number;
@@ -1049,6 +1067,12 @@ declare class Vindral extends Emitter<PublicVindralEvents> {
1049
1067
  private userAgentInformation;
1050
1068
  private encryptedMediaExtensions;
1051
1069
  private sampleProcessingSesssions;
1070
+ /**
1071
+ * Dedupe the per-fragment diagnostics to once per rendition stretch — one gate per warning, so a
1072
+ * rendition tripping both reports both. See the warn sites in the moq-data handler.
1073
+ */
1074
+ private readonly unbackedSamplesWarned;
1075
+ private readonly unextractableSamplesWarned;
1052
1076
  private sizes;
1053
1077
  private isSuspended;
1054
1078
  private disconnectTimeout;
@@ -1,5 +1,5 @@
1
- import "./BMftV7tq.js";
2
- import { t as e } from "./Dv_XIgKC.js";
1
+ import "./hzC7OGw_.js";
2
+ import { t as e } from "./C4UNurgu.js";
3
3
  //#region src/vindral-player-component.ts
4
4
  e();
5
5
  //#endregion