Skip to content

feat(call): keep you in the middle of your own picture - #192

Merged
TheCryptoDonkey merged 1 commit into
mainfrom
feat/auto-frame
Sep 28, 2026
Merged

TheCryptoDonkey merged 1 commit into
mainfrom
feat/auto-frame

Conversation

@TheCryptoDonkey

Copy link
Copy Markdown
Member

The owner's self-view cut their face at the edge of the picture; they asked for the video to focus on them.

  • app/src/auto-frame.ts: person box from the effect's mask (trimmed, sampled), crop that centres it with headroom, eased with a dead band, max 1.6x zoom, holds 30 frames through a missing mask then eases out.
  • CameraPipeline: the effect paints a private stage canvas; the published canvas is a crop of it. Nothing from the raw camera reaches the published canvas by any new path.
  • VideoEffect.personMask: the mask, only when the last frame was a composite.
  • Effects panel: "Keep me in the middle of the picture", on by default, hidden with the effect off (no mask to follow).

Tests: unit tests for the framing; effects.spec, call-prefs.spec, camera-effects-no-phone-home.spec pass. Not yet seen with a real face and camera. Android has no effects, so no framing there.

🤖 Generated with Claude Code

https://claude.ai/code/session_01CG4pPCsd8pdySNvBpt8fTk

With a background effect on, the pipeline now crops the finished frame
around the person the effect's mask finds, eased so it drifts rather than
twitches and zoomed no more than 1.6x. It crops pixels the effect has
already painted, so it can only send less of the room. With no mask to go
on it eases back to the whole frame. "Keep me in the middle of the
picture" in the effects panel turns it off; it is on by default and
remembered per device.

Claude-Session: https://claude.ai/code/session_01CG4pPCsd8pdySNvBpt8fTk
@TheCryptoDonkey
TheCryptoDonkey merged commit 493049a into main Sep 28, 2026
13 of 15 checks passed
@TheCryptoDonkey
TheCryptoDonkey deleted the feat/auto-frame branch September 28, 2026 02:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant