Skip to content

Live source thumbnails and per-person Swap assignment - #2

Open
doctormajid7-ux wants to merge 5 commits into
AbrahamPaulJ:mainfrom
doctormajid7-ux:main
Open

Live source thumbnails and per-person Swap assignment#2
doctormajid7-ux wants to merge 5 commits into
AbrahamPaulJ:mainfrom
doctormajid7-ux:main

Conversation

@doctormajid7-ux

@doctormajid7-ux doctormajid7-ux commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

What changed

  • Add labeled thumbnails for all Live source faces.
  • Allow selecting the active Live source directly from the thumbnail row.
  • Add per-person source assignment on the Swap screen.
  • Preserve source selection across Live and Swap modes.
  • Restore liveSourceIndex when selecting a source.
  • Restore the mandatory ContentGate.checkVideo(tgt) check in the single-video Swap path.
  • Rebase the changes onto the current upstream main.

Validation

  • Android debug build succeeds with Gradle.
  • APK tested on a Nubia Z80.
  • Existing Live microphone, voice trim, and content-gate behavior remains enabled.
  • git diff --check passes.

@AbrahamPaulJ

Copy link
Copy Markdown
Owner

Thanks for taking the time on this — per-face source assignment on the Swap screen is a reasonable thing to want, and the native side of it is sensibly done.

I can't merge it as it stands, though. The refactor of the source decode into a multi-source loop drops the target video's content check from the single-clip swap path — the ContentGate.checkVideo(tgt) call that used to sit alongside the source check. It reads like collateral from restructuring the block around it rather than anything deliberate, but that check isn't optional here and the PR can't go in without it.

Two smaller things while you're in there:

  • setSourceFrom no longer sets liveSourceIndex. On main it does, and dropping it means picking a source stops making it the active Live source — a regression against the current Live behaviour.
  • Assign-per-person already exists on the Live tab as of 0.9.11, with the sticky box-overlap tracking. Extending it to the Swap screen is a fair idea, but it's worth building on what's there rather than alongside it — right now there are two kSamePerson constants and two paths that mean the same thing.

If you restore the check and rebase onto current main — which has moved a fair way since you opened this — I'll take another look. Happy to review it in pieces if that's easier.

@doctormajid7-ux doctormajid7-ux changed the title Add labeled Live source thumbnails and per-person Swap assignment Live source thumbnails and per-person Swap assignment Sep 9, 2026
@doctormajid7-ux

Copy link
Copy Markdown
Contributor Author

Thanks for the detailed review. I’ve rebased the changes onto the current main and addressed all three
points:

  • restored ContentGate.checkVideo(tgt) in the single-video Swap path;
  • restored liveSourceIndex in setSourceFrom;
  • kept the current shared assignment behavior instead of introducing another parallel path.

The Android debug build now succeeds, and the APK was tested on a Nubia Z80. Please take another look when
you have time.

doctormajid7-ux and others added 3 commits September 9, 2026 19:21
🤖 Generated with Codebuff
Co-Authored-By: Codebuff <noreply@codebuff.com>
Apply the Live mirror setting to the final BGR frame immediately before video encoding, while keeping face processing in the original camera orientation. Pass the setting into LiveRecorder when recording starts so the saved video matches the preview.

🤖 Generated with Codebuff
Co-Authored-By: Codebuff <noreply@codebuff.com>
Add Live mirror controls and preserve orientation in recordings
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.

2 participants