Skip to content

Commit 4753789

Browse files
Staacksclaude
andcommitted
Camera white balance: implemented on both platforms, matrix row active
iOS implemented the white_balance and white_balance_tint entries of the camera input's locked attribute on 2026-10-01 (phyphox-ios 0ebe2fa7), following Android the same day, so the planned wording goes: the locked note in spec/input.yml, the next.md paragraph (which also still mentioned the dropped reference marks), the fixture comments, and the camera-white-balance row, now tagged in both app test suites. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
1 parent 55b92c6 commit 4753789

5 files changed

Lines changed: 18 additions & 23 deletions

File tree

‎corpus/generated/camera-white-balance-lock.phyphox‎

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
<phyphox xmlns="http://phyphox.org/xml" version="1.21" locale="en">
22
<!-- Generated fixture: the value-less white_balance entry, which freezes the automatic white balance at the first start in the camera input's locked attribute
3-
(file format 1.21, planned - see spec/input.yml, camera/locked, and
4-
docs/file-format/input.md "White balance"). Both apps ignore unknown
5-
locked entries, so this file loads before the feature exists; the
6-
behaviour is the matrix row camera-white-balance. A parsing fixture,
7-
not a maintained experiment. -->
3+
(file format 1.21 - see spec/input.yml, camera/locked, and
4+
docs/file-format/input.md "White balance"). The behaviour is the matrix
5+
row camera-white-balance. A parsing fixture, not a maintained
6+
experiment. -->
87
<title>Corpus: camera white balance lock</title>
98
<category>Corpus</category>
109
<description>Generated coverage fixture for the value-less white_balance entry, which freezes the automatic white balance at the first start.</description>

‎corpus/generated/camera-white-balance-temperature.phyphox‎

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
<phyphox xmlns="http://phyphox.org/xml" version="1.21" locale="en">
22
<!-- Generated fixture: a white balance set by colour temperature in Kelvin and a tint as Duv in the camera input's locked attribute
3-
(file format 1.21, planned - see spec/input.yml, camera/locked, and
4-
docs/file-format/input.md "White balance"). Both apps ignore unknown
5-
locked entries, so this file loads before the feature exists; the
6-
behaviour is the matrix row camera-white-balance. A parsing fixture,
7-
not a maintained experiment. -->
3+
(file format 1.21 - see spec/input.yml, camera/locked, and
4+
docs/file-format/input.md "White balance"). The behaviour is the matrix
5+
row camera-white-balance. A parsing fixture, not a maintained
6+
experiment. -->
87
<title>Corpus: camera white balance temperature</title>
98
<category>Corpus</category>
109
<description>Generated coverage fixture for a white balance set by colour temperature in Kelvin and a tint as Duv.</description>

‎docs/reference/version-history/next.md‎

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,17 +79,16 @@ same day on both platforms:
7979
channels carry a spectrum each, paired with *pixelPosition* like *luminance* (see
8080
[Colour channels](../../file-format/input.md#colour-channels)).
8181

82-
Specified 2026-10-01 ahead of the implementations (marked *planned* in the reference until both
83-
apps ship it):
82+
Specified 2026-10-01 ahead of the implementations and implemented from that specification the
83+
same day on both platforms:
8484

8585
- **White balance in the camera's *locked* attribute:** `white_balance` alone freezes the
8686
automatic white balance when the measurement is first started; `white_balance=5600` balances
8787
for a correlated colour temperature in Kelvin; `white_balance_tint` shifts the white point off
8888
the Planckian locus as Duv. The format knows no named presets - the phones' presets are only
8989
approximations that differ per device. The camera-gui's preset picker becomes a control with
90-
the same three choices, automatic, locked, or a temperature scale with tint, carrying the old
91-
preset names as reference marks (see
92-
[White balance](../../file-format/input.md#white-balance)).
90+
the same three choices, automatic, locked, or a temperature scale with tint, and no named
91+
presets (see [White balance](../../file-format/input.md#white-balance)).
9392

9493
## Changes on Android and iOS
9594

‎spec/input.yml‎

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -909,9 +909,8 @@ elements:
909909
but they parse it in different places - iOS in the handler, Android
910910
further downstream. Worth a conformance test rather than trust.
911911
The white_balance and white_balance_tint entries were specified
912-
2026-10-01 ahead of the implementations (planned; both apps ignore
913-
unknown entry names, so files carrying them load today and the
914-
entries simply have no effect until the apps follow). Implementation
912+
2026-10-01 ahead of the implementations and implemented from that
913+
specification the same day on both platforms. Implementation
915914
guidance, not contract: iOS converts temperature and Duv to a CIE xy
916915
white point and asks AVCaptureDevice for the matching gains, clamped
917916
to maxWhiteBalanceGain. Android uses the CCT colour-correction mode

‎test-matrix.yml‎

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -889,19 +889,18 @@ tests:
889889
exact value per pixel and a ramp across it as a flat spectrum, in
890890
both orientations, with the exposure factor applied.
891891
892-
# --- camera white balance (file format 1.21, specified 2026-10-01, planned) --
892+
# --- camera white balance (file format 1.21, specified 2026-10-01) --
893893
# spec/input.yml (camera locked: white_balance, white_balance_tint) and
894894
# docs/file-format/input.md "White balance" are the design. Parsing is
895895
# covered by corpus-valid-load through corpus/generated/camera-white-
896-
# balance-lock.phyphox and camera-white-balance-temperature.phyphox, but
897-
# both apps ignore unknown locked entries, so those files load before the
898-
# feature exists; this row carries the behaviour.
896+
# balance-lock.phyphox and camera-white-balance-temperature.phyphox; this
897+
# row carries the behaviour.
899898

900899
- id: camera-white-balance
901900
area: file-format
902901
tier: T1
903902
platforms: [android, ios]
904-
status: planned
903+
status: active
905904
description: >-
906905
With locked="white_balance=T" and a neutral target lit by a source of
907906
colour temperature T, linearRed, linearGreen and linearBlue agree

0 commit comments

Comments
 (0)