From ede6ecac8edd416d7264497df1c8c999e99439a7 Mon Sep 17 00:00:00 2001 From: gramps Date: Wed, 4 Nov 2026 11:35:29 -0800 Subject: [PATCH] docs(task-53): retire platform safe-zone requirement --- HANDOFF.md | 2 +- TASKS.md | 2 +- TASKS/task-53-output-formats.md | 29 ++++++++++++----------------- 3 files changed, 14 insertions(+), 19 deletions(-) diff --git a/HANDOFF.md b/HANDOFF.md index 253499e..ac06e1c 100644 --- a/HANDOFF.md +++ b/HANDOFF.md @@ -14,7 +14,7 @@ ## Next action -- TASK 53 remains the next queued output task: check 9:16 safe zones and caption placement. +- TASK 53 remains the next queued output task: confirm YouTube displays the 9:16 live output without distortion or letterboxing. - Do not push absent a checkpoint request. ## Landmines diff --git a/TASKS.md b/TASKS.md index ec71d6c..67b2373 100644 --- a/TASKS.md +++ b/TASKS.md @@ -41,7 +41,7 @@ persisted; renderer mirrors `Services/ChatBoxRenderer.cs`. > 2026-11-07 are a failure of the plan, not a scheduling note. | Task | Status | Scope | Detail | |---|---|---|---| -| 53 | ๐Ÿ”ถ **NEXT** | Output-format contract โ€” next slice: 9:16 safe-zone and caption geometry; six emitted size/FPS modes have been verified from recordings | [`task-53`](TASKS/task-53-output-formats.md) | +| 53 | ๐Ÿ”ถ **NEXT** | Output-format contract โ€” next slice: confirm YouTube's vertical live-player output; six emitted size/FPS modes have been verified from recordings | [`task-53`](TASKS/task-53-output-formats.md) | | โ€” | โ˜ | Output entitlement: change `OutputProfile` and its tests to free at 30 fps / paid at 60 fps, independent of resolution | [`commercial`](docs/ai/commercial.md) | | 3ยท17 | โ˜ | **Text layer** โ€” content, font family/size/weight/style, colour, alignment, drag/resize, persisted | [`task-03`](TASKS/task-03-capture-pipeline.md) | | 21 | ๐Ÿ”ถ | Media source: acquisition wiring + file picker + loop/volume UI (decoder, manager, pacing, loop all shipped โ€” **no `AcquireAsync` caller exists**) | [`task-21`](TASKS/task-21-media-source.md) | diff --git a/TASKS/task-53-output-formats.md b/TASKS/task-53-output-formats.md index a3440e3..4ed2879 100644 --- a/TASKS/task-53-output-formats.md +++ b/TASKS/task-53-output-formats.md @@ -1,14 +1,13 @@ -# TASK 53 โ€” Output-format verification: Shorts / TikTok geometry (queued 2026-10-08) +# TASK 53 โ€” Output-format verification: vertical and landscape outputs (queued 2026-10-08) > Catalog: [`TASKS.md`](../TASKS.md) โ€” status and requirements live here. -**Why:** the output formats have never been tested end-to-end. The site claims "vertical 1080p60 -(9:16)" and Shorts-style streams, but nobody has verified that the geometry actually comes out -correct for Shorts and TikTok โ€” safe zones, caption clearance, and the text-safe inset all still -need checking against a real capture. +**Why:** the site claims vertical 1080p60 (9:16), but the full route from compositor crop through +FFmpeg scaling to YouTube and the local recording needs verification. -**Goal:** prove the vertical/short-form path is geometrically correct, or fix the gaps and then -prove it. Make the output formats a tested, locked contract instead of an assumption. +**Goal:** prove each output tier has the expected dimensions and frame rate, and that vertical live +and recorded outputs preserve the composed image. Creators control layer placement; this task does +not promise platform-specific safe zones or keep content clear of every viewer overlay. **Slices (one integration test each, in order):** @@ -26,16 +25,12 @@ prove it. Make the output formats a tested, locked contract instead of an assump | Vertical 1080p60 | `rec6-1080p60-vert.mp4` | 1080ร—1920 @60 fps | 2. โœ… **9:16 output resolution (resolution-only acceptance, 2026-11-04)** โ€” creator-supplied `ty-20261104-0927-982-0000-2.mp4` reports H.264 1080ร—1920 at 60 fps. The creator accepted the - resolution check only; captions and visual safe-zone placement were not reviewed. -3. โ˜ **9:16 safe-zone geometry** โ€” confirm the composite is laid out for a phone: viewer-safe top - strip (TikTok/Shorts overlays live top-left and bottom), caption/text clearance, and webcam - placement. Test a known layout and assert element placement against the contract. -4. โ˜ **Live-shorts check on a real stream** โ€” private Test Stream at 9:16, then pull the thumbnail/ - player quirk list from YouTube (Title visible, overlays); confirm nothing the streamer put on - screen sits under YouTube's own chrome. This is the "never tested" item the creator flagged โ€” - test on a real vertical test stream and cite the observation. -5. โ˜ **Recorded .mp4 matches output** โ€” the saved vertical .mp4 must carry the same 9:16 frame the - stream showed, not a squeezed/wider master. Test: record vertical, decode first frames, assert. + resolution only; no platform-specific safe-zone promise is part of acceptance. +3. โ˜ **Vertical YouTube live-player check** โ€” private Test Stream at 9:16; confirm YouTube receives + and displays a vertical picture without distortion or letterboxing. Record the creator's + observation; placement relative to YouTube controls remains creator-controlled. +4. โ˜ **Recorded .mp4 matches output** โ€” confirm the vertical local recording uses the same crop and + composed picture as the live stream, not merely the same dimensions. **Design decisions:**