feat(engine): clip move, clip effect_input, mandatory static FFmpeg
- oakengine_sequence_move_clip implemented for real (oaktimeline TrackMoveBlockCommand; fixes the graph-ownership/gap-anchor/ripple trim bugs the stub was hiding); same-track via the frozen C ABI, cross-track supported by the module command - oaknode clip blocks now declare a tex_in texture input and set effect_input to it, so timeline clips can host effect chains; facade test covers effect insert/remove on a real clip - oakffmpeg-link: FFMPEG_DIR is now mandatory with a clear panic (a Homebrew upgrade left the system ffmpeg .pc pointing at a deleted dav1d Cellar path, breaking links); reads a git-ignored workspace .env for IDEs that cannot inject env vars (RustRover); links the C++ stdlib for C++ codec libs (svt-av1) - oakengine re-exports oaknode so tests share one crate instance; it_node uses the direct instance's value type where it calls the module FFI (the --workspace dev-dependency feature split builds oaknode twice)
This commit is contained in:
@@ -179,10 +179,10 @@ fn interpolate(before: &Keyframe, after: &Keyframe, time: Rational) -> NodeValue
|
||||
let before_val = before.value.to_double();
|
||||
let after_val = after.value.to_double();
|
||||
|
||||
let both_bezier =
|
||||
before.interpolation == Interpolation::Bezier && after.interpolation == Interpolation::Bezier;
|
||||
let one_bezier =
|
||||
before.interpolation == Interpolation::Bezier || after.interpolation == Interpolation::Bezier;
|
||||
let both_bezier = before.interpolation == Interpolation::Bezier
|
||||
&& after.interpolation == Interpolation::Bezier;
|
||||
let one_bezier = before.interpolation == Interpolation::Bezier
|
||||
|| after.interpolation == Interpolation::Bezier;
|
||||
|
||||
if !both_bezier && !one_bezier {
|
||||
// Both linear.
|
||||
|
||||
Reference in New Issue
Block a user