|
23 | 23 |
|
24 | 24 | jobs:
|
25 | 25 | build-test-lint-linux:
|
26 |
| - name: Linux - FFmpeg ${{ matrix.ffmpeg_version }} - build, test and lint |
| 26 | + name: Linux - FFmpeg ${{ matrix.ffmpeg.version }} - build, test and lint |
27 | 27 | runs-on: ubuntu-22.04
|
28 |
| - container: jrottenberg/ffmpeg:${{ matrix.ffmpeg_version }}-ubuntu |
29 | 28 |
|
30 | 29 | strategy:
|
31 | 30 | matrix:
|
32 |
| - ffmpeg_version: |
33 |
| - - "4.2" |
34 |
| - - "4.3" |
35 |
| - - "4.4" |
36 |
| - - "5.0" |
37 |
| - - "5.1" |
38 |
| - - "6.0" |
39 |
| - - "6.1" |
40 |
| - - "7.0" |
41 |
| - - "7.1" |
| 31 | + ffmpeg: |
| 32 | + - version: "4.2" |
| 33 | + file: "ffmpeg-4.2-linux-gcc.tar.xz" |
| 34 | + - version: "4.3" |
| 35 | + file: "ffmpeg-4.3-linux-gcc.tar.xz" |
| 36 | + - version: "4.4" |
| 37 | + file: "ffmpeg-4.4-linux-clang-default.tar.xz" |
| 38 | + lib_subdir: "amd64" |
| 39 | + - version: "5.1" |
| 40 | + file: "ffmpeg-5.1-linux-clang-default.tar.xz" |
| 41 | + lib_subdir: "amd64" |
| 42 | + - version: "6.1" |
| 43 | + file: "ffmpeg-6.1-linux-clang-default.tar.xz" |
| 44 | + lib_subdir: "amd64" |
| 45 | + - version: "7.0" |
| 46 | + file: "ffmpeg-7.0-linux-clang-default.tar.xz" |
| 47 | + lib_subdir: "amd64" |
| 48 | + - version: "7.1" |
| 49 | + file: "ffmpeg-7.1-linux-clang-default.tar.xz" |
| 50 | + lib_subdir: "amd64" |
42 | 51 | fail-fast: false
|
43 | 52 |
|
44 | 53 | steps:
|
45 | 54 | - uses: actions/checkout@v4
|
46 | 55 | - name: Install dependencies
|
47 | 56 | run: |
|
48 |
| - apt-get update |
49 |
| - apt-get install -y --no-install-recommends clang curl pkg-config |
| 57 | + sudo apt-get update |
| 58 | + sudo apt-get install -y --no-install-recommends \ |
| 59 | + libva2 libva-drm2 libva-x11-2 libvdpau1 libxv1 |
| 60 | + - name: Download FFmpeg |
| 61 | + shell: bash |
| 62 | + run: | |
| 63 | + mkdir ffmpeg-libs |
| 64 | + curl -L "https://sourceforge.net/projects/avbuild/files/linux/${{ matrix.ffmpeg.file }}/download" \ |
| 65 | + | tar xJf - --strip 1 -C ffmpeg-libs |
| 66 | +
|
| 67 | + # https://github.com/wang-bin/avbuild/issues/76 |
| 68 | + PC_FILES=(ffmpeg-libs/lib/${{ matrix.ffmpeg.lib_subdir }}/pkgconfig/*.pc) |
| 69 | + sed -i 's/^prefix=.*$/prefix=${pcfiledir}\/..\/..\/../g' $PC_FILES |
| 70 | + sed -i 's/^libdir=.*$/libdir=${prefix}\/lib\/${{ matrix.ffmpeg.lib_subdir }}/g' $PC_FILES |
| 71 | +
|
| 72 | + echo "PKG_CONFIG_PATH=$PWD/ffmpeg-libs/lib/${{ matrix.ffmpeg.lib_subdir }}/pkgconfig" >> "$GITHUB_ENV" |
| 73 | + echo "LD_LIBRARY_PATH=$PWD/ffmpeg-libs/lib/${{ matrix.ffmpeg.lib_subdir }}" >> "$GITHUB_ENV" |
50 | 74 | - name: Install Rust stable with clippy and rustfmt
|
51 | 75 | uses: dtolnay/rust-toolchain@stable
|
52 | 76 | with:
|
|
55 | 79 | with:
|
56 | 80 | prefix-key: "v3-rust"
|
57 | 81 | # Only save cache for one FFmpeg version
|
58 |
| - save-if: ${{ matrix.ffmpeg_version == '7.1' }} |
| 82 | + save-if: ${{ matrix.ffmpeg.version == '7.1' }} |
59 | 83 |
|
60 | 84 | - name: Check format
|
61 | 85 | run: cargo fmt -- --check
|
@@ -166,14 +190,23 @@ jobs:
|
166 | 190 |
|
167 | 191 | msrv:
|
168 | 192 | runs-on: ubuntu-22.04
|
169 |
| - container: jrottenberg/ffmpeg:7.0-ubuntu |
170 | 193 |
|
171 | 194 | steps:
|
172 | 195 | - uses: actions/checkout@v4
|
173 |
| - - name: Install dependencies |
| 196 | + - name: Download FFmpeg |
| 197 | + shell: bash |
174 | 198 | run: |
|
175 |
| - apt-get update |
176 |
| - apt-get install -y --no-install-recommends clang curl pkg-config |
| 199 | + mkdir ffmpeg-libs |
| 200 | + curl -L "https://sourceforge.net/projects/avbuild/files/linux/ffmpeg-7.1-linux-clang-lite.tar.xz/download" \ |
| 201 | + | tar xJf - --strip 1 -C ffmpeg-libs |
| 202 | +
|
| 203 | + # https://github.com/wang-bin/avbuild/issues/76 |
| 204 | + PC_FILES=(ffmpeg-libs/lib/amd64/pkgconfig/*.pc) |
| 205 | + sed -i 's/^prefix=.*$/prefix=${pcfiledir}\/..\/..\/../g' $PC_FILES |
| 206 | + sed -i 's/^libdir=.*$/libdir=${prefix}\/lib\/amd64/g' $PC_FILES |
| 207 | +
|
| 208 | + echo "PKG_CONFIG_PATH=$PWD/ffmpeg-libs/lib/amd64/pkgconfig" >> "$GITHUB_ENV" |
| 209 | + echo "LD_LIBRARY_PATH=$PWD/ffmpeg-libs" >> "$GITHUB_ENV" |
177 | 210 | # rust-version from Cargo.toml
|
178 | 211 | - name: Install Rust 1.65.0
|
179 | 212 | uses: dtolnay/rust-toolchain@1.65.0
|
|
0 commit comments