Expand description
§ithmb-core
Pure Rust decoder for Apple .ithmb thumbnail cache files — the format used
by iPod Classic/Nano/Photo/Video, iPhone 2G, and iPod Touch to store photo
and album art thumbnails.
This is the canonical reference implementation. All decoder logic lives here; language-specific wrappers (C# FFI, WASM, Python bindings) call into this core.
Re-exports§
pub use error::DecodeError;pub use error::DecodedImage;pub use pipeline::decode_ithmb;pub use pipeline::open_ithmb;
Modules§
- cl
- CL (per-pixel nibble chroma) decoder — also called “chunky” or “per-pixel” chroma.
- clcl
- CLCL decoder — Cb/Cr per-pixel nibble chroma in separate planes.
- decoder_
helpers - Shared helper functions for decoders.
- device_
profiles - Device-specific format-ID lookup tables — maps each known iPod/iPhone
generation to the format IDs it generates for its thumbnail caches
(
PhotoDB&ArtworkDB). - enc
- Encoders: encode BGRA pixels into all 7 .ithmb pixel formats.
- error
- Error types and image container for ithmb-core.
- jpeg
- JPEG detection and passthrough decoder for
.ithmbfiles. - photodb
- PhotoDB/ArtworkDB — Apple’s iPod/iPhone thumbnail database format.
- pipeline
- Pipeline module — central dispatch for .ithmb decoding.
- pixel_
utils - Shared pixel-manipulation helpers for encoding and decoding.
- profile
- Profile types — the Rust equivalent of
IthmbVariantProfile. - profile_
db - Profile database — loads profiles from embedded or external JSON.
- profile_
parser - Hand-rolled JSON parser for the profiles.json schema.
- reordered_
rgb555 ReorderedRGB555decoder — 15-bit RGB with little-endian byte order.- rgb555
- RGB555 decoder — 15-bit RGB used by iPod 4G/5G and iPhone 2G.
- rgb565
- RGB565 decoder — the most common .ithmb raw pixel format.
- simd
- SIMD-accelerated pixel conversions.
- uyvy
- UYVY (YUV 4:2:2) decoder.
- ycbcr420
- YCbCr 4:2:0 planar decoder.
- yuv
- BT.601 YUV-to-BGRA conversion.