@vindral/web-sdk 4.1.4 → 4.1.5-1-g7c5cacd4

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/legacy.d.ts CHANGED
@@ -18,6 +18,10 @@ export interface Channel {
18
18
  * URLs to fetch thumbnail from
19
19
  */
20
20
  thumbnailUrls: string[];
21
+ /**
22
+ * Urls for timeshift if available
23
+ */
24
+ timeshiftUrls?: string[];
21
25
  }
22
26
  interface ClientOverrides {
23
27
  maxVideoBitRate?: number;
@@ -222,6 +226,10 @@ interface MoQConnectInfo {
222
226
  telemetry?: Telemetry;
223
227
  channels: ChannelWithCatalog[];
224
228
  edges: Edge[];
229
+ timeshift: {
230
+ urls: string[];
231
+ duration: string;
232
+ };
225
233
  }
226
234
  interface VindralConnectInfo {
227
235
  logsUrl?: string;
@@ -455,6 +463,14 @@ export interface Options {
455
463
  * This can be used to provide user options to limit the video bandwidth usage.
456
464
  */
457
465
  maxVideoBitRate?: number;
466
+ /**
467
+ * Initial maximum bit rate cap applied when first connecting to a channel.
468
+ * This helps prevent buffering on initial connection by starting at a conservative bitrate.
469
+ * The client will adapt to higher bitrates as bandwidth allows if ABR is enabled.
470
+ *
471
+ * Default is 2.5 Mbps (2500000 bits per second).
472
+ */
473
+ maxInitialBitRate?: number;
458
474
  /**
459
475
  * Controls video element background behaviour while loading.
460
476
  * - If `false`, a black background will be shown.
@@ -800,6 +816,20 @@ interface IncomingDataModuleStatistics {
800
816
  */
801
817
  bytesReceived: number;
802
818
  }
819
+ interface JitterStatistics {
820
+ /** Minimum jitter in the recent window */
821
+ min: number;
822
+ /** Maximum jitter in the recent window for spike detection */
823
+ max: number;
824
+ /** Latest average jitter in ms (recent window) */
825
+ last: number;
826
+ /** Average jitter in ms (RFC 3550 style, smoothed with /16) */
827
+ average: number;
828
+ }
829
+ interface JitterModuleStatistics {
830
+ audioJitter: JitterStatistics | undefined;
831
+ videoJitter: JitterStatistics | undefined;
832
+ }
803
833
  interface MseModuleStatistics {
804
834
  quotaErrorCount: number;
805
835
  mediaSourceOpenTime: number;
@@ -823,11 +853,11 @@ interface QualityOfServiceModuleStatistics {
823
853
  */
824
854
  fatalQosCount: number;
825
855
  /**
826
- * Ratio of time being spent on different bitrates.
827
- * Example: `"timeSpentRatio": { "1160000": 0.2, "2260000": 0.8 }` shows 20% spent on 1.16 Mbps, 80% spent on 2.26 Mbps.
856
+ * Ratio of time being spent on different quality indexes. Index 0 is always the highest quality.
857
+ * Example: `"timeSpentRatio": { "0": 0.8, "1": 0.2 }` shows 80% spent on the best level, 20% on the next one.
828
858
  */
829
859
  timeSpentRatio: {
830
- [bitRate: string]: number;
860
+ [qualityIndex: string]: number;
831
861
  };
832
862
  }
833
863
  interface SyncModuleStatistics {
@@ -874,7 +904,7 @@ declare class UserAgentInformation {
874
904
  userAgent: string;
875
905
  };
876
906
  }
877
- type ModuleStatistics = AdaptivityStatistics & BufferTimeStatistics & ConnectionStatistics & ConstraintCapStatistics & DecoderStatistics & DocumentStateModulesStatistics & IncomingDataModuleStatistics & MseModuleStatistics & PlaybackModuleStatistics & QualityOfServiceModuleStatistics & RenditionsModuleStatistics & SyncModuleStatistics & TelemetryModuleStatistics & VideoPlayerStatistics;
907
+ type ModuleStatistics = AdaptivityStatistics & BufferTimeStatistics & ConnectionStatistics & ConstraintCapStatistics & DecoderStatistics & DocumentStateModulesStatistics & IncomingDataModuleStatistics & JitterModuleStatistics & MseModuleStatistics & PlaybackModuleStatistics & QualityOfServiceModuleStatistics & RenditionsModuleStatistics & SyncModuleStatistics & TelemetryModuleStatistics & VideoPlayerStatistics;
878
908
  /**
879
909
  * Contains internal statistics.
880
910
  *
@@ -924,6 +954,10 @@ export type Statistics = ModuleStatistics & ReturnType<UserAgentInformation["get
924
954
  */
925
955
  timeToFirstFrame?: number;
926
956
  iosMediaElementEnabled?: boolean;
957
+ /**
958
+ * Average bitrate for the entire session in bits/second.
959
+ */
960
+ averageBitRate?: number;
927
961
  };
928
962
  /**
929
963
  * Represents a Vindral client instance
@@ -964,7 +998,6 @@ export type Statistics = ModuleStatistics & ReturnType<UserAgentInformation["get
964
998
  export declare class Vindral extends Emitter<PublicVindralEvents> {
965
999
  #private;
966
1000
  private static MAX_POOL_SIZE;
967
- private static INITIAL_MAX_BIT_RATE;
968
1001
  private static DISCONNECT_TIMEOUT;
969
1002
  private static REMOVE_CUE_THRESHOLD;
970
1003
  /**
@@ -1440,6 +1473,10 @@ export interface VolumeState {
1440
1473
  */
1441
1474
  volume: number;
1442
1475
  }
1476
+ interface TimeShiftInfo {
1477
+ urls: string[];
1478
+ duration: string;
1479
+ }
1443
1480
  /**
1444
1481
  * The events that can be emitted from the Vindral instance
1445
1482
  */
@@ -1539,6 +1576,10 @@ export interface PublicVindralEvents {
1539
1576
  * from external sources such as OS media shortcuts or other native UI outside of the browser.
1540
1577
  */
1541
1578
  ["volume state"]: Readonly<VolumeState>;
1579
+ /**
1580
+ * Emitted when the timeshift URLs are updated.
1581
+ */
1582
+ ["timeshift info"]: Readonly<TimeShiftInfo>;
1542
1583
  ["buffer state event"]: Readonly<BufferStateEvent>;
1543
1584
  ["initialized media"]: void;
1544
1585
  }