fix tile flicker on video mute/unmute

(only pass rtcBackendIdenitity instead of full rtcMember)
This commit is contained in:
Timo K
2026-01-09 19:31:40 +01:00
parent 1a9e4a1a5c
commit 735c17d3e6
5 changed files with 24 additions and 27 deletions

View File

@@ -724,6 +724,7 @@ export function createCallViewModel$(
localMatrixLivekitMember;
localUserMediaId = `${userId}:${membership$.value.deviceId}`;
const rtcBackendIdentity = membership$.value.rtcBackendIdentity;
for (let dup = 0; dup < 1 + duplicateTiles; dup++) {
yield {
keys: [
@@ -732,7 +733,7 @@ export function createCallViewModel$(
userId,
participant satisfies TaggedParticipant as TaggedParticipant, // Widen the type safely
connection$,
membership$.value,
rtcBackendIdentity,
],
data: undefined,
};
@@ -746,8 +747,10 @@ export function createCallViewModel$(
membership$,
} of matrixLivekitMembers.value) {
const userMediaId = `${userId}:${membership$.value.deviceId}`;
const rtcBackendIdentity = membership$.value.rtcBackendIdentity;
// skip local user as we added them manually before
if (userMediaId === localUserMediaId) continue;
for (let dup = 0; dup < 1 + duplicateTiles; dup++) {
yield {
keys: [
@@ -756,7 +759,7 @@ export function createCallViewModel$(
userId,
participant,
connection$,
membership$.value,
rtcBackendIdentity,
],
data: undefined,
};
@@ -771,7 +774,7 @@ export function createCallViewModel$(
userId,
participant,
connection$,
membership,
rtcBackendIdentity,
) => {
const livekitRoom$ = scope.behavior(
connection$.pipe(map((c) => c?.livekitRoom)),
@@ -789,7 +792,7 @@ export function createCallViewModel$(
scope,
`${userMediaId}:${dup}`,
userId,
membership,
rtcBackendIdentity,
participant,
options.encryptionSystem,
livekitRoom$,