14c + 14d: wrap text instead of shrinking it, and let a clip's sound come from its own file
14c. A text overlay was one drawtext line sized from the frame height, so a long text ran off a vertical frame, and a pre-wrapped text was drawn as a single line because an explicit newline was never a break. `overlays[].fit` takes none (the default, today's behaviour) | wrap | shrink, and a newline now breaks whatever the fit. Wrapping emits one drawtext per line, placed as a single left-aligned block measured from the widest line, rather than letting each line centre itself ragged. `captions.fit` takes shrink (the default) | wrap, folding a too-wide row's trailing words onto a new row instead of shrinking that event -- on a vertical video shrinking can go below readable. Word order is preserved, so the karaoke highlight still walks the words in the order they are spoken. Both fitters now MEASURE the result instead of scaling the size by the width ratio. Advance is very nearly linear in size, which is why the shortcut looks right, but hinting rounds each glyph's advance to whole pixels and the error compounds over a long string: a 95-character line computed to fit at size 8 measured 440 px against a 300 px budget. A test caught it. _fit_size carried the same assumption and shrink is its default, so it is fixed the same way. 14d. `visuals[].audio_src` names a separate audio-only file -- DASH sites serve picture and sound as separate streams, so the best video of a clip often has no audio track and a caller that cannot mux had to skip it. The picture path is deliberately left alone: stage 3 reuses it as the visual's video, and an audio-only file there would render a scene with no image. Lengths in audio_mix="clip" come from whatever carries the sound. Also: the dialogue tests no longer depend on a TTS model being installed. They test how a dialogue scene is VALIDATED and say so -- their portraits are inline "so the test does not depend on what is saved on this install" -- but three of them failed standalone with 501 "narration needs a TTS model" without reaching the validation they exercise. Only the inventory is faked, not the check. Co-Authored-By:Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014T3rZnLhydX9QqUcfBbqLu
Showing
Please
register
or
sign in
to comment