Dylan M. Taylor
489febbd79
refactor: split complex functions into helpers (S3776)
...
Lower the cognitive complexity of segment_at, apply_mmco, derive_amvp,
plotted_extent and look_with_def by moving their per-segment, per-MMCO,
per-neighbour, per-stack and per-preset-style steps into helpers. The
expressions and their evaluation order are unchanged.
2026-10-25 21:29:52 -04:00
Dylan M. Taylor
aaf6c1c38a
refactor(show): split the key handler into grid, navigation and tool keys (S3776) ( #1402 )
2026-10-25 21:13:50 -04:00
Dylan M. Taylor
16fe4ebc65
refactor(hevc): split derive_merge into spatial, temporal, combined and zero stages (S3776) ( #1401 )
2026-10-25 20:55:39 -04:00
Dylan M. Taylor
430d0a91c0
refactor(hevc): split prediction_unit into merge, AMVP and store helpers (S3776) ( #1400 )
2026-10-25 20:55:35 -04:00
Dylan M. Taylor
c93e0a0bac
refactor(rtf): split the outline reader into per-construct methods (S3776) ( #1399 )
2026-10-25 20:55:30 -04:00
Dylan M. Taylor
aa3a1baa01
refactor(av1): reduce complexity in cdef and loop restoration (S3776) ( #1278 )
2026-10-25 20:26:38 -04:00
Dylan M. Taylor
edfee40392
refactor(av1): split inverse transform into stages and passes (S3776) ( #1277 )
2026-10-25 20:26:33 -04:00
Dylan M. Taylor
580b577cf2
fix(h264): use Option::as_ref instead of closure (S1612) ( #1268 )
2026-10-25 20:26:28 -04:00
Dylan M. Taylor
3418dec9e4
refactor(h264): Sonar S3776 dpb helpers ( #1275 )
...
* refactor(h264): split dpb functions (S3776)
* fix(h264): restore the MMCO 6 long-term index range check
2026-10-25 19:36:54 -04:00
Dylan M. Taylor
a78d9a9a19
refactor(av1): split film grain synthesis into stages (S3776) ( #1276 )
2026-10-25 19:23:04 -04:00
Dylan M. Taylor
560f80abe2
refactor(h264): split derive_inter_motion and residual_cavlc (S3776) ( #1272 )
2026-10-25 19:22:58 -04:00
Dylan M. Taylor
2aa0310e27
refactor(av1): split OBU parsing in decoder (S3776) ( #1279 )
2026-10-25 19:22:35 -04:00
Dylan M. Taylor
b6fd616977
refactor(h264,hevc): reduce parameter counts (S107) ( #1271 )
...
Group geometry/size/weight parameters into tuples and a PbGeom struct.
2026-10-25 19:21:54 -04:00
Dylan M. Taylor
13ed8889da
refactor(av1): use method path instead of closure (S1612) ( #1269 )
2026-10-25 18:18:36 -04:00
Dylan M. Taylor
222ef368f4
Merge pull request #1273 from storytold/b-h264hevc-4
...
refactor(hevc): Sonar S3776 slicedec helpers
2026-10-25 16:36:14 -04:00
Dylan M. Taylor
d318583867
fix(render): optimize table styles, chart lookups, line trimming, and canvas limits ( #1288 )
...
* fix(render): optimize table styles, chart lookups, line trimming, and canvas limits
* fix(render): give outer-shadow passes their own traversal budget
A shadowed group's silhouette pass shared the 100,000-visit limit with normal drawing, so a group with many children could use it up before anything visible was drawn.
* perf(render): resolve a table's style once per draw
2026-10-25 16:01:43 -04:00
Dylan M. Taylor
d4945d0443
fix(codecs): harden media decoders against resource amplification and unbound state ( #1285 )
...
* fix(codecs): harden media decoders against resource amplification and unbound state
- Ogg recovery (Finding 29): Reuse capture search window buffer and bound
cumulative recovery work to prevent quadratic re-scanning.
- Opus packet concealment (Finding 40): Skip empty stored Opus packets
instead of triggering packet-loss concealment audio.
- Opus decoded PCM budget (Finding 63): Enforce aggregate MAX_PCM_SAMPLES
limit before expanding planar audio samples.
- H.264 DPB reference eviction (Finding 56): Validate MMCO 6 against
max_long_term_frame_idx and evict oldest entries when capacity is reached.
- HEVC missing reference frames (Finding 57): Share gray replacement frames
and bound missing references to DPB buffering limits.
- AV1 show_existing_frame budget (Finding 69): Cap frame outputs per chunk
to 32 to prevent output batch memory explosion.
- AV1 nonuniform tile bounds (Finding 89): Enforce MAX_TILE_COLS and
MAX_TILE_ROWS limits on nonuniform tile layouts.
* fix(codecs): refine show_existing_frame limit, PCM capacity check, and buffered Ogg search
2026-10-25 15:59:10 -04:00
Dylan M. Taylor
b70a6fda35
feat: startup update prompt modal and direct self-updating ( #1377 )
...
* feat: startup update prompt modal and direct self-updating
Ref: storytold/craft-libs#319
* build: pin craft-update to craft-libs main (b9ba47f) and refresh the lock
* refactor(updates): drive the flow with craft-update's Updater
Results are read independent of the prompt, a dropped worker is an error, failures return to the prompt, and no update starts over unsaved work. A manual check during the startup check is honored.
2026-10-25 14:48:33 -04:00
Brandon Thomas and Claude Opus 5.5
5d9c3818a5
Tests: the Slide Size preset test opens the dialog's own combo box (egui 0.37 exposes the ribbon's too)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-25 13:49:12 -04:00
Brandon Thomas and Claude Opus 5.5
31cf44c2ff
Integration: the merged PRs import what they use ( #1270 ) and use egui 0.37's wheel source and media clock ( #1350 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-25 13:45:19 -04:00
Brandon Thomas and Claude Opus 5.5
d20b08e3af
Tests: drop the units test's PNG debug hook; the PDF link test's doc says only web and mail links export
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-25 13:43:25 -04:00
Brandon Thomas and Claude Opus 5.5
4504495e2b
Tests: one blank line between the merged engine tests (cargo fmt)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-25 13:43:24 -04:00
Brandon Thomas
5e9043afa6
Merge pull request #1336
...
# Conflicts:
# crates/ui-egui/src/dialogs.rs
# crates/ui-egui/src/panes.rs
# crates/ui-egui/src/ribbon.rs
2026-10-25 13:43:07 -04:00
Brandon Thomas
f1bb876e28
Merge pull request #1334
...
# Conflicts:
# crates/engine/src/cmd/edit.rs
2026-10-25 13:42:53 -04:00
Brandon Thomas
5648c4d7ec
Merge pull request #1189
...
# Conflicts:
# crates/engine/src/tests.rs
2026-10-25 13:42:45 -04:00
Brandon Thomas
d85e397be4
Merge pull request #1291
...
# Conflicts:
# crates/engine/src/tests.rs
2026-10-25 13:42:45 -04:00
Brandon Thomas
0e78adc675
Merge pull request #1259
...
# Conflicts:
# crates/engine/src/cmd/richclip.rs
2026-10-25 13:42:29 -04:00
Brandon Thomas
556048436e
Merge pull request #1221
2026-10-25 13:42:06 -04:00
Brandon Thomas
637bbcdf51
Merge pull request #1118
2026-10-25 13:42:06 -04:00
Brandon Thomas
b6c1fe628c
Merge pull request #1109
2026-10-25 13:42:06 -04:00
Brandon Thomas
ad664b2cdd
Merge pull request #1107
2026-10-25 13:42:06 -04:00
Brandon Thomas
8b2c0f456a
Merge pull request #1294
2026-10-25 13:42:05 -04:00
Brandon Thomas
ea4001a26e
Merge pull request #1256
2026-10-25 13:42:05 -04:00
Brandon Thomas
4268cab027
Merge pull request #1246
2026-10-25 13:42:05 -04:00
Brandon Thomas
c8a13561b3
Merge pull request #1331
2026-10-25 13:42:05 -04:00
Brandon Thomas
90f723918b
Merge pull request #1319
2026-10-25 13:42:05 -04:00
Brandon Thomas
5f5f341d27
Merge pull request #1317
2026-10-25 13:42:05 -04:00
Brandon Thomas
d217820576
Merge pull request #1315
2026-10-25 13:42:05 -04:00
Brandon Thomas
d6d30bbf20
Merge pull request #1313
2026-10-25 13:42:05 -04:00
Brandon Thomas
7a9786b355
Merge pull request #1311
2026-10-25 13:42:05 -04:00
Brandon Thomas
5e2f1993c3
Merge pull request #1190
2026-10-25 13:42:05 -04:00
Brandon Thomas
24905e7057
Merge pull request #1358
2026-10-25 13:42:05 -04:00
Brandon Thomas
3c4d6e12de
Merge pull request #1354
2026-10-25 13:42:05 -04:00
Brandon Thomas
7d6445e060
Merge pull request #1353
2026-10-25 13:42:05 -04:00
Brandon Thomas
b21d71e648
Merge pull request #1352
2026-10-25 13:42:05 -04:00
Brandon Thomas
ec274ec2fe
Merge pull request #1351
2026-10-25 13:42:04 -04:00
Brandon Thomas
178edac4ac
Merge pull request #1329
2026-10-25 13:42:04 -04:00
Brandon Thomas
d0411d0332
Merge pull request #1304
2026-10-25 13:42:04 -04:00
Brandon Thomas
f034901719
Merge pull request #1303
2026-10-25 13:42:04 -04:00
Brandon Thomas
547807c58d
Merge pull request #1302
2026-10-25 13:42:04 -04:00