@3dsource/angular-unreal-module 0.0.113-dev.0 → 0.0.113-dev.2
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.
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { ElementRef,
|
|
2
|
+
import { ElementRef, InjectionToken, DestroyRef, OnInit, PipeTransform } from '@angular/core';
|
|
3
|
+
import * as _3dsource_angular_unreal_module from '@3dsource/angular-unreal-module';
|
|
3
4
|
import * as rxjs from 'rxjs';
|
|
4
5
|
import { Observable, Subject, Subscription } from 'rxjs';
|
|
5
|
-
import * as _3dsource_angular_unreal_module from '@3dsource/angular-unreal-module';
|
|
6
6
|
import * as _ngrx_store from '@ngrx/store';
|
|
7
7
|
import { Store } from '@ngrx/store';
|
|
8
8
|
import * as _ngrx_effects from '@ngrx/effects';
|
|
@@ -41,7 +41,7 @@ declare class ImageLoadingSrcComponent {
|
|
|
41
41
|
#private;
|
|
42
42
|
readonly isLoaderScreenVisible: i0.Signal<boolean>;
|
|
43
43
|
readonly imageLoadingSrc: i0.Signal<string>;
|
|
44
|
-
|
|
44
|
+
loadingImageError(): void;
|
|
45
45
|
static ɵfac: i0.ɵɵFactoryDeclaration<ImageLoadingSrcComponent, never>;
|
|
46
46
|
static ɵcmp: i0.ɵɵComponentDeclaration<ImageLoadingSrcComponent, "app-image-loading-src", never, {}, {}, never, never, true, never>;
|
|
47
47
|
}
|
|
@@ -72,33 +72,30 @@ declare class StatGraphComponent {
|
|
|
72
72
|
|
|
73
73
|
declare class UnrealSceneComponent {
|
|
74
74
|
#private;
|
|
75
|
-
readonly isStudio: i0.InputSignal<boolean>;
|
|
76
75
|
readonly useContainerAsSizeProvider: i0.InputSignal<boolean>;
|
|
77
|
-
readonly
|
|
78
|
-
|
|
79
|
-
height: number;
|
|
80
|
-
}>;
|
|
81
|
-
studioResolutionValues: rxjs.Observable<{
|
|
76
|
+
readonly isStudio: i0.InputSignal<boolean>;
|
|
77
|
+
readonly resolutionSize: i0.InputSignal<{
|
|
82
78
|
width: number;
|
|
83
79
|
height: number;
|
|
84
80
|
}>;
|
|
81
|
+
readonly changeMouseOverScene: i0.OutputEmitterRef<boolean>;
|
|
85
82
|
readonly videoElement: i0.Signal<ElementRef<HTMLDivElement> | undefined>;
|
|
86
|
-
|
|
83
|
+
private readonly resolutionValues$;
|
|
87
84
|
private width;
|
|
88
85
|
private height;
|
|
89
86
|
private readonly actions$;
|
|
90
|
-
private isExistMatchUrls;
|
|
87
|
+
private readonly isExistMatchUrls;
|
|
91
88
|
readonly isDevMode: boolean;
|
|
92
|
-
private isFreezeFrameLoading;
|
|
89
|
+
private readonly isFreezeFrameLoading;
|
|
93
90
|
private readonly maxResolution;
|
|
94
|
-
private commandsSender;
|
|
95
|
-
private videoService;
|
|
96
|
-
private
|
|
97
|
-
private destroyRef;
|
|
91
|
+
private readonly commandsSender;
|
|
92
|
+
private readonly videoService;
|
|
93
|
+
private readonly destroyRef;
|
|
98
94
|
private get resizeValues();
|
|
99
95
|
private get pixelRatio();
|
|
100
96
|
onMouseOver(): void;
|
|
101
97
|
onMouseOut(): void;
|
|
98
|
+
onContextMenu(event: Event): void;
|
|
102
99
|
constructor();
|
|
103
100
|
private listenResizeValues;
|
|
104
101
|
private adaptVideo;
|
|
@@ -106,7 +103,7 @@ declare class UnrealSceneComponent {
|
|
|
106
103
|
private getResizeStudioValues;
|
|
107
104
|
private sendResize;
|
|
108
105
|
static ɵfac: i0.ɵɵFactoryDeclaration<UnrealSceneComponent, never>;
|
|
109
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<UnrealSceneComponent, "app-unreal-scene", never, { "
|
|
106
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UnrealSceneComponent, "app-unreal-scene", never, { "useContainerAsSizeProvider": { "alias": "useContainerAsSizeProvider"; "required": false; "isSignal": true; }; "isStudio": { "alias": "isStudio"; "required": false; "isSignal": true; }; "resolutionSize": { "alias": "resolutionSize"; "required": false; "isSignal": true; }; }, { "changeMouseOverScene": "changeMouseOverScene"; }, never, ["app-pdf", "app-show-case"], true, never>;
|
|
110
107
|
}
|
|
111
108
|
|
|
112
109
|
declare class IntroSrcComponent {
|
|
@@ -116,8 +113,8 @@ declare class IntroSrcComponent {
|
|
|
116
113
|
protected videoIntroSrc: i0.Signal<string | null>;
|
|
117
114
|
private viewportReady;
|
|
118
115
|
constructor();
|
|
116
|
+
loadingImageError(): void;
|
|
119
117
|
private createVideo;
|
|
120
|
-
imageError(): void;
|
|
121
118
|
static ɵfac: i0.ɵɵFactoryDeclaration<IntroSrcComponent, never>;
|
|
122
119
|
static ɵcmp: i0.ɵɵComponentDeclaration<IntroSrcComponent, "app-intro-src", never, {}, {}, never, never, true, never>;
|
|
123
120
|
}
|
|
@@ -129,12 +126,12 @@ interface GraphListItem {
|
|
|
129
126
|
value: number;
|
|
130
127
|
}>;
|
|
131
128
|
}
|
|
132
|
-
declare class VideoStatsComponent
|
|
129
|
+
declare class VideoStatsComponent {
|
|
133
130
|
readonly collapsed: i0.WritableSignal<boolean>;
|
|
134
|
-
private store;
|
|
135
|
-
private videoService;
|
|
136
|
-
private isDevMode;
|
|
137
|
-
private obs$;
|
|
131
|
+
private readonly store;
|
|
132
|
+
private readonly videoService;
|
|
133
|
+
private readonly isDevMode;
|
|
134
|
+
private readonly obs$;
|
|
138
135
|
readonly viewportReady: i0.Signal<boolean>;
|
|
139
136
|
readonly ssData: i0.Signal<string>;
|
|
140
137
|
readonly fpsTick: i0.Signal<{
|
|
@@ -165,18 +162,15 @@ declare class VideoStatsComponent implements OnInit {
|
|
|
165
162
|
};
|
|
166
163
|
} | null | undefined;
|
|
167
164
|
}[] | undefined>;
|
|
168
|
-
fields: string[];
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
private
|
|
172
|
-
|
|
173
|
-
private trigger$;
|
|
165
|
+
readonly fields: string[];
|
|
166
|
+
private readonly elementsToShow;
|
|
167
|
+
private readonly idKey;
|
|
168
|
+
private readonly graphListItems;
|
|
169
|
+
readonly graphList: i0.Signal<GraphListItem[]>;
|
|
174
170
|
constructor();
|
|
175
|
-
ngOnInit(): void;
|
|
176
|
-
updateGraph(): void;
|
|
177
171
|
toggle(): void;
|
|
178
172
|
toggleGraph($event: MouseEvent, el: string, value?: unknown): void;
|
|
179
|
-
private
|
|
173
|
+
private restoreFromStorage;
|
|
180
174
|
private writeFields;
|
|
181
175
|
static ɵfac: i0.ɵɵFactoryDeclaration<VideoStatsComponent, never>;
|
|
182
176
|
static ɵcmp: i0.ɵɵComponentDeclaration<VideoStatsComponent, "app-video-stats", never, {}, {}, never, never, true, never>;
|
|
@@ -185,8 +179,8 @@ declare class VideoStatsComponent implements OnInit {
|
|
|
185
179
|
declare class WebrtcErrorModalComponent {
|
|
186
180
|
#private;
|
|
187
181
|
readonly isCirrusConnected: i0.Signal<boolean>;
|
|
188
|
-
close(): void;
|
|
189
182
|
closeModalWithCirrusDisconnect(): void;
|
|
183
|
+
private close;
|
|
190
184
|
static ɵfac: i0.ɵɵFactoryDeclaration<WebrtcErrorModalComponent, never>;
|
|
191
185
|
static ɵcmp: i0.ɵɵComponentDeclaration<WebrtcErrorModalComponent, "app-webrtc-error-modal", never, {}, {}, never, never, true, never>;
|
|
192
186
|
}
|
|
@@ -346,8 +340,10 @@ declare const DESTROY_DISCONNECT_REASONS: DisconnectReasonType[];
|
|
|
346
340
|
|
|
347
341
|
declare const DEBOUNCE_TO_MANY_RESIZE_CALLS = 100;
|
|
348
342
|
declare const SAME_SIZE_THRESHOLD = 1.01;
|
|
343
|
+
declare const MIN_CONTAINER_SIZE = 2;
|
|
349
344
|
declare const MINIMAL_FPS = 6;
|
|
350
345
|
declare const STREAMING_VIDEO_ID = "streamingVideo";
|
|
346
|
+
declare const STREAMING_AUDIO_ID = "streamingAudio";
|
|
351
347
|
declare const CONSOLE_COMMAND_ENABLE_MESSAGES = "EnableAllScreenMessages";
|
|
352
348
|
declare const CONSOLE_COMMAND_DISABLE_MESSAGES = "DisableAllScreenMessages";
|
|
353
349
|
declare const CONSOLE_COMMAND_PIXEL_QUALITY = "PixelStreaming.FreezeFrameQuality 95";
|
|
@@ -598,10 +594,10 @@ type TelemetryType = 'commandSent' | 'commandStop';
|
|
|
598
594
|
declare class SubService {
|
|
599
595
|
protected readonly destroyRef: DestroyRef;
|
|
600
596
|
protected readonly destroy$: Subject<void>;
|
|
601
|
-
actions$: Actions<any>;
|
|
602
|
-
store: Store<any>;
|
|
597
|
+
protected readonly actions$: Actions<any>;
|
|
598
|
+
protected readonly store: Store<any>;
|
|
603
599
|
disconnect$: rxjs.Observable<false>;
|
|
604
|
-
|
|
600
|
+
constructor();
|
|
605
601
|
}
|
|
606
602
|
|
|
607
603
|
declare class AFKService extends SubService {
|
|
@@ -610,11 +606,11 @@ declare class AFKService extends SubService {
|
|
|
610
606
|
private countdown;
|
|
611
607
|
private countdownTimer;
|
|
612
608
|
private readonly warnTimeout;
|
|
609
|
+
private readonly isAfkTimerVisible;
|
|
613
610
|
private readonly isViewportReady;
|
|
614
611
|
private readonly unrealConfig;
|
|
615
612
|
/** Ticks every time warnTimeout changes or resetAfk action fires */
|
|
616
613
|
private readonly afkResetTrigger;
|
|
617
|
-
/** Ticks when cirrus disconnects */
|
|
618
614
|
private readonly disconnected;
|
|
619
615
|
constructor();
|
|
620
616
|
private hideOverlay;
|
|
@@ -639,6 +635,14 @@ declare class AFKService extends SubService {
|
|
|
639
635
|
static ɵprov: i0.ɵɵInjectableDeclaration<AFKService>;
|
|
640
636
|
}
|
|
641
637
|
|
|
638
|
+
declare class LoadingProgressService {
|
|
639
|
+
#private;
|
|
640
|
+
readonly loaderVisible: i0.Signal<boolean>;
|
|
641
|
+
readonly percents: i0.Signal<number | undefined>;
|
|
642
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LoadingProgressService, never>;
|
|
643
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<LoadingProgressService>;
|
|
644
|
+
}
|
|
645
|
+
|
|
642
646
|
declare class AggregatorService extends SubService {
|
|
643
647
|
private readonly selectStreamConfig;
|
|
644
648
|
private readonly videoService;
|
|
@@ -655,7 +659,6 @@ declare class AggregatorService extends SubService {
|
|
|
655
659
|
protected listenWebRTC(): void;
|
|
656
660
|
protected initialize(): void;
|
|
657
661
|
private addResponseEventListener;
|
|
658
|
-
private showOnScreenKeyboard;
|
|
659
662
|
private removeLoadScreen;
|
|
660
663
|
private startListenCallbacks;
|
|
661
664
|
private showMessageFromUnreal;
|
|
@@ -767,6 +770,10 @@ declare class ConsoleExtensionsService extends SubService {
|
|
|
767
770
|
|
|
768
771
|
declare class DevModeService {
|
|
769
772
|
get isDevMode(): boolean;
|
|
773
|
+
/**
|
|
774
|
+
* Called from the browser console to toggle dev mode at runtime.
|
|
775
|
+
* @preserve
|
|
776
|
+
*/
|
|
770
777
|
setDevMode(value: boolean): void;
|
|
771
778
|
static ɵfac: i0.ɵɵFactoryDeclaration<DevModeService, never>;
|
|
772
779
|
static ɵprov: i0.ɵɵInjectableDeclaration<DevModeService>;
|
|
@@ -790,9 +797,9 @@ declare class FreezeFrameService extends SubService {
|
|
|
790
797
|
}
|
|
791
798
|
|
|
792
799
|
declare class InputService extends SubService {
|
|
793
|
-
private commandsSender;
|
|
794
|
-
private isDevMode;
|
|
795
|
-
private videoService;
|
|
800
|
+
private readonly commandsSender;
|
|
801
|
+
private readonly isDevMode;
|
|
802
|
+
private readonly videoService;
|
|
796
803
|
private readonly unrealConfig;
|
|
797
804
|
readonly defaultKeys: (17 | 37 | 38 | 39 | 40 | 46 | 65 | 68 | 83 | 87 | 107 | 109 | 187 | 189)[];
|
|
798
805
|
private availableKeys;
|
|
@@ -801,10 +808,10 @@ declare class InputService extends SubService {
|
|
|
801
808
|
private deactivatedVideoTrigger$;
|
|
802
809
|
private normalizeAndQuantizeUnsigned;
|
|
803
810
|
private normalizeAndQuantizeSigned;
|
|
804
|
-
videoBoundingRect
|
|
805
|
-
fingerIds
|
|
806
|
-
maxByteValue
|
|
807
|
-
fingers
|
|
811
|
+
private videoBoundingRect;
|
|
812
|
+
private fingerIds;
|
|
813
|
+
private maxByteValue;
|
|
814
|
+
private fingers;
|
|
808
815
|
private offsetParams;
|
|
809
816
|
constructor();
|
|
810
817
|
protected init(): void;
|
|
@@ -914,7 +921,7 @@ declare class SignallingService extends SubService {
|
|
|
914
921
|
*
|
|
915
922
|
* 1. **Telemetry** — Starts a `getSignaling` span for end-to-end timing.
|
|
916
923
|
* 2. **Candidate URL selection** — A stateful generator (`urlGen`) is created
|
|
917
|
-
* from `urlsPool`. Each resubscription (e.g
|
|
924
|
+
* from `urlsPool`. Each resubscription (e.g., via `retry`) advances to the next URL.
|
|
918
925
|
* 3. **Short-circuit for WS URLs** — If the picked candidate already matches
|
|
919
926
|
* `ws://` or `wss://`, emit `{ wsUrl, pollingUrl: null, instanceName: null }`
|
|
920
927
|
* immediately and complete (no HTTP request).
|
|
@@ -926,7 +933,7 @@ declare class SignallingService extends SubService {
|
|
|
926
933
|
* while the request is in flight are **ignored** until completion, preventing overlap.
|
|
927
934
|
* 6. **Per-attempt timeout** — `timeout(WS_TIMEOUT)` caps how long we wait for a response.
|
|
928
935
|
* On timeout, the attempt errors and the outer `retry` schedules the next URL.
|
|
929
|
-
* 7. **Response validation
|
|
936
|
+
* 7. **Response validation and progress reporting** — A `filter`:
|
|
930
937
|
* - Calls `TelemetryStop('getSignaling', { ...data, multi: true })` on receipt.
|
|
931
938
|
* - If `data.signallingServer === ''` or `data.error`:
|
|
932
939
|
* shows a status message, optionally dispatches `setStatusPercentSignallingServer`
|
|
@@ -943,7 +950,7 @@ declare class SignallingService extends SubService {
|
|
|
943
950
|
*
|
|
944
951
|
* ### Concurrency semantics
|
|
945
952
|
*
|
|
946
|
-
* - `exhaustMap` guarantees a **single** HTTP request per attempt;
|
|
953
|
+
* - `exhaustMap` guarantees a **single** HTTP request per attempt; later
|
|
947
954
|
* `{clientId, viewId}` emissions are ignored until the current request completes.
|
|
948
955
|
*
|
|
949
956
|
* ### Telemetry semantics
|
|
@@ -977,7 +984,7 @@ declare class SignallingService extends SubService {
|
|
|
977
984
|
* @remarks
|
|
978
985
|
* - The URL generator (`urlGen`) is created **outside** `defer`, so resubscriptions
|
|
979
986
|
* advance the pool. Creating it inside `defer` would restart from the first URL each retry.
|
|
980
|
-
* - `location.protocol` is used to derive `ws` vs `wss`. If this may run in non-browser
|
|
987
|
+
* - `location.protocol` is used to derive `ws` vs. `wss`. If this may run in non-browser
|
|
981
988
|
* contexts (e.g., SSR), guard or abstract this logic.
|
|
982
989
|
* - Consider capping retries with `count` in `retry({ count, delay })` when appropriate.
|
|
983
990
|
*
|
|
@@ -1088,7 +1095,7 @@ declare class StreamStatusTelemetryService2 {
|
|
|
1088
1095
|
/**
|
|
1089
1096
|
* Whether a session has already started during the current page lifetime.
|
|
1090
1097
|
* Used to distinguish a fresh page load (bootstrap measurement is
|
|
1091
|
-
* meaningful) from a
|
|
1098
|
+
* meaningful) from a Résumé/restart (the document is already loaded,
|
|
1092
1099
|
* so "bootstrap" is a no-op). Only the first session gets the bootstrap
|
|
1093
1100
|
* phase anchored at navigation start (perf.now() === 0).
|
|
1094
1101
|
*/
|
|
@@ -1097,7 +1104,7 @@ declare class StreamStatusTelemetryService2 {
|
|
|
1097
1104
|
* Rolling snapshot of the currently selected WebRTC ICE candidate pair
|
|
1098
1105
|
* (local/remote type + url). Scanned over `videoStats$` so the stream
|
|
1099
1106
|
* *keeps* the first non-null pair even if later stats emit null — WebRTC
|
|
1100
|
-
* doesn't
|
|
1107
|
+
* doesn't unselect a pair mid-session, but the source is nullable. The
|
|
1101
1108
|
* `startWith(null)` seed makes `withLatestFrom` on this stream safe even
|
|
1102
1109
|
* before the first video stat arrives (common at data-channel-open).
|
|
1103
1110
|
*/
|
|
@@ -1106,7 +1113,7 @@ declare class StreamStatusTelemetryService2 {
|
|
|
1106
1113
|
* Correlation-matched Observable: emits once when the first `loopBack`
|
|
1107
1114
|
* command's corresponding `command completed` action fires. Built from
|
|
1108
1115
|
* the two related actions — the command-started captures the correlation
|
|
1109
|
-
* id
|
|
1116
|
+
* id; the command-completed with that id emits.
|
|
1110
1117
|
*/
|
|
1111
1118
|
private readonly loopbackReceived$;
|
|
1112
1119
|
private readonly pollingStartedEntry;
|
|
@@ -1117,7 +1124,7 @@ declare class StreamStatusTelemetryService2 {
|
|
|
1117
1124
|
/**
|
|
1118
1125
|
* Unified phase catalog — the single source of truth for everything
|
|
1119
1126
|
* this service tracks after `session_started`. Each entry is a phase;
|
|
1120
|
-
* its `milestones` array is ordered chronologically and the *last*
|
|
1127
|
+
* its `milestones` array is ordered chronologically, and the *last*
|
|
1121
1128
|
* entry is the phase closer. When that closer's observable fires, the
|
|
1122
1129
|
* service emits one generic `stream.phase_ended` wire event with every
|
|
1123
1130
|
* display field the viewer needs.
|
|
@@ -1143,7 +1150,7 @@ declare class StreamStatusTelemetryService2 {
|
|
|
1143
1150
|
* Emit the unified `stream.phase_ended` wire event for a closer. Packs
|
|
1144
1151
|
* every display field the viewer consumes — phaseNo (derived from the
|
|
1145
1152
|
* catalog index), label, color, milestones, params, overlays. Boundary
|
|
1146
|
-
* labels aren't on the wire — the viewer derives them from
|
|
1153
|
+
* labels aren't on the wire — the viewer derives them from neighbor
|
|
1147
1154
|
* phases' `label` fields.
|
|
1148
1155
|
*/
|
|
1149
1156
|
private emitPhaseEnded;
|
|
@@ -1186,10 +1193,10 @@ declare class StreamStatusTelemetryService2 {
|
|
|
1186
1193
|
}
|
|
1187
1194
|
|
|
1188
1195
|
declare class UnrealCommunicatorService {
|
|
1189
|
-
private store;
|
|
1190
|
-
private actions$;
|
|
1191
|
-
private commandTelemetryService;
|
|
1192
|
-
private webRtcPlayerService;
|
|
1196
|
+
private readonly store;
|
|
1197
|
+
private readonly actions$;
|
|
1198
|
+
private readonly commandTelemetryService;
|
|
1199
|
+
private readonly webRtcPlayerService;
|
|
1193
1200
|
private readonly unrealConfig;
|
|
1194
1201
|
private destroy$;
|
|
1195
1202
|
private cirrusConnected;
|
|
@@ -1222,6 +1229,7 @@ declare class UnrealCommunicatorService {
|
|
|
1222
1229
|
}
|
|
1223
1230
|
|
|
1224
1231
|
declare class VideoService extends SubService {
|
|
1232
|
+
private readonly isVideoPlaying;
|
|
1225
1233
|
video: HTMLVideoElement | null;
|
|
1226
1234
|
audio: HTMLAudioElement | null;
|
|
1227
1235
|
private container;
|
|
@@ -1246,6 +1254,7 @@ declare class VideoService extends SubService {
|
|
|
1246
1254
|
private generateAggregatedStatsFunction;
|
|
1247
1255
|
private onAggregatedStats;
|
|
1248
1256
|
private destroy;
|
|
1257
|
+
private changeStatusMainVideoOnScene;
|
|
1249
1258
|
private createWebRtcVideo;
|
|
1250
1259
|
private createWebRtcAudio;
|
|
1251
1260
|
private playAudio;
|
|
@@ -1257,9 +1266,9 @@ declare class WebRtcPlayerService extends SubService {
|
|
|
1257
1266
|
onDataChannelMessage$: Subject<ArrayBuffer>;
|
|
1258
1267
|
private pcClient;
|
|
1259
1268
|
private dcClient;
|
|
1260
|
-
private signallingSrv;
|
|
1261
|
-
private videoService;
|
|
1262
|
-
private commandTelemetryService;
|
|
1269
|
+
private readonly signallingSrv;
|
|
1270
|
+
private readonly videoService;
|
|
1271
|
+
private readonly commandTelemetryService;
|
|
1263
1272
|
private cfg;
|
|
1264
1273
|
private useMic;
|
|
1265
1274
|
private forceTURN;
|
|
@@ -1310,7 +1319,7 @@ declare class WebRtcPlayerService extends SubService {
|
|
|
1310
1319
|
* RFC 6184 that encodes three H.264 parameters:
|
|
1311
1320
|
* - **Profile IDC** (`XX`) — the H.264 profile.
|
|
1312
1321
|
* - **Profile IOP** (`YY`) — constraint flags that further narrow the profile.
|
|
1313
|
-
* - **Level IDC** (`ZZ`) — the level
|
|
1322
|
+
* - **Level IDC** (`ZZ`) — the level which caps resolution/framerate/bitrate.
|
|
1314
1323
|
*
|
|
1315
1324
|
* ### H.264 profiles relevant to Unreal Engine Pixel Streaming
|
|
1316
1325
|
*
|
|
@@ -1328,12 +1337,12 @@ declare class WebRtcPlayerService extends SubService {
|
|
|
1328
1337
|
* | `f4001f` | High 4:4:4 Predictive | 3.1 | Lossless capable; rare in browsers |
|
|
1329
1338
|
*
|
|
1330
1339
|
* UE Pixel Streaming defaults to Constrained Baseline (`42e01f`) or High (`6400xx`)
|
|
1331
|
-
* depending on engine version and `WebRTC.H264Profile` CVar.
|
|
1340
|
+
* depending on the engine version and `WebRTC.H264Profile` CVar.
|
|
1332
1341
|
*
|
|
1333
1342
|
* We prioritize `42e01f` because it guarantees hardware decoding on
|
|
1334
1343
|
* virtually all client devices (desktop, mobile, embedded), avoiding
|
|
1335
1344
|
* fallback to software decoding or negotiation of a higher profile
|
|
1336
|
-
* that the client GPU may not
|
|
1345
|
+
* that the client GPU may not speed up.
|
|
1337
1346
|
*/
|
|
1338
1347
|
private prioritizeH264Profile;
|
|
1339
1348
|
private mungeSDP;
|
|
@@ -1438,7 +1447,7 @@ declare class AnalyticsService extends SubService {
|
|
|
1438
1447
|
* ## How it works
|
|
1439
1448
|
*
|
|
1440
1449
|
* The service subscribes to `VideoService.videoStats$` (emitted every 250 ms)
|
|
1441
|
-
* and collects samples of FPS, bitrate, and QP (
|
|
1450
|
+
* and collects samples of FPS, bitrate, and QP (Quantization Parameter).
|
|
1442
1451
|
* Every {@link SAMPLE_WINDOW} ticks (~2 s) it averages the collected samples
|
|
1443
1452
|
* and feeds them into a set of **fuzzy-logic membership functions** that
|
|
1444
1453
|
* classify each metric into overlapping quality bands.
|
|
@@ -1447,28 +1456,28 @@ declare class AnalyticsService extends SubService {
|
|
|
1447
1456
|
*
|
|
1448
1457
|
* **1. FPS ratio** = `actualFPS / currentTargetFPS` (0..1+)
|
|
1449
1458
|
*
|
|
1450
|
-
* | Band
|
|
1459
|
+
* | Band | Range | Meaning |
|
|
1451
1460
|
* |--------|---------------------|-----------------------------------------------|
|
|
1452
|
-
* | low
|
|
1453
|
-
* |
|
|
1454
|
-
* | high
|
|
1461
|
+
* | low | ratio < 0.7 → 1.0, linear ramp 0.7..0.9 → 0 | Stream cannot keep up with the target |
|
|
1462
|
+
* | okays | triangle 0.8..1.0, peak at 0.95 | Stream roughly matches the target |
|
|
1463
|
+
* | high | ratio 0.9..1.0 → ramp, >1.0 → 1.0 | Stream meets or exceeds the target |
|
|
1455
1464
|
*
|
|
1456
1465
|
* **2. Bitrate load** = `currentBitrate / MAX_BITRATE` (0..1+)
|
|
1457
1466
|
*
|
|
1458
1467
|
* `MAX_BITRATE` = 20 Mbit/s — the reference ceiling for the encoder.
|
|
1459
1468
|
*
|
|
1460
|
-
* | Band
|
|
1469
|
+
* | Band | Range | Meaning |
|
|
1461
1470
|
* |--------|-------------------------------------------------|-----------------------------------------------|
|
|
1462
|
-
* | high
|
|
1463
|
-
* | not high | load < 0.5 → 0.0
|
|
1471
|
+
* | high | load 0.5..0.8 → ramp, >0.8 → 1.0 | Encoder is using most of the available bandwidth |
|
|
1472
|
+
* | not high | load < 0.5 → 0.0 | Bandwidth headroom is available |
|
|
1464
1473
|
*
|
|
1465
1474
|
* **3. Quality** — mapped from QP via `mapQpToQuality()` (see {@link Quality}):
|
|
1466
1475
|
*
|
|
1467
|
-
* | Quality
|
|
1476
|
+
* | Quality | QP range | Meaning |
|
|
1468
1477
|
* |----------|-----------|-------------------------------------------------|
|
|
1469
|
-
* | `lime`
|
|
1470
|
-
* | `orange` | QP 27..35 | Fair — encoder is under moderate pressure
|
|
1471
|
-
* | `red`
|
|
1478
|
+
* | `lime` | QP <= 26 | Good — encoder has enough headroom |
|
|
1479
|
+
* | `orange` | QP 27..35 | Fair — encoder is under moderate pressure |
|
|
1480
|
+
* | `red` | QP > 35 | Poor — heavy compression, visible artifacts |
|
|
1472
1481
|
*
|
|
1473
1482
|
* ### Decision rules (evaluated in priority order, first match wins)
|
|
1474
1483
|
*
|
|
@@ -1482,17 +1491,17 @@ declare class AnalyticsService extends SubService {
|
|
|
1482
1491
|
*
|
|
1483
1492
|
* ## Cooldown-based throttling
|
|
1484
1493
|
*
|
|
1485
|
-
* The service continuously evaluates fuzzy rules every sample window.
|
|
1494
|
+
* The service continuously evaluates fuzzy rules in every sample window.
|
|
1486
1495
|
* After each FPS step change it enforces a cooldown before the next
|
|
1487
1496
|
* change can be applied. The cooldown duration depends on the
|
|
1488
1497
|
* (previous decision → next decision) pair:
|
|
1489
1498
|
*
|
|
1490
|
-
* | Previous
|
|
1499
|
+
* | Previous | Next | Cooldown |
|
|
1491
1500
|
* |-----------|-----------|-----------------------------------------------------|
|
|
1492
|
-
* | decrease
|
|
1493
|
-
* | decrease
|
|
1494
|
-
* | increase
|
|
1495
|
-
* | increase
|
|
1501
|
+
* | decrease | decrease | {@link COOLDOWN_DECREASE_AFTER_DECREASE_MS} (2 s) |
|
|
1502
|
+
* | decrease | increase | {@link COOLDOWN_INCREASE_AFTER_DECREASE_MS} (10 s) |
|
|
1503
|
+
* | increase | decrease | {@link COOLDOWN_AFTER_INCREASE_MS} (2 s) |
|
|
1504
|
+
* | increase | increase | {@link COOLDOWN_AFTER_INCREASE_MS} (2 s) |
|
|
1496
1505
|
*
|
|
1497
1506
|
* This means the system reacts quickly after an increase (2 s in any
|
|
1498
1507
|
* direction) but is cautious about stepping back up after a decrease
|
|
@@ -1508,7 +1517,7 @@ declare class FpsMonitorService {
|
|
|
1508
1517
|
private videoService;
|
|
1509
1518
|
private store;
|
|
1510
1519
|
private readonly unrealConfig;
|
|
1511
|
-
/** Discrete FPS targets the controller can switch between (ascending order). Last 0 is unlimited framerate indicator*/
|
|
1520
|
+
/** Discrete FPS targets the controller can switch between (ascending order). Last 0 is an unlimited framerate indicator*/
|
|
1512
1521
|
private readonly FPS_STEPS;
|
|
1513
1522
|
/**
|
|
1514
1523
|
* Reference FPS used to compute the FPS ratio when `currentFpsTarget` is 0
|
|
@@ -1529,7 +1538,7 @@ declare class FpsMonitorService {
|
|
|
1529
1538
|
private readonly COOLDOWN_DECREASE_AFTER_DECREASE_MS;
|
|
1530
1539
|
/**
|
|
1531
1540
|
* Cooldown (ms) for an increase following a previous decrease.
|
|
1532
|
-
* The stream needs more time to
|
|
1541
|
+
* The stream needs more time to stabilize before stepping back up.
|
|
1533
1542
|
*/
|
|
1534
1543
|
private readonly COOLDOWN_INCREASE_AFTER_DECREASE_MS;
|
|
1535
1544
|
/**
|
|
@@ -1562,52 +1571,52 @@ declare class FpsMonitorService {
|
|
|
1562
1571
|
* Rules are evaluated in priority order — first match wins.
|
|
1563
1572
|
*
|
|
1564
1573
|
* Inputs:
|
|
1565
|
-
* - `fpsRatio`
|
|
1566
|
-
* - `bitrateLoad` = avgBitrate / 20 Mbit/s
|
|
1567
|
-
* - `quality`
|
|
1574
|
+
* - `fpsRatio` = avgFPS / currentTargetFPS (e.g., 45/60 = 0.75)
|
|
1575
|
+
* - `bitrateLoad` = avgBitrate / 20 Mbit/s (e.g., 12M/20M = 0.6)
|
|
1576
|
+
* - `quality` = mapQpToQuality(avgQP) → 'lime' | 'orange' | 'red'
|
|
1568
1577
|
*/
|
|
1569
1578
|
private evaluateDecision;
|
|
1570
1579
|
/**
|
|
1571
1580
|
* FPS ratio membership "low".
|
|
1572
|
-
* Input: ratio = actualFPS / targetFPS (e.g
|
|
1581
|
+
* Input: a ratio = actualFPS / targetFPS (e.g., 42/60 = 0.70).
|
|
1573
1582
|
*
|
|
1574
|
-
* ratio < 0.7
|
|
1575
|
-
* ratio 0.7..0.9 → linear ramp down (e.g
|
|
1576
|
-
* ratio > 0.9
|
|
1583
|
+
* ratio < 0.7 → 1.0 (clearly failing, e.g., 40/60)
|
|
1584
|
+
* ratio 0.7..0.9 → linear ramp down (e.g., 0.8 → 0.5)
|
|
1585
|
+
* a ratio > 0.9 → 0.0 (keeping up)
|
|
1577
1586
|
*/
|
|
1578
1587
|
private membershipFpsLow;
|
|
1579
1588
|
/**
|
|
1580
1589
|
* FPS ratio membership "ok" — triangle shape.
|
|
1581
1590
|
* Input: ratio = actualFPS / targetFPS.
|
|
1582
1591
|
*
|
|
1583
|
-
* ratio < 0.8
|
|
1584
|
-
* ratio 0.8..0.95 → ramp up, peak at 0.95 (e.g
|
|
1592
|
+
* ratio < 0.8 → 0.0
|
|
1593
|
+
* ratio 0.8..0.95 → ramp up, peak at 0.95 (e.g., 57/60)
|
|
1585
1594
|
* ratio 0.95..1.0 → ramp down
|
|
1586
|
-
* ratio > 1.0
|
|
1595
|
+
* a ratio > 1.0 → 0.0
|
|
1587
1596
|
*/
|
|
1588
1597
|
private membershipFpsOk;
|
|
1589
1598
|
/**
|
|
1590
1599
|
* FPS ratio membership "high".
|
|
1591
1600
|
* Input: ratio = actualFPS / targetFPS.
|
|
1592
1601
|
*
|
|
1593
|
-
* ratio < 0.9
|
|
1594
|
-
* ratio 0.9..1.0 → linear ramp up (e.g
|
|
1595
|
-
* ratio >= 1.0 → 1.0
|
|
1602
|
+
* ratio < 0.9 → 0.0
|
|
1603
|
+
* ratio 0.9..1.0 → linear ramp up (e.g., 0.95 → 0.5)
|
|
1604
|
+
* a ratio >= 1.0 → 1.0 (meeting or exceeding target, e.g., 60/60)
|
|
1596
1605
|
*/
|
|
1597
1606
|
private membershipFpsHigh;
|
|
1598
1607
|
/**
|
|
1599
1608
|
* Bitrate load membership "high".
|
|
1600
|
-
* Input: load = currentBitrate / MAX_BITRATE (20 Mbit/s).
|
|
1609
|
+
* Input: a load = currentBitrate / MAX_BITRATE (20 Mbit/s).
|
|
1601
1610
|
*
|
|
1602
|
-
* load < 0.5
|
|
1603
|
-
* load 0.5..0.8 → linear ramp (e.g
|
|
1604
|
-
* load > 0.8
|
|
1611
|
+
* load < 0.5 → 0.0 (below 10 Mbit/s — plenty of headroom)
|
|
1612
|
+
* load 0.5..0.8 → linear ramp (e.g., 13M/20M = 0.65 → 0.5)
|
|
1613
|
+
* load > 0.8 → 1.0 (above 16 Mbit/s — near capacity)
|
|
1605
1614
|
*/
|
|
1606
1615
|
private membershipBitrateHigh;
|
|
1607
1616
|
private upgradeFps;
|
|
1608
1617
|
/**
|
|
1609
|
-
* Get the next FPS target based on current target and decision.
|
|
1610
|
-
* Clamps to valid FPS_STEPS range.
|
|
1618
|
+
* Get the next FPS target based on the current target and decision.
|
|
1619
|
+
* Clamps to the valid FPS_STEPS range.
|
|
1611
1620
|
*/
|
|
1612
1621
|
private getNextFpsTarget;
|
|
1613
1622
|
/**
|
|
@@ -1857,21 +1866,6 @@ declare function getResizeValuesUniversal(params: {
|
|
|
1857
1866
|
maxResolution: boolean;
|
|
1858
1867
|
}): Area;
|
|
1859
1868
|
|
|
1860
|
-
declare function getResizeValuesUniversalOld(params: {
|
|
1861
|
-
pixelRatio: number;
|
|
1862
|
-
containerWidth: number;
|
|
1863
|
-
containerHeight: number;
|
|
1864
|
-
maxResolution: boolean;
|
|
1865
|
-
}): Area;
|
|
1866
|
-
declare function getResizeStudioValuesOld(params: {
|
|
1867
|
-
pixelRatio: number;
|
|
1868
|
-
containerWidth: number;
|
|
1869
|
-
containerHeight: number;
|
|
1870
|
-
studioWidth: number;
|
|
1871
|
-
studioHeight: number;
|
|
1872
|
-
maxResolution: boolean;
|
|
1873
|
-
}): Area;
|
|
1874
|
-
|
|
1875
1869
|
/**
|
|
1876
1870
|
* Rounds a number to the nearest even integer (rounding up for odd values).
|
|
1877
1871
|
*
|
|
@@ -2049,7 +2043,7 @@ declare class FilterSettingsComponent implements OnInit {
|
|
|
2049
2043
|
}
|
|
2050
2044
|
|
|
2051
2045
|
declare class LowBandwidthDetectorComponent implements OnInit {
|
|
2052
|
-
private
|
|
2046
|
+
#private;
|
|
2053
2047
|
private readonly dialog;
|
|
2054
2048
|
private readonly destroyRef;
|
|
2055
2049
|
private readonly videoService;
|
|
@@ -2121,8 +2115,8 @@ declare const commandCompleted: _ngrx_store.ActionCreator<string, (props: {
|
|
|
2121
2115
|
} & _ngrx_store.Action<string>>;
|
|
2122
2116
|
|
|
2123
2117
|
declare class CommandsEffects {
|
|
2124
|
-
private actions$;
|
|
2125
|
-
private unrealInitialConfig;
|
|
2118
|
+
private readonly actions$;
|
|
2119
|
+
private readonly unrealInitialConfig;
|
|
2126
2120
|
listenUnrealCallbackByInitSignalling$: rxjs.Observable<{
|
|
2127
2121
|
id: string;
|
|
2128
2122
|
} & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
|
|
@@ -2158,11 +2152,6 @@ interface UnrealCommandsState {
|
|
|
2158
2152
|
}
|
|
2159
2153
|
declare const commandsReducer: _ngrx_store.ActionReducer<UnrealCommandsState, _ngrx_store.Action<string>>;
|
|
2160
2154
|
|
|
2161
|
-
declare const selectCommandsInProgress: _ngrx_store.MemoizedSelector<Record<string, any>, number, (s1: {
|
|
2162
|
-
timeStamp: number;
|
|
2163
|
-
command: string;
|
|
2164
|
-
id: string;
|
|
2165
|
-
}[]) => number>;
|
|
2166
2155
|
declare const selectCommandProgress: _ngrx_store.MemoizedSelector<Record<string, any>, number, (s1: number, s2: number) => number>;
|
|
2167
2156
|
|
|
2168
2157
|
declare const trackMixpanelEvent: _ngrx_store.ActionCreator<string, (props: {
|
|
@@ -2325,9 +2314,9 @@ declare const instanceReady: _ngrx_store.ActionCreator<string, () => _ngrx_store
|
|
|
2325
2314
|
declare const regionPingFetchStart: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
|
|
2326
2315
|
/**
|
|
2327
2316
|
* Dispatched once `RegionsPingService.getProviders()` returns the region
|
|
2328
|
-
* list — i.e
|
|
2317
|
+
* list — i.e., the fetch step is done and the actual per-region ping
|
|
2329
2318
|
* sweep is about to start. Splits the region-discovery waterfall into
|
|
2330
|
-
* two legs: config fetch vs ping sweep. Observability-only.
|
|
2319
|
+
* two legs: config fetch vs. ping sweep. Observability-only.
|
|
2331
2320
|
*/
|
|
2332
2321
|
declare const regionPingFetchEnd: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
|
|
2333
2322
|
/**
|
|
@@ -2345,9 +2334,9 @@ declare const regionResolved: _ngrx_store.ActionCreator<string, (props: {
|
|
|
2345
2334
|
pingsMs: number[];
|
|
2346
2335
|
} & _ngrx_store.Action<string>>;
|
|
2347
2336
|
/**
|
|
2348
|
-
* Dispatched around the HTTP polling
|
|
2337
|
+
* Dispatched around the HTTP polling roundup inside `getAwsInstance`
|
|
2349
2338
|
* (old orchestration flow). Only fires when polling is actually used
|
|
2350
|
-
* (i.e
|
|
2339
|
+
* (i.e., signaling URL is not a direct `ws://` / `wss://` endpoint).
|
|
2351
2340
|
* Observability-only — no state change.
|
|
2352
2341
|
*/
|
|
2353
2342
|
declare const pollingStarted: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
|
|
@@ -2396,10 +2385,8 @@ declare const showUnrealErrorMessage: _ngrx_store.ActionCreator<string, (props:
|
|
|
2396
2385
|
code: number | null;
|
|
2397
2386
|
error?: string;
|
|
2398
2387
|
} & _ngrx_store.Action<string>>;
|
|
2399
|
-
declare const initSignalling: _ngrx_store.FunctionWithParametersType<[
|
|
2400
|
-
resetDisconnectionReason:
|
|
2401
|
-
} | undefined], {
|
|
2402
|
-
resetDisconnectionReason: boolean;
|
|
2388
|
+
declare const initSignalling: _ngrx_store.FunctionWithParametersType<[resetDisconnectionReason?: any], {
|
|
2389
|
+
resetDisconnectionReason: any;
|
|
2403
2390
|
} & _ngrx_store.Action<string>> & _ngrx_store.Action<string>;
|
|
2404
2391
|
declare const startStream: _ngrx_store.ActionCreator<string, (props: {
|
|
2405
2392
|
config: Partial<StreamConfig>;
|
|
@@ -2463,47 +2450,45 @@ declare const showResumeStreamPopup: _ngrx_store.ActionCreator<string, (props: {
|
|
|
2463
2450
|
}) => {
|
|
2464
2451
|
visible: boolean;
|
|
2465
2452
|
} & _ngrx_store.Action<string>>;
|
|
2466
|
-
declare const
|
|
2453
|
+
declare const showUserInactivityTimeoutPopup: _ngrx_store.ActionCreator<string, (props: {
|
|
2467
2454
|
visible: boolean;
|
|
2468
2455
|
}) => {
|
|
2469
2456
|
visible: boolean;
|
|
2470
2457
|
} & _ngrx_store.Action<string>>;
|
|
2471
|
-
declare const
|
|
2458
|
+
declare const setUserInactivityTimeout: _ngrx_store.ActionCreator<string, (props: {
|
|
2472
2459
|
timeout: number;
|
|
2473
2460
|
}) => {
|
|
2474
2461
|
timeout: number;
|
|
2475
2462
|
} & _ngrx_store.Action<string>>;
|
|
2463
|
+
declare const resetUserInactivityTimeout: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
|
|
2476
2464
|
|
|
2477
2465
|
declare class UnrealEffects {
|
|
2478
|
-
private actions$;
|
|
2479
|
-
private dialog;
|
|
2480
|
-
private http;
|
|
2481
|
-
private store;
|
|
2482
|
-
private isDevMode;
|
|
2483
|
-
private scrollStrategy;
|
|
2484
|
-
private unrealInitialConfig;
|
|
2485
|
-
private webRtcPlayerService;
|
|
2486
|
-
private commandsSender;
|
|
2466
|
+
private readonly actions$;
|
|
2467
|
+
private readonly dialog;
|
|
2468
|
+
private readonly http;
|
|
2469
|
+
private readonly store;
|
|
2470
|
+
private readonly isDevMode;
|
|
2471
|
+
private readonly scrollStrategy;
|
|
2472
|
+
private readonly unrealInitialConfig;
|
|
2473
|
+
private readonly webRtcPlayerService;
|
|
2474
|
+
private readonly commandsSender;
|
|
2487
2475
|
private readonly commandTelemetryService;
|
|
2488
|
-
private signallingService;
|
|
2489
|
-
private videoService;
|
|
2490
|
-
private unrealCallbackService;
|
|
2476
|
+
private readonly signallingService;
|
|
2477
|
+
private readonly videoService;
|
|
2478
|
+
private readonly unrealCallbackService;
|
|
2491
2479
|
private dataChannelConnectionTimeout;
|
|
2492
2480
|
private connectionCompleted$;
|
|
2493
2481
|
private reconnectConfig;
|
|
2494
|
-
disconnectReasonHandling$: rxjs.Observable<{
|
|
2495
|
-
reason: _3dsource_angular_unreal_module.DisconnectReasonType;
|
|
2496
|
-
} & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
|
|
2497
2482
|
destroyConnections$: rxjs.Observable<{
|
|
2498
2483
|
reason: _3dsource_angular_unreal_module.DisconnectReasonType;
|
|
2499
2484
|
} & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
|
|
2500
|
-
destroyRemoteConnections$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
|
|
2501
2485
|
changeStreamResolution$: rxjs.Observable<{
|
|
2502
2486
|
width: number | null;
|
|
2503
2487
|
height: number | null;
|
|
2504
2488
|
} & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
|
|
2505
2489
|
resetAfk$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
|
|
2506
2490
|
abortEstablishingConnection$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
|
|
2491
|
+
iframeMessaging$: rxjs.Observable<string | null> & _ngrx_effects.CreateEffectMetadata;
|
|
2507
2492
|
setSignalingTo100$: rxjs.Observable<{
|
|
2508
2493
|
percent: number | null;
|
|
2509
2494
|
} & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
|
|
@@ -2514,20 +2499,6 @@ declare class UnrealEffects {
|
|
|
2514
2499
|
reason: _3dsource_angular_unreal_module.DisconnectReasonType;
|
|
2515
2500
|
message: string;
|
|
2516
2501
|
} & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
|
|
2517
|
-
resetCirrusOnDestroy$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
|
|
2518
|
-
destroyConnectionAndRestart$: rxjs.Observable<{
|
|
2519
|
-
resetDisconnectionReason: boolean;
|
|
2520
|
-
} & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
|
|
2521
|
-
showUnrealError$: rxjs.Observable<{
|
|
2522
|
-
code: number | null;
|
|
2523
|
-
error?: string;
|
|
2524
|
-
} & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
|
|
2525
|
-
unrealReceiverReady$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
|
|
2526
|
-
initAppByDataChannelReady$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
|
|
2527
|
-
setViewportReadyBySetLoopBackCommandIsCompleted$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
|
|
2528
|
-
startStream$: rxjs.Observable<{
|
|
2529
|
-
resetDisconnectionReason: boolean;
|
|
2530
|
-
} & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
|
|
2531
2502
|
/**
|
|
2532
2503
|
* Effect: `forceViewportNotReady$`
|
|
2533
2504
|
*
|
|
@@ -2544,6 +2515,22 @@ declare class UnrealEffects {
|
|
|
2544
2515
|
* a visible flicker (video flashing to black).
|
|
2545
2516
|
*/
|
|
2546
2517
|
forceViewportNotReady$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
|
|
2518
|
+
resetCirrusOnDestroy$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
|
|
2519
|
+
destroyRemoteConnections$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
|
|
2520
|
+
destroyConnectionAndRestart$: rxjs.Observable<{
|
|
2521
|
+
resetDisconnectionReason: any;
|
|
2522
|
+
} & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
|
|
2523
|
+
showUnrealError$: rxjs.Observable<{
|
|
2524
|
+
code: number | null;
|
|
2525
|
+
error?: string;
|
|
2526
|
+
} & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
|
|
2527
|
+
unrealReceiverReady$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
|
|
2528
|
+
initAppByDataChannelReady$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
|
|
2529
|
+
setViewportReadyBySetLoopBackCommandIsCompleted$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
|
|
2530
|
+
startStream$: rxjs.Observable<{
|
|
2531
|
+
resetDisconnectionReason: any;
|
|
2532
|
+
} & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
|
|
2533
|
+
resetAfkOnVideoStart$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
|
|
2547
2534
|
/**
|
|
2548
2535
|
* Effect: `handleDataChannelClosed$`
|
|
2549
2536
|
*
|
|
@@ -2551,11 +2538,15 @@ declare class UnrealEffects {
|
|
|
2551
2538
|
* Only triggers if reconnection is enabled, onDataChannelClose is true,
|
|
2552
2539
|
* and the signaling WebSocket is still connected.
|
|
2553
2540
|
*/
|
|
2541
|
+
disconnectReasonHandling$: rxjs.Observable<{
|
|
2542
|
+
reason: _3dsource_angular_unreal_module.DisconnectReasonType;
|
|
2543
|
+
} & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
|
|
2554
2544
|
handleDataChannelClosed$: rxjs.Observable<{
|
|
2555
2545
|
attempt: number;
|
|
2556
2546
|
maxAttempts: number;
|
|
2557
2547
|
delay?: number;
|
|
2558
2548
|
} & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
|
|
2549
|
+
webrtcErrorModalComponent$: rxjs.Observable<false> & _ngrx_effects.CreateEffectMetadata;
|
|
2559
2550
|
/**
|
|
2560
2551
|
* Effect: `resetStateForPeerReconnect$`
|
|
2561
2552
|
*
|
|
@@ -2588,15 +2579,10 @@ declare class UnrealEffects {
|
|
|
2588
2579
|
setMaxFps$: rxjs.Observable<{
|
|
2589
2580
|
maxFps: number;
|
|
2590
2581
|
} & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
|
|
2591
|
-
webrtcErrorModalComponent$: rxjs.Observable<false> & _ngrx_effects.CreateEffectMetadata;
|
|
2592
2582
|
sendStatisticsToUnreal$: rxjs.Observable<Object> & _ngrx_effects.CreateEffectMetadata;
|
|
2593
2583
|
connectToSignaling$: rxjs.Observable<WebSocket> & _ngrx_effects.CreateEffectMetadata;
|
|
2594
|
-
|
|
2595
|
-
|
|
2596
|
-
*
|
|
2597
|
-
* Logs successful peer reconnection for telemetry.
|
|
2598
|
-
*/
|
|
2599
|
-
logPeerReconnectSuccess$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
|
|
2584
|
+
private canPeerReconnect;
|
|
2585
|
+
private postToScreenLocker;
|
|
2600
2586
|
static ɵfac: i0.ɵɵFactoryDeclaration<UnrealEffects, never>;
|
|
2601
2587
|
static ɵprov: i0.ɵɵInjectableDeclaration<UnrealEffects>;
|
|
2602
2588
|
}
|
|
@@ -2612,7 +2598,7 @@ declare const unrealFeature: {
|
|
|
2612
2598
|
selectStreamRequestContext: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.StreamRequestContext | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.StreamRequestContext | null>;
|
|
2613
2599
|
selectSsData: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.SignalingData | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.SignalingData | null>;
|
|
2614
2600
|
selectStreamConfig: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.StreamConfig, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.StreamConfig>;
|
|
2615
|
-
|
|
2601
|
+
selectUserInactivityTimeout: _ngrx_store.MemoizedSelector<Record<string, any>, number, (featureState: _3dsource_angular_unreal_module.UnrealState) => number>;
|
|
2616
2602
|
selectAwsInstance: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.AwsInstance, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.AwsInstance>;
|
|
2617
2603
|
selectIsFirstSuccessLoad: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: _3dsource_angular_unreal_module.UnrealState) => boolean>;
|
|
2618
2604
|
selectIsAfkTimerVisible: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: _3dsource_angular_unreal_module.UnrealState) => boolean>;
|
|
@@ -2647,8 +2633,7 @@ declare const unrealFeature: {
|
|
|
2647
2633
|
|
|
2648
2634
|
interface UnrealState {
|
|
2649
2635
|
streamConfig: StreamConfig;
|
|
2650
|
-
|
|
2651
|
-
afkTimeout: number;
|
|
2636
|
+
userInactivityTimeout: number;
|
|
2652
2637
|
awsInstance: AwsInstance;
|
|
2653
2638
|
isFirstSuccessLoad: boolean;
|
|
2654
2639
|
isAfkTimerVisible: boolean;
|
|
@@ -2695,8 +2680,7 @@ declare const selectWarnTimeout: _ngrx_store.MemoizedSelector<Record<string, any
|
|
|
2695
2680
|
declare const selectIsExistMatchUrls: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: string[]) => boolean>;
|
|
2696
2681
|
declare const selectIsAutostart: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: _3dsource_angular_unreal_module.StreamConfig) => boolean>;
|
|
2697
2682
|
declare const selectShowReconnectPopup: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: boolean, s2: boolean) => boolean>;
|
|
2698
|
-
declare const selectShowLoader: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: boolean, s2: boolean
|
|
2699
|
-
declare const selectIsVideoPlayingAndDataChannelConnected: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: boolean, s2: boolean) => boolean>;
|
|
2683
|
+
declare const selectShowLoader: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: boolean, s2: boolean) => boolean>;
|
|
2700
2684
|
declare const selectSignalingParameters: _ngrx_store.MemoizedSelector<Record<string, any>, string, (s1: _3dsource_angular_unreal_module.SignalingData | null, s2: _3dsource_angular_unreal_module.AwsInstance) => string>;
|
|
2701
2685
|
declare const selectClientAndViewIds: _ngrx_store.MemoizedSelector<Record<string, any>, {
|
|
2702
2686
|
clientId: string | null;
|
|
@@ -2705,12 +2689,21 @@ declare const selectClientAndViewIds: _ngrx_store.MemoizedSelector<Record<string
|
|
|
2705
2689
|
clientId: string | null;
|
|
2706
2690
|
viewId: string | null;
|
|
2707
2691
|
}>;
|
|
2708
|
-
declare const
|
|
2692
|
+
declare const selectIsFullyConnected: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: boolean, s2: boolean, s3: boolean) => boolean>;
|
|
2693
|
+
declare const selectIsLoaderScreenVisible: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: boolean) => boolean>;
|
|
2709
2694
|
declare const selectCirrusConnectionId: _ngrx_store.MemoizedSelector<Record<string, any>, string | undefined, (s1: _3dsource_angular_unreal_module.SignalingData | null) => string | undefined>;
|
|
2710
2695
|
/**
|
|
2711
|
-
* Returns Scene load progress as a float value
|
|
2696
|
+
* Returns Scene load progress as a float value between 0 and 1.
|
|
2697
|
+
*
|
|
2698
|
+
* Progress is split into two phases:
|
|
2699
|
+
* 1. **Signaling** (0 → ~56%): connection polling or orchestration progress.
|
|
2700
|
+
* Starts at 0.1%, so the bar is never visually empty while connecting.
|
|
2701
|
+
* 2. **Commands** (~56% → 100%): Unreal command progress after the data channel connects.
|
|
2702
|
+
*
|
|
2703
|
+
* The split point bumps by +1% once the WebSocket URL is known,
|
|
2704
|
+
* producing a small visual step that indicates the WS handshake succeeded.
|
|
2712
2705
|
*/
|
|
2713
2706
|
declare const selectTotalProgress: _ngrx_store.MemoizedSelector<Record<string, any>, number, (s1: number | null, s2: number, s3: _3dsource_angular_unreal_module.AwsInstance, s4: boolean) => number>;
|
|
2714
2707
|
|
|
2715
|
-
export { AFKService, AfkTimeoutModalComponent, AggregatorService, AnalyticsService, AnswerHandler, CONSOLE_COMMAND_DISABLE_MESSAGES, CONSOLE_COMMAND_ENABLE_MESSAGES, CONSOLE_COMMAND_PIXEL_QUALITY, CommandTelemetryService, CommandsEffects, ConfigHandler, ConsoleExtensionsService, ControlScheme, DATA_CHANNEL_CONNECTION_TIMEOUT, DEBOUNCE_TO_MANY_RESIZE_CALLS, DEFAULT_AFK_TIMEOUT, DEFAULT_AFK_TIMEOUT_PERIOD, DEFAULT_RECONNECT_DELAY_MS, DEFAULT_RECONNECT_ENABLED, DEFAULT_RECONNECT_MAX_ATTEMPTS, DEFAULT_RECONNECT_ON_DATACHANNEL_CLOSE, DEFAULT_RECONNECT_ON_ICE_FAILURE, DESTROY_DISCONNECT_REASONS, DataFlowMonitor, DevModeService, DisconnectReason, FULL_HD_HEIGHT, FULL_HD_WIDTH, FileHandlerService, FileReceiverService, FilterSettingsComponent, FpsMonitorService, FreezeFrameComponent, FreezeFrameService, IceCandidateHandler, ImageLoadingSrcComponent, InputOptions, InputService, InstanceReadyHandler, InstanceReservedHandler, IntroSrcComponent, KalmanFilter1D, LatencyTimings, LowBandwidthDetectorComponent, LowBandwidthModalComponent, MINIMAL_FPS, MessageType, MouseButton, MouseButtonsMask, OnCloseHandler, OnErrorHandler, OnMessageHandler, OnOpenHandler, OrchestrationMessageTypes, POLLING_TIME, PingHandler, PlayerCountHandler, RegionsPingService, SAME_SIZE_THRESHOLD, SCREEN_LOCKER_CONTAINER_ID, SIGNALLING_PERCENT_VALUE, SSInfoHandler, STREAMING_VIDEO_ID, SafePipe, SignallingService, SpecialKeyCodes, StatGraphComponent, 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_TIMEOUT, WebRtcPlayerService, WebrtcErrorModalComponent, abortEstablishingConnection, answerSent, changeStatusMainVideoOnScene, changeStreamResolutionAction, changeStreamResolutionSuccessAction, commandCompleted, commandStarted, commandsFeature, commandsReducer, dataChannelConnected, dataChannelReady, decodeData, destroyRemoteConnections, destroyUnrealScene, disconnectStream, dispatchResize, dropConnection, dropDC, dropPC, floatToSmoothPercents, forceResizeViewport, fromResizeObserver, getActiveUrl, getImageFromVideoStream, getResizeStudioValues,
|
|
2708
|
+
export { AFKService, AfkTimeoutModalComponent, AggregatorService, AnalyticsService, AnswerHandler, CONSOLE_COMMAND_DISABLE_MESSAGES, CONSOLE_COMMAND_ENABLE_MESSAGES, CONSOLE_COMMAND_PIXEL_QUALITY, CommandTelemetryService, CommandsEffects, ConfigHandler, ConsoleExtensionsService, ControlScheme, DATA_CHANNEL_CONNECTION_TIMEOUT, DEBOUNCE_TO_MANY_RESIZE_CALLS, DEFAULT_AFK_TIMEOUT, DEFAULT_AFK_TIMEOUT_PERIOD, DEFAULT_RECONNECT_DELAY_MS, DEFAULT_RECONNECT_ENABLED, DEFAULT_RECONNECT_MAX_ATTEMPTS, DEFAULT_RECONNECT_ON_DATACHANNEL_CLOSE, DEFAULT_RECONNECT_ON_ICE_FAILURE, DESTROY_DISCONNECT_REASONS, DataFlowMonitor, DevModeService, DisconnectReason, FULL_HD_HEIGHT, FULL_HD_WIDTH, FileHandlerService, FileReceiverService, FilterSettingsComponent, FpsMonitorService, FreezeFrameComponent, FreezeFrameService, IceCandidateHandler, ImageLoadingSrcComponent, InputOptions, InputService, InstanceReadyHandler, InstanceReservedHandler, IntroSrcComponent, KalmanFilter1D, LatencyTimings, LoadingProgressService, LowBandwidthDetectorComponent, LowBandwidthModalComponent, MINIMAL_FPS, MIN_CONTAINER_SIZE, MessageType, MouseButton, MouseButtonsMask, OnCloseHandler, OnErrorHandler, OnMessageHandler, OnOpenHandler, OrchestrationMessageTypes, POLLING_TIME, PingHandler, PlayerCountHandler, RegionsPingService, SAME_SIZE_THRESHOLD, SCREEN_LOCKER_CONTAINER_ID, SIGNALLING_PERCENT_VALUE, SSInfoHandler, STREAMING_AUDIO_ID, STREAMING_VIDEO_ID, SafePipe, SignallingService, SpecialKeyCodes, StatGraphComponent, 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_TIMEOUT, WebRtcPlayerService, WebrtcErrorModalComponent, abortEstablishingConnection, answerSent, changeStatusMainVideoOnScene, changeStreamResolutionAction, changeStreamResolutionSuccessAction, commandCompleted, commandStarted, commandsFeature, commandsReducer, dataChannelConnected, dataChannelReady, decodeData, destroyRemoteConnections, destroyUnrealScene, disconnectStream, dispatchResize, dropConnection, dropDC, dropPC, floatToSmoothPercents, forceResizeViewport, fromResizeObserver, getActiveUrl, getImageFromVideoStream, getResizeStudioValues, getResizeValuesUniversal, getRtcErrorMessage, iceConnectionFailed, initSignalling, instanceReady, keepMaxUntilReset, makeEven, pollingEnded, pollingStarted, provideUnrealModule, 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, selectShowLoader, selectShowReconnectPopup, selectSignalingParameters, selectStreamConfig, selectTotalProgress, 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, smoothTransition, startStream, trackMixpanelEvent, trackTelemetryData, unrealCommandCallback, unrealFeature, unrealReducer, updateCirrusInfo, videoAdaptedToContainer, videoStreamInitialized };
|
|
2716
2709
|
export type { AggregatedStat, AnySignalingMessage, AwsInstance, CandidateMessage, CloseReason, ConfigMessage, ConnectionError, ControlSchemeValues, DataFlowCheckResult, DisconnectReasonType, EmittedMilestone, ForceClientDisconnect, FreezeFrameMessage, InboundVideoStats, InputProps, InstanceReady, InstanceReserved, InterruptClientStream, ListStreamersMessage, MessageBase, MessageTypeValues, NormalizeAndQuantizeSignedValue, NormalizeAndQuantizeUnsignedValue, OrchestrationErrorMessage, OrchestrationMessageType, P2PEstablishedMessage, PhaseOverlay, PhaseParam, PingMessage, PlayerCountMessage, PollingOrchestrationMessage, Quality, ReceivedFile, ReconnectConfig, RequestStream, SSInfo, SelectedIceCandidatePair, SignalingData, SignalingMessageHandler, SignalingMessageMap, StreamConfig, StreamRequestContext, StreamResolutionProps, StreamerListMessage, TelemetryType, UnknownFields, UnquantizeAndDenormalizeUnsignedValue, UnrealCallbackDescriptor, UnrealCallbackEventMap, UnrealCallbackJson, UnrealCallbackJsonWrapped, UnrealCommandsState, UnrealInitialConfig, UnrealState, WSCloseCodesValues, streamPreparedForUserInteractionMessage };
|