refactor: drop internal bridge/ffi layers; exporter family lands
Single-lib cleanup: the per-crate src/bridge/ and src/ffi.rs layers are gone (oakundo/oakcommon/oaknode/oaktimeline/oakcodec/oakaudio/ oakrender/oaktask/oakplugin/oakstorage); cross-crate calls are plain Rust, CHandle marshalling shrinks to the oakengine boundary, and tests call the Rust APIs directly (pure C-ABI wrapper tests removed where the domain layer already covers the behavior). exporter.h family implemented: oakengine_export_render (CLI contract), oakengine_export_render_with_params (was a stub), last_error and progress callback; synchronous path reuses task_create_export + start_sync. Fixes on the way: oaktask video ticket self-deadlock, audio params dropped on the export path, codec encoder AAC slicing and H.264 time base. Real-mp4 tests cover both entry points, progress and the illegal-argument matrix. Also: oakstorage session maps null project handles to None (version- info path), configstore test double literal 3.14 -> 3.15 (clippy PI lint), oakaudio output callback scratch buffer + env-aware P1 test, cli media round-trip test uses a generated 16-frame clip (no more minute-long debug runs).
This commit is contained in:
@@ -25,7 +25,7 @@
|
||||
//!
|
||||
//! Note: OpenColorIO itself is never linked here. All OCIO work goes
|
||||
//! through the color manager (`crate::colormanager`) and the oakrender
|
||||
//! bridge (`crate::bridge::render`), mirroring how the C++ node calls
|
||||
//! bridge (opaque oakrender handles), mirroring how the C++ node calls
|
||||
//! `oakrender_color_processor_*` / `oaknode_colormanager_*` C functions
|
||||
//! instead of using OCIO directly.
|
||||
|
||||
@@ -47,13 +47,13 @@ pub const TEXTURE_INPUT: &str = "tex_in";
|
||||
/// bridge), so the field is omitted here: `added_to_graph` /
|
||||
/// `removed_from_graph` document the capture/clear, and the processor
|
||||
/// generation helpers reach the manager through
|
||||
/// `crate::colormanager`/`crate::bridge::render` at call time.
|
||||
/// `crate::colormanager`/oakrender at call time.
|
||||
pub struct OcioBase {
|
||||
/// Owned color processor handle (C++ `processor_`, an
|
||||
/// `OakColorProcessor`); `None`/empty while no valid processor has
|
||||
/// been generated. Released with the node (C++ destructor calls
|
||||
/// `oakrender_color_processor_free`).
|
||||
processor: Option<crate::bridge::render::ColorProcessorHandle>,
|
||||
processor: Option<crate::handle::CHandle>,
|
||||
}
|
||||
|
||||
// The processor handle wraps a refcounted C object that is only
|
||||
@@ -74,7 +74,7 @@ impl OcioBase {
|
||||
|
||||
/// Borrowed view of the owned processor handle (C++
|
||||
/// `OCIOBaseNode::processor()`; callers must NOT free it).
|
||||
pub fn processor(&self) -> Option<&crate::bridge::render::ColorProcessorHandle> {
|
||||
pub fn processor(&self) -> Option<&crate::handle::CHandle> {
|
||||
self.processor.as_ref()
|
||||
}
|
||||
|
||||
@@ -83,7 +83,7 @@ impl OcioBase {
|
||||
/// `OakColorProcessor` before storing the new one).
|
||||
pub fn set_processor(
|
||||
&mut self,
|
||||
processor: Option<crate::bridge::render::ColorProcessorHandle>,
|
||||
processor: Option<crate::handle::CHandle>,
|
||||
) {
|
||||
// The C++ frees the previous processor via
|
||||
// `oakrender_color_processor_free`; the Rust handle is a
|
||||
|
||||
Reference in New Issue
Block a user