@3dsource/angular-unreal-module 0.0.157 → 0.0.158
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/LICENSE +14 -14
- package/README.md +212 -422
- package/fesm2022/3dsource-angular-unreal-module.mjs +69 -421
- package/fesm2022/3dsource-angular-unreal-module.mjs.map +1 -1
- package/package.json +3 -4
- package/types/3dsource-angular-unreal-module.d.ts +178 -359
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@3dsource/angular-unreal-module",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.0.158",
|
|
4
|
+
"description": "Angular integration for Unreal Engine Pixel Streaming",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"3dsource",
|
|
7
7
|
"unreal",
|
|
@@ -16,8 +16,7 @@
|
|
|
16
16
|
"author": "3dsource",
|
|
17
17
|
"sideEffects": false,
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"tslib": "^2.8.1"
|
|
20
|
-
"uuid": "^14.0.1"
|
|
19
|
+
"tslib": "^2.8.1"
|
|
21
20
|
},
|
|
22
21
|
"peerDependencies": {
|
|
23
22
|
"@3dsource/source-ui-native": ">=1.0.9",
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { ElementRef, Signal, InjectionToken, DestroyRef,
|
|
2
|
+
import { ElementRef, Signal, InjectionToken, DestroyRef, PipeTransform } from '@angular/core';
|
|
3
|
+
import * as _ngrx_store from '@ngrx/store';
|
|
4
|
+
import { Store } from '@ngrx/store';
|
|
3
5
|
import * as _3dsource_angular_unreal_module from '@3dsource/angular-unreal-module';
|
|
4
6
|
import * as rxjs from 'rxjs';
|
|
5
7
|
import { Subject, Observable, Subscription, OperatorFunction } from 'rxjs';
|
|
6
|
-
import * as _ngrx_store from '@ngrx/store';
|
|
7
|
-
import { Store } from '@ngrx/store';
|
|
8
8
|
import * as _ngrx_effects from '@ngrx/effects';
|
|
9
9
|
import { Actions } from '@ngrx/effects';
|
|
10
10
|
import { IKeyCode, ImageOutputValues, Area } from '@3dsource/utils';
|
|
@@ -30,13 +30,6 @@ declare class FreezeFrameComponent {
|
|
|
30
30
|
static ɵcmp: i0.ɵɵComponentDeclaration<FreezeFrameComponent, "app-freeze-frame", never, {}, {}, never, never, true, never>;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
declare class LowBandwidthModalComponent {
|
|
34
|
-
#private;
|
|
35
|
-
close(value?: boolean): void;
|
|
36
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<LowBandwidthModalComponent, never>;
|
|
37
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<LowBandwidthModalComponent, "app-low-bandwidth-modal", never, {}, {}, never, never, true, never>;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
33
|
declare class ImageLoadingSrcComponent {
|
|
41
34
|
#private;
|
|
42
35
|
readonly isLoaderScreenVisible: i0.Signal<boolean>;
|
|
@@ -149,7 +142,7 @@ declare class VideoStatsComponent {
|
|
|
149
142
|
}>;
|
|
150
143
|
readonly videoStatus: Signal<{
|
|
151
144
|
key: string;
|
|
152
|
-
value: string | number | Record<string, string> |
|
|
145
|
+
value: string | number | Record<string, string> | {
|
|
153
146
|
local: {
|
|
154
147
|
type: string;
|
|
155
148
|
url: string;
|
|
@@ -183,6 +176,81 @@ declare class WebrtcErrorModalComponent {
|
|
|
183
176
|
static ɵcmp: i0.ɵɵComponentDeclaration<WebrtcErrorModalComponent, "app-webrtc-error-modal", never, {}, {}, never, never, true, never>;
|
|
184
177
|
}
|
|
185
178
|
|
|
179
|
+
declare const SpecialKeyCodes: {
|
|
180
|
+
BackSpace: number;
|
|
181
|
+
Shift: number;
|
|
182
|
+
Control: number;
|
|
183
|
+
Alt: number;
|
|
184
|
+
RightShift: number;
|
|
185
|
+
RightControl: number;
|
|
186
|
+
RightAlt: number;
|
|
187
|
+
};
|
|
188
|
+
declare const MouseButton: {
|
|
189
|
+
MainButton: number;
|
|
190
|
+
AuxiliaryButton: number;
|
|
191
|
+
SecondaryButton: number;
|
|
192
|
+
FourthButton: number;
|
|
193
|
+
FifthButton: number;
|
|
194
|
+
};
|
|
195
|
+
declare const MouseButtonsMask: {
|
|
196
|
+
PrimaryButton: number;
|
|
197
|
+
SecondaryButton: number;
|
|
198
|
+
AuxiliaryButton: number;
|
|
199
|
+
FourthButton: number;
|
|
200
|
+
FifthButton: number;
|
|
201
|
+
};
|
|
202
|
+
|
|
203
|
+
declare const ControlScheme: {
|
|
204
|
+
readonly LockedMouse: 0;
|
|
205
|
+
readonly HoveringMouse: 1;
|
|
206
|
+
readonly Default: 2;
|
|
207
|
+
};
|
|
208
|
+
type ControlSchemeValues = (typeof ControlScheme)[keyof typeof ControlScheme];
|
|
209
|
+
|
|
210
|
+
declare const MessageType: {
|
|
211
|
+
readonly IFrameRequest: 0;
|
|
212
|
+
readonly RequestQualityControl: 1;
|
|
213
|
+
readonly MaxFpsRequest: 2;
|
|
214
|
+
readonly AverageBitrateRequest: 3;
|
|
215
|
+
readonly StartStreaming: 4;
|
|
216
|
+
readonly StopStreaming: 5;
|
|
217
|
+
readonly LatencyTest: 6;
|
|
218
|
+
readonly RequestInitialSettings: 7;
|
|
219
|
+
readonly UIInteraction: 50;
|
|
220
|
+
readonly Command: 51;
|
|
221
|
+
readonly KeyDown: 60;
|
|
222
|
+
readonly KeyUp: 61;
|
|
223
|
+
readonly KeyPress: 62;
|
|
224
|
+
readonly MouseEnter: 70;
|
|
225
|
+
readonly MouseLeave: 71;
|
|
226
|
+
readonly MouseDown: 72;
|
|
227
|
+
readonly MouseUp: 73;
|
|
228
|
+
readonly MouseMove: 74;
|
|
229
|
+
readonly MouseWheel: 75;
|
|
230
|
+
readonly TouchStart: 80;
|
|
231
|
+
readonly TouchEnd: 81;
|
|
232
|
+
readonly TouchMove: 82;
|
|
233
|
+
};
|
|
234
|
+
type MessageTypeValues = (typeof MessageType)[keyof typeof MessageType];
|
|
235
|
+
|
|
236
|
+
declare const ToClientMessage: {
|
|
237
|
+
readonly QualityControlOwnership: 0;
|
|
238
|
+
readonly Response: 1;
|
|
239
|
+
readonly Command: 2;
|
|
240
|
+
readonly FreezeFrame: 3;
|
|
241
|
+
readonly UnfreezeFrame: 4;
|
|
242
|
+
readonly VideoEncoderAvgQP: 5;
|
|
243
|
+
readonly LatencyTest: 6;
|
|
244
|
+
readonly InitialSettings: 7;
|
|
245
|
+
readonly FileExtension: 8;
|
|
246
|
+
readonly FileMimeType: 9;
|
|
247
|
+
readonly FileContents: 10;
|
|
248
|
+
readonly TestEcho: 11;
|
|
249
|
+
readonly InputControlOwnership: 12;
|
|
250
|
+
readonly GamepadResponse: 13;
|
|
251
|
+
readonly Protocol: 255;
|
|
252
|
+
};
|
|
253
|
+
|
|
186
254
|
declare const WSCloseCode_NORMAL_CLOSURE = 3000;
|
|
187
255
|
declare const WSCloseCode_NORMAL_AFK_TIMEOUT = 3001;
|
|
188
256
|
declare const WSCloseCode_NORMAL_MANUAL_DISCONNECT = 3002;
|
|
@@ -298,123 +366,6 @@ declare global {
|
|
|
298
366
|
}
|
|
299
367
|
}
|
|
300
368
|
|
|
301
|
-
declare const SpecialKeyCodes: {
|
|
302
|
-
BackSpace: number;
|
|
303
|
-
Shift: number;
|
|
304
|
-
Control: number;
|
|
305
|
-
Alt: number;
|
|
306
|
-
RightShift: number;
|
|
307
|
-
RightControl: number;
|
|
308
|
-
RightAlt: number;
|
|
309
|
-
};
|
|
310
|
-
declare const MouseButton: {
|
|
311
|
-
MainButton: number;
|
|
312
|
-
AuxiliaryButton: number;
|
|
313
|
-
SecondaryButton: number;
|
|
314
|
-
FourthButton: number;
|
|
315
|
-
FifthButton: number;
|
|
316
|
-
};
|
|
317
|
-
declare const MouseButtonsMask: {
|
|
318
|
-
PrimaryButton: number;
|
|
319
|
-
SecondaryButton: number;
|
|
320
|
-
AuxiliaryButton: number;
|
|
321
|
-
FourthButton: number;
|
|
322
|
-
FifthButton: number;
|
|
323
|
-
};
|
|
324
|
-
|
|
325
|
-
declare const ControlScheme: {
|
|
326
|
-
readonly LockedMouse: 0;
|
|
327
|
-
readonly HoveringMouse: 1;
|
|
328
|
-
readonly Default: 2;
|
|
329
|
-
};
|
|
330
|
-
type ControlSchemeValues = (typeof ControlScheme)[keyof typeof ControlScheme];
|
|
331
|
-
|
|
332
|
-
declare const MessageType: {
|
|
333
|
-
readonly IFrameRequest: 0;
|
|
334
|
-
readonly RequestQualityControl: 1;
|
|
335
|
-
readonly MaxFpsRequest: 2;
|
|
336
|
-
readonly AverageBitrateRequest: 3;
|
|
337
|
-
readonly StartStreaming: 4;
|
|
338
|
-
readonly StopStreaming: 5;
|
|
339
|
-
readonly LatencyTest: 6;
|
|
340
|
-
readonly RequestInitialSettings: 7;
|
|
341
|
-
readonly UIInteraction: 50;
|
|
342
|
-
readonly Command: 51;
|
|
343
|
-
readonly KeyDown: 60;
|
|
344
|
-
readonly KeyUp: 61;
|
|
345
|
-
readonly KeyPress: 62;
|
|
346
|
-
readonly MouseEnter: 70;
|
|
347
|
-
readonly MouseLeave: 71;
|
|
348
|
-
readonly MouseDown: 72;
|
|
349
|
-
readonly MouseUp: 73;
|
|
350
|
-
readonly MouseMove: 74;
|
|
351
|
-
readonly MouseWheel: 75;
|
|
352
|
-
readonly TouchStart: 80;
|
|
353
|
-
readonly TouchEnd: 81;
|
|
354
|
-
readonly TouchMove: 82;
|
|
355
|
-
};
|
|
356
|
-
type MessageTypeValues = (typeof MessageType)[keyof typeof MessageType];
|
|
357
|
-
|
|
358
|
-
declare const ToClientMessage: {
|
|
359
|
-
readonly QualityControlOwnership: 0;
|
|
360
|
-
readonly Response: 1;
|
|
361
|
-
readonly Command: 2;
|
|
362
|
-
readonly FreezeFrame: 3;
|
|
363
|
-
readonly UnfreezeFrame: 4;
|
|
364
|
-
readonly VideoEncoderAvgQP: 5;
|
|
365
|
-
readonly LatencyTest: 6;
|
|
366
|
-
readonly InitialSettings: 7;
|
|
367
|
-
readonly FileExtension: 8;
|
|
368
|
-
readonly FileMimeType: 9;
|
|
369
|
-
readonly FileContents: 10;
|
|
370
|
-
readonly TestEcho: 11;
|
|
371
|
-
readonly InputControlOwnership: 12;
|
|
372
|
-
readonly GamepadResponse: 13;
|
|
373
|
-
readonly Protocol: 255;
|
|
374
|
-
};
|
|
375
|
-
|
|
376
|
-
declare const UNREAL_CONFIG: InjectionToken<UnrealInitialConfig>;
|
|
377
|
-
|
|
378
|
-
declare const InputOptions: InputProps;
|
|
379
|
-
|
|
380
|
-
/** Disconnect reasons that should trigger remote connection cleanup. */
|
|
381
|
-
declare const DESTROY_DISCONNECT_REASONS: DisconnectReasonType[];
|
|
382
|
-
|
|
383
|
-
declare const DEBOUNCE_TO_MANY_RESIZE_CALLS = 100;
|
|
384
|
-
declare const AUTO_HIGH_RESOLUTION_IDLE_MS = 5000;
|
|
385
|
-
declare const SAME_SIZE_THRESHOLD = 1.01;
|
|
386
|
-
declare const MIN_CONTAINER_SIZE = 2;
|
|
387
|
-
declare const MINIMAL_FPS = 6;
|
|
388
|
-
declare const STREAMING_VIDEO_ID = "streamingVideo";
|
|
389
|
-
declare const STREAMING_AUDIO_ID = "streamingAudio";
|
|
390
|
-
declare const FULL_HD_WIDTH = 1920;
|
|
391
|
-
declare const FULL_HD_HEIGHT = 1080;
|
|
392
|
-
declare const WS_TIMEOUT = 6000;
|
|
393
|
-
declare const POLLING_TIME = 4000;
|
|
394
|
-
declare const INNER_RETRY_LIMIT = 3;
|
|
395
|
-
declare const OUTER_RETRY_DELAY: number;
|
|
396
|
-
declare const WS_RETRY_PER_INSTANCE = 1;
|
|
397
|
-
declare const WS_OPEN_STATE = 1;
|
|
398
|
-
declare const DEFAULT_AFK_TIMEOUT_PERIOD = 15;
|
|
399
|
-
declare const DEFAULT_AFK_TIMEOUT = 300;
|
|
400
|
-
declare const DATA_CHANNEL_CONNECTION_TIMEOUT = 8000;
|
|
401
|
-
declare const SIGNALLING_PERCENT_VALUE = 56;
|
|
402
|
-
declare const SCREEN_LOCKER_CONTAINER_ID = "3dsource_start_screen";
|
|
403
|
-
declare const REGION_PING_CACHE_KEY = "3dsource:region-ping";
|
|
404
|
-
declare const REGION_PING_CACHE_TTL_MS: number;
|
|
405
|
-
declare const REGION_PING_ACCURATE_SAMPLES = 3;
|
|
406
|
-
declare const REGION_PING_WARMUP_DEADLINE_MS = 1500;
|
|
407
|
-
declare const REGION_PING_BACKGROUND_REFRESH_DELAY_MS = 5000;
|
|
408
|
-
declare const RECONNECT_CONFIG: {
|
|
409
|
-
readonly enabled: true;
|
|
410
|
-
readonly maxAttempts: 3;
|
|
411
|
-
readonly delayMs: 1000;
|
|
412
|
-
};
|
|
413
|
-
declare const UnrealStatusMessage: {
|
|
414
|
-
readonly CONNECTING_TO_SESSION: "Connecting to session.";
|
|
415
|
-
readonly STARTING_YOUR_SESSION: "Starting your session";
|
|
416
|
-
};
|
|
417
|
-
|
|
418
369
|
interface InputProps {
|
|
419
370
|
controlScheme: ControlSchemeValues;
|
|
420
371
|
suppressBrowserKeys: boolean;
|
|
@@ -895,6 +846,103 @@ type StreamTelemetryLifecycleData<K extends StreamTelemetryLifecycleEventName> =
|
|
|
895
846
|
|
|
896
847
|
type TelemetryType = 'commandSent' | 'commandStop';
|
|
897
848
|
|
|
849
|
+
interface AggregatedStat {
|
|
850
|
+
quality: Quality;
|
|
851
|
+
aggregatedStats: InboundVideoStats;
|
|
852
|
+
}
|
|
853
|
+
interface InboundVideoStats extends RTCInboundRtpStreamStats {
|
|
854
|
+
VideoEncoderQP: number;
|
|
855
|
+
runTime: number;
|
|
856
|
+
pixelRatio: number;
|
|
857
|
+
bytesReceivedStart: number;
|
|
858
|
+
framesDecodedStart: number;
|
|
859
|
+
timestampStart: number;
|
|
860
|
+
videoCodec: string;
|
|
861
|
+
avgBitrate: number;
|
|
862
|
+
avgFrameRate: number;
|
|
863
|
+
selectedPair: {
|
|
864
|
+
local: {
|
|
865
|
+
type: string;
|
|
866
|
+
url: string;
|
|
867
|
+
};
|
|
868
|
+
remote: {
|
|
869
|
+
type: string;
|
|
870
|
+
url: string;
|
|
871
|
+
};
|
|
872
|
+
} | null;
|
|
873
|
+
currentRoundTripTime: number;
|
|
874
|
+
codecs: Record<string, string>;
|
|
875
|
+
receiveToCompositeMs: number;
|
|
876
|
+
bitrate: number;
|
|
877
|
+
}
|
|
878
|
+
interface AwsInstance {
|
|
879
|
+
/**
|
|
880
|
+
* WebSocket URL for connecting to the Cirrus (polling mode) or Orchestration (direct mode).
|
|
881
|
+
*/
|
|
882
|
+
wsUrl: string | null;
|
|
883
|
+
pollingUrl: string | null;
|
|
884
|
+
instanceName: string | null;
|
|
885
|
+
/**
|
|
886
|
+
* Unique identifier for the streaming request.
|
|
887
|
+
* Coming with a new orchestration message "instanceReserved".
|
|
888
|
+
*/
|
|
889
|
+
streamRequestId?: string;
|
|
890
|
+
/**
|
|
891
|
+
* Estimated time of arrival (in seconds) for the instance to be ready.
|
|
892
|
+
* Coming with a new orchestration message "instanceReserved".
|
|
893
|
+
*/
|
|
894
|
+
eta?: number;
|
|
895
|
+
/**
|
|
896
|
+
* Progress of completion for the instance launch (0-1).
|
|
897
|
+
* Based on ETA time comes from the backend with new orchestration.
|
|
898
|
+
* If eta is not provided, this value will be undefined.
|
|
899
|
+
*/
|
|
900
|
+
progressComplete?: number;
|
|
901
|
+
message?: string;
|
|
902
|
+
}
|
|
903
|
+
|
|
904
|
+
declare const UNREAL_CONFIG: InjectionToken<UnrealInitialConfig>;
|
|
905
|
+
|
|
906
|
+
declare const InputOptions: InputProps;
|
|
907
|
+
|
|
908
|
+
/** Disconnect reasons that should trigger remote connection cleanup. */
|
|
909
|
+
declare const DESTROY_DISCONNECT_REASONS: DisconnectReasonType[];
|
|
910
|
+
|
|
911
|
+
declare const DEBOUNCE_TO_MANY_RESIZE_CALLS = 100;
|
|
912
|
+
declare const AUTO_HIGH_RESOLUTION_IDLE_MS = 5000;
|
|
913
|
+
declare const SAME_SIZE_THRESHOLD = 1.01;
|
|
914
|
+
declare const MIN_CONTAINER_SIZE = 2;
|
|
915
|
+
declare const MINIMAL_FPS = 6;
|
|
916
|
+
declare const STREAMING_VIDEO_ID = "streamingVideo";
|
|
917
|
+
declare const STREAMING_AUDIO_ID = "streamingAudio";
|
|
918
|
+
declare const FULL_HD_WIDTH = 1920;
|
|
919
|
+
declare const FULL_HD_HEIGHT = 1080;
|
|
920
|
+
declare const WS_TIMEOUT = 6000;
|
|
921
|
+
declare const POLLING_TIME = 4000;
|
|
922
|
+
declare const INNER_RETRY_LIMIT = 3;
|
|
923
|
+
declare const OUTER_RETRY_DELAY: number;
|
|
924
|
+
declare const WS_RETRY_PER_INSTANCE = 1;
|
|
925
|
+
declare const WS_OPEN_STATE = 1;
|
|
926
|
+
declare const DEFAULT_AFK_TIMEOUT_PERIOD = 15;
|
|
927
|
+
declare const DEFAULT_AFK_TIMEOUT = 300;
|
|
928
|
+
declare const DATA_CHANNEL_CONNECTION_TIMEOUT = 8000;
|
|
929
|
+
declare const SIGNALLING_PERCENT_VALUE = 56;
|
|
930
|
+
declare const SCREEN_LOCKER_CONTAINER_ID = "3dsource_start_screen";
|
|
931
|
+
declare const REGION_PING_CACHE_KEY = "3dsource:region-ping";
|
|
932
|
+
declare const REGION_PING_CACHE_TTL_MS: number;
|
|
933
|
+
declare const REGION_PING_ACCURATE_SAMPLES = 3;
|
|
934
|
+
declare const REGION_PING_WARMUP_DEADLINE_MS = 1500;
|
|
935
|
+
declare const REGION_PING_BACKGROUND_REFRESH_DELAY_MS = 5000;
|
|
936
|
+
declare const RECONNECT_CONFIG: {
|
|
937
|
+
readonly enabled: true;
|
|
938
|
+
readonly maxAttempts: 3;
|
|
939
|
+
readonly delayMs: 1000;
|
|
940
|
+
};
|
|
941
|
+
declare const UnrealStatusMessage: {
|
|
942
|
+
readonly CONNECTING_TO_SESSION: "Connecting to session.";
|
|
943
|
+
readonly STARTING_YOUR_SESSION: "Starting your session";
|
|
944
|
+
};
|
|
945
|
+
|
|
898
946
|
declare class SubService {
|
|
899
947
|
protected readonly destroyRef: DestroyRef;
|
|
900
948
|
protected readonly destroy$: Subject<void>;
|
|
@@ -1633,7 +1681,6 @@ declare class VideoService extends SubService {
|
|
|
1633
1681
|
private videoTrack$;
|
|
1634
1682
|
private VideoEncoderQP;
|
|
1635
1683
|
private aggregatedStats;
|
|
1636
|
-
kalmanFilter1D: KalmanFilter1D;
|
|
1637
1684
|
/**
|
|
1638
1685
|
* Aggregate video stats and emit it as videoStats$
|
|
1639
1686
|
*/
|
|
@@ -2207,26 +2254,6 @@ declare const getImageFromVideoStream: (takeSizeFrom?: "video" | "constant", ima
|
|
|
2207
2254
|
*/
|
|
2208
2255
|
declare function getActiveUrl(urls: string[]): Generator<string, void, unknown>;
|
|
2209
2256
|
|
|
2210
|
-
declare class KalmanFilter1D {
|
|
2211
|
-
private estimate;
|
|
2212
|
-
private uncertainty;
|
|
2213
|
-
private processNoise;
|
|
2214
|
-
private measurementNoise;
|
|
2215
|
-
/**
|
|
2216
|
-
* @param initialEstimate Initial guess of the state.
|
|
2217
|
-
* @param initialUncertainty Initial uncertainty in the guess.
|
|
2218
|
-
* @param processNoise Process variance (Q) representing model uncertainty.
|
|
2219
|
-
* @param measurementNoise Measurement variance (R) representing noise in measurements.
|
|
2220
|
-
*/
|
|
2221
|
-
constructor(initialEstimate: number, initialUncertainty: number, processNoise: number, measurementNoise: number);
|
|
2222
|
-
/**
|
|
2223
|
-
* Incorporates a new measurement and returns the updated estimate.
|
|
2224
|
-
* @param measurement The new measurement value.
|
|
2225
|
-
*/
|
|
2226
|
-
update(measurement: number): number;
|
|
2227
|
-
config(data: FilterSettings): void;
|
|
2228
|
-
}
|
|
2229
|
-
|
|
2230
2257
|
declare class LatencyTimings {
|
|
2231
2258
|
TestStartTimeMs: number | null;
|
|
2232
2259
|
UEReceiptTimeMs: number | null;
|
|
@@ -2334,214 +2361,6 @@ declare function getResizeValuesUniversal(params: {
|
|
|
2334
2361
|
*/
|
|
2335
2362
|
declare function makeEven(value: number): number;
|
|
2336
2363
|
|
|
2337
|
-
interface AggregatedStat {
|
|
2338
|
-
quality: Quality;
|
|
2339
|
-
aggregatedStats: InboundVideoStats;
|
|
2340
|
-
}
|
|
2341
|
-
interface InboundVideoStats extends RTCInboundRtpStreamStats {
|
|
2342
|
-
VideoEncoderQP: number;
|
|
2343
|
-
runTime: number;
|
|
2344
|
-
pixelRatio: number;
|
|
2345
|
-
bytesReceivedStart: number;
|
|
2346
|
-
framesDecodedStart: number;
|
|
2347
|
-
timestampStart: number;
|
|
2348
|
-
videoCodec: string;
|
|
2349
|
-
avgBitrate: number;
|
|
2350
|
-
avgFrameRate: number;
|
|
2351
|
-
selectedPair: {
|
|
2352
|
-
local: {
|
|
2353
|
-
type: string;
|
|
2354
|
-
url: string;
|
|
2355
|
-
};
|
|
2356
|
-
remote: {
|
|
2357
|
-
type: string;
|
|
2358
|
-
url: string;
|
|
2359
|
-
};
|
|
2360
|
-
} | null;
|
|
2361
|
-
currentRoundTripTime: number;
|
|
2362
|
-
codecs: Record<string, string>;
|
|
2363
|
-
receiveToCompositeMs: number;
|
|
2364
|
-
bitrate: number;
|
|
2365
|
-
kalmanBitrate: number;
|
|
2366
|
-
bitrateDrop: number;
|
|
2367
|
-
dataFlowCheckResult: DataFlowCheckResult;
|
|
2368
|
-
dataFlowBitrate: DataFlowCheckResult;
|
|
2369
|
-
}
|
|
2370
|
-
interface AwsInstance {
|
|
2371
|
-
/**
|
|
2372
|
-
* WebSocket URL for connecting to the Cirrus (polling mode) or Orchestration (direct mode).
|
|
2373
|
-
*/
|
|
2374
|
-
wsUrl: string | null;
|
|
2375
|
-
pollingUrl: string | null;
|
|
2376
|
-
instanceName: string | null;
|
|
2377
|
-
/**
|
|
2378
|
-
* Unique identifier for the streaming request.
|
|
2379
|
-
* Coming with a new orchestration message "instanceReserved".
|
|
2380
|
-
*/
|
|
2381
|
-
streamRequestId?: string;
|
|
2382
|
-
/**
|
|
2383
|
-
* Estimated time of arrival (in seconds) for the instance to be ready.
|
|
2384
|
-
* Coming with a new orchestration message "instanceReserved".
|
|
2385
|
-
*/
|
|
2386
|
-
eta?: number;
|
|
2387
|
-
/**
|
|
2388
|
-
* Progress of completion for the instance launch (0-1).
|
|
2389
|
-
* Based on ETA time comes from the backend with new orchestration.
|
|
2390
|
-
* If eta is not provided, this value will be undefined.
|
|
2391
|
-
*/
|
|
2392
|
-
progressComplete?: number;
|
|
2393
|
-
message?: string;
|
|
2394
|
-
}
|
|
2395
|
-
|
|
2396
|
-
interface DataFlowCheckResult {
|
|
2397
|
-
isDropDetected: boolean;
|
|
2398
|
-
dropPercentage: number;
|
|
2399
|
-
activeMedian: number;
|
|
2400
|
-
quality: Quality;
|
|
2401
|
-
message: string;
|
|
2402
|
-
/** Optional diagnostic snapshot — only populated on demand to avoid a
|
|
2403
|
-
* per-tick array copy on this 4 Hz hot path. */
|
|
2404
|
-
dataHistory?: number[];
|
|
2405
|
-
config: {
|
|
2406
|
-
yellowFlagThresholdPercentage: number;
|
|
2407
|
-
redFlagThresholdPercentage: number;
|
|
2408
|
-
historyBufferLength: number;
|
|
2409
|
-
splitPoint: number;
|
|
2410
|
-
};
|
|
2411
|
-
}
|
|
2412
|
-
declare class DataFlowMonitor {
|
|
2413
|
-
protected yellowFlagThresholdPercentage: number;
|
|
2414
|
-
protected redFlagThresholdPercentage: number;
|
|
2415
|
-
protected historyBufferLength: number;
|
|
2416
|
-
protected splitPoint: number;
|
|
2417
|
-
protected dataHistory: number[];
|
|
2418
|
-
/**
|
|
2419
|
-
* Initializes the DataFlowMonitor monitor.
|
|
2420
|
-
* @param yellowFlagThresholdPercentage - The percentage drop to trigger a YELLOW warning (default: 15%).
|
|
2421
|
-
* @param redFlagThresholdPercentage - The percentage drop to trigger a RED warning (default: 30%).
|
|
2422
|
-
* @param historyBufferLength - buffer length (default: 100).
|
|
2423
|
-
* @param splitPoint - The point at which to split the history buffer into two halves (default: 0.5).
|
|
2424
|
-
*/
|
|
2425
|
-
constructor(yellowFlagThresholdPercentage?: number, redFlagThresholdPercentage?: number, historyBufferLength?: number, splitPoint?: number);
|
|
2426
|
-
reset(): void;
|
|
2427
|
-
config(data: FilterSettings): void;
|
|
2428
|
-
/**
|
|
2429
|
-
* Adds a new bitrate measurement and checks for significant drops.
|
|
2430
|
-
* @param currentValue - The current bitrate in kbps.
|
|
2431
|
-
* @returns BitrateCheckResult indicating if a drop was detected.
|
|
2432
|
-
*/
|
|
2433
|
-
addValue(currentValue: number): DataFlowCheckResult;
|
|
2434
|
-
}
|
|
2435
|
-
|
|
2436
|
-
interface FilterSettings {
|
|
2437
|
-
/**
|
|
2438
|
-
* Minimum number of kilobits per second to trigger low bandwidth
|
|
2439
|
-
*/
|
|
2440
|
-
minimumBitrate: number;
|
|
2441
|
-
/**
|
|
2442
|
-
* Amount of a percentage drop to trigger a yellow warning
|
|
2443
|
-
*/
|
|
2444
|
-
yellowFlag: number;
|
|
2445
|
-
/**
|
|
2446
|
-
* Amount of a percentage drop to trigger a red warning
|
|
2447
|
-
*/
|
|
2448
|
-
redFlag: number;
|
|
2449
|
-
/**
|
|
2450
|
-
* Minimum number of frames per second to trigger low bandwidth
|
|
2451
|
-
*/
|
|
2452
|
-
minimumFps: number;
|
|
2453
|
-
/**
|
|
2454
|
-
* Time to wait before checking if we can switch to low bandwidth
|
|
2455
|
-
*/
|
|
2456
|
-
monitoringDelayTime: number;
|
|
2457
|
-
initialBitrateEstimate: number;
|
|
2458
|
-
initialErrorCovariance: number;
|
|
2459
|
-
processNoise: number;
|
|
2460
|
-
measurementNoise: number;
|
|
2461
|
-
panelOpen: boolean;
|
|
2462
|
-
}
|
|
2463
|
-
|
|
2464
|
-
declare class FilterSettingsComponent implements OnInit {
|
|
2465
|
-
private readonly storageKey;
|
|
2466
|
-
readonly defaultFilterModel: {
|
|
2467
|
-
minimumBitrate: number;
|
|
2468
|
-
yellowFlag: number;
|
|
2469
|
-
redFlag: number;
|
|
2470
|
-
minimumFps: number;
|
|
2471
|
-
monitoringDelayTime: number;
|
|
2472
|
-
initialBitrateEstimate: number;
|
|
2473
|
-
initialErrorCovariance: number;
|
|
2474
|
-
processNoise: number;
|
|
2475
|
-
measurementNoise: number;
|
|
2476
|
-
panelOpen: boolean;
|
|
2477
|
-
};
|
|
2478
|
-
settings: {
|
|
2479
|
-
minimumBitrate: number;
|
|
2480
|
-
yellowFlag: number;
|
|
2481
|
-
redFlag: number;
|
|
2482
|
-
minimumFps: number;
|
|
2483
|
-
monitoringDelayTime: number;
|
|
2484
|
-
initialBitrateEstimate: number;
|
|
2485
|
-
initialErrorCovariance: number;
|
|
2486
|
-
processNoise: number;
|
|
2487
|
-
measurementNoise: number;
|
|
2488
|
-
panelOpen: boolean;
|
|
2489
|
-
};
|
|
2490
|
-
ngOnInit(): void;
|
|
2491
|
-
togglePanel(): void;
|
|
2492
|
-
saveSettings(): void;
|
|
2493
|
-
dispatch(settings: FilterSettings): void;
|
|
2494
|
-
reset(): void;
|
|
2495
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<FilterSettingsComponent, never>;
|
|
2496
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<FilterSettingsComponent, "app-filter-settings", never, {}, {}, never, never, true, never>;
|
|
2497
|
-
}
|
|
2498
|
-
|
|
2499
|
-
declare class LowBandwidthDetectorComponent implements OnInit {
|
|
2500
|
-
#private;
|
|
2501
|
-
private readonly dialog;
|
|
2502
|
-
private readonly destroyRef;
|
|
2503
|
-
private readonly videoService;
|
|
2504
|
-
private readonly lowBandwidthState;
|
|
2505
|
-
readonly isDevMode: boolean;
|
|
2506
|
-
private readonly viewportReady$;
|
|
2507
|
-
private readonly isLowBandwidth$;
|
|
2508
|
-
private readonly lowBandwidthTrigger$;
|
|
2509
|
-
private readonly highBandwidthTrigger$;
|
|
2510
|
-
private readonly viewPortDestroyedTrigger$;
|
|
2511
|
-
private readonly aggregatedStats$;
|
|
2512
|
-
private readonly nativeQuality$;
|
|
2513
|
-
private readonly monitoringTrigger$;
|
|
2514
|
-
private readonly reTrigger$;
|
|
2515
|
-
private readonly canSwitchToLowBand$;
|
|
2516
|
-
private readonly videoQuality$;
|
|
2517
|
-
private readonly fps$;
|
|
2518
|
-
private readonly bitrateDrop$;
|
|
2519
|
-
readonly fps: i0.Signal<number>;
|
|
2520
|
-
readonly nativeQuality: i0.Signal<Quality | undefined>;
|
|
2521
|
-
readonly isLowBandwidth: i0.Signal<boolean>;
|
|
2522
|
-
readonly aggregatedStats: i0.Signal<_3dsource_angular_unreal_module.InboundVideoStats | undefined>;
|
|
2523
|
-
readonly isReducedQuality: i0.WritableSignal<boolean>;
|
|
2524
|
-
readonly isIndicatorExpanded: i0.WritableSignal<boolean>;
|
|
2525
|
-
readonly isIndicatorExpandedTrigger$: rxjs.Observable<false>;
|
|
2526
|
-
ngOnInit(): void;
|
|
2527
|
-
private trySetLowBandwidth;
|
|
2528
|
-
toggleIndicator(value: boolean): void;
|
|
2529
|
-
hideIndicatorAfterDelay(): void;
|
|
2530
|
-
openLBMDialog(): void;
|
|
2531
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<LowBandwidthDetectorComponent, never>;
|
|
2532
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<LowBandwidthDetectorComponent, "app-low-bandwidth-detector", never, {}, {}, never, never, true, never>;
|
|
2533
|
-
}
|
|
2534
|
-
|
|
2535
|
-
declare class LowBandwidthStateService {
|
|
2536
|
-
#private;
|
|
2537
|
-
readonly isLowBandwidth: i0.Signal<boolean>;
|
|
2538
|
-
readonly isLowBandwidth$: rxjs.Observable<boolean>;
|
|
2539
|
-
enterLowBandwidthMode(): void;
|
|
2540
|
-
exitLowBandwidthMode(): void;
|
|
2541
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<LowBandwidthStateService, never>;
|
|
2542
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<LowBandwidthStateService>;
|
|
2543
|
-
}
|
|
2544
|
-
|
|
2545
2364
|
declare class SafePipe implements PipeTransform {
|
|
2546
2365
|
private sanitizer;
|
|
2547
2366
|
transform(value: string, type: string): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl;
|
|
@@ -3292,5 +3111,5 @@ declare const selectUserInactivityDetected: _ngrx_store.MemoizedSelector<Record<
|
|
|
3292
3111
|
/** Used by external consumers (e.g., metabox). Do not remove. */
|
|
3293
3112
|
declare const selectIsVideoPlayingAndDataChannelConnected: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: boolean, s2: boolean) => boolean>;
|
|
3294
3113
|
|
|
3295
|
-
export { AFKService, AUTO_HIGH_RESOLUTION_IDLE_MS, AfkTimeoutModalComponent, AggregatorService, AnalyticsService, AnswerHandler, CommandTelemetryService, ConfigHandler, ConsoleExtensionsService, ControlScheme, DATA_CHANNEL_CONNECTION_TIMEOUT, DEBOUNCE_TO_MANY_RESIZE_CALLS, DEFAULT_AFK_TIMEOUT, DEFAULT_AFK_TIMEOUT_PERIOD, DESTROY_DISCONNECT_REASONS,
|
|
3296
|
-
export type { AggregatedStat, AnySignalingMessage, AwsInstance, BootstrapInfo, CandidateMessage, CloseReason, CommandInProgress, ConfigMessage, ConnectionError, ControlSchemeValues,
|
|
3114
|
+
export { AFKService, AUTO_HIGH_RESOLUTION_IDLE_MS, AfkTimeoutModalComponent, AggregatorService, AnalyticsService, AnswerHandler, CommandTelemetryService, ConfigHandler, ConsoleExtensionsService, ControlScheme, DATA_CHANNEL_CONNECTION_TIMEOUT, DEBOUNCE_TO_MANY_RESIZE_CALLS, DEFAULT_AFK_TIMEOUT, DEFAULT_AFK_TIMEOUT_PERIOD, DESTROY_DISCONNECT_REASONS, DevModeService, DisconnectReason, FULL_HD_HEIGHT, FULL_HD_WIDTH, FileHandlerService, FileReceiverService, FpsMonitorService, FreezeFrameComponent, FreezeFrameService, INNER_RETRY_LIMIT, IceCandidateHandler, ImageLoadingSrcComponent, InputOptions, InputService, InstanceReadyHandler, InstanceReservedHandler, IntroSrcComponent, LatencyTimings, LoadingProgressService, MINIMAL_FPS, MIN_CONTAINER_SIZE, MessageType, MouseButton, MouseButtonsMask, OUTER_RETRY_DELAY, OnCloseHandler, OnErrorHandler, OnMessageHandler, OnOpenHandler, OrchestrationMessageTypes, POLLING_TIME, PingHandler, PlayerCountHandler, RECONNECT_CONFIG, REGION_PING_ACCURATE_SAMPLES, REGION_PING_BACKGROUND_REFRESH_DELAY_MS, REGION_PING_CACHE_KEY, REGION_PING_CACHE_TTL_MS, REGION_PING_WARMUP_DEADLINE_MS, RegionsPingService, SAME_SIZE_THRESHOLD, SCREEN_LOCKER_CONTAINER_ID, SIGNALLING_PERCENT_VALUE, SSInfoHandler, STREAMING_AUDIO_ID, STREAMING_VIDEO_ID, SafePipe, SignallingService, SpecialKeyCodes, StatGraphComponent, StreamAdoptionService, StreamStatusTelemetryService, StreamStatusTelemetryService2, SubService, ToClientMessage, UNREAL_CONFIG, UnrealCallbackService, UnrealCommunicatorService, UnrealEffects, UnrealSceneComponent, UnrealStatusMessage, VideoService, VideoStatsComponent, WSCloseCode_CIRRUS_ABNORMAL_CLOSURE, WSCloseCode_CIRRUS_MAX_PLAYERS_ERROR, WSCloseCode_CIRRUS_PLAYER_DISCONNECTED, WSCloseCode_CIRRUS_STREAMER_KIKED_PLAYER, WSCloseCode_FORCE_CIRRUS_CLOSE, WSCloseCode_NORMAL_AFK_TIMEOUT, WSCloseCode_NORMAL_CLOSURE, WSCloseCode_NORMAL_MANUAL_DISCONNECT, WSCloseCode_UNKNOWN, WSCloseCodes, WS_OPEN_STATE, WS_RETRY_PER_INSTANCE, WS_TIMEOUT, WebRtcPlayerService, WebrtcErrorModalComponent, abortEstablishingConnection, answerSent, changeStatusMainVideoOnScene, changeStreamResolutionAction, commandCompleted, commandStarted, dataChannelConnected, dataChannelReady, decodeData, destroyRemoteConnections, destroyUnrealScene, disconnectStream, dispatchResize, dropConnection, dropDC, dropPC, floatToPercents, floatToSmoothPercents, forceResizeViewport, fromResizeObserver, getActiveUrl, getImageFromVideoStream, getResizeStudioValues, getResizeValuesUniversal, getRtcErrorMessage, iceConnectionFailed, initSignalling, instanceReady, keepMaxUntilReset, makeEven, pollingEnded, pollingStarted, provideUnrealModule, provideUnrealState, qpToQuality, reconnectPeer, reconnectPeerFailed, reconnectPeerSuccess, regionPingFetchEnd, regionPingFetchStart, regionResolved, resetAfk, resetConfig, resetDataChannelForReconnect, resetIntroSrc, resetUserInactivityTimeout, resetWarnTimeout, saveAnalyticsEvent, selectCirrusConnectionId, selectClientAndViewIds, selectCommandProgress, selectFreezeFrameCombinedDataUrl, selectFreezeFrameDataUrl, selectFreezeFrameDataUrlFromVideo, selectFreezeFrameProgressMessageFromVideo, selectIsAutostart, selectIsExistMatchUrls, selectIsFreezeFrameLoading, selectIsFullyConnected, selectIsLoaderScreenVisible, selectIsVideoPlayingAndDataChannelConnected, selectShowLoader, selectShowReconnectPopup, selectSignalingParameters, selectStreamConfig, selectTotalProgress, selectUserInactivityDetected, selectWarnTimeout, setAfkTimerCountdown, setAfkTimerHide, setAfkTimerVisible, setAwsInstance, setCirrusConnected, setCirrusDisconnected, setConfig, setEstablishingConnection, setFreezeFrame, setFreezeFrameFromVideo, setIntroImageSrc, setIntroVideoSrc, setLoadingImageSrc, setLoopBackCommandIsCompleted, setMaxFps, setOrchestrationContext, setOrchestrationMessage, setOrchestrationParameters, setOrchestrationProgress, setSignalingName, setStatusMessage, setStatusPercentSignallingServer, setStreamClientCompanyId, setStreamViewId, setUnrealPlaywrightConfig, setUserInactivityTimeout, setViewportNotReady, setViewportReady, showLoadingProgress, showResumeStreamPopup, showUnrealErrorMessage, showUserInactivityTimeoutPopup, signalingRetryAttempted, smoothTransition, startStream, streamAdopted, trackMixpanelEvent, trackTelemetryData, uint8ToBase64, unrealCommandCallback, unrealFeature, unrealReducer, updateCirrusInfo, videoAdaptedToContainer, videoStreamInitialized };
|
|
3115
|
+
export type { AggregatedStat, AnySignalingMessage, AwsInstance, BootstrapInfo, CandidateMessage, CloseReason, CommandInProgress, ConfigMessage, ConnectionError, ControlSchemeValues, DisconnectReasonType, EmittedMilestone, EventId, ForceClientDisconnect, FpsLowData, FreezeFrameMessage, InboundVideoStats, InputProps, InstanceReady, InstanceReserved, InterruptClientStream, ListStreamersMessage, MessageBase, MessageTypeValues, OrchestrationErrorMessage, OrchestrationMessageType, P2PEstablishedMessage, ParkedStream, PhaseEndedData, PhaseOverlay, PhaseParam, PingMessage, PlayerCountMessage, PollingOrchestrationMessage, Quality, QualityAnomalyData, ReceivedFile, RequestStream, ResourceBucket, ResourceTotals, SSInfo, SampleData, SelectedIceCandidatePair, SessionEndReason, SessionEndedData, SessionStartedData, SignalingData, SignalingMessageHandler, SignalingMessageMap, SignalingRetryData, SignalingRetryKind, SlowResource, StreamConfig, StreamRequestContext, StreamResolutionProps, StreamTelemetryEvent, StreamTelemetryEventMap, StreamTelemetryEventName, StreamTelemetryLifecycleData, StreamTelemetryLifecycleEventName, StreamTelemetryTrackData, StreamerListMessage, TelemetryEventEnvelope, TelemetryLifecycleEnvelope, TelemetryType, UnknownFields, UnrealCallbackDescriptor, UnrealCallbackEventMap, UnrealCallbackJson, UnrealCallbackJsonWrapped, UnrealInitialConfig, UnrealState, WSCloseCodesValues, WindowAggregate, streamPreparedForUserInteractionMessage };
|