mirror of
https://github.com/storytold/effectcraft.git
synced 2026-10-30 21:16:52 -06:00
A WAV's markers were never read, so its audio layer showed none. The importer now reads the file's cue points (`cue ` chunk named by `LIST/adtl` `labl` and `note`, sized by `ltxt`) and Adobe's XMP markers (`_PMX` chunk, `xmpDM:markers` entries as elements or attributes, in frames of the track's `xmpDM:frameRate`). A marker present in both encodings is listed once. The reader is bounds-checked and caps the marker count and XMP size. - `Footage.markers` (optional in the file format) holds them at footage time; a layer made from the footage starts with them. - Layer ▸ Markers ▸ Update Markers From Source also works on footage layers. - Markers from a file have no label colour. Tests: reader unit tests (cue, note, ltxt, both XMP forms, both encodings, truncated and hostile files), a probe test, and an end-to-end test through the fully wired session. Not checked against a WAV written by Adobe's tools. Claude-Session: https://claude.ai/code/session_013fTnVxnXTv2MBW6uj2PPyU Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
38 lines
1.3 KiB
TOML
38 lines
1.3 KiB
TOML
[package]
|
|
name = "effectcraft-media"
|
|
description = "Footage import: probing, stills, image sequences, video and audio via FilmCraft's pure-Rust codecs, memory-budgeted frame cache"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
rust-version.workspace = true
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
craft-docpath = { workspace = true }
|
|
effectcraft-time = { workspace = true }
|
|
effectcraft-color = { workspace = true }
|
|
effectcraft-project = { workspace = true }
|
|
effectcraft-raster = { workspace = true }
|
|
effectcraft-render = { workspace = true }
|
|
effectcraft-psd = { workspace = true }
|
|
effectcraft-svg = { workspace = true }
|
|
effectcraft-pdf = { workspace = true }
|
|
effectcraft-model = { workspace = true }
|
|
filmcraft-codecs = { workspace = true }
|
|
filmcraft-media = { workspace = true }
|
|
filmcraft-isobmff = { workspace = true }
|
|
filmcraft-frame = { workspace = true }
|
|
filmcraft-color = { workspace = true }
|
|
filmcraft-time = { workspace = true }
|
|
# AIFF import (#1428): enables the aiff reader of filmcraft-codecs' symphonia.
|
|
symphonia = { workspace = true }
|
|
exr = { workspace = true }
|
|
gif = { workspace = true }
|
|
image = { workspace = true, features = ["gif", "webp", "tiff", "bmp", "exr", "tga", "hdr"] }
|
|
rayon = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
log = { workspace = true }
|