Skip to content

Gate FFmpeg library download to Windows x64 - #137

Draft
Blackspirits wants to merge 1 commit into
audit/ffmpeg-libs-download-integrity-3e4dfrom
audit/ffmpeg-libs-platform-gate-88f1
Draft

Blackspirits wants to merge 1 commit into
audit/ffmpeg-libs-download-integrity-3e4dfrom
audit/ffmpeg-libs-platform-gate-88f1

Conversation

@Blackspirits

@Blackspirits Blackspirits commented Sep 15, 2026

Copy link
Copy Markdown
Owner

Purpose

Independent platform-capability follow-up to #134 ("Pin and verify the FFmpeg shared-library archive").

#134 intentionally supports one reviewed native package: Windows x64. The service already rejected every other platform at runtime, but Settings exposed the action on every Windows process, including native Windows ARM64/x86 where it could only fail.

Current upstream SubtitleEdit/subtitleedit main was rechecked at d6917286e355976da953d0ee22208b4bf9461699; no relevant drift or open upstream PR was found.

Finding fixed

Settings used OperatingSystem.IsWindows() while FfmpegLibsDownloadService.GetUrl() required Windows and process architecture x64. Windows ARM64/x86 therefore saw an action whose only outcome was PlatformNotSupportedException.

Fix

The service now owns one capability contract:

  • pure IsDownloadSupported(bool isWindows, Architecture processArchitecture);
  • runtime IsDownloadSupportedOnCurrentPlatform();
  • GetUrl() uses that capability;
  • Settings uses the same capability for IsFfmpegLibsDownloadVisible.

Future platform support therefore changes from one contract rather than two independent conditions.

Regression coverage

The matrix pins:

  • Windows x64 -> supported;
  • Windows ARM64 -> unsupported;
  • Windows x86 -> unsupported;
  • non-Windows x64 -> unsupported.

Existing #134 URL/digest tests remain unchanged.

Scope / branch state

  • dependency/base PR: Pin and verify the FFmpeg shared-library archive #134
  • base HEAD: 88f1405ec15e2b73d9192c0307cb2efc3da65d3e
  • HEAD: 40a378520cf3c769c01b2ade05d9fc82f68b2cdc
  • 1 commit
  • 3 files
  • +27 / -2
  • current upstream main checked: d6917286e355976da953d0ee22208b4bf9461699
  • audit draft only; no merge/promotion intended

AI assistance: ChatGPT was used for platform-capability review, UI/service contract deduplication, upstream-conflict search and architecture-matrix regression design.

Final CI

Authoritative run: SubtitleEdit#274 on 40a378520cf3c769c01b2ade05d9fc82f68b2cdc

  • SeConv: 488 passed / 2 skipped / 0 failed
  • LibUiLogic: 905 passed / 0 skipped / 0 failed
  • LibSE: 2017 passed / 0 skipped / 0 failed
  • UI: 5237 passed / 9 skipped / 0 failed
  • build: 0 errors / 7 pre-existing warnings
  • retry step skipped
  • failure-artifact upload skipped

Final adversarial review was performed on this exact HEAD after CI; no blocker found.

@Blackspirits Blackspirits left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Final adversarial review on 40a378520cf3c769c01b2ade05d9fc82f68b2cdc after CI SubtitleEdit#274: no blocker found. The Settings affordance and service URL selection now consume the same Windows-x64 capability contract; ARM64/x86 cannot be offered a guaranteed-failing action, while the service still fails closed if invoked directly. No merge/promotion performed.

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