feat(storage): real oakstorage file backends + full-timeline .ove serializer

oakstorage (new workspace member): URI dispatch, pluggable backends
(ove-xml built in, otio/fcpxml via oakotio, C-vtable foreign
registration), the M10 C API surface, version info codes, last-error
and alive accounting; round-trip tests per backend.

oaknode serializer: persists the full timeline — sequence track lists,
track block lists, block ranges/media_in/speed/flags, clip footage
references, footage filename+streams, folder children — through
<custom> behavior hooks with two-phase reference resolution; loads the
C++ <olive><project><layout> containers (golden: tests/
project_with_footage.ove); round-trip is field-by-field and
byte-idempotent.
This commit is contained in:
2026-08-14 15:14:38 +08:00
parent 48d3027d50
commit 2248be8567
26 changed files with 5755 additions and 231 deletions
+5 -1
View File
@@ -677,7 +677,11 @@ pub trait NodeBehavior: Send {
core: &mut NodeCore,
reader: &mut dyn crate::serializer::XmlRead,
) -> bool {
let _ = (core, reader);
let _ = core;
// The default has no custom state; consume the segment so the
// node-body parser continues at the correct depth (the reader is
// positioned on the `<custom>` start element).
reader.skip_current_element();
true
}