Skip to content

Update dependencies - #77

Merged
danielchalmers merged 1 commit into
mainfrom
claude/dependency-updates-2026-09
Sep 17, 2026
Merged

danielchalmers merged 1 commit into
mainfrom
claude/dependency-updates-2026-09

Conversation

@danielchalmers

Copy link
Copy Markdown
Owner
package from to
FlyleafLib 3.11.3 3.11.5
FlyleafLib.Controls.WPF 1.7.3 1.7.5
Microsoft.NET.Test.Sdk 18.9.0 18.10.1

Everything else is current. Flyleaf.FFmpeg.Bindings is still 9.0.0 and BtbN still publishes n9.0 as the newest FFmpeg branch, so the download doesn't move either.

What changed upstream, and what that means here

3.11.4 and 3.11.5 are 5 commits, almost entirely renderer work: HDR to SDR tonemapping, Dolby Vision, ICC profiles, and a precision rework of limited-range YUV to RGB. The only other code changes are a try/catch around the default audio device lookup and a null-safe Renderer?.Reset() for audio-only players. Neither is a path we use.

Nothing under MediaDecoder/ changed. The audio filter-graph race and the LoadProfile.Main coupling documented in FlyleafCameraPlayer.CreateConfig and FlyleafRuntime still hold as written.

Tested locally

Colors. The limited-range rework is the one change that could touch dashcam footage, and nothing else in our testing can see a color shift. So I rendered flat bars of known sRGB colors through the app's real player and read the pixels back from Flyleaf's snapshot, which runs the same video processor as the screen. That covered 48 bars: standard and Tesla resolution, with and without color tags, through both the D3D11 video processor the app uses by default and Flyleaf's own shader path, which GPUs without one fall back to.

3.11.3 → 3.11.5
D3D11 path (default) byte-identical
Flyleaf shader path at most 1 of 255 steps per channel

Tagged footage renders within 4 steps of its source, and so does untagged footage at Tesla resolution, where the player correctly assumes BT.709.

Playback. Measured identically on both versions:

3.11.3 3.11.5
ShowFramePrev moved / following step moved 0/8, 8/8 0/8, 8/8
accurate seeks landing within 100ms 20/20 20/20
key bindings left after RemoveAll() 0 0
20 clip reopens / 15 player create-dispose cycles all complete all complete

The frame-step result means the workaround in StepFrameAsync and its comment are still accurate.

End to end. The integration harness passed 94/94 on 3.11.5: install, engine, playback, six-camera sync, unreadable chunks, file-handle release, export, and color. Both x64 and arm64 single-file publishes succeed. I also launched the published x64 SentryDeck.exe itself: it starts Flyleaf, loads FFmpeg without avfilter, runs its update check, logs no errors, and exits 0 on close.

372 tests green under the exact command CI runs, dotnet format --verify-no-changes clean.

FlyleafLib 3.11.3 to 3.11.5, FlyleafLib.Controls.WPF 1.7.3 to 1.7.5, and Microsoft.NET.Test.Sdk 18.9.0 to 18.10.1.
The FFmpeg bindings stay on 9.0.0 and the downloaded FFmpeg stays on the n9.0 branch, since neither has moved.

Upstream, 3.11.4 and 3.11.5 are almost entirely renderer work: HDR to SDR tonemapping, Dolby Vision, ICC profiles, and a precision rework of limited-range YUV to RGB.
The rest is a guarded audio device lookup and a null-safe Renderer.Reset for audio-only players, neither of which this app uses.
Nothing under MediaDecoder changed, so the audio filter graph race and the load profile coupling described in FlyleafCameraPlayer and FlyleafRuntime still hold as written.

The limited-range rework is the one change that could touch dashcam footage, and none of the existing checks can see a color shift, so it was measured by rendering flat bars of known sRGB colors through the app's real player and reading the pixels back from Flyleaf's snapshot, which runs the same video processor as the screen.
Four variants, standard and Tesla resolution, each with and without color tags, through both the D3D11 video processor the app gets by default and Flyleaf's own shader path that GPUs without one fall back to.
On the D3D11 path all 24 bars render byte-identically on both versions.
On the shader path every bar moves by at most 1 of 255 steps, and the two paths agree with each other to within 1 step on both versions.
Tagged footage renders within 4 steps of its source values, and so does untagged footage at Tesla resolution, where the player correctly assumes BT.709.

Playback behavior measured the same on both versions: frame stepping 0/8 and 8/8 as the StepFrameAsync comment records, 20 of 20 accurate seeks landing within 100ms, key bindings still fully cleared, and no hang or handle growth across 20 clip reopens and 15 player create/dispose cycles.

372 tests green under the exact command CI runs, formatting clean.
@danielchalmers danielchalmers changed the title Bump FlyleafLib to 3.11.5 and the test SDK to 18.10.1 Update dependencies Sep 17, 2026
@danielchalmers
danielchalmers merged commit 9e2f466 into main Sep 17, 2026
1 check passed
@danielchalmers
danielchalmers deleted the claude/dependency-updates-2026-09 branch September 17, 2026 04:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant