Implemented hardware decoding #528
Workflow file for this run
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: smoke | |
on: | |
push: | |
branches: main | |
paths-ignore: | |
- '**.md' | |
- '**.rst' | |
- '**.txt' | |
pull_request: | |
branches: main | |
paths-ignore: | |
- '**.md' | |
- '**.rst' | |
- '**.txt' | |
jobs: | |
style: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.12" | |
- name: Linters | |
run: make lint | |
nix: | |
name: "py-${{ matrix.config.python }} lib-${{ matrix.config.ffmpeg }} ${{matrix.config.os}}" | |
runs-on: ${{ matrix.config.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- {os: ubuntu-latest, python: "3.12", ffmpeg: "7.1", extras: true} | |
- {os: ubuntu-latest, python: "3.9", ffmpeg: "7.0.2"} | |
- {os: ubuntu-latest, python: pypy3.9, ffmpeg: "7.1"} | |
- {os: macos-14, python: "3.9", ffmpeg: "7.1"} | |
- {os: macos-14, python: "3.9", ffmpeg: "7.0.2"} | |
env: | |
PYAV_PYTHON: python${{ matrix.config.python }} | |
PYAV_LIBRARY: ffmpeg-${{ matrix.config.ffmpeg }} | |
steps: | |
- uses: actions/checkout@v4 | |
name: Checkout | |
- name: Python ${{ matrix.config.python }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.config.python }} | |
- name: OS Packages | |
run: | | |
case ${{ matrix.config.os }} in | |
ubuntu-latest) | |
sudo apt-get update | |
sudo apt-get install autoconf automake build-essential cmake \ | |
libtool pkg-config nasm zlib1g-dev libvorbis-dev libx264-dev | |
if [[ "${{ matrix.config.extras }}" ]]; then | |
sudo apt-get install doxygen wget | |
fi | |
;; | |
macos-14) | |
brew install automake libtool nasm libpng libvorbis libvpx opus x264 | |
;; | |
esac | |
- name: Pip and FFmpeg | |
run: | | |
. scripts/activate.sh ffmpeg-${{ matrix.config.ffmpeg }} | |
scripts/build-deps | |
- name: Build | |
run: | | |
. scripts/activate.sh ffmpeg-${{ matrix.config.ffmpeg }} | |
scripts/build | |
- name: Test | |
run: | | |
. scripts/activate.sh ffmpeg-${{ matrix.config.ffmpeg }} | |
python -m av --version # Assert it can import. | |
make test | |
- name: Docs | |
if: matrix.config.extras | |
run: | | |
. scripts/activate.sh ffmpeg-${{ matrix.config.ffmpeg }} | |
make -C docs html | |
- name: Doctest | |
if: matrix.config.extras | |
run: | | |
. scripts/activate.sh ffmpeg-${{ matrix.config.ffmpeg }} | |
make -C docs test | |
- name: Examples | |
if: matrix.config.extras | |
run: | | |
. scripts/activate.sh ffmpeg-${{ matrix.config.ffmpeg }} | |
scripts/test examples | |
windows: | |
name: "py-${{ matrix.config.python }} lib-${{ matrix.config.ffmpeg }} ${{matrix.config.os}}" | |
runs-on: ${{ matrix.config.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- {os: windows-latest, python: "3.9", ffmpeg: "7.1"} | |
- {os: windows-latest, python: "3.9", ffmpeg: "7.0"} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up Conda | |
shell: bash | |
run: | | |
. $CONDA/etc/profile.d/conda.sh | |
conda config --set always_yes true | |
conda config --add channels conda-forge | |
conda create -q -n pyav \ | |
cython \ | |
numpy \ | |
pillow \ | |
pytest \ | |
python=${{ matrix.config.python }} \ | |
setuptools | |
- name: Build | |
shell: bash | |
run: | | |
. $CONDA/etc/profile.d/conda.sh | |
conda activate pyav | |
python scripts\\fetch-vendor.py --config-file scripts\\ffmpeg-${{ matrix.config.ffmpeg }}.json $CONDA_PREFIX\\Library | |
python scripts\\comptime.py ${{ matrix.config.ffmpeg }} | |
python setup.py build_ext --inplace --ffmpeg-dir=$CONDA_PREFIX\\Library | |
- name: Test | |
shell: bash | |
run: | | |
. $CONDA/etc/profile.d/conda.sh | |
conda activate pyav | |
python -m pytest |