46 lines
2.5 KiB
Markdown
46 lines
2.5 KiB
Markdown
# HANDOFF — 2026-09-08
|
|
|
|
## Branch / Commit State
|
|
|
|
**`main` HEAD = `f6802c7`** — take-23: stride-correct CropBounds Fill rendering.
|
|
|
|
```
|
|
f6802c7 fix(web): stride-correct CropBounds Fill rendering in compositor (take-23)
|
|
84aa70f docs: MyMistakes.md — take-22 full fix for widget scale/position + transparency
|
|
ed9d7c1 fix(web): CropBounds metadata + Fill-style scaling in compositor — transparent margins preserved, widget fills element rect (BROKEN — reverted)
|
|
5ca9778 docs: update HANDOFF + MyMistakes.md — take-21 web transparency fix landed
|
|
e002847 fix(web): feed full canvas to compositor — transparent margins reveal layers beneath (take-21)
|
|
70db344 perf(camera): MJPEG negotiation before frame reader — camera drives at its best rate
|
|
87509bc (origin/main) docs: restructure TASKS.md into a catalog
|
|
```
|
|
|
|
**Pushed to origin: `87509bc`.** 7 unpushed commits after it.
|
|
|
|
## Web Overlay — Current State
|
|
|
|
take-22 (`ed9d7c1`) BROKE the widget — the CropBounds stride was wrong (pixel index used `w = cbW` crop width instead of `src.Width` canvas stride, reading garbage from the full-canvas buffer). REVERTED by the take-23 revert of `ed9d7c1`.
|
|
|
|
take-23 (`f6802c7`) is the correct fix:
|
|
- `VideoFrame.CropBounds?: (X,Y,W,H)` — metadata on the frame
|
|
- `WebView2Manager` sets `CropBounds = (cropX, cropY, cropW, cropH)` on the LatestFrame
|
|
- `BlitContentRaw` detects CropBounds and uses Fill-style scaling (stretch to cover, no aspect preservation) using `src.Width` (canvas stride = 1920) for ALL pixel buffer indexing — not the crop width
|
|
|
|
## Resolved this session
|
|
|
|
- **Audio regression (TASK 26):** Non-event — external headset volume control was at minimum.
|
|
- **Web overlay scale/position + transparency:** take-23 at `f6802c7`. The stride fix was critical — take-22 used crop width (e.g., 800) instead of canvas stride (1920) in pixel indexing, reading garbage from the full-canvas buffer and destroying content.
|
|
|
|
## Still open (needs your run + log)
|
|
|
|
- **Chat overlay missing from recording:** Chat shows in preview but not in recorded output.
|
|
- **Audio/sync issues:** unspecified, no log yet.
|
|
- **Webcam/capture speed:** unspecified, no log yet.
|
|
|
|
## Landmines
|
|
|
|
- testhost shares startup.log with app — filter by time when triaging
|
|
- Stale testhost/exe locks DLL: `taskkill /F /IM testhost.exe /IM ytLive.exe` first
|
|
- Do NOT run full-suite vstest (WASAPI hang); flow = clean build + per-class + scope-check
|
|
- Kill app before build: `/mnt/c/Windows/System32/taskkill.exe /F /IM ytLive.exe`
|
|
- ffmpeg month-end pinned; `Startup.log` "Recording saved:" shows real final path
|