Skip to content

Add libplacebo GPU module with render and shader filters #339

Add libplacebo GPU module with render and shader filters

Add libplacebo GPU module with render and shader filters #339

Workflow file for this run

name: Test Building on Distros
on:
pull_request:
branches:
- master
workflow_dispatch:
inputs:
target:
description: 'Target distribution to build (or "all" for all targets)'
required: false
default: 'all'
type: choice
options:
- all
- ubuntu-26.04
- ubuntu-24.04
- ubuntu-22.04
- debian-testing
- debian-stable
- fedora-44
- fedora-40
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- name: ubuntu-26.04
image: ubuntu:26.04
setup_script: |
sed -i 's/^Types: deb/Types: deb deb-src/' /etc/apt/sources.list.d/ubuntu.sources
DEBIAN_FRONTEND=noninteractive apt-get -qq update
DEBIAN_FRONTEND=noninteractive apt-get -yqq build-dep mlt
DEBIAN_FRONTEND=noninteractive apt-get -yqq install autoconf automake git libtool pkg-config wget cmake libplacebo-dev qt6-base-dev libqt6svg6-dev
git clone --depth 1 --branch v0.2 https://github.com/xiph/rnnoise.git /tmp/rnnoise
cd /tmp/rnnoise
./autogen.sh
./configure --prefix=/usr/local --enable-shared --disable-static
make -j"$(nproc)"
make install
- name: ubuntu-24.04
image: ubuntu:24.04
setup_script: |
sed -i 's/^Types: deb/Types: deb deb-src/' /etc/apt/sources.list.d/ubuntu.sources
DEBIAN_FRONTEND=noninteractive apt-get -qq update
DEBIAN_FRONTEND=noninteractive apt-get -yqq build-dep mlt
DEBIAN_FRONTEND=noninteractive apt-get -yqq install autoconf automake git libtool pkg-config wget cmake qt6-base-dev libplacebo-dev libqt6svg6-dev
git clone --depth 1 --branch v0.2 https://github.com/xiph/rnnoise.git /tmp/rnnoise
cd /tmp/rnnoise
./autogen.sh
./configure --prefix=/usr/local --enable-shared --disable-static
make -j"$(nproc)"
make install
- name: ubuntu-22.04
image: ubuntu:22.04
setup_script: |
sed -i '/^#\sdeb-src /s/^#//' "/etc/apt/sources.list"
DEBIAN_FRONTEND=noninteractive apt-get -qq update
DEBIAN_FRONTEND=noninteractive apt-get -yqq build-dep mlt
DEBIAN_FRONTEND=noninteractive apt-get -yqq install autoconf automake git libtool pkg-config wget cmake libplacebo-dev qt6-base-dev libqt6svg6-dev libqt6core5compat6-dev
git clone --depth 1 --branch v0.2 https://github.com/xiph/rnnoise.git /tmp/rnnoise
cd /tmp/rnnoise
./autogen.sh
./configure --prefix=/usr/local --enable-shared --disable-static
make -j"$(nproc)"
make install
- name: debian-testing
image: debian:testing
setup_script: |
echo 'deb-src http://deb.debian.org/debian testing main' >> /etc/apt/sources.list
apt-get -qq update
apt-get -yqq build-dep mlt
apt-get -yqq install autoconf automake git libtool pkg-config wget cmake libplacebo-dev qt6-base-dev libqt6svg6-dev
git clone --depth 1 --branch v0.2 https://github.com/xiph/rnnoise.git /tmp/rnnoise
cd /tmp/rnnoise
./autogen.sh
./configure --prefix=/usr/local --enable-shared --disable-static
make -j"$(nproc)"
make install
- name: debian-stable
image: debian:stable
setup_script: |
echo 'deb-src http://deb.debian.org/debian stable main\ndeb-src http://deb.debian.org/debian stable-updates main' >> /etc/apt/sources.list
echo 'deb http://deb.debian.org/debian bookworm-backports main' >> /etc/apt/sources.list
apt-get -qq update
apt-get -yqq build-dep mlt
apt-get -yqq install autoconf automake git libtool pkg-config wget cmake libplacebo-dev qt6-base-dev libqt6svg6-dev
git clone --depth 1 --branch v0.2 https://github.com/xiph/rnnoise.git /tmp/rnnoise
cd /tmp/rnnoise
./autogen.sh
./configure --prefix=/usr/local --enable-shared --disable-static
make -j"$(nproc)"
make install
- name: fedora-44
image: fedora:44
setup_script: |
dnf --assumeyes group install development-tools
dnf --assumeyes install \
yasm gavl-devel libsamplerate-devel libxml2-devel \
ladspa-devel jack-audio-connection-kit-devel sox-devel \
SDL2-devel fftw-devel frei0r-devel gtk2-devel libexif-devel \
qt6-qtbase-devel qt6-qtsvg-devel \
libtheora-devel libvorbis-devel libvdpau-devel \
libsoup-devel liboil-devel python-devel alsa-lib \
pulseaudio-libs-devel gcc-c++ cmake ffmpeg-free-devel \
libplacebo-devel movit-devel rubberband-devel vid.stab-devel rnnoise-devel
- name: fedora-40
image: fedora:40
setup_script: |
yum --assumeyes groupinstall "Development Tools"
yum --assumeyes install \
yasm gavl-devel libsamplerate-devel libxml2-devel \
ladspa-devel jack-audio-connection-kit-devel sox-devel \
SDL2-devel fftw-devel frei0r-devel gtk2-devel libexif-devel \
qt6-qtbase-devel qt6-qtsvg-devel \
libtheora-devel libvorbis-devel libvdpau-devel \
libsoup-devel liboil-devel python-devel alsa-lib \
pulseaudio-libs-devel gcc-c++ cmake ffmpeg-free-devel \
libplacebo-devel movit-devel rubberband-devel vid.stab-devel rnnoise-devel
container:
image: ${{ matrix.image }}
name: Build on ${{ matrix.name }}
steps:
- name: Check if job should run
id: should_run
run: |
# For pull requests, always run all jobs
# For workflow_dispatch, check the input parameter
if [ "${{ github.event_name }}" = "pull_request" ]; then
echo "run=true" >> $GITHUB_OUTPUT
elif [ "${{ github.event.inputs.target }}" = "all" ] || [ "${{ github.event.inputs.target }}" = "${{ matrix.name }}" ]; then
echo "run=true" >> $GITHUB_OUTPUT
else
echo "run=false" >> $GITHUB_OUTPUT
fi
- name: Checkout code
if: steps.should_run.outputs.run == 'true'
uses: actions/checkout@v4
- name: Setup dependencies
if: steps.should_run.outputs.run == 'true'
run: |
${{ matrix.setup_script }}
- name: Build and install
if: steps.should_run.outputs.run == 'true'
run: |
cmake -DCMAKE_BUILD_TYPE=Debug . && make -j -f Makefile install