Camera API with a reduced feature set for basic usecases and learning.
-
🚧 Mac support is based on AVFoundation
-
🚧 Windows support is based on MediaFoundation
-
🚧 Linux support is based on V4L2
-
❌ tests need to run with a single thread
cargo t -- --test-threads=1 --nocaptureand it is good to review the output of the test cases -
✔️ PR check is manual running tests on Mac, Windows and Linux laptop internal camera device and a Logitech external camera
-
✔️ CI runs checks, formatting and clippy for main and PRs
use Camera;
let camera = new_default_device;
camera.start;
let Some = camera.wait_for_frame else ; // always blockingly waiting for next new frame
let = frame.size_u32;
frame.data.data_u32 // use this buffer, per default in ARGB format
// for real use cases processing or displaying frames can get more complicated when trying to be most efficient
camera.stop // or drop it
Linux system dependecies
On a Debian like system (MX Linux for example) I needed to install these system dependencies to build all crates:
- TODO winit depends on sctk-adwaita which transitively also is depending on freetype for font rendering. I think
- winit probably does not have a real need to do font rendering in a default or minimal configuration
- basic font rendering could also be done by a pure rust dependency