This commit is contained in:
Half-Shot
2025-10-28 09:31:02 +00:00
parent 8dde994275
commit 890508ce53

View File

@@ -281,17 +281,13 @@ export class CallViewModel {
remote: { membership: CallMembership; transport: LivekitTransport }[]; remote: { membership: CallMembership; transport: LivekitTransport }[];
preferred: Async<LivekitTransport>; preferred: Async<LivekitTransport>;
multiSfu: boolean; multiSfu: boolean;
preferStickyEvents: boolean;
} | null> = this.scope.behavior( } | null> = this.scope.behavior(
this.joined$.pipe( this.joined$.pipe(
switchMap((joined) => switchMap((joined) =>
joined joined
? combineLatest( ? combineLatest(
[this.preferredTransport$, this.memberships$, multiSfu.value$], [this.preferredTransport$, this.memberships$, multiSfu.value$],
(preferred, memberships, preferMultiSfu) => { (preferred, memberships, multiSfu) => {
// Multi-SFU must be implicitly enabled when using sticky events
const multiSfu = preferMultiSfu;
const oldestMembership = const oldestMembership =
this.matrixRTCSession.getOldestMembership(); this.matrixRTCSession.getOldestMembership();
const remote = memberships.flatMap((m) => { const remote = memberships.flatMap((m) => {
@@ -327,7 +323,6 @@ export class CallViewModel {
remote, remote,
preferred, preferred,
multiSfu, multiSfu,
preferStickyEvents: multiSfu,
}; };
}, },
) )
@@ -362,7 +357,6 @@ export class CallViewModel {
*/ */
private readonly advertisedTransport$: Behavior<{ private readonly advertisedTransport$: Behavior<{
multiSfu: boolean; multiSfu: boolean;
preferStickyEvents: boolean;
transport: LivekitTransport; transport: LivekitTransport;
} | null> = this.scope.behavior( } | null> = this.scope.behavior(
this.transports$.pipe( this.transports$.pipe(
@@ -371,7 +365,6 @@ export class CallViewModel {
transports.preferred.state === "ready" transports.preferred.state === "ready"
? { ? {
multiSfu: transports.multiSfu, multiSfu: transports.multiSfu,
preferStickyEvents: transports.preferStickyEvents,
// In non-multi-SFU mode we should always advertise the preferred // In non-multi-SFU mode we should always advertise the preferred
// SFU to minimize the number of membership updates // SFU to minimize the number of membership updates
transport: transports.multiSfu transport: transports.multiSfu
@@ -382,7 +375,6 @@ export class CallViewModel {
), ),
distinctUntilChanged<{ distinctUntilChanged<{
multiSfu: boolean; multiSfu: boolean;
preferStickyEvents: boolean;
transport: LivekitTransport; transport: LivekitTransport;
} | null>(deepCompare), } | null>(deepCompare),
), ),