Expand description
Reframe (roadmap step 5, docs/design.md#roadmap, docs/reframe.md): keyframed crop windows
for punch-ins, eased push-ins, pans and vertical aspect windows (9:16 reels, 4:5 feed) from
16:9 sources, evaluated in Rust per frame and applied as the crop/scale of the libplacebo grade
pass. Replaces the prototype’s per-frame libplacebo crop expressions (render.py gpu_geo),
without their pixel rounding: windows are f64 until libplacebo resamples them sub-pixel.
Reframe: theffcine.geo.reframe/1effect (prototype fields, keyframes, per-profile overrides), evaluated into aFrameper output frame.Profile: the output frame (one timeline renders once per profile), with aSafeAreaoverlay for review.pass::apply: puts the frames into affcine_render::Grade, composed with the stabilizer’s warp (ffcine_core::geom::Mat3) when there is one.
Re-exports§
pub use keyframe::Interp;pub use keyframe::Key;pub use keyframe::Keyed;pub use profile::Profile;pub use profile::SafeArea;pub use reframe::Fit;pub use reframe::Frame;pub use reframe::Punch;pub use reframe::Reframe;pub use reframe::Shot;pub use reframe::Slide;pub use window::Rect;
Modules§
- keyframe
- The one keyframe form,
[{"t": RationalTime, "v": value, "interp": "linear" | "ease" | "hold"}](docs/timeline.md#effect-schemas), evaluated in Rust per frame. - pass
- Reframe in the grade pass: the per-frame windows become
Grade::crops(libplacebo’s own sub-pixel crop and EWA scaler), or, with a stabilizer warp, oneMAINhook that samples the source atwarp_i * crop_iso warp and crop are a single resample in the samepl_render_imagecall. - profile
- Render profiles: the output frame a timeline is reframed into. One timeline renders to several
aspects (16:9 master, 9:16 reels, 4:5 feed) by rendering it once per profile; the reframe
effect can carry per-profile overrides (
profiles: {name: {...}},crate::Reframe). - reframe
ffcine.geo.reframe/1: the prototype’s zoom / punch / push / pan / fit fields (edit.yaml,render.pygpu_geo), any ofzoom,zoom_center,crop_x,crop_yalso in the keyframe form, plus per-profile overrides. Evaluated per output frame into a crop window.- window
- Crop windows in source pixels, kept as
f64end to end: nothing is rounded, so a moving window moves by fractions of a pixel and its size never steps out of sync with its position.