answered
2018-06-09 13:31:07 +0200
Hi,
Thanks for your feedback. It would be good to improve the camera experience in Sailfish.
I think the original design decisions here were aimed at providing a basic camera app with which casual users could take quick snaps without having to worry about too many options or features, and I can't see that changing any time soon. I think what's needed here is a second 'advanced' camera app managed by the community that can have all the bells and whistles we want. But that's a fair bit of work, in the meantime maybe we could come up with some tweaks for advanced users, or even add some extra ones.
The Sailfish camera stack is a little bit complicated, as it has to wrap up the underlying Android/AOSP camera drivers for GStreamer (in droidmedia and gst-droid), which serves as a backend for QtMultimedia, which is then used by the QML camera app. There is some functionality that is implemented in the droid/gstreamer side but not exposed in QtMultimedia, and not all of that is exposed in the Camera app either. Out of the whole stack, only the Camera app itself and the blobs in the android underneath are closed source, so there's lots of potential for community enhancements if anyone's interested in having a go. With a new camera app there'd be potential to tweak almost everything, though that will always be within the limits of what the droid camera driver blobs provide.
Your points:
- Denoise - this is enabled through a gst-droid 'quirk' which can be found in
/etc/gst-droid/gstdroidcamsrcquirks.conf
. During hw adaptation development we felt that we got better pictures with this quirk enabled, so I don't think the default will be changed, but feel free to remove the [image-noise-reduction] section to disable it if you prefer. I noticed there's a second denoise algorithm mentioned in the camera params of the Xperia X called 'Temporal denoise' which perhaps we could allow as another quirk or as an alternative mode for the current one. - I don't think we explicitly enable any extra image processing, but if there's anything that's on by default that you think should be switched off then let me know and I'll investigate.
- Tweaking compression setting isn't something for the app itself, but it might be a good idea to add as a config setting. I'll have a look at adding that.
- Checking the dconf file on the X, I see that the primary camera does have a higher value available: 5984x3392. Good find! It was previously set to the highest live-snapshot size, which is a feature that we don't yet support so I'll bump that up for the next release. I'm not exactly sure why the resolutions are hard-coded like this - I think it might have been partly to optimize camera startup times and also because in the past certain devices declared resolutions that they weren't actually capable of using nicely. In the case of the Xperia we don't make the top 4k video resolution available because we couldn't get good encoding performance out of it. I'd like to move to a more dynamic resolution querying camera if we get chance, but it's a non-trivial change.
Cheers,
Andrew