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:
@@ -42,10 +42,10 @@ fn save_matches_cpp_byte_exact() {
|
||||
#[cfg(feature = "test-stubs")]
|
||||
#[test]
|
||||
fn roundtrip_idempotent() {
|
||||
use oaknode::project::Project;
|
||||
use oaknode::node::NodeCore;
|
||||
use oaknode::value::{NodeValue, ValueType};
|
||||
use oaknode::input::Input;
|
||||
use oaknode::node::NodeCore;
|
||||
use oaknode::project::Project;
|
||||
use oaknode::value::{NodeValue, ValueType};
|
||||
|
||||
let project = Project::new();
|
||||
{
|
||||
@@ -57,11 +57,11 @@ fn roundtrip_idempotent() {
|
||||
.unwrap()
|
||||
.create)();
|
||||
let id = p.graph.add_node(core, behavior);
|
||||
p.graph
|
||||
.get_mut(id)
|
||||
.unwrap()
|
||||
.core
|
||||
.set_standard_value("param_a_in", -1, NodeValue::Float(2.5));
|
||||
p.graph.get_mut(id).unwrap().core.set_standard_value(
|
||||
"param_a_in",
|
||||
-1,
|
||||
NodeValue::Float(2.5),
|
||||
);
|
||||
p.graph
|
||||
.get_mut(id)
|
||||
.unwrap()
|
||||
@@ -116,7 +116,8 @@ fn roundtrip_idempotent() {
|
||||
#[test]
|
||||
fn historical_versions_upgrade() {
|
||||
// A current-format document round-trips.
|
||||
let xml = "<project version=\"1\"><uuid>{test}</uuid><nodes></nodes><settings></settings></project>";
|
||||
let xml =
|
||||
"<project version=\"1\"><uuid>{test}</uuid><nodes></nodes><settings></settings></project>";
|
||||
let project = oaknode::serializer::load(xml).unwrap();
|
||||
assert_eq!(project.lock().unwrap().uuid, "{test}");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user