Skip to content
eddyjungePublic

About

Room to grade. An Android camera app that records Apple Log footage built for DaVinci Resolve.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Latitude. Room to grade. A camera app for Android that records footage built for DaVinci Resolve.

Why log  ·  How it works  ·  In Resolve  ·  Measurements  ·  Build

Development prototype. Built for and tested on the Xiaomi 15 Ultra.

Latitude's viewfinder on the Xiaomi 15 Ultra: 30p, Log, 1/60 at 180 degrees, ISO 413 automatic. Left: settings, sound level of the internal mic, AE, AWB and AF locks. Right: 14, 23, 69 and 95 mm lenses, front camera, record button, clips.

Screenshot from the Xiaomi 15 Ultra. Settings, sound level and locks on the left; lenses, record button and clips on the right.


Why log

A phone’s camera app finishes the picture before it saves it: it adds contrast and sharpening and lets bright skies clip.
That can’t be undone in the grade. Latitude records a flat Apple Log image, so the highlights are still in the file.

Typical phone video: finished in the phone, contrast, sharpening and clipped highlights are in the file. With Latitude: finished in Resolve, flat Apple Log with the highlights still in the file.

The curves illustrate the idea. They aren’t measured from a particular phone.


How it works

1. Press a volume key: starts recording, also when the app is in standby. 2. Import into Resolve: Resolve reads Apple Log, lens, exposure and timecode from the file. 3. Grade it: same color-managed timeline as your Sony and DJI clips.

Ready on launch: opens with the camera running, the volume buttons start and stop a take. Locked during a take: exposure, white balance and focus don't change while recording. Constant frame rate: 30p, stored as 29.97 like DJI and Sony. No processing look: no sharpening, no LUT, no AI enhancement.


In Resolve

Resolve already has Apple Log (Rec.2020 primaries) as an input color space.
A metadata key in the file makes Resolve select it on import, without a LUT or manual tagging.
Lens, ISO, shutter angle, white balance and a time-of-day timecode show up in the metadata panel.

Locked capture, recorded as Apple Log in Rec.2020 and 10-bit HEVC, set as Apple Log by DaVinci Resolve on import, graded in DaVinci Wide Gamut with your other cameras.

Checked with DaVinci Resolve Studio 21.1 on Linux. Sound is 24-bit PCM, because Resolve on Linux can’t decode AAC.
If a phone ignores the custom tone curve in 10-bit, Latitude records locked HLG instead. It doesn’t convert HLG to log, which would add no information.


Measurements

Measured on the Xiaomi 15 Ultra: startup time from the app’s log, frame timing with ffprobe,
lip sync with a clap test, and levels from the decoded code values.

Measured on the Xiaomi 15 Ultra: 0.3 seconds from launch to record-ready, picture and sound within one frame, no frames dropped at a strict 29.97.

Stage What Status
0 Probe what the camera, image processor and encoder support Done
1 HLG 10-bit with exposure, white balance and focus locked Done
2 Apple Log through the image processor’s tone curve, set by Resolve on import Done
3 RAW to Apple Log on the GPU Parked

Working today: volume-button recording, AE · AWB · AF lock, open gate 4096×3072 HEVC 10-bit at 150 Mbit/s,
Apple Log · HLG · Rec.709, matched colors on every lens, 24-bit PCM sound, crash-safe files, zebras,
thermal warning, standby after 90 seconds, timecode and lens metadata.


Build

Android 14 or later. Kotlin, Jetpack Compose and Camera2.
Needs JDK 21 and the Android SDK; the scripts expect them in ~/Android.

scripts/setup-usb.sh           # once: allow adb to reach the phone over USB (asks for sudo)
scripts/phone.sh               # build the optimized app, install it and show the startup time
scripts/phone.sh pull          # copy probe results and test clips into testclips/
python3 scripts/readme-art.py  # redraw the illustrations in assets/

Latitude

About

Room to grade. An Android camera app that records Apple Log footage built for DaVinci Resolve.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages