@3dsource/angular-unreal-module 0.0.143-dev.1 → 0.0.143-dev.6
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 +370 -370
- package/fesm2022/3dsource-angular-unreal-module.mjs +275 -141
- package/fesm2022/3dsource-angular-unreal-module.mjs.map +1 -1
- package/js/region-ping-prefetch.js +1 -0
- package/package.json +1 -1
- package/types/3dsource-angular-unreal-module.d.ts +45 -26
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(()=>{"use strict";const o="3dsource:region-ping",u="https://datacenter.3dsource.com/regions/";class a{constructor(e){this.max=Math.max(1,e),this.count=0,this.queue=[]}acquire(){return this.count<this.max?(this.count++,Promise.resolve()):new Promise(e=>this.queue.push(e))}release(){this.count--;const e=this.queue.shift();e&&(this.count++,e())}}class l{constructor(){const e=document.currentScript||(()=>{const n=document.getElementsByTagName("script");return n[n.length-1]})(),t=e&&e.dataset||{},r=window.REGION_PING_CONFIG||{};this.regionsPingUrl=r.regionsPingUrl||t.regionsUrl||u,this.config={accurate_samples:this.numberOr(r.accurateSamples,t.accurateSamples,3),ping_timeout:this.numberOr(r.pingTimeout,t.pingTimeout,2e3),warmup_deadline:this.numberOr(r.warmupDeadline,t.warmupDeadline,1500),max_parallel_requests:this.numberOr(r.maxParallel,t.maxParallel,10),bust_cache:this.boolOr(r.bustCache,t.bustCache,!0)}}run(){this.regionsPingUrl&&(this.readFreshCache()||this.prefetch().catch(()=>{}))}prefetch(){return fetch(this.regionsPingUrl,{credentials:"omit"}).then(e=>e.json()).then(e=>{const t=e&&e.regions||[],r=e&&e.timeout||this.config.ping_timeout;return this.warmUpAll(t,r).then(()=>this.measureAll(t,r))}).then(e=>{e&&this.writeCache(e.region_code,e.result)})}warmUpAll(e,t){const r=new a(this.config.max_parallel_requests),n=e.map(s=>r.acquire().then(()=>this.singlePing(s.url,s.timeout||t).catch(()=>{}).finally(()=>r.release())));return Promise.race([Promise.all(n),this.delay(this.config.warmup_deadline)])}measureAll(e,t){const r=new a(this.config.max_parallel_requests),n=e.map(s=>r.acquire().then(()=>this.checkLatency(s.url,s.timeout||t)).then(i=>(r.release(),i.length>=2?{region_code:s.region_code,result:i}:null)).catch(()=>(r.release(),null)));return Promise.all(n).then(s=>this.pickByMedian(s.filter(Boolean)))}checkLatency(e,t){const r=[];let n=0;const s=()=>{if(n>=this.config.accurate_samples)return Promise.resolve(r);n++;const i=performance.now();return this.singlePing(e,t).catch(()=>{}).then(()=>(r.push(Math.round(performance.now()-i)),s()))};return s()}singlePing(e,t){const r=e.indexOf("?")!==-1?"&":"?",n=this.config.bust_cache?`${e}${r}cache_buster=${performance.now()}`:e;return this.fetchWithTimeout(n,{method:"GET",mode:"no-cors",headers:{"Cache-Control":"no-cache, no-store, must-revalidate",Pragma:"no-cache",Expires:"0"},credentials:"omit"},t)}fetchWithTimeout(e,t,r){const n=new AbortController;t.signal=n.signal;const s=setTimeout(()=>n.abort(),r);return fetch(e,t).finally(()=>clearTimeout(s))}pickByMedian(e){let t=null,r=1/0,n=1/0;for(const s of e){const i=this.median(s.result),c=Math.min(...s.result);(i<r||i===r&&c<n)&&(r=i,n=c,t=s)}return t}median(e){const t=e.slice().sort((n,s)=>n-s),r=Math.floor(t.length/2);return t.length%2?t[r]:(t[r-1]+t[r])/2}delay(e){return new Promise(t=>setTimeout(t,e))}readFreshCache(){try{const e=localStorage.getItem(o);if(!e)return null;const t=JSON.parse(e);return!t||typeof t.region_code!="string"||typeof t.ts!="number"||Date.now()-t.ts>=2592e6?null:t}catch{return null}}writeCache(e,t){try{localStorage.setItem(o,JSON.stringify({region_code:e,result:t,ts:Date.now()}))}catch{}}numberOr(e,t,r){for(const n of[e,t]){const s=Number(n);if(n!=null&&n!==""&&!Number.isNaN(s))return s}return r}boolOr(e,t,r){for(const n of[e,t]){if(typeof n=="boolean")return n;if(n==="true")return!0;if(n==="false")return!1}return r}}new l().run()})();
|
package/package.json
CHANGED
|
@@ -93,8 +93,6 @@ declare class UnrealSceneComponent {
|
|
|
93
93
|
private readonly maxResolution;
|
|
94
94
|
private readonly commandsSender;
|
|
95
95
|
private readonly videoService;
|
|
96
|
-
private readonly webRtcPlayerService;
|
|
97
|
-
private readonly signallingService;
|
|
98
96
|
private readonly destroyRef;
|
|
99
97
|
private readonly unrealConfig;
|
|
100
98
|
private autoHighResolution;
|
|
@@ -364,6 +362,11 @@ declare const DEFAULT_AFK_TIMEOUT = 300;
|
|
|
364
362
|
declare const DATA_CHANNEL_CONNECTION_TIMEOUT = 8000;
|
|
365
363
|
declare const SIGNALLING_PERCENT_VALUE = 56;
|
|
366
364
|
declare const SCREEN_LOCKER_CONTAINER_ID = "3dsource_start_screen";
|
|
365
|
+
declare const REGION_PING_CACHE_KEY = "3dsource:region-ping";
|
|
366
|
+
declare const REGION_PING_CACHE_TTL_MS: number;
|
|
367
|
+
declare const REGION_PING_ACCURATE_SAMPLES = 3;
|
|
368
|
+
declare const REGION_PING_WARMUP_DEADLINE_MS = 1500;
|
|
369
|
+
declare const REGION_PING_BACKGROUND_REFRESH_DELAY_MS = 5000;
|
|
367
370
|
declare const DEFAULT_RECONNECT_ENABLED = true;
|
|
368
371
|
declare const DEFAULT_RECONNECT_MAX_ATTEMPTS = 3;
|
|
369
372
|
declare const DEFAULT_RECONNECT_DELAY_MS = 1000;
|
|
@@ -894,6 +897,40 @@ declare class RegionsPingService {
|
|
|
894
897
|
};
|
|
895
898
|
constructor();
|
|
896
899
|
getFastest(regionListUrl?: string): node_modules_rxjs_dist_types.Observable<string | undefined>;
|
|
900
|
+
/**
|
|
901
|
+
* Read the prefetched winner from `localStorage`, returning it only if the
|
|
902
|
+
* entry is well-formed and still within {@link REGION_PING_CACHE_TTL_MS}.
|
|
903
|
+
* All access is guarded — `localStorage` can throw (private mode, disabled
|
|
904
|
+
* storage) or be absent (non-browser).
|
|
905
|
+
*/
|
|
906
|
+
private readCachedWinner;
|
|
907
|
+
private writeCachedWinner;
|
|
908
|
+
/**
|
|
909
|
+
* Accurate, OFF-critical-path refresh of the region cache. Mirrors the
|
|
910
|
+
* prefetch script: warm up every region in parallel (barrier), then measure
|
|
911
|
+
* {@link REGION_PING_ACCURATE_SAMPLES} probes each and pick the lowest
|
|
912
|
+
* MEDIAN RTT (tie-break: min). Writes the winner to `localStorage` ONLY — it
|
|
913
|
+
* does NOT dispatch `regionResolved` or touch current-session state, since
|
|
914
|
+
* the connection is already established on a region; this just improves the
|
|
915
|
+
* pick for the NEXT connection.
|
|
916
|
+
*
|
|
917
|
+
* Invoked from an effect a few seconds after the data channel is ready (see
|
|
918
|
+
* `REGION_PING_BACKGROUND_REFRESH_DELAY_MS`), so it never competes with the
|
|
919
|
+
* connection handshake. Aborts with the injector via `destroyController`.
|
|
920
|
+
*/
|
|
921
|
+
refreshCacheInBackground(regionListUrl?: string): node_modules_rxjs_dist_types.Observable<{
|
|
922
|
+
region_code: string;
|
|
923
|
+
result: number[];
|
|
924
|
+
} | null>;
|
|
925
|
+
private measureAccurate;
|
|
926
|
+
/**
|
|
927
|
+
* Phase 1 of the accurate measure: one throwaway probe to every region in
|
|
928
|
+
* parallel to pay the DNS/TCP/TLS cold-start. Resolves once all settle OR
|
|
929
|
+
* the warm-up deadline elapses, whichever is first.
|
|
930
|
+
*/
|
|
931
|
+
private warmUpAll;
|
|
932
|
+
private pickByMedian;
|
|
933
|
+
private median;
|
|
897
934
|
getPingResult(providers: ProvidersData): node_modules_rxjs_dist_types.Observable<{
|
|
898
935
|
region_code: string;
|
|
899
936
|
result: number[];
|
|
@@ -2127,29 +2164,6 @@ declare class SafePipe implements PipeTransform {
|
|
|
2127
2164
|
static ɵpipe: i0.ɵɵPipeDeclaration<SafePipe, "safe", true>;
|
|
2128
2165
|
}
|
|
2129
2166
|
|
|
2130
|
-
/**
|
|
2131
|
-
* Registers the Unreal NgRx feature state. Call this ONCE at the application
|
|
2132
|
-
* root.
|
|
2133
|
-
*
|
|
2134
|
-
* The streaming services are `providedIn: 'root'` singletons that hold
|
|
2135
|
-
* long-lived store subscriptions, so the feature state must live for the whole
|
|
2136
|
-
* app lifetime — registering it per-route would tear the slice down on
|
|
2137
|
-
* navigation and leave those singletons selecting from missing state.
|
|
2138
|
-
*/
|
|
2139
|
-
declare function provideUnrealState(): node_modules__angular_core_types__chrome_dev_tools_performance_chunk.EnvironmentProviders;
|
|
2140
|
-
/**
|
|
2141
|
-
* Registers the Unreal effects and boots the streaming engine. Call this at
|
|
2142
|
-
* each lazy 3D route (configurator stream/manager, viewer, studio, …).
|
|
2143
|
-
*
|
|
2144
|
-
* The engine services are `providedIn: 'root'` singletons: navigating between
|
|
2145
|
-
* 3D routes reuses one live instance instead of re-instantiating WebRTC /
|
|
2146
|
-
* signalling / input listeners (which have no teardown). Their code is still
|
|
2147
|
-
* tree-shaken into the lazy route chunk because only these lazy routes import
|
|
2148
|
-
* it — so it stays out of the initial bundle.
|
|
2149
|
-
*
|
|
2150
|
-
* Requires {@link provideUnrealState} and the `UNREAL_CONFIG` value to be
|
|
2151
|
-
* provided at the app root.
|
|
2152
|
-
*/
|
|
2153
2167
|
declare function provideUnrealModule(): node_modules__angular_core_types__chrome_dev_tools_performance_chunk.EnvironmentProviders;
|
|
2154
2168
|
|
|
2155
2169
|
/**
|
|
@@ -2528,6 +2542,7 @@ declare class UnrealEffects {
|
|
|
2528
2542
|
private readonly webRtcPlayerService;
|
|
2529
2543
|
private readonly commandsSender;
|
|
2530
2544
|
private readonly commandTelemetryService;
|
|
2545
|
+
private readonly regionsPingService;
|
|
2531
2546
|
private readonly signallingService;
|
|
2532
2547
|
private readonly videoService;
|
|
2533
2548
|
private readonly unrealCallbackService;
|
|
@@ -2537,6 +2552,10 @@ declare class UnrealEffects {
|
|
|
2537
2552
|
destroyConnections$: node_modules_rxjs_dist_types.Observable<{
|
|
2538
2553
|
reason: _3dsource_angular_unreal_module.DisconnectReasonType;
|
|
2539
2554
|
} & node_modules__ngrx_store_types_ngrx_store.Action<string>> & node_modules__ngrx_effects_types_ngrx_effects.CreateEffectMetadata;
|
|
2555
|
+
refreshRegionCache$: node_modules_rxjs_dist_types.Observable<{
|
|
2556
|
+
region_code: string;
|
|
2557
|
+
result: number[];
|
|
2558
|
+
} | null> & node_modules__ngrx_effects_types_ngrx_effects.CreateEffectMetadata;
|
|
2540
2559
|
abortEstablishingConnection$: node_modules_rxjs_dist_types.Observable<node_modules__ngrx_store_types_ngrx_store.Action<string>> & node_modules__ngrx_effects_types_ngrx_effects.CreateEffectMetadata;
|
|
2541
2560
|
resetAfk$: node_modules_rxjs_dist_types.Observable<node_modules__ngrx_store_types_ngrx_store.Action<string>> & node_modules__ngrx_effects_types_ngrx_effects.CreateEffectMetadata;
|
|
2542
2561
|
iframeMessaging$: node_modules_rxjs_dist_types.Observable<string | null> & node_modules__ngrx_effects_types_ngrx_effects.CreateEffectMetadata;
|
|
@@ -2801,5 +2820,5 @@ declare const selectUserInactivityDetected: node_modules__ngrx_store_types_ngrx_
|
|
|
2801
2820
|
/** Used by external consumers (e.g., metabox). Do not remove. */
|
|
2802
2821
|
declare const selectIsVideoPlayingAndDataChannelConnected: node_modules__ngrx_store_types_ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: boolean, s2: boolean) => boolean>;
|
|
2803
2822
|
|
|
2804
|
-
export { AFKService, AUTO_HIGH_RESOLUTION_IDLE_MS, AfkTimeoutModalComponent, AggregatorService, AnalyticsService, AnswerHandler, CONSOLE_COMMAND_DISABLE_MESSAGES, CONSOLE_COMMAND_ENABLE_MESSAGES, CONSOLE_COMMAND_PIXEL_QUALITY, CommandTelemetryService, 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, INNER_RETRY_LIMIT, IceCandidateHandler, ImageLoadingSrcComponent, InputOptions, InputService, InstanceReadyHandler, InstanceReservedHandler, IntroSrcComponent, KalmanFilter1D, LatencyTimings, LoadingProgressService, LowBandwidthDetectorComponent, LowBandwidthModalComponent, MINIMAL_FPS, MIN_CONTAINER_SIZE, MessageType, MouseButton, MouseButtonsMask, OUTER_RETRY_DELAY, 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_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,
|
|
2823
|
+
export { AFKService, AUTO_HIGH_RESOLUTION_IDLE_MS, AfkTimeoutModalComponent, AggregatorService, AnalyticsService, AnswerHandler, CONSOLE_COMMAND_DISABLE_MESSAGES, CONSOLE_COMMAND_ENABLE_MESSAGES, CONSOLE_COMMAND_PIXEL_QUALITY, CommandTelemetryService, 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, INNER_RETRY_LIMIT, IceCandidateHandler, ImageLoadingSrcComponent, InputOptions, InputService, InstanceReadyHandler, InstanceReservedHandler, IntroSrcComponent, KalmanFilter1D, LatencyTimings, LoadingProgressService, LowBandwidthDetectorComponent, LowBandwidthModalComponent, MINIMAL_FPS, MIN_CONTAINER_SIZE, MessageType, MouseButton, MouseButtonsMask, OUTER_RETRY_DELAY, OnCloseHandler, OnErrorHandler, OnMessageHandler, OnOpenHandler, OrchestrationMessageTypes, POLLING_TIME, PingHandler, PlayerCountHandler, 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, 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, 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, trackMixpanelEvent, trackTelemetryData, uint8ToBase64, unrealCommandCallback, unrealFeature, unrealReducer, updateCirrusInfo, videoAdaptedToContainer, videoStreamInitialized };
|
|
2805
2824
|
export type { AggregatedStat, AnySignalingMessage, AwsInstance, CandidateMessage, CloseReason, CommandInProgress, ConfigMessage, ConnectionError, ControlSchemeValues, DataFlowCheckResult, DisconnectReasonType, EmittedMilestone, EventId, 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, UnrealInitialConfig, UnrealState, WSCloseCodesValues, streamPreparedForUserInteractionMessage };
|