eliets2
25314aaacf
LR-MERGE-PANO: a panorama of raws keeps the as-shot white balance of its frames ( #1144 )
...
A raw whose white balance is only in the vendor's multipliers (CR2, NEF, ARW...)
has no AsShotNeutral of its own. Loading a frame dropped the multipliers and
stitch copied the first frame's colour tags, so a panorama of frames that reach
the stitcher without a neutral wrote a DNG with neither AsShotNeutral nor
AsShotWhiteXY, and a viewer had no white to start from (a strong colour cast
until White Balance > Auto).
Frames now carry the multipliers (Frame::wb_multipliers, filled from the decoded
raw; load_frame_with is split so a decoded raw can be tested without a file).
stitch takes the median R/G and B/G of the multipliers of the frames that are in
the panorama (the mean of the middle two for an even count; frames without
multipliers, or with non-finite or non-positive ones, do not vote) and sets the
result's AsShotNeutral to their reciprocal, green = 1. The source's
AsShotWhiteXY is dropped with it: a reader takes it before the neutral and the
DNG spec makes the two exclusive. With no multipliers anywhere (DNG sources) the
first frame's tags are kept, as before.
In the app and the CLI a raw without colour matrices already gets a neutral from
starting_colour_tags (#965 ). For frames balanced alike the new neutral renders
the same (checked in the engine crate); it differs when the camera balanced the
frames differently: the panorama follows the median instead of the first frame.
Tests: the frame carries the multipliers; the consensus for odd and even counts,
with missing and unusable values; stitching raw-style frames gives the median
AsShotNeutral, ignores frames outside the panorama and leaves the colour as it
was without multipliers; the written DNG, read back with the raw reader, has the
reciprocal AsShotNeutral and the white balance the source's multipliers give.
2026-10-13 12:23:36 +03:00
Brandon Thomas
b3d392b499
Merge pull request #1438 from storytold/claude/integrate-batch-32
...
Integration batch 32-2: 7 reviewed contributor PRs
2026-10-13 02:18:34 -04:00
Brandon Thomas and Claude Opus 5.5
ae9b09d3c2
Batch 32: rustfmt after merges
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-13 02:07:07 -04:00
Brandon Thomas
c94ebae470
Merge PR #1185
2026-10-13 02:06:07 -04:00
Brandon Thomas
4ee6a4888b
Merge PR #1126
2026-10-13 02:05:14 -04:00
Brandon Thomas
68bacba288
Merge PR #1113
2026-10-13 02:04:31 -04:00
Brandon Thomas
8a640dc70b
Merge PR #1077
2026-10-13 02:04:06 -04:00
Brandon Thomas
478f20054b
Merge PR #1056
2026-10-13 02:02:17 -04:00
Brandon Thomas
d8f10a1ef7
Merge PR #919
2026-10-13 02:01:30 -04:00
Brandon Thomas
643bc7f909
Merge PR #850
2026-10-13 01:57:40 -04:00
BFlat
68c924047d
Merge pull request #1431 : integration batch 33 (85 reviewed contributor PRs)
...
Integration batch 33: main green again, 85 reviewed contributor PRs
2026-10-13 12:16:54 +07:00
bflatastic
2397927681
Merge main (batch 32a landed)
...
# Conflicts:
# apps/lightcraft-cli/src/main.rs
# crates/codecs/src/lib.rs
# crates/mcp/src/headless.rs
2026-10-13 12:09:34 +07:00
bflatastic
ece9bd83e4
Batch 32: one tracker row per id (rows two PRs both edited), parity summary refreshed
2026-10-13 12:05:26 +07:00
bflatastic
7693cbf3ae
Revert "Merge PR #1262 ": the toast as a widget takes the clicks meant for what is under it (a dialog's button)
2026-10-13 11:54:39 +07:00
bflatastic
2e877ad476
Batch 32: arrows over a slider nudge it ( #1264 ), the toast area doesn't fade in ( #1262 ), #1282 's test runs on Windows
2026-10-13 11:42:47 +07:00
Brandon Thomas
b709180587
Merge pull request from storytold/claude/integrate-batch-32 (batch 32a)
...
Integration batch 32a: 8 reviewed contributor PRs
2026-10-13 00:27:00 -04:00
bflatastic
1d70cf6358
Batch 32: the import tool tests date their fixtures (undated files take the file's date, #1216 )
2026-10-13 11:20:47 +07:00
Brandon Thomas and Claude Opus 5.5
2f0931d3ca
Batch 32: rustfmt after merges
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-13 00:13:49 -04:00
Brandon Thomas
a1035f1372
Merge PR #997
2026-10-13 00:13:41 -04:00
Brandon Thomas
d5b8d52e1d
Merge PR #1262
2026-10-13 00:13:41 -04:00
Brandon Thomas
6568a7ae16
Merge PR #1260
2026-10-13 00:13:40 -04:00
bflatastic
d752076339
Batch 32: fixes for PRs merged together ( #984 leap-year lint, #1344 ColorData field, #1187 preset panel builds)
2026-10-13 11:11:02 +07:00
bflatastic
702f90bfc9
Batch 32: close the tests two merges added at one place; cargo fmt
2026-10-13 11:08:16 +07:00
bflatastic
fa3dfbbc4a
Merge PR #1238
...
# Conflicts:
# crates/pipeline/src/spots.rs
# crates/ui-egui/src/panels/edit.rs
# docs/parity-checklist.md
2026-10-13 11:06:46 +07:00
bflatastic
84d6849cf3
Merge PR #1216
...
# Conflicts:
# crates/engine/src/files.rs
# crates/ui-egui/locales/de-formats.json
# crates/ui-egui/locales/de.json
# crates/ui-egui/locales/es-formats.json
# crates/ui-egui/locales/es.json
# crates/ui-egui/locales/fr-formats.json
# crates/ui-egui/locales/fr.json
# crates/ui-egui/locales/ja-formats.json
# crates/ui-egui/locales/ja.json
# crates/ui-egui/locales/pt-br-formats.json
# crates/ui-egui/locales/pt-br.json
# crates/ui-egui/locales/ru-formats.json
# crates/ui-egui/locales/ru.json
# crates/ui-egui/locales/uk-formats.json
# crates/ui-egui/locales/uk.json
# crates/ui-egui/locales/zh-hans-formats.json
# crates/ui-egui/locales/zh-hans.json
# crates/ui-egui/locales/zh-hant-formats.json
# crates/ui-egui/locales/zh-hant.json
# docs/parity-checklist.md
2026-10-13 11:06:28 +07:00
bflatastic
ed1d641f22
Merge PR #1174
...
# Conflicts:
# crates/catalog/src/lock.rs
# crates/pipeline/src/spots.rs
# docs/parity-checklist.md
2026-10-13 11:06:26 +07:00
bflatastic
692ab7f7c2
Merge PR #1235
...
# Conflicts:
# docs/whats-new.md
2026-10-13 11:05:55 +07:00
bflatastic
32253d862a
Merge PR #1017
...
# Conflicts:
# crates/pipeline/src/spots.rs
# docs/gaps.md
# docs/parity-checklist.md
2026-10-13 11:05:54 +07:00
bflatastic
4e78514948
Merge PR #1324
...
# Conflicts:
# docs/gaps.md
# docs/parity-checklist.md
# docs/raw-parity.md
# docs/whats-new.md
2026-10-13 11:05:53 +07:00
bflatastic
bac147a460
Merge PR #1189
...
# Conflicts:
# docs/parity-checklist.md
2026-10-13 11:05:48 +07:00
bflatastic
2181c69162
Merge PR #1151
...
# Conflicts:
# docs/whats-new.md
2026-10-13 11:05:47 +07:00
bflatastic
963d4f327a
Merge PR #1114
2026-10-13 11:05:45 +07:00
bflatastic
97f8b8c87c
Merge PR #1024
...
# Conflicts:
# crates/ui-egui/locales/es.json
2026-10-13 11:05:45 +07:00
bflatastic
8df468bfc6
Merge PR #1246
...
# Conflicts:
# crates/pipeline/src/spots.rs
# docs/parity-checklist.md
2026-10-13 11:05:44 +07:00
bflatastic
8ca6a835ec
Merge PR #1411
...
# Conflicts:
# crates/ui-egui/locales/pt-br.json
# docs/whats-new.md
2026-10-13 11:05:35 +07:00
bflatastic
251397694e
Merge PR #1302
...
# Conflicts:
# crates/preview/src/tests.rs
2026-10-13 11:04:34 +07:00
bflatastic
94808da369
Merge PR #1250
...
# Conflicts:
# crates/ui-egui/src/tests_panels.rs
2026-10-13 11:04:33 +07:00
bflatastic
edfe7c6351
Merge PR #1242
...
# Conflicts:
# crates/ui-egui/src/tests_panels.rs
# docs/parity-checklist.md
2026-10-13 11:04:32 +07:00
bflatastic
95d519ae64
Batch 32: cargo fmt
2026-10-13 11:04:18 +07:00
bflatastic
1c473ed64c
Merge PR #1361
2026-10-13 11:03:53 +07:00
bflatastic
cb8aa0b017
Merge PR #1341
2026-10-13 11:03:11 +07:00
bflatastic
d3c024e4df
Merge PR #1047
...
# Conflicts:
# crates/pipeline/src/spots.rs
# docs/gaps.md
2026-10-13 11:03:10 +07:00
bflatastic
74a0b5796a
Merge PR #1070
...
# Conflicts:
# crates/pipeline/src/spots.rs
2026-10-13 11:03:05 +07:00
bflatastic
4764e85f37
Merge PR #1092
2026-10-13 11:03:01 +07:00
bflatastic
0ab59399c8
Merge PR #1186
2026-10-13 11:03:00 +07:00
bflatastic
6bbceb2fa8
Merge PR #1293
2026-10-13 11:02:59 +07:00
bflatastic
d6583cebf8
Merge PR #1294
2026-10-13 11:02:59 +07:00
bflatastic
cc9deaf64b
Merge PR #1078
2026-10-13 11:02:58 +07:00
bflatastic
76fd9b9ae8
Merge PR #805
...
# Conflicts:
# docs/camera-preview-colour.md
# docs/parity-checklist.md
2026-10-13 11:02:58 +07:00
bflatastic
62b1ba04d0
Merge PR #1367
2026-10-13 11:02:55 +07:00