engine: - oakrender eval footage hook decodes via oakcodec (JobSpec::Footage carries filename/stream); ticket/ffi/manager wiring, real-media decode test with programmatically generated MPEG-2 - oakrender bridge/codec.rs + node.rs: direct oakcodec/oaknode calls; the crate's dlsym module is gone (project_deep_copy/sync_copy remain documented always-fail stubs — never implemented in oaknode) - oakaudio waveform/decoder path adjustments for the decode hook app (gpui + gpui_widgets): - menu bar scrubbing: hovering another top-level title while a menu is open switches to it; popup width is content-aware (CJK-aware) instead of fixed 160px - density pass: window rem 16 -> 14px, menu rows 26 -> 22px, dock tabs 32 -> 26px, viewer transport tightened - open/import/save-as use the native platform file dialogs (prompt_for_paths / prompt_for_new_path; multi-select import); MockEngine records imported footage for tests - project explorer Tree/Icons toggle is localized (explorer.tree / explorer.icons widget keys)
24 lines
868 B
TOML
24 lines
868 B
TOML
[package]
|
|
name = "oakaudio"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
description = "Oak Video Editor audio I/O, processing, synchronization and waveform engine (Rust)"
|
|
license = "GPL-3.0-or-later"
|
|
|
|
[lib]
|
|
crate-type = ["staticlib", "rlib"]
|
|
|
|
[dependencies]
|
|
oakffmpeg-link = { path = "../oakffmpeg-link" }
|
|
oakcore-rs = { path = "../oakcore" }
|
|
oakcommon = { path = "../oakcommon" }
|
|
oakcodec = { path = "../oakcodec" }
|
|
# Real resample/channel-convert/time-stretch filter graph. The C++
|
|
# ffmpeg_bridge library existed only to absorb FFmpeg API churn; the Rust
|
|
# crate calls ffmpeg-next directly (same as oakcodec). The oakffmpeg-link
|
|
# dependency above emits the transitive link flags of the static FFmpeg.
|
|
ffmpeg-next = "9"
|
|
# Real audio output (M12 P1): the preview playback stream. The PortAudio
|
|
# C library must be installed (macOS: brew install portaudio).
|
|
portaudio = "0.8"
|