Crates.io | kamera |
lib.rs | kamera |
version | 0.0.2 |
source | src |
created_at | 2023-07-10 18:16:25.415033 |
updated_at | 2023-08-13 11:11:11.405637 |
description | Camera API with a reduced feature set for basic use cases and learning |
homepage | |
repository | https://github.com/payload/kamera |
max_upload_size | |
id | 913193 |
size | 141,400 |
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 --nocapture
and 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 kamera::Camera;
let camera = Camera::new_default_device();
camera.start();
let Some(frame) = camera.wait_for_frame() else { return }; // always blockingly waiting for next new frame
let (w, h) = 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
On a Debian like system (MX Linux for example) I needed to install these system dependencies to build all crates:
sudo apt install build-essentials cmake libfontconfig1-dev clang