Near Complete Parity with Libcamera (and support for v0.6.0)#77
Conversation
…ontrols and control value coverage
This reverts commit 61f3c4d.
|
|
I know this is a VERY large PR but I have included many examples all covering every feature added or changed to help with understanding what has been added. From what I can gather this should cover over 90% of the Libcamera public facing api allowing Libcamera-rs to almost be a true complete binding for Libcamera. We are still missing a few big features like proper IPA support, but most of whats left from my understanding is a lot of the private modules not included in distro builds. I plan to look into proper async support / threadsafe handling and ergonomic changes. All though lots of the ergonomics changes I would add to the repo start to teeter away from "Rust bindings" and more into something that I feel would likely justify its own crate. This all really depends on how much we are comfortable straying from Libcamera to improve things like buffer management, number of lines of code to get a stream running, stream life cycle, etc. As a lot of these are quite cumbersome and are all often done in the exact same way each time with slight configuration tweaks which really only leaves large margins for oversight by ordering setup sequences wrong or simply forgetting everything required just to start a stream. Personally for my projects I have made a wrapper around this crate to simplify a lot of this making using the crate a lot easier, but I feel it is out of scope for the repo as a whole. As always let me know if anything needs to change or if clarification is needed. |
|
Wow, this is big, in a good way. I'm currently a bit out of the loop with libcamera so I'm inclined to merge this as is, the API looks okay at first glance. I'll just run some valgrind tests. Maybe @fishrockz has some comments? Amazing work btw |
|
Thanks! |
|
This is awesome, I came here to report the libcamera 0.6.0 wasn't supported after doing some upgrades on the raspberry-pi that I'm using for testing and found that support has been added by this PR! After upgrading the libcamera binding use this I'm happy to report that the PR for Mediars PR: rust-media/media-rs#10 Thanks again! ❤️ |
Near Complete Parity with Libcamera (and support for v0.6.0)
Highlights
libcamera v0.6.0 compatibility & versioning
Formats & colour spaces
Camera lifecycle, streams, configuration, and transforms
Controls & properties
Buffers, requests, fences, and DMABUF import
Logging & diagnostics
Vendor feature detection
Examples & capture ergonomics
Remaining gaps / not yet mirrored from libcamera