←back to thread

Libobscura

(dorotac.eu)
91 points LorenDB | 1 comments | | HN request time: 0.201s | source
Show context
nikodunk ◴[] No.42173752[source]
What is the difference between this and libcamera? From the page:

There are already other libraries for camera support on Linux. You can use the V4L2 APIs directly, or use libcamera, or libmegapixels.

They all strike various middle points on the power vs user-friendliness scale. Having worked with all of them while developing camera support for the Librem 5, I never got the impression that any of them are particularly easy to use.

Libobscura is an experiment because it tries to find an API that fulfills the needs of most people and remains hard to use wrong.

replies(1): >>42174630 #
dcz_self ◴[] No.42174630[source]
There are two main differences.

First, libobscura doesn't yet fully support even UVC webcams,

and second, related to the quote, is that you will not run into segfault with libobscura no matter how hard you try.

When using libcamera, the task of memory management is on you, with the usual consequences.

There are more smaller differences. Image processing in libobscura is on the GPU from day 1. Contributing to the project is through codeberg, not a mailing list. The internal architecture differs, although that's not too visible.

Future goals may end up diverging, too. I'm thinking of a completely different approach to configuring devices and a different governance structure.

replies(1): >>42178261 #
1. jcelerier ◴[] No.42178261[source]
> When using libcamera, the task of memory management is on you, with the usual consequences.

huh ? libcamera's API uses C++ shared / unique pointers pretty thoroughly, at no point you should be managing memory manually