mirror of
https://github.com/storytold/effectcraft.git
synced 2026-10-30 04:57:54 -06:00
Accelerator::comp_frame_yuv420 (default None) renders a top-level comp frame and converts it over the background to the H.264 export's 8-bit BT.709 limited-range 4:2:0, every byte within one level of the CPU conversion (the GPU kernel follows it operation for operation, including NaN and half-away-from-zero ties, but a driver may contract its arithmetic). A 4K frame then reads back 12 MB of planes instead of 133 MB of RGBA f32. The H.264 export asks the accelerator for planes when a frame needs nothing after the render (progressive, project depth, no crop/resize, rendered at the output size) and otherwise renders and converts on the CPU as before. Deferred readbacks (a browser worker) keep the pass-based path. Sizes the kernel can't take (width not a multiple of 8, odd height) are declined before any GPU work. Like Cx::frames, h264_frames caps GPU frames in flight only while the accelerator is up (map_frames_while with the same liveness check): once the GPU stops for good, the remaining frames render on the CPU side by side instead of one at a time. rgba_to_yuv420 moves to effectcraft_raster::yuv so the export and the GPU tests share one reference. The GPU tests skip without an adapter (tests::gpu()), as the crate's others do.
17 lines
439 B
Rust
17 lines
439 B
Rust
//! The crate's integration tests, one binary (each module is a former `tests/<name>.rs`).
|
|
|
|
mod audio_sample_positions;
|
|
mod h264_gpu_yuv;
|
|
mod hevc_av1_roundtrip;
|
|
#[cfg(not(target_arch = "wasm32"))]
|
|
mod mov_audio_sample_positions;
|
|
mod movie_bytes;
|
|
mod ms_rounded_footage;
|
|
#[cfg(not(target_arch = "wasm32"))]
|
|
mod native_audio_sample_positions;
|
|
mod opus_roundtrip;
|
|
mod render_settings;
|
|
mod roundtrip;
|
|
mod uncompressed_mov;
|
|
mod vp9_roundtrip;
|