Skip to content

feat(matrix): video call improvements — PiP, screenshare layout, sound isolation, recording, cross-context awareness #2383

Description

@rozagerardo

Context

Follow-up improvements identified after #2361 (MatrixRTC + LiveKit SFU migration). Five independent
items — may split into separate issues once scoped, tracked together here for now.

What this involves

a) Picture-in-Picture for calls/screenshare
Let users navigate away from the call tab while keeping the call visible, via the
Document Picture-in-Picture API
(Chrome/Edge 116+ — supports rendering full custom call UI, not just a <video> element), with a
draggable-overlay fallback for Safari/Firefox (no Document PiP support yet). Must be opt-in (a
"pop out" toolbar button), not automatic — matches Meet/Zoom/Teams convention and is required
anyway since browsers mandate a user gesture to open PiP. No utility library needed — native API +
a small custom hook, unless LiveKit's SDK already ships a PiP helper (worth checking first).
Update: most of this already exists (CALL_DOCUMENT_PIP_ENABLED = false, full Document PiP
hook/overlay wiring in place) but is currently disabled and only auto-opens during screenshare —
this item is a re-enable + extend to a manual "pop out" affordance for calls generally, not new
infra.

b) Screenshare side panel layout
When someone is sharing their screen, the participants side panel currently renders as a grid,
wasting space. Should render as a simple single-column, single-participant-width list instead.

c) "Sound isolation" feature investigation
Reportedly has no observable effect currently. Needs investigation into how it's wired today
(likely a LiveKit noise-suppression/audio-processing option) and what's needed to make it actually
work.

d) Recording upgrade
Known follow-up from #2361 — needs scoping to determine if it stays part of this issue or gets
split out once scoped.

e) Cross-context call awareness
Users on a Signal (DM) thread don't see any indicator that a call is active in the room or in
another signal. Neither the in-call dock overlay (only shows once you're already in a call) nor
the join-hero banner (room-scoped only) covers this case. Needs a subtle, non-invasive
notification — not the current full-screen-style overlay — surfaced regardless of what
chat/signal the user is currently viewing, without over-notifying (e.g. a user already on a call
shouldn't be bothered the same way).

Depends on

Open questions

  • Should each sub-item become its own issue once scoped, or stay bundled here?

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementFeature improvement or extensionmatrixMatrix chat integration

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions