Skip to content

feat: add timestamp-preserving causality inversion - #3

Merged
kaffeindecaf merged 3 commits into
mainfrom
feat/causality-inversion
Oct 24, 2026
Merged

kaffeindecaf merged 3 commits into
mainfrom
feat/causality-inversion

Conversation

@kaffeindecaf

Copy link
Copy Markdown
Owner

changes

  • add causality inversion with bounded future-frame blend, replacement, band tearing and motion alignment
  • expose lookahead, offset, strength, region masks, speed, alignment, feather and seed in CLI/menu
  • preserve original rational video timestamps through the shared renderer with optional PyAV/NUT transport
  • copy compatible unfiltered audio, drain at EOF/cuts, and keep the queue under 128 frames/128 MiB
  • document latency, live-input limits, dense-VFR/EOF fallback, optional dependencies and transient memory
  • check off E2.49 and save separate mode/resolution benchmarks
  • add a GitHub Actions regression gate with FFmpeg and all optional processors installed

verification

  • all ten local test suites pass
  • 12 focused inversion tests, including real VFR and nonzero-start timestamp equality
  • copied AAC packet timestamps match the source
  • early moving-object appearance, distinct modes, scene cuts, EOF fallback, deterministic seeds and bounded state
  • sediment/collapse in both chain orders; FFmpeg filters before and after
  • short pipe writes, encoder failure and Ctrl-C remove partial output
  • menu control/render smoke test
  • eight 360p/720p benchmark cases in benchmarks/inversion.json
  • Ruff F gate, added-line security scan and independent code review

GitHub CI must pass before merge. Benchmarks measure processor work, not end-to-end decode/encode throughput. Stateful previews and separated stateful groups remain unsupported.

@kaffeindecaf
kaffeindecaf merged commit e561351 into main Oct 24, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant