Sync main and maint-24.09 release #2673
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: FFmpeg plugin build | |
on: | |
# allow manually trigger | |
workflow_dispatch: | |
push: | |
branches: | |
- main | |
- 'maint-**' | |
pull_request: | |
branches: | |
- main | |
- 'maint-**' | |
permissions: | |
contents: read | |
jobs: | |
changes: | |
runs-on: ubuntu-latest | |
permissions: | |
pull-requests: read | |
outputs: | |
changed: ${{ steps.filter.outputs.ffmpeg_plugin == 'true' }} | |
steps: | |
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 | |
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v2 | |
id: filter | |
with: | |
filters: .github/path_filters.yml | |
build: | |
needs: changes | |
if: ${{ github.repository == 'OpenVisualCloud/Media-Transport-Library' && needs.changes.outputs.changed == 'true' }} | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 60 | |
container: | |
image: ubuntu:latest | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
steps: | |
- name: Harden Runner | |
uses: step-security/harden-runner@0d381219ddf674d61a7572ddd19d7941e271515c # v2.9.0 | |
with: | |
egress-policy: audit | |
- name: Update to latest git | |
run: | | |
apt-get update -y | |
apt-get install -y git | |
- name: Git config | |
run: | | |
git config --global user.email "[email protected]" | |
git config --global user.name "Your Name" | |
- name: checkout kahawai repo | |
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 | |
- name: checkout openh264 repo | |
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 | |
with: | |
repository: 'cisco/openh264' | |
ref: openh264v2.4.0 | |
path: openh264 | |
- name: checkout FFmpeg repo | |
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 | |
with: | |
repository: 'FFmpeg/FFmpeg' | |
path: FFmpeg | |
fetch-depth: 0 | |
- name: Install the build dependency | |
run: | | |
apt-get update -y | |
apt-get install -y sudo git gcc meson python3 python3-pyelftools pkg-config libnuma-dev libjson-c-dev libpcap-dev libgtest-dev libsdl2-dev libsdl2-ttf-dev libssl-dev | |
apt-get install -y dpdk-dev | |
apt-get install -y nasm yasm | |
apt-get install -y libavcodec-dev | |
apt-get install -y make m4 clang llvm zlib1g-dev libelf-dev libcap-ng-dev gcc-multilib | |
apt-get install -y systemtap-sdt-dev | |
- name: Build | |
run: | | |
./build.sh | |
- name: Build st22 avcodec plugin | |
run: | | |
./script/build_st22_avcodec_plugin.sh | |
- name: Build openh264 | |
run: | | |
cd openh264/ | |
make -j "$(nproc)" | |
sudo make install | |
sudo ldconfig | |
cd ../ | |
- name: Build ffmpeg 7.0 plugin | |
run: | | |
cd FFmpeg/ | |
git checkout release/7.0 | |
cp -f ../ecosystem/ffmpeg_plugin/mtl_*.c ./libavdevice/ | |
cp -f ../ecosystem/ffmpeg_plugin/mtl_*.h ./libavdevice/ | |
git am ../ecosystem/ffmpeg_plugin/7.0/*.patch | |
make clean || true | |
./configure --enable-shared --disable-static --enable-nonfree --enable-pic --enable-gpl --enable-libopenh264 --enable-encoder=libopenh264 --enable-mtl | |
make -j "$(nproc)" | |
sudo make install | |
sudo ldconfig | |
cd ../ | |
- name: Build ffmpeg 6.1 plugin | |
run: | | |
cd FFmpeg/ | |
git checkout release/6.1 | |
cp -f ../ecosystem/ffmpeg_plugin/mtl_*.c ./libavdevice/ | |
cp -f ../ecosystem/ffmpeg_plugin/mtl_*.h ./libavdevice/ | |
git am ../ecosystem/ffmpeg_plugin/6.1/*.patch | |
make clean || true | |
./configure --enable-shared --disable-static --enable-nonfree --enable-pic --enable-gpl --enable-libopenh264 --enable-encoder=libopenh264 --enable-mtl | |
make -j "$(nproc)" | |
sudo make install | |
sudo ldconfig | |
cd ../ | |
- name: Build ffmpeg 4.4 plugin | |
run: | | |
cd FFmpeg/ | |
git checkout release/4.4 | |
cp -f ../ecosystem/ffmpeg_plugin/mtl_*.c ./libavdevice/ | |
cp -f ../ecosystem/ffmpeg_plugin/mtl_*.h ./libavdevice/ | |
git am ../ecosystem/ffmpeg_plugin/4.4/*.patch | |
make clean || true | |
./configure --enable-shared --disable-static --enable-nonfree --enable-pic --enable-gpl --enable-libopenh264 --enable-encoder=libopenh264 --enable-mtl | |
make -j "$(nproc)" | |
sudo make install | |
sudo ldconfig | |
cd ../ |