@100mslive/hms-video-store 0.15.3 → 0.15.4-alpha.1

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.
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Temporary diagnostics for cameras that report live and unmuted but deliver no frames.
3
+ * Reports what the camera, page and sender looked like at acquire and over the first seconds, and,
4
+ * when no frames arrive, tries reopening the camera without size constraints and then in portrait,
5
+ * reporting what each attempt delivered. Nothing here may throw into the SDK.
6
+ */
7
+ import AnalyticsEvent from '../../analytics/AnalyticsEvent';
8
+ export interface CameraProbeHost {
9
+ publish(event: AnalyticsEvent): void;
10
+ getNativeTrack(): MediaStreamTrack;
11
+ getSender(): RTCRtpSender | undefined;
12
+ getSinks(): HTMLVideoElement[];
13
+ getRequestedConstraints(): MediaTrackConstraints;
14
+ getState(): Record<string, unknown>;
15
+ /** true while the SDK itself is turning the camera off or recovering it */
16
+ isBusy(): boolean;
17
+ releaseCamera(): void;
18
+ installCameraTrack(track: MediaStreamTrack): Promise<void>;
19
+ restoreCamera(): Promise<void>;
20
+ }
21
+ export declare class CameraFramesProbe {
22
+ private host;
23
+ private watched?;
24
+ private timers;
25
+ private attempted;
26
+ private acquireCount;
27
+ constructor(host: CameraProbeHost);
28
+ /** Starts reporting on a newly opened camera track, replacing whatever was watched before. */
29
+ watch(track: MediaStreamTrack, reason: string): void;
30
+ stop(): void;
31
+ private send;
32
+ private snapshot;
33
+ private sample;
34
+ private run;
35
+ private isStuck;
36
+ private looksHealthy;
37
+ private isIdle;
38
+ /** Reopens the stuck camera without size constraints, then in portrait, reporting what each delivered. */
39
+ private attempt;
40
+ /** Still watching the stuck camera, video still on, the SDK not recovering it, and the page in front. */
41
+ private mayTouchCamera;
42
+ private runArms;
43
+ private tryArm;
44
+ private wait;
45
+ }
@@ -30,6 +30,8 @@ export declare class HMSLocalVideoTrack extends HMSVideoTrack {
30
30
  /** the visibilitychange handler is only attached on mobile, see the constructor */
31
31
  private recoversOnForeground;
32
32
  private permissionState?;
33
+ /** temporary diagnostics for a camera that delivers no frames */
34
+ private framesProbe?;
33
35
  /**
34
36
  * true if it's screenshare and current tab is what is being shared. Browser dependent, Chromium only
35
37
  * at the point of writing this comment.
@@ -52,6 +54,7 @@ export declare class HMSLocalVideoTrack extends HMSVideoTrack {
52
54
  */
53
55
  isPublished: boolean;
54
56
  constructor(stream: HMSLocalStream, track: MediaStreamTrack, source: string, eventBus: EventBus, settings?: HMSVideoTrackSettings, room?: Room | undefined);
57
+ private startFramesProbe;
55
58
  clone(stream: HMSLocalStream): HMSLocalVideoTrack;
56
59
  /** @internal */
57
60
  setSimulcastDefinitons(definitions: HMSSimulcastLayerDefinition[]): void;
@@ -171,6 +174,7 @@ export declare class HMSLocalVideoTrack extends HMSVideoTrack {
171
174
  * mute=true for the share the moment its track was built, and nothing ever took that back.
172
175
  */
173
176
  private trackPermissions;
177
+ private probeHost;
174
178
  private sendInterruptionAnalytics;
175
179
  /**
176
180
  * app facing interruption event, for a camera that is actually not capturing and a user who is
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.15.3",
2
+ "version": "0.15.4-alpha.1",
3
3
  "license": "MIT",
4
4
  "repository": {
5
5
  "type": "git",
@@ -72,5 +72,5 @@
72
72
  "conferencing",
73
73
  "100ms"
74
74
  ],
75
- "gitHead": "bfc26e13f1cdd7777395c1056615845a8e1f5475"
75
+ "gitHead": "55535ed95a3aea09491ff11fdd0df98ae7c99dca"
76
76
  }