From d335e4eaf23f6f8bbef2baac884524af1708ca60 Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Sun, 7 Nov 2021 11:03:59 -0500 Subject: [PATCH] overhaul usage guide Camera docs for our new app --- static/usage.html | 146 +++++++++++++++++++++++++++++++++++++--------- 1 file changed, 117 insertions(+), 29 deletions(-) diff --git a/static/usage.html b/static/usage.html index 0da1527a..12d79db3 100644 --- a/static/usage.html +++ b/static/usage.html @@ -76,7 +76,13 @@
  • Web browsing
  • -
  • Camera
  • +
  • + Camera + +
  • Exec spawning
  • Bugs uncovered by security features
  • @@ -492,38 +498,120 @@

    Camera

    -

    GrapheneOS itself has the same camera capabilities and quality as the stock OS. - It will match the stock OS when comparing the same app on each OS.

    +

    GrapheneOS has the same camera capabilities and quality as the stock OS. It + will match the stock OS when comparing the same app on each OS.

    -

    The Camera app included in GrapheneOS is very basic and can't take full advantage - of the hardware. It doesn't offer much in the way of configuration. In the long term, - it's going to be replaced. In the short term, there are other apps available providing - more capabilities and better support for taking advantage of the hardware.

    +
    +

    GrapheneOS Camera app

    -

    Open Camera is somewhat more advanced and much more configurable. You should - make sure to configure it to use the Camera2 API since it uses the legacy camera - APIs by default for broader compatibility with devices. It isn't currently able to - make use of special purpose cameras and doesn't have any advanced image capturing - or processing technology. It has a traditional software-based HDR mode which - captures 3 images and merges them in a way that isn't at all intelligent and - causes a lot of blur and distortion. You probably don't want to use this unless - you have a way to mount the phone in a stable position and aren't taking a picture - of anything that's not almost entirely still.

    +

    GrapheneOS includes our own modern Camera app based on the bleeding edge + release channel of Android's CameraX library. It provides modes for QR + scanning, image capture and video recording as tabs at the bottom of the + screen. You can either use the tab interface or swipe left and right anywhere + on the screen above it to switch between them. The arrow button at the top of + the screen opens the settings panel and you can close it by pressing anywhere + outside the settings panel. You can also swipe down to open the settings and + swipe up to close it. Outside of the QR scanning mode, there's a row of large + buttons above the tab bar for switching between the cameras (left), capturing + images and starting/stopping video recording (middle) and opening the gallery + (right). The volume keys can also be used as an equivalent to pressing the + capture button. While recording a video, the gallery button becomes an image + capture button for capturing images.

    -

    Google Camera can be used with the sandboxed - Play services compatibility layer and can take full advantage of the available - cameras and image processing hardware as it can on the stock OS. Other camera apps - could provide the same image quality and features but there aren't any comparable - alternatives in practice. HDR+ is enabled by default and is a much more advanced - replacement for HDR taking bursts of pictures and intelligently combining those - which is what makes the image quality so much higher, especially for low light. - The Night Sight feature is essentially the same thing, but with the light of the - picture unnaturally increased through combining the data.

    +

    Our Camera app provides the system media intents used by other apps to + capture images / record videos via the OS provided camera implementation. + These intents can only be provided by a system app since Android 11, so the + quality of the system camera is quite important.

    -

    Since there isn't a project making a serious, high quality open source camera - app able to even compete with Google Camera without HDR+ and the fancy features, - GrapheneOS is funding the creation of a new app as a replacement for the AOSP - Camera app.

    +

    The in-app gallery / video player doesn't yet support zooming and depends + on opening an external image/video editor. This will be improved in the + future. We'll eventually be making our own gallery/editor app sharing a lot of + the code with the in-app gallery in the camera.

    + +

    Using the default 4:3 aspect ratio for image capture is recommended since + 16:9 is simply cropped output on all supported devices. A device oriented + towards video recording might actually have a wider image sensor but that's + not the case for Pixels or nearly any other smartphone.

    + +

    Image capture uses lightweight HDR+ on all supported Pixels and HDRnet for the + preview on 5th generation Pixels. Using the torch or camera flash will result + in HDR+ being disabled which is why automatic flash isn't enabled by default. + The lightweight HDR+ doesn't use as many frames as the more aggressive Google + Camera HDR+. CameraX extensions will eventually provide support for an HDR + mode with more aggressive HDR+ taking/combining more than only around 3 frames + along with a Night mode providing the Night Sight variant of HDR+ inflating + the light of the scene through combining the frames. Other fancy features like + Portrait mode will also depend on CameraX extensions being provided in the + future. There isn't a timeline for this but an initial implementation will + likely be shipped within the next year for Pixels.

    + +

    Zooming via pinch to zoom or the zoom slider will automatically make use of + the wide angle and telephoto cameras on Pixels. 4th generation Pixels have a + telephoto camera for 2x zoom and above. 5th generation Pixels have a wide + angle lens for zooming out from 1x to 0.6x. Images taken with the wide angle + lens won't match the quality of the normal camera but it offers a much wider + field of view.

    + +

    By default, continuous auto focus, auto exposure and auto white balance are + used across the whole scene. Tapping to focus will switch to auto focus, auto + exposure and auto white balance based on that location. The focus timeout + setting determines the timeout before it switches back the default mode. The + exposure compensation slider on the left allows manually tuning exposure and + will automatically adjust shutter speed, aperture and ISO without disrupting + lightweight HDR+ support. Further configuration / tuning over the algorithms + will be provided in the future. Direct manual control doesn't make much sense + with the modern camera stack and isn't planned.

    + +

    CameraX only recently gained official support for video recording in + October 2021 and there are still some quirks. The preview can sometimes end up + misaligned but the recorded videos won't be impacted. 16:9 is currently the + only supported video aspect ratio. 1080p (FHD) is the default but 2160p (UHD) + is supported. CameraX UHD support may be buggy on some devices.

    + +

    The QR scanning mode only scans within the scanning square marked on the + screen. The QR code should be aligned with the edges of the square but can + have any 90 degree orientation. Non-standard inverted QR codes are fully + supported. It's a very quick and high quality QR scanner able to easily scan + very high density QR codes from Pixels. Every 2 seconds, it will refresh auto + focus, auto exposure and auto white balance on the scanning square. It has + full support for zooming in and out. Support for other kinds of barcodes will + be added in the future, but adding them transparently would result in getting + false positives and would substantially harm the QR scanning capability. It + will need to be done in a way offering more control without having an overly + complex user interface.

    + +

    Camera permission is the only one that's required. Images and videos are + stored via the Media Store API so media/storage permissions aren't required. + The Microphone permission is needed for video recording by default but not + when including audio is disabled. Location permission is only needed if you + explicitly enabling location tagging, which is an experimental feature.

    + +

    Captured images currently include an EXIF timestamp, the phone model and an + abstraction of the exposure configuration. This will become fully optional in + the future and will likely be opt-in rather than opt-out. EXIF orientation + data is crucial for setting the proper orientation of the image. Videos have + their own similar metadata.

    +
    + +
    +

    Google Camera

    + +

    Google Camera can be used with the sandboxed + Play services compatibility layer and can take full advantage of the + available cameras and image processing hardware as it can on the stock OS. + Other camera apps could provide the same image quality and features but there + aren't any comparable alternatives in practice. HDR+ is enabled by default and + is a much more advanced replacement for HDR taking bursts of pictures and + intelligently combining those which is what makes the image quality so much + higher, especially for low light. The Night Sight feature is essentially the + same thing, but with the light of the picture unnaturally increased through + combining the data.

    + +

    Since there isn't a project making a serious, high quality open source + camera app able to even compete with Google Camera without HDR+ and the fancy + features, GrapheneOS is funding the creation of a new app as a replacement for + the AOSP Camera app.

    +