Add bounded motion-preview clips - #8
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds an explicit Still/Motion preview workflow for short, silent, runtime-only review clips. Motion previews use strict contract v1, the full Recipe v1/v2 source timeline, absolute source-frame indexes, verified bounded seek, bounded H.264 output, cancellable processing, and TTL/LRU caching without creating manifest records or library outputs.
Application version is now 0.4.0. Manifest/storage schemas remain v2, Recipe v1/v2 remain supported, and persistent video-job contract remains v2.
Frame semantics and processing
inexact_seekerror.Runtime manager
API and discovery
Adds create, status, cancel, delete, and ranged GET/HEAD media endpoints. Create returns 202 for new/active work and 200 for a ready cache hit; validation/tool/capacity/not-found conditions use 400/503/429/404. Status and media are redacted and
no-store.Adds stable capabilities:
motion-preview-clipscancellable-motion-previewsephemeral-preview-cache/metadata,/ready,/api/capabilities, the static manifest, source responses, and repository consistency checks now describe the motion-preview contract and operational bounds.UI behavior
Validation
python check.py: 372 passed.npm run test:browser: 16 workflows passed.npm run review:ui-screens: 24 deterministic states passed and were manually inspected across 1440×900, 1280×720, 1024×768, 768×1024, 390×844, and 360×800.Representative local performance for a no-effect three-second window from a 1280×720 30 fps source:
These measurements are diagnostics, not cross-platform guarantees; the configured duration, queue, worker, dimensions, FPS, cache, history, stderr, timer, and lease bounds are the enforced behavior.
Known limitations
CI
GitHub Actions is green:
qualitypassed in 41 seconds andbrowserpassed in 59 seconds.