@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/README.md CHANGED
@@ -46,6 +46,12 @@ Install @vindral/web-sdk using `npm`:
46
46
  npm install --save @vindral/web-sdk
47
47
  ```
48
48
 
49
+ or `pnpm`:
50
+
51
+ ```bash
52
+ pnpm install --save @vindral/web-sdk
53
+ ```
54
+
49
55
  or `yarn`:
50
56
 
51
57
  ```bash
package/api-client.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;
@@ -150,6 +154,10 @@ interface MoQConnectInfo {
150
154
  telemetry?: Telemetry;
151
155
  channels: ChannelWithCatalog[];
152
156
  edges: Edge[];
157
+ timeshift: {
158
+ urls: string[];
159
+ duration: string;
160
+ };
153
161
  }
154
162
  interface VindralConnectInfo {
155
163
  logsUrl?: string;
package/api-client.js CHANGED
@@ -1,4 +1,4 @@
1
- import { A as o } from "./Bs3ZbgIy.js";
1
+ import { A as o } from "./CPEMXA01.js";
2
2
  export {
3
3
  o as ApiClient
4
4
  };
package/cast-sender.d.ts CHANGED
@@ -245,6 +245,14 @@ interface Options {
245
245
  * This can be used to provide user options to limit the video bandwidth usage.
246
246
  */
247
247
  maxVideoBitRate?: number;
248
+ /**
249
+ * Initial maximum bit rate cap applied when first connecting to a channel.
250
+ * This helps prevent buffering on initial connection by starting at a conservative bitrate.
251
+ * The client will adapt to higher bitrates as bandwidth allows if ABR is enabled.
252
+ *
253
+ * Default is 2.5 Mbps (2500000 bits per second).
254
+ */
255
+ maxInitialBitRate?: number;
248
256
  /**
249
257
  * Controls video element background behaviour while loading.
250
258
  * - If `false`, a black background will be shown.
package/core.d.ts CHANGED
@@ -15,6 +15,10 @@ interface Channel {
15
15
  * URLs to fetch thumbnail from
16
16
  */
17
17
  thumbnailUrls: string[];
18
+ /**
19
+ * Urls for timeshift if available
20
+ */
21
+ timeshiftUrls?: string[];
18
22
  }
19
23
  interface ClientOverrides {
20
24
  maxVideoBitRate?: number;
@@ -219,6 +223,10 @@ interface MoQConnectInfo {
219
223
  telemetry?: Telemetry;
220
224
  channels: ChannelWithCatalog[];
221
225
  edges: Edge[];
226
+ timeshift: {
227
+ urls: string[];
228
+ duration: string;
229
+ };
222
230
  }
223
231
  interface VindralConnectInfo {
224
232
  logsUrl?: string;
@@ -452,6 +460,14 @@ export interface Options {
452
460
  * This can be used to provide user options to limit the video bandwidth usage.
453
461
  */
454
462
  maxVideoBitRate?: number;
463
+ /**
464
+ * Initial maximum bit rate cap applied when first connecting to a channel.
465
+ * This helps prevent buffering on initial connection by starting at a conservative bitrate.
466
+ * The client will adapt to higher bitrates as bandwidth allows if ABR is enabled.
467
+ *
468
+ * Default is 2.5 Mbps (2500000 bits per second).
469
+ */
470
+ maxInitialBitRate?: number;
455
471
  /**
456
472
  * Controls video element background behaviour while loading.
457
473
  * - If `false`, a black background will be shown.
@@ -785,6 +801,20 @@ interface IncomingDataModuleStatistics {
785
801
  */
786
802
  bytesReceived: number;
787
803
  }
804
+ interface JitterStatistics {
805
+ /** Minimum jitter in the recent window */
806
+ min: number;
807
+ /** Maximum jitter in the recent window for spike detection */
808
+ max: number;
809
+ /** Latest average jitter in ms (recent window) */
810
+ last: number;
811
+ /** Average jitter in ms (RFC 3550 style, smoothed with /16) */
812
+ average: number;
813
+ }
814
+ interface JitterModuleStatistics {
815
+ audioJitter: JitterStatistics | undefined;
816
+ videoJitter: JitterStatistics | undefined;
817
+ }
788
818
  interface MseModuleStatistics {
789
819
  quotaErrorCount: number;
790
820
  mediaSourceOpenTime: number;
@@ -808,11 +838,11 @@ interface QualityOfServiceModuleStatistics {
808
838
  */
809
839
  fatalQosCount: number;
810
840
  /**
811
- * Ratio of time being spent on different bitrates.
812
- * Example: `"timeSpentRatio": { "1160000": 0.2, "2260000": 0.8 }` shows 20% spent on 1.16 Mbps, 80% spent on 2.26 Mbps.
841
+ * Ratio of time being spent on different quality indexes. Index 0 is always the highest quality.
842
+ * Example: `"timeSpentRatio": { "0": 0.8, "1": 0.2 }` shows 80% spent on the best level, 20% on the next one.
813
843
  */
814
844
  timeSpentRatio: {
815
- [bitRate: string]: number;
845
+ [qualityIndex: string]: number;
816
846
  };
817
847
  }
818
848
  interface SyncModuleStatistics {
@@ -859,7 +889,7 @@ declare class UserAgentInformation {
859
889
  userAgent: string;
860
890
  };
861
891
  }
862
- type ModuleStatistics = AdaptivityStatistics & BufferTimeStatistics & ConnectionStatistics & ConstraintCapStatistics & DecoderStatistics & DocumentStateModulesStatistics & IncomingDataModuleStatistics & MseModuleStatistics & PlaybackModuleStatistics & QualityOfServiceModuleStatistics & RenditionsModuleStatistics & SyncModuleStatistics & TelemetryModuleStatistics & VideoPlayerStatistics;
892
+ type ModuleStatistics = AdaptivityStatistics & BufferTimeStatistics & ConnectionStatistics & ConstraintCapStatistics & DecoderStatistics & DocumentStateModulesStatistics & IncomingDataModuleStatistics & JitterModuleStatistics & MseModuleStatistics & PlaybackModuleStatistics & QualityOfServiceModuleStatistics & RenditionsModuleStatistics & SyncModuleStatistics & TelemetryModuleStatistics & VideoPlayerStatistics;
863
893
  /**
864
894
  * Contains internal statistics.
865
895
  *
@@ -909,6 +939,10 @@ export type Statistics = ModuleStatistics & ReturnType<UserAgentInformation["get
909
939
  */
910
940
  timeToFirstFrame?: number;
911
941
  iosMediaElementEnabled?: boolean;
942
+ /**
943
+ * Average bitrate for the entire session in bits/second.
944
+ */
945
+ averageBitRate?: number;
912
946
  };
913
947
  /**
914
948
  * Represents a Vindral client instance
@@ -949,7 +983,6 @@ export type Statistics = ModuleStatistics & ReturnType<UserAgentInformation["get
949
983
  export declare class Vindral extends Emitter<PublicVindralEvents> {
950
984
  #private;
951
985
  private static MAX_POOL_SIZE;
952
- private static INITIAL_MAX_BIT_RATE;
953
986
  private static DISCONNECT_TIMEOUT;
954
987
  private static REMOVE_CUE_THRESHOLD;
955
988
  /**
@@ -1425,6 +1458,10 @@ export interface VolumeState {
1425
1458
  */
1426
1459
  volume: number;
1427
1460
  }
1461
+ interface TimeShiftInfo {
1462
+ urls: string[];
1463
+ duration: string;
1464
+ }
1428
1465
  /**
1429
1466
  * The events that can be emitted from the Vindral instance
1430
1467
  */
@@ -1524,6 +1561,10 @@ export interface PublicVindralEvents {
1524
1561
  * from external sources such as OS media shortcuts or other native UI outside of the browser.
1525
1562
  */
1526
1563
  ["volume state"]: Readonly<VolumeState>;
1564
+ /**
1565
+ * Emitted when the timeshift URLs are updated.
1566
+ */
1567
+ ["timeshift info"]: Readonly<TimeShiftInfo>;
1527
1568
  ["buffer state event"]: Readonly<BufferStateEvent>;
1528
1569
  ["initialized media"]: void;
1529
1570
  }
package/core.js CHANGED
@@ -1,4 +1,4 @@
1
- import { c as C, e as I, f as _, a as O, C as D, D as T, I as a, N as A, V as s, g as r } from "./DTm3XZjU.js";
1
+ import { c as C, e as I, f as _, a as O, C as D, D as T, I as a, N as A, V as s, g as r } from "./iqQtms5u.js";
2
2
  export {
3
3
  C as AUTHENTICATION_EXPIRED_CODE,
4
4
  I as AUTHENTICATION_FAILED_CODE,