From abb9f15eeb7cb793b39fed5f9916b0613239ec07 Mon Sep 17 00:00:00 2001 From: Malte Rosenbjerg Date: Thu, 16 Oct 2025 09:19:05 +0200 Subject: [PATCH 01/12] Use brew if running on arm64 macos --- .github/workflows/ci.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5193d2a..02bf305 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [windows-latest, ubuntu-latest, macos-13] + os: [windows-latest, ubuntu-latest, macos-latest] timeout-minutes: 7 steps: @@ -32,12 +32,15 @@ jobs: - name: Lint with dotnet run: dotnet format FFMpegCore.sln --severity warn --verify-no-changes - - - name: Prepare FFMpeg + + - if: runner.os != 'macOS' || runner.arch != 'ARM64' uses: FedericoCarboni/setup-ffmpeg@v3 with: ffmpeg-version: 6.0.1 - github-token: ${{ secrets.GITHUB_TOKEN }} + github-token: ${{ github.server_url == 'https://github.com' && github.token || '' }} + + - if: runner.os == 'macOS' && runner.arch == 'ARM64' + run: brew install ffmpeg@6 - name: Test with dotnet run: dotnet test FFMpegCore.sln --collect "XPlat Code Coverage" --logger GitHubActions From 918ca9a9aba356ee6ed7b3a425138e38c4106619 Mon Sep 17 00:00:00 2001 From: Malte Rosenbjerg Date: Thu, 16 Oct 2025 09:22:09 +0200 Subject: [PATCH 02/12] Remove accessibility modifiers on interface properties (IDE0040) --- FFMpegCore/FFMpeg/Arguments/IDynamicArgument.cs | 2 +- FFMpegCore/FFMpeg/Arguments/VideoFiltersArgument.cs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/FFMpegCore/FFMpeg/Arguments/IDynamicArgument.cs b/FFMpegCore/FFMpeg/Arguments/IDynamicArgument.cs index d44d18d..c7b6b56 100644 --- a/FFMpegCore/FFMpeg/Arguments/IDynamicArgument.cs +++ b/FFMpegCore/FFMpeg/Arguments/IDynamicArgument.cs @@ -8,6 +8,6 @@ /// /// //public string GetText(StringBuilder context); - public string GetText(IEnumerable context); + string GetText(IEnumerable context); } } diff --git a/FFMpegCore/FFMpeg/Arguments/VideoFiltersArgument.cs b/FFMpegCore/FFMpeg/Arguments/VideoFiltersArgument.cs index f7a9e4a..4a43c9d 100644 --- a/FFMpegCore/FFMpeg/Arguments/VideoFiltersArgument.cs +++ b/FFMpegCore/FFMpeg/Arguments/VideoFiltersArgument.cs @@ -36,8 +36,8 @@ namespace FFMpegCore.Arguments public interface IVideoFilterArgument { - public string Key { get; } - public string Value { get; } + string Key { get; } + string Value { get; } } public class VideoFilterOptions From 5d8d346598325baaa7f104be38a5cf3c300a545d Mon Sep 17 00:00:00 2001 From: Malte Rosenbjerg Date: Thu, 16 Oct 2025 09:32:11 +0200 Subject: [PATCH 03/12] Only lint on ubuntu-latest to not waste time --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 02bf305..5d9b911 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,7 +30,8 @@ jobs: with: dotnet-version: '8.0.x' - - name: Lint with dotnet + - if: runner.os == 'ubuntu-latest' + name: Lint with dotnet run: dotnet format FFMpegCore.sln --severity warn --verify-no-changes - if: runner.os != 'macOS' || runner.arch != 'ARM64' From 9c636d405959b7c7dd8f06204790936f9895ef97 Mon Sep 17 00:00:00 2001 From: Malte Rosenbjerg Date: Thu, 16 Oct 2025 09:32:23 +0200 Subject: [PATCH 04/12] Migrate to AnimMouse/setup-ffmpeg@v1 --- .github/workflows/ci.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5d9b911..5b7800c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -35,13 +35,14 @@ jobs: run: dotnet format FFMpegCore.sln --severity warn --verify-no-changes - if: runner.os != 'macOS' || runner.arch != 'ARM64' - uses: FedericoCarboni/setup-ffmpeg@v3 + uses: AnimMouse/setup-ffmpeg@v1 with: - ffmpeg-version: 6.0.1 - github-token: ${{ github.server_url == 'https://github.com' && github.token || '' }} + version: 7.1.1 - if: runner.os == 'macOS' && runner.arch == 'ARM64' - run: brew install ffmpeg@6 + uses: AnimMouse/setup-ffmpeg@v1 + with: + version: 711 - name: Test with dotnet run: dotnet test FFMpegCore.sln --collect "XPlat Code Coverage" --logger GitHubActions From af6587d8fedc70f236ac10040d3061eec82ce033 Mon Sep 17 00:00:00 2001 From: Malte Rosenbjerg Date: Thu, 16 Oct 2025 09:37:04 +0200 Subject: [PATCH 05/12] Reference workflow action by reference --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5b7800c..f264455 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -35,12 +35,12 @@ jobs: run: dotnet format FFMpegCore.sln --severity warn --verify-no-changes - if: runner.os != 'macOS' || runner.arch != 'ARM64' - uses: AnimMouse/setup-ffmpeg@v1 + uses: AnimMouse/setup-ffmpeg@ae28d57 # 1.1.0 with: version: 7.1.1 - if: runner.os == 'macOS' && runner.arch == 'ARM64' - uses: AnimMouse/setup-ffmpeg@v1 + uses: AnimMouse/setup-ffmpeg@ae28d57 # 1.1.0 with: version: 711 From 99181e9f656283da6f0f1792af769ebbb8ebb606 Mon Sep 17 00:00:00 2001 From: Malte Rosenbjerg Date: Thu, 16 Oct 2025 09:37:27 +0200 Subject: [PATCH 06/12] Include github token to avoid rate limiting --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f264455..4803498 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -38,6 +38,7 @@ jobs: uses: AnimMouse/setup-ffmpeg@ae28d57 # 1.1.0 with: version: 7.1.1 + token: ${{ github.token }} - if: runner.os == 'macOS' && runner.arch == 'ARM64' uses: AnimMouse/setup-ffmpeg@ae28d57 # 1.1.0 From fb10b78e35b6dedbb3a16cdeb6a23898893ba64f Mon Sep 17 00:00:00 2001 From: Malte Rosenbjerg Date: Thu, 16 Oct 2025 09:37:42 +0200 Subject: [PATCH 07/12] Include github token to avoid rate limiting --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4803498..9800c70 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,6 +44,7 @@ jobs: uses: AnimMouse/setup-ffmpeg@ae28d57 # 1.1.0 with: version: 711 + token: ${{ github.token }} - name: Test with dotnet run: dotnet test FFMpegCore.sln --collect "XPlat Code Coverage" --logger GitHubActions From 665c9f9213b5c6be114ad6bc7234d48541e1bf3a Mon Sep 17 00:00:00 2001 From: Malte Rosenbjerg Date: Thu, 16 Oct 2025 09:39:51 +0200 Subject: [PATCH 08/12] Use full reference --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9800c70..2cfa388 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -35,13 +35,13 @@ jobs: run: dotnet format FFMpegCore.sln --severity warn --verify-no-changes - if: runner.os != 'macOS' || runner.arch != 'ARM64' - uses: AnimMouse/setup-ffmpeg@ae28d57 # 1.1.0 + uses: AnimMouse/setup-ffmpeg@ae28d57dabbb148eff63170b6bf7f2b60062cbae # 1.1.0 with: version: 7.1.1 token: ${{ github.token }} - if: runner.os == 'macOS' && runner.arch == 'ARM64' - uses: AnimMouse/setup-ffmpeg@ae28d57 # 1.1.0 + uses: AnimMouse/setup-ffmpeg@ae28d57dabbb148eff63170b6bf7f2b60062cbae # 1.1.0 with: version: 711 token: ${{ github.token }} From 5ba8122d00c1963e59d66427b680f1f4be819be3 Mon Sep 17 00:00:00 2001 From: Malte Rosenbjerg Date: Thu, 16 Oct 2025 09:41:34 +0200 Subject: [PATCH 09/12] Fix specified ffmpeg version --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2cfa388..bb1ac79 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,13 +34,13 @@ jobs: name: Lint with dotnet run: dotnet format FFMpegCore.sln --severity warn --verify-no-changes - - if: runner.os != 'macOS' || runner.arch != 'ARM64' + - if: runner.os != 'macOS' uses: AnimMouse/setup-ffmpeg@ae28d57dabbb148eff63170b6bf7f2b60062cbae # 1.1.0 with: - version: 7.1.1 + version: 7.1 token: ${{ github.token }} - - if: runner.os == 'macOS' && runner.arch == 'ARM64' + - if: runner.os == 'macOS' uses: AnimMouse/setup-ffmpeg@ae28d57dabbb148eff63170b6bf7f2b60062cbae # 1.1.0 with: version: 711 From 7036ad6df21b83fa6c67ad382b00556ca5d61237 Mon Sep 17 00:00:00 2001 From: Malte Rosenbjerg Date: Thu, 16 Oct 2025 09:47:53 +0200 Subject: [PATCH 10/12] Switch on matrix.os instead of runner.os --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bb1ac79..53dcfee 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,17 +30,17 @@ jobs: with: dotnet-version: '8.0.x' - - if: runner.os == 'ubuntu-latest' + - if: matrix.os == 'ubuntu-latest' name: Lint with dotnet run: dotnet format FFMpegCore.sln --severity warn --verify-no-changes - - if: runner.os != 'macOS' + - if: matrix.os != 'macos-latest' uses: AnimMouse/setup-ffmpeg@ae28d57dabbb148eff63170b6bf7f2b60062cbae # 1.1.0 with: version: 7.1 token: ${{ github.token }} - - if: runner.os == 'macOS' + - if: matrix.os == 'macos-latest' uses: AnimMouse/setup-ffmpeg@ae28d57dabbb148eff63170b6bf7f2b60062cbae # 1.1.0 with: version: 711 From 91c162921509da639a97572bdd5f450070b36110 Mon Sep 17 00:00:00 2001 From: Malte Rosenbjerg Date: Thu, 16 Oct 2025 09:53:09 +0200 Subject: [PATCH 11/12] Add name labels to ffmpeg install steps --- .github/workflows/ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 53dcfee..c0be332 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -35,12 +35,14 @@ jobs: run: dotnet format FFMpegCore.sln --severity warn --verify-no-changes - if: matrix.os != 'macos-latest' + name: Setup FFmpeg (non-macOS) uses: AnimMouse/setup-ffmpeg@ae28d57dabbb148eff63170b6bf7f2b60062cbae # 1.1.0 with: version: 7.1 token: ${{ github.token }} - if: matrix.os == 'macos-latest' + name: Setup FFmpeg (macOS) uses: AnimMouse/setup-ffmpeg@ae28d57dabbb148eff63170b6bf7f2b60062cbae # 1.1.0 with: version: 711 From 7e135a78d327a70be60f96850bf3b55db52b1dbc Mon Sep 17 00:00:00 2001 From: Malte Rosenbjerg Date: Thu, 16 Oct 2025 09:55:50 +0200 Subject: [PATCH 12/12] Use install step for installing ffmpeg --- .github/workflows/ci.yml | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c0be332..0da1b83 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,19 +33,11 @@ jobs: - if: matrix.os == 'ubuntu-latest' name: Lint with dotnet run: dotnet format FFMpegCore.sln --severity warn --verify-no-changes - - - if: matrix.os != 'macos-latest' - name: Setup FFmpeg (non-macOS) + + - name: Setup FFmpeg uses: AnimMouse/setup-ffmpeg@ae28d57dabbb148eff63170b6bf7f2b60062cbae # 1.1.0 with: - version: 7.1 - token: ${{ github.token }} - - - if: matrix.os == 'macos-latest' - name: Setup FFmpeg (macOS) - uses: AnimMouse/setup-ffmpeg@ae28d57dabbb148eff63170b6bf7f2b60062cbae # 1.1.0 - with: - version: 711 + version: ${{ matrix.os != 'macos-latest' && '7.1' || '711' }} token: ${{ github.token }} - name: Test with dotnet