-
Notifications
You must be signed in to change notification settings - Fork 1
Fix screen mirroring audio: native FDK-AAC decoder, buffer overflow fix, CI packaging #5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
e3c53f9
017f31c
e377946
0983bd0
b6f299c
383b580
7c9b8d9
679dfcd
11bb564
b2517b5
948daec
7d80e5e
84546e3
b8ad2ed
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -31,6 +31,47 @@ jobs: | |
| - name: Publish | ||
| run: dotnet publish AirPlay/AirPlay.csproj --configuration Release --runtime win-x64 --self-contained true --output ./publish/win-x64 | ||
|
|
||
| - name: Download FFmpeg | ||
| shell: pwsh | ||
| run: | | ||
| $ffmpegUrl = "https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-master-latest-win64-gpl.zip" | ||
| Invoke-WebRequest -Uri $ffmpegUrl -OutFile ffmpeg.zip | ||
| Expand-Archive -Path ffmpeg.zip -DestinationPath ffmpeg-tmp | ||
| # Copy ffmpeg.exe and ffplay.exe to publish directory | ||
| $binDir = Get-ChildItem -Path ffmpeg-tmp -Recurse -Directory -Filter "bin" | Select-Object -First 1 | ||
| Copy-Item "$($binDir.FullName)\ffmpeg.exe" -Destination ./publish/win-x64/ | ||
| Copy-Item "$($binDir.FullName)\ffplay.exe" -Destination ./publish/win-x64/ | ||
|
|
||
| - name: Build libfdk-aac from source | ||
| shell: bash | ||
| run: | | ||
| # Build FDK-AAC from official source using MSYS2 (pre-installed on windows-latest) | ||
| export MSYSTEM=MINGW64 | ||
| export PATH="/c/msys64/mingw64/bin:/c/msys64/usr/bin:$PATH" | ||
|
|
||
| # Install build dependencies | ||
| pacman -S --noconfirm --needed mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake make | ||
|
Comment on lines
+45
to
+53
|
||
|
|
||
| # Clone and build fdk-aac | ||
| git clone --depth 1 https://github.com/mstorsjo/fdk-aac.git fdk-aac-src | ||
| cd fdk-aac-src | ||
|
|
||
| # Use CMake for a simpler build | ||
| mkdir build && cd build | ||
| cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON .. | ||
| cmake --build . --config Release | ||
|
|
||
| # Find and copy the DLL | ||
| echo "Built files:" | ||
| find . -name "*.dll" -type f | ||
| DLL_PATH=$(find . -name "fdk-aac*.dll" -o -name "libfdk-aac*.dll" | head -1) | ||
| if [ -z "$DLL_PATH" ]; then | ||
| echo "ERROR: No FDK-AAC DLL found after build" | ||
| exit 1 | ||
| fi | ||
| cp -v "$DLL_PATH" ../../publish/win-x64/libfdk-aac-2.dll | ||
| echo "Successfully built and copied libfdk-aac-2.dll" | ||
|
|
||
| - name: Upload build artifacts | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The workflow downloads a moving
latestFFmpeg ZIP without any integrity verification (checksum/signature) and then executes the binaries. For supply-chain safety and reproducibility, consider pinning to a specific release/build (or at least validating a published SHA256) before copying into artifacts.