@3dsource/angular-unreal-module 0.0.158 → 0.0.159-dev.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@3dsource/angular-unreal-module",
3
- "version": "0.0.158",
3
+ "version": "0.0.159-dev.0",
4
4
  "description": "Angular integration for Unreal Engine Pixel Streaming",
5
5
  "keywords": [
6
6
  "3dsource",
@@ -1687,7 +1687,23 @@ declare class VideoService extends SubService {
1687
1687
  videoStats$: rxjs.Observable<AggregatedStat>;
1688
1688
  private destroyAbort;
1689
1689
  constructor();
1690
+ /**
1691
+ * Sets (or replaces) the DOM target for the streaming `<video>`.
1692
+ *
1693
+ * Attaching is idempotent and order-independent on purpose: `create()` is
1694
+ * driven by the network (`config`, or a synchronous prefetch adoption) while
1695
+ * the container comes from the scene component's render pass, so either side
1696
+ * can win the race. If `create()` got there first the element is detached —
1697
+ * adopt it here instead of leaving it orphaned (which showed up as a white
1698
+ * scene with an empty `#player` and no `videoStreamInitialized`).
1699
+ */
1690
1700
  setContainer(container?: HTMLDivElement | null): void;
1701
+ /**
1702
+ * Moves `this.video` under the current container unless it is already there.
1703
+ * `parentElement` (not `isConnected`) is the guard: it also covers a swap to a
1704
+ * different container while the element sits in a still-live old one.
1705
+ */
1706
+ private attachVideoToContainer;
1691
1707
  setLatencyTimings(latencyTimings: string): void;
1692
1708
  setEncoder(data: ArrayBuffer): void;
1693
1709
  create(): void;
@@ -1695,8 +1711,31 @@ declare class VideoService extends SubService {
1695
1711
  attachAudioStream(stream: MediaStream): void;
1696
1712
  play(): void;
1697
1713
  safePlay(video: HTMLVideoElement | null): Promise<void>;
1714
+ /**
1715
+ * Retries playback on the next real user gesture — the only thing that lifts
1716
+ * a browser autoplay block. Shared by `safePlay()` and `playAudio()` so both
1717
+ * media elements use one arming/cleanup path.
1718
+ *
1719
+ * Listeners are `once` + `capture` and bound to `destroyAbort.signal`, so a
1720
+ * `destroy()` in this session drops them instead of leaking into the next one.
1721
+ */
1722
+ private armGestureRetry;
1698
1723
  private getStats;
1699
1724
  private generateAggregatedStatsFunction;
1725
+ /**
1726
+ * Folds one `inbound-rtp` video report into the accumulator: copies the raw
1727
+ * report, pins the per-session baselines on the first pass, then derives the
1728
+ * deltas relative to the previous pass.
1729
+ */
1730
+ private applyInboundVideoReport;
1731
+ /**
1732
+ * Resolves the transport's selected candidate pair into the local/remote
1733
+ * descriptors shown in the stats overlay. Silently skips when the pair (or
1734
+ * either of its candidates) is missing from this report.
1735
+ */
1736
+ private applySelectedPair;
1737
+ /** Per-session values that do not come from a single report. */
1738
+ private applySessionTotals;
1700
1739
  private onAggregatedStats;
1701
1740
  private destroy;
1702
1741
  private changeStatusMainVideoOnScene;