cridecoder
A pure Rust library for CRI Middleware codec encoding and decoding. Supports ACB/AWB audio containers, HCA (High Compression Audio) encoding/decoding, and USM video container extraction/building.
Credits
This project's CRI format implementation is based on and inspired by vgmstream, a library for playing streamed audio from video games. Many thanks to the vgmstream contributors for their reverse-engineering work on CRI Middleware formats.
Features
- ACB/AWB Extraction & Building — Parse and create CRI ACB audio containers
- HCA Encoding & Decoding — Encode PCM to HCA, decode HCA to PCM/WAV
- USM Extraction & Building — Extract or create USM video containers
- USM Metadata — Read and export USM metadata as structured JSON
- Key Testing — Test decryption keys for encrypted HCA files
- Encryption Support — Encode HCA with encryption keys
- Pure Rust — No C dependencies, works on any platform Rust supports
Usage
Add to your Cargo.toml:
[]
= "0.1"
ACB Extraction
use Path;
use extract_acb_from_file;
let tracks = extract_acb_from_file.unwrap;
if let Some = tracks
ACB Building
use Cursor;
use ;
let hca_data = read.unwrap;
let track = new;
let mut builder = new;
builder.add_track;
let mut output = new;
builder.build.unwrap;
HCA to WAV
use File;
use HcaDecoder;
let mut decoder = from_file.unwrap;
let info = decoder.info;
println!;
let mut output = create.unwrap;
decoder.decode_to_wav.unwrap;
PCM to HCA
use Cursor;
use ;
// Generate or load PCM samples (interleaved stereo f32)
let samples: = vec!; // 1 second of silence
let config = new // 44.1kHz stereo
.with_bitrate; // 256 kbps
let mut encoder = new.unwrap;
let mut output = new;
encoder.encode.unwrap;
USM Extraction
use Path;
use extract_usm_file;
let files = extract_usm_file.unwrap;
for file in &files
USM Building
use Cursor;
use UsmBuilder;
let video_data = read.unwrap;
let builder = new
.video;
let mut output = new;
builder.build.unwrap;
Supported Formats
| Format | Description | Operations |
|---|---|---|
| ACB | CRI Audio Container | Extract / Build |
| AWB | CRI Audio Waveform Bank | Extract / Build |
| HCA | High Compression Audio | Encode / Decode |
| USM | CRI Video Container | Extract / Build |
License
MIT