2.5 KiB
2.5 KiB
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 frameWebView2ManagersetsCropBounds = (cropX, cropY, cropW, cropH)on the LatestFrameBlitContentRawdetects CropBounds and uses Fill-style scaling (stretch to cover, no aspect preservation) usingsrc.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.exefirst - 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