Right now I'm taking a little detour to camera land, trying to help with the future default camera stack: libcamera -> Pipewire -> xdp-camera-portal -> [Gstreamer|libwebrtc|obs|...].
My main test device is a Pinephone Pro - and here's some first results. Note that the picture is actually rotated as you'd exect on a mobile device.
In fact the camera is mounted 270° rotated clockwise to the device. In order to get a proper rotated image, either the ISP or the app has to adjust accordingly - in this case the later.
The info about the rotation here is not hardcoded in the application - it's in the kernel device tree, passed on through the kernel driver, read by libcamera and then passed through Pipewire. Then Gstreamer has to pick it up and finally the app has to configure the pipeline to honor the rotation.
Right now there're missing bit's and pieces all over the whole stack still requiring some love and fixes. I hope we can figure those out over the coming months to have the first apps just work out of the box.
@rmader Super excited to see this work happening. I've listed off the needs of my personal dailydriver usecases and right now, the #PinePhonePro covers all of them... except being able to take a reasonable photo.
I know there's still work to do, but I really appreciate that it's happening.
...oh, and the fact that the first Pinephone photo you posted was of a cat seems somehow very apt to the #Fediverse.