No time to explain, just a new thread for discussion this post.
Few hours later… Sorry for early posting. Of course, I will explain everything in details. Let’s start from a short background.
As far as I know we have only one application (millipixels) that can take a photo in Librem5 and no other application can give an access to the camera (like decoder or firefox). The reason is that it uses libcamera
api rather that standard v4l2
. As a result, we have to use it directly and work with raw images (that millipixels
does) or by some standartized wrapper, that all other application do. Pipewire
is a such wrapper now, and it could be configured to work with video-only streams (to not break calls). So, the pipeline should look something like this: cam (front or back) → libcamera
→ pipewire → your app. Sounds quite simple but it does not work. At least it does not work in Byzantium
and Crimson
so far. I’m not sure about ‘Mobian’ and ‘pmOS’… But here, on Byzantium backports it takes much more time than I expected. Starting point is here.
- Linux kernel config must be patched to enable dmabuf heaps.
libcamera
must be patched to enable software postprocessing and built withgnutls
to avoid isolation.wireplumber
must be configured properly.
Finally, I was managed to put the whole puzzle together!
That is about this thread. Next I will present some details and put links here.