Skip to content

v0.30.0

Choose a tag to compare

@shreyaskarnik shreyaskarnik released this 20 Apr 04:34
· 83 commits to main since this release

Highlights

Export quality

  • BT.709 color space tagged on every output (container + VUI metadata via setparams). Prevents color shifts on Safari, TVs, and mobile players.
  • x264 adaptive quantization (aq-mode=3:aq-strength=0.8:deblock=1,1) kills gradient banding on dark-theme recordings.
  • Full-range → TV-range conversion (scale=in_range=pc:out_range=tv) so blacks don't clip.
  • GPU encoder auto-detection — VideoToolbox (macOS), NVENC (NVIDIA), VAAPI (Linux), QSV (Intel). 3–10× speedup typical. Opt out with ARGO_USE_GPU=0 for deterministic CI.
  • Blur-fill variants (1:1, 9:16) inherit the same treatment.

Overlay blocks

Curated catalog for narrative inserts. Drop them into .scenes.json via overlay: { type: 'block', block: '<name>', props: {...} }:

  • x-post — social proof card
  • macos-notification — system-style banner
  • yt-lower-third — speaker intro with accent bar
  • data-chart — compact bar/line SVG for metrics
  • spotify-card — now-playing card

WebGL shader transitions

5 shaders adapted from gl-transitions.com (MIT). Pre-rendered via Playwright Chromium, content-addressed cached. Configure with transition: { type: 'shader', shader: '<name>', durationMs: 800 }:

  • crosswarp · swirl · ripple · luma-mask · light-leak

Per-demo config discovery

demos/<name>.config.{ts,js,mjs} auto-loads — no -c flag needed. Explicit -c still wins.

Fixes

  • filter_complex routing when downstream stages add -i inputs
  • VAAPI hwupload deferred to last filter
  • Playwright testMatch scoped to exact demo file (no longer runs all *.demo.ts on substring match)
  • Shader splice clamps transition windows near video start/end; skips boundaries with no room
  • data-chart escapes accentColor to prevent SVG attribute injection
  • detectGpuEncoder caches null results — no-GPU machines don't re-probe every export
  • CI workflow installs ffmpeg for shader integration tests

Stats

50+ commits · 552 tests · 3 showcase videos in videos/ (showcase, blocks-showcase, shaders-showcase)

Full changelog: v0.29.2...v0.30.0