From 8c7938aca08e6db19fd1710147caf3086118cefd Mon Sep 17 00:00:00 2001 From: gramps Date: Mon, 10 Aug 2026 11:02:26 -0700 Subject: [PATCH] FFmpeg locator (TASK 4 ship step 2) + licensing: notices, About, LGPL-shared pin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit IFfmpegLocator seam that resolves ffmpeg.exe (PATH -> cache -> pinned download), plus the licensing compliance that makes a paid GA product defensible. NOTE FOR USERS: this change shows NO difference in the app's behavior except a new top-bar "About" button (opens THIRD-PARTY-NOTICES.txt). It is scaffolding for the encoder/streaming work. - Services/Encoder/: IFfmpegLocator + FfmpegLocator. Pin is BtbN lgpl-shared autobuild-2026-08-09-13-03 (NOT gyan.dev/GPL or static: LGPLv2.1 §6 static relink material avoided by dynamic linking); extracts ffmpeg.exe + libav*.dll via a staging dir so a crash never leaves a partial cache - THIRD-PARTY-NOTICES.txt: LGPL/BSD/MIT notices + source offer, copied to the build output, surfaced by the About button; v1 gate = bundle full license texts (TASK 4 requirement 9) - ai.md "Licensing - do not violate" guardrails (never GPL/nonfree/static/latest- tag, never link FFmpeg in, never drop notices); TASKS.md + Services/index.md updated - Tests: FfmpegLocatorTests - hermetic decision-ladder integration test + shared- build DLL extraction + edge cases; docs updated (78 tests passing, 0 warnings) --- MainWindow.xaml | 2 + MainWindow.xaml.cs | 17 +++ Services/Encoder/FfmpegLocator.cs | 129 ++++++++++++++++++++++ Services/Encoder/IFfmpegLocator.cs | 20 ++++ Services/index.md | 2 + TASKS.md | 64 ++++++++++- THIRD-PARTY-NOTICES.txt | 78 +++++++++++++ ai.md | 50 ++++++++- ytLive.Tests/FfmpegLocatorTests.cs | 169 +++++++++++++++++++++++++++++ ytLive.csproj | 4 + 10 files changed, 529 insertions(+), 6 deletions(-) create mode 100644 Services/Encoder/FfmpegLocator.cs create mode 100644 Services/Encoder/IFfmpegLocator.cs create mode 100644 THIRD-PARTY-NOTICES.txt create mode 100644 ytLive.Tests/FfmpegLocatorTests.cs diff --git a/MainWindow.xaml b/MainWindow.xaml index 6e5b5e5..044791b 100644 --- a/MainWindow.xaml +++ b/MainWindow.xaml @@ -105,6 +105,8 @@ +