overhaul usage guide Camera docs for our new app
This commit is contained in:
parent
42856dc17b
commit
d335e4eaf2
@ -76,7 +76,13 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#web-browsing">Web browsing</a></li>
|
<li><a href="#web-browsing">Web browsing</a></li>
|
||||||
<li><a href="#camera">Camera</a></li>
|
<li>
|
||||||
|
<a href="#camera">Camera</a>
|
||||||
|
<ul>
|
||||||
|
<li><a href="#grapheneos-camera-app">GrapheneOS Camera app</a></li>
|
||||||
|
<li><a href="#google-camera">Google Camera</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
<li><a href="#exec-spawning">Exec spawning</a></li>
|
<li><a href="#exec-spawning">Exec spawning</a></li>
|
||||||
<li><a href="#bugs-uncovered-by-security-features">Bugs uncovered by security features</a></li>
|
<li><a href="#bugs-uncovered-by-security-features">Bugs uncovered by security features</a></li>
|
||||||
<li>
|
<li>
|
||||||
@ -492,38 +498,120 @@
|
|||||||
<section id="camera">
|
<section id="camera">
|
||||||
<h2><a href="#camera">Camera</a></h2>
|
<h2><a href="#camera">Camera</a></h2>
|
||||||
|
|
||||||
<p>GrapheneOS itself has the same camera capabilities and quality as the stock OS.
|
<p>GrapheneOS has the same camera capabilities and quality as the stock OS. It
|
||||||
It will match the stock OS when comparing the same app on each OS.</p>
|
will match the stock OS when comparing the same app on each OS.</p>
|
||||||
|
|
||||||
<p>The Camera app included in GrapheneOS is very basic and can't take full advantage
|
<section id="grapheneos-camera-app">
|
||||||
of the hardware. It doesn't offer much in the way of configuration. In the long term,
|
<h3><a href="#grapheneos-camera-app">GrapheneOS Camera app</a></h3>
|
||||||
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.</p>
|
|
||||||
|
|
||||||
<p>Open Camera is somewhat more advanced and much more configurable. You should
|
<p>GrapheneOS includes our own modern Camera app based on the bleeding edge
|
||||||
make sure to configure it to use the Camera2 API since it uses the legacy camera
|
release channel of Android's CameraX library. It provides modes for QR
|
||||||
APIs by default for broader compatibility with devices. It isn't currently able to
|
scanning, image capture and video recording as tabs at the bottom of the
|
||||||
make use of special purpose cameras and doesn't have any advanced image capturing
|
screen. You can either use the tab interface or swipe left and right anywhere
|
||||||
or processing technology. It has a traditional software-based HDR mode which
|
on the screen above it to switch between them. The arrow button at the top of
|
||||||
captures 3 images and merges them in a way that isn't at all intelligent and
|
the screen opens the settings panel and you can close it by pressing anywhere
|
||||||
causes a lot of blur and distortion. You probably don't want to use this unless
|
outside the settings panel. You can also swipe down to open the settings and
|
||||||
you have a way to mount the phone in a stable position and aren't taking a picture
|
swipe up to close it. Outside of the QR scanning mode, there's a row of large
|
||||||
of anything that's not almost entirely still.</p>
|
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.</p>
|
||||||
|
|
||||||
|
<p>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.</p>
|
||||||
|
|
||||||
|
<p>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.</p>
|
||||||
|
|
||||||
|
<p>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.</p>
|
||||||
|
|
||||||
|
<p>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.</p>
|
||||||
|
|
||||||
|
<p>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.</p>
|
||||||
|
|
||||||
|
<p>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.</p>
|
||||||
|
|
||||||
|
<p>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.</p>
|
||||||
|
|
||||||
|
<p>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.</p>
|
||||||
|
|
||||||
|
<p>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.</p>
|
||||||
|
|
||||||
|
<p>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.</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id="google-camera">
|
||||||
|
<h3><a href="#google-camera">Google Camera</a></h3>
|
||||||
|
|
||||||
<p>Google Camera can be used with the <a href="#sandboxed-play-services">sandboxed
|
<p>Google Camera can be used with the <a href="#sandboxed-play-services">sandboxed
|
||||||
Play services compatibility layer</a> and can take full advantage of the available
|
Play services compatibility layer</a> and can take full advantage of the
|
||||||
cameras and image processing hardware as it can on the stock OS. Other camera apps
|
available cameras and image processing hardware as it can on the stock OS.
|
||||||
could provide the same image quality and features but there aren't any comparable
|
Other camera apps could provide the same image quality and features but there
|
||||||
alternatives in practice. HDR+ is enabled by default and is a much more advanced
|
aren't any comparable alternatives in practice. HDR+ is enabled by default and
|
||||||
replacement for HDR taking bursts of pictures and intelligently combining those
|
is a much more advanced replacement for HDR taking bursts of pictures and
|
||||||
which is what makes the image quality so much higher, especially for low light.
|
intelligently combining those which is what makes the image quality so much
|
||||||
The Night Sight feature is essentially the same thing, but with the light of the
|
higher, especially for low light. The Night Sight feature is essentially the
|
||||||
picture unnaturally increased through combining the data.</p>
|
same thing, but with the light of the picture unnaturally increased through
|
||||||
|
combining the data.</p>
|
||||||
|
|
||||||
<p>Since there isn't a project making a serious, high quality open source camera
|
<p>Since there isn't a project making a serious, high quality open source
|
||||||
app able to even compete with Google Camera without HDR+ and the fancy features,
|
camera app able to even compete with Google Camera without HDR+ and the fancy
|
||||||
GrapheneOS is funding the creation of a new app as a replacement for the AOSP
|
features, GrapheneOS is funding the creation of a new app as a replacement for
|
||||||
Camera app.</p>
|
the AOSP Camera app.</p>
|
||||||
|
</section>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section id="exec-spawning">
|
<section id="exec-spawning">
|
||||||
|
Loading…
x
Reference in New Issue
Block a user