@vindral/web-sdk 4.1.6 → 4.1.7-1-g0bc6e715
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/{BoVzlg5M.js → CUnMhSqe.js} +1 -1
- package/{D1E3hbbb.js → NssX7vGm.js} +3038 -2796
- package/{xMUHexhV.js → UjLu82Xl.js} +1 -1
- package/core.d.ts +71 -2
- package/core.js +1 -1
- package/legacy.d.ts +71 -2
- package/legacy.es.js +4056 -3814
- package/legacy.umd.js +9 -9
- package/package.json +1 -1
- package/player.d.ts +73 -4
- package/player.js +488 -479
- package/react.d.ts +73 -4
package/package.json
CHANGED
package/player.d.ts
CHANGED
|
@@ -788,12 +788,60 @@ interface QualityOfServiceModuleStatistics {
|
|
|
788
788
|
timeSpentRatio: {
|
|
789
789
|
[qualityIndex: string]: number;
|
|
790
790
|
};
|
|
791
|
+
/**
|
|
792
|
+
* Ratio of time spent buffering to total active time (0-1).
|
|
793
|
+
* Provides a normalized buffering quality metric regardless of session length.
|
|
794
|
+
* A value of 0.05 means 5% of the active session was spent buffering.
|
|
795
|
+
*/
|
|
796
|
+
bufferingRatio: number;
|
|
797
|
+
/**
|
|
798
|
+
* Number of buffering events per minute of active playback.
|
|
799
|
+
* Normalizes buffering event count for comparison across sessions of different durations.
|
|
800
|
+
*/
|
|
801
|
+
bufferingEventsPerMinute: number;
|
|
802
|
+
/**
|
|
803
|
+
* Weighted average rendition index based on time spent at each level.
|
|
804
|
+
* Lower values indicate higher quality (index 0 is the highest quality).
|
|
805
|
+
* Example: 0.3 means mostly on the best quality with some time on lower qualities.
|
|
806
|
+
*/
|
|
807
|
+
averageRenditionIndex: number;
|
|
808
|
+
/**
|
|
809
|
+
* Buffering ratio for the last minute of playback (0-1).
|
|
810
|
+
* Useful for detecting recent degradation vs overall session quality.
|
|
811
|
+
*/
|
|
812
|
+
bufferingRatioPerMinute: number;
|
|
813
|
+
/**
|
|
814
|
+
* Number of rendition level changes (upgrades + downgrades) per minute.
|
|
815
|
+
* Measures ABR stability - lower values indicate a more stable experience.
|
|
816
|
+
*/
|
|
817
|
+
renditionChangesPerMinute: number;
|
|
818
|
+
/**
|
|
819
|
+
* Average time in milliseconds spent buffering per buffering event.
|
|
820
|
+
* Helps distinguish many short buffering events from fewer long ones.
|
|
821
|
+
*/
|
|
822
|
+
timePerBufferingEvent: number;
|
|
791
823
|
}
|
|
792
824
|
interface SyncModuleStatistics {
|
|
793
825
|
drift: number | undefined;
|
|
794
|
-
|
|
795
|
-
|
|
826
|
+
seekAdjustmentCount: number;
|
|
827
|
+
timeshiftAdjustmentCount: number;
|
|
796
828
|
seekTime: number;
|
|
829
|
+
/**
|
|
830
|
+
* Total time spent seeking in milliseconds for the entire session.
|
|
831
|
+
* High values indicate frequent or slow seeks, which may impact user experience.
|
|
832
|
+
*/
|
|
833
|
+
totalSeekTime: number;
|
|
834
|
+
seekToleranceMultiplier: number;
|
|
835
|
+
currentSeekToleranceMs: number;
|
|
836
|
+
currentAheadToleranceMs: number;
|
|
837
|
+
isPlaybackRateAdjustmentEnabled: boolean;
|
|
838
|
+
playbackRate: number;
|
|
839
|
+
playbackRateAdjustmentCount: number;
|
|
840
|
+
/**
|
|
841
|
+
* Average absolute drift in milliseconds over a rolling window.
|
|
842
|
+
* Measures how far off sync the playback typically is, regardless of direction.
|
|
843
|
+
*/
|
|
844
|
+
averageDrift: number;
|
|
797
845
|
}
|
|
798
846
|
interface VideoPlayerStatistics {
|
|
799
847
|
renderedFrameCount: number;
|
|
@@ -879,6 +927,22 @@ type Statistics = ModuleStatistics & ReturnType<UserAgentInformation["getUserAge
|
|
|
879
927
|
* Average bitrate for the entire session in bits/second.
|
|
880
928
|
*/
|
|
881
929
|
averageBitRate?: number;
|
|
930
|
+
/**
|
|
931
|
+
* Number of reconnections per hour of uptime.
|
|
932
|
+
* Measures connection stability over time. Lower is better.
|
|
933
|
+
* Excludes the initial connection, so a stable session will have a value of 0.
|
|
934
|
+
*/
|
|
935
|
+
reconnectsPerHour: number;
|
|
936
|
+
/**
|
|
937
|
+
* Number of seek adjustments (seeks to catch up) per minute of active playback.
|
|
938
|
+
* High values indicate sync issues or network instability.
|
|
939
|
+
*/
|
|
940
|
+
seekAdjustmentsPerMinute: number;
|
|
941
|
+
/**
|
|
942
|
+
* Number of timeshift adjustments per minute of active playback.
|
|
943
|
+
* Relevant for timeshift-enabled streams.
|
|
944
|
+
*/
|
|
945
|
+
timeshiftAdjustmentsPerMinute: number;
|
|
882
946
|
};
|
|
883
947
|
declare class Vindral extends Emitter<PublicVindralEvents> {
|
|
884
948
|
#private;
|
|
@@ -1318,6 +1382,11 @@ interface ConnectionStatistics {
|
|
|
1318
1382
|
* Total number of connection attempts since instantiation.
|
|
1319
1383
|
*/
|
|
1320
1384
|
connectionAttemptCount: number;
|
|
1385
|
+
/**
|
|
1386
|
+
* Ratio of successful connections to total connection attempts (0-1).
|
|
1387
|
+
* A value of 1.0 means every connection attempt succeeded.
|
|
1388
|
+
*/
|
|
1389
|
+
connectionSuccessRatio: number;
|
|
1321
1390
|
connectionProtocol: "vindral_ws" | "moq" | undefined;
|
|
1322
1391
|
}
|
|
1323
1392
|
interface LanguageSwitchContext {
|
|
@@ -1651,7 +1720,7 @@ type ControllerAttributes = (typeof Controller.observedAttributes)[number];
|
|
|
1651
1720
|
export declare class Controller extends HTMLElement {
|
|
1652
1721
|
#private;
|
|
1653
1722
|
static observedAttributes: readonly [
|
|
1654
|
-
...("language" | "channels" | "buffering" | "paused" | "volume" | "muted" | "duration" | "user-interacting" | "is-casting" | "cast-available" | "cast-receiver-name" | "ui-locked" | "hide-ui-on-pause" | "is-fullscreen" | "is-fullscreen-fallback" | "rendition-levels" | "rendition-level" | "max-video-bit-rate" | "max-initial-bit-rate" | "channel-id" | "channel-group-id" | "pip-available" | "is-pip" | "airplay-available" | "is-airplaying" | "media" | "languages" | "text-tracks" | "text-track" | "needs-user-input-video" | "needs-user-input-audio" | "authentication-token" | "volume-level" | "cast" | "airplay" | "pip" | "fullscreen" | "vu-meter" | "
|
|
1723
|
+
...("language" | "channels" | "buffering" | "paused" | "volume" | "muted" | "duration" | "user-interacting" | "is-casting" | "cast-available" | "cast-receiver-name" | "ui-locked" | "hide-ui-on-pause" | "is-fullscreen" | "is-fullscreen-fallback" | "rendition-levels" | "rendition-level" | "max-video-bit-rate" | "max-initial-bit-rate" | "channel-id" | "channel-group-id" | "pip-available" | "is-pip" | "airplay-available" | "is-airplaying" | "media" | "languages" | "text-tracks" | "text-track" | "needs-user-input-video" | "needs-user-input-audio" | "authentication-token" | "volume-level" | "cast" | "airplay" | "pip" | "fullscreen" | "vu-meter" | "timeshift" | "timeshift-position" | "poster-src")[],
|
|
1655
1724
|
"url",
|
|
1656
1725
|
"edge-url",
|
|
1657
1726
|
"target-buffer-time",
|
|
@@ -1774,7 +1843,7 @@ export declare class PlayButton extends VindralButton {
|
|
|
1774
1843
|
}
|
|
1775
1844
|
export declare class Player extends HTMLElement {
|
|
1776
1845
|
#private;
|
|
1777
|
-
static observedAttributes: readonly ("title" | "advanced" | "poster" | "language" | "channels" | "buffering" | "paused" | "volume" | "muted" | "duration" | "user-interacting" | "is-casting" | "cast-available" | "cast-receiver-name" | "ui-locked" | "hide-ui-on-pause" | "is-fullscreen" | "is-fullscreen-fallback" | "rendition-levels" | "rendition-level" | "max-video-bit-rate" | "max-initial-bit-rate" | "channel-id" | "channel-group-id" | "pip-available" | "is-pip" | "airplay-available" | "is-airplaying" | "media" | "languages" | "text-tracks" | "text-track" | "needs-user-input-video" | "needs-user-input-audio" | "authentication-token" | "volume-level" | "cast" | "airplay" | "pip" | "fullscreen" | "vu-meter" | "
|
|
1846
|
+
static observedAttributes: readonly ("title" | "advanced" | "poster" | "language" | "channels" | "buffering" | "paused" | "volume" | "muted" | "duration" | "user-interacting" | "is-casting" | "cast-available" | "cast-receiver-name" | "ui-locked" | "hide-ui-on-pause" | "is-fullscreen" | "is-fullscreen-fallback" | "rendition-levels" | "rendition-level" | "max-video-bit-rate" | "max-initial-bit-rate" | "channel-id" | "channel-group-id" | "pip-available" | "is-pip" | "airplay-available" | "is-airplaying" | "media" | "languages" | "text-tracks" | "text-track" | "needs-user-input-video" | "needs-user-input-audio" | "authentication-token" | "volume-level" | "cast" | "airplay" | "pip" | "fullscreen" | "vu-meter" | "timeshift" | "timeshift-position" | "poster-src" | "url" | "offline" | "edge-url" | "target-buffer-time" | "cast-receiver-id" | "cast-background" | "log-level" | "max-size" | "min-buffer-time" | "max-buffer-time" | "max-audio-bit-rate" | "burst-enabled" | "mse-enabled" | "mse-opus-enabled" | "ios-background-play-enabled" | "ios-wake-lock-enabled" | "ios-media-element-enabled" | "abr-enabled" | "size-based-resolution-cap-enabled" | "telemetry-enabled" | "video-codecs" | "drm-headers" | "drm-queryparams" | "drm-widevine-video-robustness" | "drm-widevine-audio-robustness" | "drm-playready-video-robustness" | "drm-playready-audio-robustness" | "webtransport-enabled" | "reconnect-retries" | "auto-instance-enabled" | "refresh-poster-enabled" | "stream-poll-enabled")[];
|
|
1778
1847
|
constructor();
|
|
1779
1848
|
connectedCallback(): void;
|
|
1780
1849
|
disconnectedCallback(): void;
|