#postmarketOS just landed the last MR needed to make the #libcamera + #PipeWire camera stack work on the #Librem5 and #PinePhone by default, using the new software ISP shipped in libcamera 0.3.
So if you have such a device: just update and go install apps like Snapshot, Warp, Decoder etc. You can even use it with Firefox and - very soon - Chromium.
Note that this does not replace #megapixels or #millipixels - those continue to be the default camera apps.
Don't expect too much for now: both image quality and performance are not quite where we want them to be.
That, however, also means that there are a lot of low hanging fruits where help is very welcome :)
We need to create #libcamera tuning files for the individual cameras, the swISP could be improved to use the GPU for debayering, there are WIP autofocus patches that could be tried and improved - and in Snapshot we need to reduce the number of copies before frames reach the screen or encoders.
Just want to quickly share with #linuxmobile folks that the new #libcamera softwareISP does indeed work with the #librem5 - and with a #PipeWire + #GStreamer pipeline. Here's a first image running Warp (from Flathub).
There's still some stuff to iron out to make this work reliably and ship to users - but things are falling into place.
For those of you curious this is what the #pinephonepro camera looks like with my autofocus #libcamera and that new driver. This was late at night with only my room light on so it is still pretty noisy but it looks decent enough.
upstreaming imx258 driver work continues! Its my first attempt at upstreaming anything to the #linux kernel and even submitting patches via a mail list so its been a learning experience for me and a rough one at that but soon the #pinephonepro will be able to use a mainline camera driver and get something useful out of it and will greatly improve #libcamera support since even downstream was missing lots for it. https://patchwork.kernel.org/project/linux-media/cover/20240327231710.53188-1-git@luigi311.com/
I've took an early enough train so that I would be able to attend the very interesting talk about #libcamera at 10:00
Of course having arrived at the premises I quickly scouted out the stands, and immediately met with some #Debian friends and noticed a huge, but friendly #linux penguin wearing a #froscon shirt :)
#Firefox with the #postmarketOS#LinuxMobile patches will now use #PipeWire (and thus #libcamera ) by default, allowing cameras to work out-of-the-box on distros shipping that patchset (well, assuming the camera works with libcamera of course).
So we'll have a neat little camera indicator in #gnome45.
It will only show up for apps that use #PipeWire for camera access so we depend on more apps switching to that.
During the #GUADEC2023 "State of the Shell" talk I was asked what incentives there are for app developers to do so and unfortunately I messed up to make the probably most convincing ones, so short 🧵
support for modern cameras via #libcamera (as opposed to only #v4l2 / UVC cameras).
(this thread is written in real-time and on satellite inet, so please bear with me :P).
While "complex" cameras have been common for phones and professional cameras for a long time now, the linux ecosystem more or less got away with only supporting UVC cameras via V4L2.
By now more and more laptops using non-UVC cameras are entering the market on one hand and new use-cases like #LinuxMobile become more common on the other.
One of the issue preventing #LinuxMobile distros from shipping a #PipeWire / #libcamera camera stack is the fact that it requires #wireplumber as session manager, which again does not always play nicely with #pulseaudio, if that is still used as sound server.
Unfortunately switching to PW for sound is not always possible yet because some mobile-specific packages depend on PA. So if you want to help with camera enablement, please consider helping with issues such as https://source.puri.sm/Librem5/wys/-/issues/13 :)
Just came home and there are great news: the last patch needed for the #PinePhonePro to expose proper camera orientation (front/back) just got pulled into #megi#Linux 6.4. Together with previously landed patches (partly upstream, partly megi) for the right rotations (90/270 deg), users using #PipeWire and #libcamera will have a much better camera experience.
Meanwhile, there's a coup attempt in 🇷🇺 by Wagner. I'd say a good day for #LinuxMobile, 🇺🇦 and the world :)
It currently requires "media.webrtc.camera.allow-pipewire" to be set to "true" in "about:config". Other then that the same requirements like for other apps like Snapshot, Authenticator and Decoder apply: a working Pipewire/libcamera/xdg-portal setup (IMO this should be left to distros/images).
Wow, cool day for #Firefox on #LinuxMobile. After #PipeWire and thus #libcamera camera support, now hardware video decoding with V4L2-M2M is landing as well.
I just tried qcam again on my #PinePhonePro on #postmarketOS today after the latest round of package updates. Much to my surprise, I saw my face on screen!!! Front and rear cameras seem to be working in this #libcamera application! Not sure why the window wasn't fullscreen and was slightly transparent on Phosh, but whatever. CAMERAS.
I tested a few weeks ago and it worked on my original PinePhone but not the Pro.