Repository navigation
v0.3.3
Makes ACB extraction faster and adds de-duplicated waveform extraction for ACBs whose cues share audio. Per-cue output is byte-identical to 0.3.2.
Added
- Extract each distinct waveform of an ACB once, together with the cues that use it, with
extract_acb_unique_bytesin Python orextract_acb_unique_to_memoryin Rust. Each item is{"extension", "subkey", "data", "cues": [{"name", "cue_id"}, ...]}. On a 4.8 MB test ACB this turns 4 per-cue tracks (8.16 MB) into 2 waveforms (4.80 MB). (#13)
Performance
- Move the embedded AWB out of the parsed table instead of copying it, and drop a redundant input copy in the
*_bytesbindings. In-memoryextract_acb_byteson a 4.8 MB ACB goes from about 0.80 to 0.62 ms. (#13) - Read the whole file once in
extract_acb_from_file,extract_acb_tracks_from_fileanddecode_acb_to_wav_from_fileinstead of seeking and reading per field. File-basedextract_acbon the same ACB goes from about 6.5 to 2.3 ms at best. (#13)
Artifacts
- crates.io:
cridecoder0.3.3 - PyPI:
cridecoder0.3.3
Full Changelog: v0.3.2...v0.3.3