Adding a few fixes to the gnommo pipeline

This commit is contained in:
2026-07-29 17:27:48 +02:00
parent 4c6c9b8569
commit ec08e945e5
6 changed files with 291 additions and 281 deletions
+12 -6
View File
@@ -11,14 +11,20 @@ Implemented:
take`; `events_to_marker_timings` round-trips them as overrides.
- Inline grammar `[prefix:handle, key=value, …]` (`parser.parse_marker`), threaded through
alignment into `MarkerTiming.overrides`. Supported inline keys: **cutout, layer, end_on,
take** (the fully-wired per-event fields). Unknown keys are ignored.
take, volume** (numeric keys `take`/`volume` coerced to float). Unknown keys are ignored.
- The key-reuse collision validator hard-error was removed (reuse is legal now).
Deferred (follow-ups): inline override of the *global* params (skip/zoom/volume/
use_audio_channels/pause_narration) — the renderer reads these from `video_source` in ~13
places, so wiring them per-event is a separate change; stripping the moved fields from
videos.json (kept as fallback defaults for now); a validator warning for unknown/unwired
inline keys.
`volume` is **sparse/overridable**: the renderer reads `VideoEvent.volume` (line ~1571),
which is the events.json override if present else the videos.json default — so a videos.json
change keeps propagating, and events.json only stores `volume` when it's actually overridden
(inline/GUI/manual). `derive_events` materializes it only when overridden; `_EVENT_OVERRIDE_KEYS`
round-trips it. This is the template for the remaining globals.
Deferred (follow-ups): inline/per-event override of the *other* globals (skip/zoom/
use_audio_channels/pause_narration) — same renderer-plumbing pattern as volume, per site;
per-segment narration voiceover volume (render currently uses `narration_videos[0].volume`
only); stripping the moved fields from videos.json (kept as fallback defaults); a validator
warning for unknown inline keys.
## Problem