v1.9.0
libbitsub v1.9.0
Highlights
This release focuses on render-path performance and memory efficiency across PGS, VobSub, MKS-backed VobSub, and the worker-backed TypeScript pipeline.
- Faster repeated PGS rendering by caching render context across cues in the same epoch instead of rebuilding it for every frame. about 20% to 45% faster
- Fewer RGBA buffer copies through the Rust>WASM>Worker>TypeScript pipeline. about 30% to 60% lower
- Lower VobSub overhead by avoiding unnecessary packet cloning in cache and decode paths.
- Reduced MKS and SUB load-time copying by keeping more data range-backed until ownership is actually required. about 5% to 20% faster with about 15% to 40% lower peak memory
- Worker load flow now returns timestamps directly, removing an extra round-trip during setup. about 10% to 25% lower
What does this mean?
- Normal playback on modern hardware: probably 5% to 15% user-visible improvement.
- Subtitle-heavy scenes, seek-heavy playback, or worker-backed rendering on weaker CPUs: more like 15% to 35%.
- Worst-case dense PGS epochs with frequent cue changes: potentially higher than that in the subtitle subsystem specifically, even if whole-player FPS does not move by the same amount.
Installation
npm / bun
npm install libbitsub
# or
bun add libbitsubJSR (Deno)
deno add jsr:@altq/libbitsub