Skip to main content

Crate rusty_esp_image_core

Crate rusty_esp_image_core 

Source
Expand description

rusty_esp_image-core — the pure heart of rusty_esp_image.

esp32-camera and Espressif’s JPEG components, remade: what a camera on an ESP32 needs above the DMA engine, with no driver in sight.

ModuleHolds
sourceImageSource — capture into caller memory; a TestPattern source for host and smoke tests
poolFramePool — N fixed slots over one caller buffer: the DMA ring in user clothes
jpegjpeg::probe — geometry, precision and progressive flag from a JPEG header, no decode; find_eoi to trim DMA over-read
opspixel kernels (RGB565 ↔ RGB888, YUYV → RGB/gray, 2× downscale, crop, rotate) — scalar, tested; the oracles for any later PIE twin
sensorsensor identity and register tables as data (SensorDesc, Register, the OV2640 / OV5640 tables derived from esp32-camera)
sccbSccb — the camera control bus (I²C without repeated start) over embedded-hal 1.0

Rules (from the package plan): every buffer is caller-owned; nothing here allocates on a hot path; forbid(unsafe); the scalar path is the oracle. The DVP / MIPI capture engines and the hardware JPEG codecs live in rusty_esp_image-esp; the software JPEG codec is rusty_jpeg, behind a feature once its encoder is no_std.

Re-exports§

pub use pool::FramePool;
pub use pool::SlotId;
pub use sccb::RegWidth;
pub use sccb::Sccb;
pub use sensor::Mode;
pub use sensor::Register;
pub use sensor::SensorDesc;
pub use sensor::SensorId;
pub use source::ImageSource;
pub use source::TestPattern;
pub use rusty_esp_core as esp_core;

Modules§

jpeg
Reading a JPEG’s header without decoding it.
ops
Pixel operations — scalar, bounds-checked, and the oracle for every faster twin.
pool
A frame pool over one caller-owned buffer.
prelude
The names a sketch or firmware wants in scope.
sccb
SCCB — the camera control bus. It is I²C without a repeated start: a register read is a write transaction (the address) followed by a separate read transaction. Sensors use 8-bit (OV2640, OV7670) or 16-bit (OV5640, OV3660) register addresses.
sensor
Sensor identity and register tables — as data.
source
The capture seam.

Constants§

VERSION
Crate version, for capability manifests and logs.