Skip to main content

Crate ithmb_core

Crate ithmb_core 

Source
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 .ithmb files.
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
ReorderedRGB555 decoder — 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.