AVPlumber · Mixer cookbook

8. Crop transparent keys and avoid invisible pixel work

Capture only the key’s required rectangle, retain its cadence, and skip expensive conversion for fully transparent pixels.

Reviewed 15 October 2026 against e72ff8b4. These pages describe that code and named workload settings; they do not assert what every deployment runs.

Reduce pixels without reducing detail

A ticker or corner bug need not be a full 1920×1080 transparent surface. Give each DSK its intended capture size and place it on the canvas. The latest capacity checks count four cropped DSK windows separately from the full-resolution moving browser pages. A cropped key keeps its intended pixel density; full-screen scene browsers remain true 1080p.

The RGB/HDR draw path skips colour-conversion work for alpha-zero pixels. Visible pixels still take the correct transfer and blend path. This reduces wasted arithmetic on sparse overlays; GPU memory bandwidth, Chromium rendering and encoder cost remain.

Do not let a held frame hide a real paint

DSK subscriptions are unpaced, with an edge capacity of two. A new real paint can replace a held frame even if their timestamps match. Prewarming a static key must not wait forever for a stream of changes that will never occur. Off-air readiness is separate from on-air repeat accounting.

Key fades weight alpha in the existing pass instead of adding a second compositor. Keep the key subscribed while off when it must appear immediately, but exclude this warm-up from visible-delivery counters.

Check the page's own animation rate

Setting the browser capture to 60 fps does not fix a template internally quantized to 50 fps. Generated ticker HTML and capture configuration must use the same rate. A deliberate static page should declare capture_cadence: "on_change"; that labels intentional holds and does not throttle capture.

Verify

Inspect decoded output around fade-in, fade-out and cold start. Check source capture IDs, alpha edges and HDR/SDR pixels. Cropping and transparent-pixel tests establish correctness; the moving-page transition table is the separate workload measurement.

Implementation at the reviewed revision