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:
@@ -37,11 +37,10 @@
|
||||
|
||||
use std::path::Path;
|
||||
|
||||
use oakcommon::ocioutils::PixelFormat as OakPixelFormat;
|
||||
use oakcommon::videoparams::VideoParams;
|
||||
use oakcore_rs::{PixelFormat, Rational, SampleFormat};
|
||||
|
||||
use crate::bridge::common::{
|
||||
oakcommon_videoparams_init_basic, oakcommon_videoparams_set_format,
|
||||
};
|
||||
use crate::encodingparams::EncodingParams;
|
||||
use crate::encoder::create_from_params;
|
||||
use crate::frame::Frame;
|
||||
@@ -106,8 +105,17 @@ pub fn write_test_clip(
|
||||
|
||||
/// One frame of the known pattern (see module doc).
|
||||
fn pattern_frame(i: i32, width: i32, height: i32, fps: i32) -> Frame {
|
||||
let vp = unsafe { oakcommon_videoparams_init_basic(width, height, 0, 4, 1, 1, 0, 1) };
|
||||
unsafe { oakcommon_videoparams_set_format(vp.clone(), PixelFormat::F32 as i32) };
|
||||
let mut vp = VideoParams::new_basic(
|
||||
width,
|
||||
height,
|
||||
OakPixelFormat::from_code(0),
|
||||
4,
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
);
|
||||
vp.set_format(OakPixelFormat::from_code(PixelFormat::F32 as i32));
|
||||
let mut f = Frame::with_params(vp);
|
||||
f.set_timestamp(Rational::new(i as i64, fps as i64));
|
||||
f.allocate().expect("test frame allocation");
|
||||
|
||||
Reference in New Issue
Block a user