diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 79cc308d6f29d..d037bb8745f4b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -30,181 +30,181 @@ on: - 'RELEASE_NOTES' jobs: - mingw: - runs-on: ubuntu-24.04 - env: - CCACHE_BASEDIR: ${{ github.workspace }} - CCACHE_DIR: ${{ github.workspace }}/.ccache - CCACHE_MAXSIZE: 500M - strategy: - fail-fast: false - matrix: - include: - - target: i686-w64-mingw32 - wine: wine32 - - target: x86_64-w64-mingw32 - wine: wine64 - steps: - - uses: actions/checkout@v4 - - - name: Get time - id: get_time - run: echo "timestamp=`date +%s%N`" >> $GITHUB_OUTPUT - - - name: Restore cache - uses: actions/cache/restore@v4 - with: - path: ${{ env.CCACHE_DIR }} - key: ${{ matrix.target }}-${{ steps.get_time.outputs.timestamp }} - restore-keys: ${{ matrix.target }}- - - - name: Install dependencies - run: | - sudo dpkg --add-architecture i386 - sudo apt-get update - sudo apt-get install -y ccache g++-mingw-w64 gcc-multilib meson nasm ninja-build pkgconf ${{ matrix.wine }} - - - name: Install Meson Wraps - run: | - mkdir subprojects -p - meson wrap install mujs - - - name: Build libraries - run: | - ./ci/build-mingw64.sh - env: - TARGET: ${{ matrix.target }} - - - name: Build with meson - id: build - run: | - ./ci/build-mingw64.sh meson pack - env: - TARGET: ${{ matrix.target }} - - - name: Print meson log - if: ${{ failure() && steps.build.outcome == 'failure' }} - run: | - cat ./mingw_build/meson-logs/meson-log.txt - - - name: Functional test - run: | - cd artifact && wine ./mpv.com -v --no-config - env: - WINEDEBUG: '+loaddll' - - - name: Run meson tests - id: tests - run: | - meson test -C mingw_build - - - name: Print meson test log - if: ${{ failure() && steps.tests.outcome == 'failure' }} - run: | - cat ./mingw_build/meson-logs/testlog.txt - - - uses: actions/upload-artifact@v4 - with: - name: mpv-${{ matrix.target }} - path: mpv-git-*.zip - - - name: Save Cache - uses: actions/cache/save@v4 - if: always() - with: - path: ${{ env.CCACHE_DIR }} - key: ${{ matrix.target }}-${{ steps.get_time.outputs.timestamp }} - - win32: - runs-on: windows-latest - env: - VS: "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise" - CC: "ccache clang" - CXX: "ccache clang++" - CC_LD: "lld" - CXX_LD: "lld" - WINDRES: "llvm-rc" - CCACHE_BASEDIR: ${{ github.workspace }} - CCACHE_DIR: "${{ github.workspace }}\\.ccache" - CCACHE_MAXSIZE: 500M - steps: - - name: Disable autocrlf - run: | - git config --global core.autocrlf false - git config --global core.eol lf - - - uses: actions/checkout@v4 - - - name: Get time - id: get_time - run: | - "timestamp=$((Get-Date).Ticks)" >> $env:GITHUB_OUTPUT - - - name: Restore cache - uses: actions/cache/restore@v4 - with: - path: ${{ env.CCACHE_DIR }} - key: x86_64-windows-msvc-${{ steps.get_time.outputs.timestamp }} - restore-keys: x86_64-windows-msvc- - - - name: Install dependencies - run: | - python -m pip install meson - choco install ccache nasm - - - name: Update Meson WrapDB - run: | - meson wrap update-db - # Explicitly download wraps, as nested projects may have older versions of them. - meson wrap install expat - meson wrap install harfbuzz - meson wrap install libpng - meson wrap install zlib - - - name: Build - id: build - run: | - $env:PATH = ($env:PATH -split ';' | Where-Object { $_ -ne 'C:\Program Files\LLVM\bin' -and ` - $_ -ne 'C:\Strawberry\c\bin' }) -join ';' - $env:PATH += ';C:\Program Files\NASM' - Import-Module "$env:VS\Common7\Tools\Microsoft.VisualStudio.DevShell.dll" - Enter-VsDevShell -VsInstallPath $env:VS -SkipAutomaticLocation -DevCmdArguments "-arch=x64 -host_arch=x64" - ./ci/build-win32.ps1 - - - name: Print build log - if: ${{ failure() && steps.build.outcome == 'failure' }} - run: | - cat ./build/meson-logs/meson-log.txt - - - name: Run meson tests - id: tests - run: | - $env:PATH = ($env:PATH -split ';' | Where-Object { $_ -ne 'C:\Program Files\LLVM\bin' -and ` - $_ -ne 'C:\Strawberry\c\bin' }) -join ';' - $env:PATH += ';C:\Program Files\NASM' - Import-Module "$env:VS\Common7\Tools\Microsoft.VisualStudio.DevShell.dll" - Enter-VsDevShell -VsInstallPath $env:VS -SkipAutomaticLocation -DevCmdArguments "-arch=x64 -host_arch=x64" - meson test -C build - - - name: Print meson test log - if: ${{ failure() && steps.tests.outcome == 'failure' }} - run: | - cat ./build/meson-logs/testlog.txt - - - uses: actions/upload-artifact@v4 - with: - name: mpv-x86_64-windows-msvc - path: | - build/mpv.??? - build/vulkan-*.dll - !build/mpv.lib - - - name: Save Cache - uses: actions/cache/save@v4 - if: always() - with: - path: ${{ env.CCACHE_DIR }} - key: x86_64-windows-msvc-${{ steps.get_time.outputs.timestamp }} +# mingw: +# runs-on: ubuntu-24.04 +# env: +# CCACHE_BASEDIR: ${{ github.workspace }} +# CCACHE_DIR: ${{ github.workspace }}/.ccache +# CCACHE_MAXSIZE: 500M +# strategy: +# fail-fast: false +# matrix: +# include: +# - target: i686-w64-mingw32 +# wine: wine32 +# - target: x86_64-w64-mingw32 +# wine: wine64 +# steps: +# - uses: actions/checkout@v4 +# +# - name: Get time +# id: get_time +# run: echo "timestamp=`date +%s%N`" >> $GITHUB_OUTPUT +# +# - name: Restore cache +# uses: actions/cache/restore@v4 +# with: +# path: ${{ env.CCACHE_DIR }} +# key: ${{ matrix.target }}-${{ steps.get_time.outputs.timestamp }} +# restore-keys: ${{ matrix.target }}- +# +# - name: Install dependencies +# run: | +# sudo dpkg --add-architecture i386 +# sudo apt-get update +# sudo apt-get install -y ccache g++-mingw-w64 gcc-multilib meson nasm ninja-build pkgconf ${{ matrix.wine }} +# +# - name: Install Meson Wraps +# run: | +# mkdir subprojects -p +# meson wrap install mujs +# +# - name: Build libraries +# run: | +# ./ci/build-mingw64.sh +# env: +# TARGET: ${{ matrix.target }} +# +# - name: Build with meson +# id: build +# run: | +# ./ci/build-mingw64.sh meson pack +# env: +# TARGET: ${{ matrix.target }} +# +# - name: Print meson log +# if: ${{ failure() && steps.build.outcome == 'failure' }} +# run: | +# cat ./mingw_build/meson-logs/meson-log.txt +# +# - name: Functional test +# run: | +# cd artifact && wine ./mpv.com -v --no-config +# env: +# WINEDEBUG: '+loaddll' +# +# - name: Run meson tests +# id: tests +# run: | +# meson test -C mingw_build +# +# - name: Print meson test log +# if: ${{ failure() && steps.tests.outcome == 'failure' }} +# run: | +# cat ./mingw_build/meson-logs/testlog.txt +# +# - uses: actions/upload-artifact@v4 +# with: +# name: mpv-${{ matrix.target }} +# path: mpv-git-*.zip +# +# - name: Save Cache +# uses: actions/cache/save@v4 +# if: always() +# with: +# path: ${{ env.CCACHE_DIR }} +# key: ${{ matrix.target }}-${{ steps.get_time.outputs.timestamp }} +# +# win32: +# runs-on: windows-latest +# env: +# VS: "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise" +# CC: "ccache clang" +# CXX: "ccache clang++" +# CC_LD: "lld" +# CXX_LD: "lld" +# WINDRES: "llvm-rc" +# CCACHE_BASEDIR: ${{ github.workspace }} +# CCACHE_DIR: "${{ github.workspace }}\\.ccache" +# CCACHE_MAXSIZE: 500M +# steps: +# - name: Disable autocrlf +# run: | +# git config --global core.autocrlf false +# git config --global core.eol lf +# +# - uses: actions/checkout@v4 +# +# - name: Get time +# id: get_time +# run: | +# "timestamp=$((Get-Date).Ticks)" >> $env:GITHUB_OUTPUT +# +# - name: Restore cache +# uses: actions/cache/restore@v4 +# with: +# path: ${{ env.CCACHE_DIR }} +# key: x86_64-windows-msvc-${{ steps.get_time.outputs.timestamp }} +# restore-keys: x86_64-windows-msvc- +# +# - name: Install dependencies +# run: | +# python -m pip install meson +# choco install ccache nasm +# +# - name: Update Meson WrapDB +# run: | +# meson wrap update-db +# # Explicitly download wraps, as nested projects may have older versions of them. +# meson wrap install expat +# meson wrap install harfbuzz +# meson wrap install libpng +# meson wrap install zlib +# +# - name: Build +# id: build +# run: | +# $env:PATH = ($env:PATH -split ';' | Where-Object { $_ -ne 'C:\Program Files\LLVM\bin' -and ` +# $_ -ne 'C:\Strawberry\c\bin' }) -join ';' +# $env:PATH += ';C:\Program Files\NASM' +# Import-Module "$env:VS\Common7\Tools\Microsoft.VisualStudio.DevShell.dll" +# Enter-VsDevShell -VsInstallPath $env:VS -SkipAutomaticLocation -DevCmdArguments "-arch=x64 -host_arch=x64" +# ./ci/build-win32.ps1 +# +# - name: Print build log +# if: ${{ failure() && steps.build.outcome == 'failure' }} +# run: | +# cat ./build/meson-logs/meson-log.txt +# +# - name: Run meson tests +# id: tests +# run: | +# $env:PATH = ($env:PATH -split ';' | Where-Object { $_ -ne 'C:\Program Files\LLVM\bin' -and ` +# $_ -ne 'C:\Strawberry\c\bin' }) -join ';' +# $env:PATH += ';C:\Program Files\NASM' +# Import-Module "$env:VS\Common7\Tools\Microsoft.VisualStudio.DevShell.dll" +# Enter-VsDevShell -VsInstallPath $env:VS -SkipAutomaticLocation -DevCmdArguments "-arch=x64 -host_arch=x64" +# meson test -C build +# +# - name: Print meson test log +# if: ${{ failure() && steps.tests.outcome == 'failure' }} +# run: | +# cat ./build/meson-logs/testlog.txt +# +# - uses: actions/upload-artifact@v4 +# with: +# name: mpv-x86_64-windows-msvc +# path: | +# build/mpv.??? +# build/vulkan-*.dll +# !build/mpv.lib +# +# - name: Save Cache +# uses: actions/cache/save@v4 +# if: always() +# with: +# path: ${{ env.CCACHE_DIR }} +# key: x86_64-windows-msvc-${{ steps.get_time.outputs.timestamp }} macos: runs-on: ${{ matrix.os }} @@ -216,16 +216,20 @@ jobs: - "clang++" os: - "macos-13" - - "macos-14" - - "macos-15" + - "macos-13" +# - "macos-14" +# - "macos-15" include: - os: "macos-13" arch: "intel" - - os: "macos-14" - arch: "arm" - xcode: "Xcode_15.2" - - os: "macos-15" - arch: "arm" + xcode: "Xcode_14.2" + - os: "macos-13" + arch: "intel" +# - os: "macos-14" +# arch: "arm" +# xcode: "Xcode_15.2" +# - os: "macos-15" +# arch: "arm" steps: - uses: actions/checkout@v4 @@ -263,127 +267,14 @@ jobs: meson compile -C build macos-bundle tar -czvf mpv.tar.gz -C build mpv.app - - name: Print meson log - if: ${{ failure() && steps.build.outcome == 'failure' }} - run: | - cat ./build/meson-logs/meson-log.txt - - - name: Run meson tests - id: tests - run: | - meson test -C build - - - name: Print meson test log - if: ${{ failure() && steps.tests.outcome == 'failure' }} - run: | - cat ./build/meson-logs/testlog.txt - - - uses: actions/upload-artifact@v4 - with: - name: mpv-${{ matrix.os }}-${{ matrix.arch }} - path: mpv.tar.gz - - linux: - runs-on: ubuntu-latest - container: - image: "registry.opensuse.org/home/mia/images/images/mpv-ci:stable-deps" - env: - CC: "${{ matrix.config.cc }}" - CXX: "${{ matrix.config.cxx }}" - ASAN_OPTIONS: "halt_on_error=1:abort_on_error=1:print_summary=1:detect_leaks=0" - strategy: - matrix: - config: - - { - cc: "gcc", - cxx: "g++", - } - - { - cc: "clang", - cxx: "clang++", - } - steps: - - uses: actions/checkout@v4 - - - name: Build with meson - id: build - run: | - ./ci/build-tumbleweed.sh - - - name: Print meson log - if: ${{ failure() && steps.build.outcome == 'failure' }} - run: | - cat ./build/meson-logs/meson-log.txt - - - name: Run meson tests - id: tests - run: | - meson test -C build - - - name: Print meson test log - if: ${{ failure() && steps.tests.outcome == 'failure' }} - run: | - cat ./build/meson-logs/testlog.txt - - linux-fuzz: - runs-on: ubuntu-latest - container: - image: "registry.opensuse.org/home/mia/images/images/mpv-ci:stable-deps" - env: - CC: "clang" - CXX: "clang++" - steps: - - uses: actions/checkout@v4 - - - name: Build with meson - id: build - run: | - meson setup build \ - --werror \ - -Dc_args="-Wno-error=deprecated -Wno-error=deprecated-declarations" \ - -Dfuzzers=true -Dlibmpv=true -Dcplayer=false - meson compile -C build fuzzers - - - name: Print meson log + - name: Print swift.h if: ${{ failure() && steps.build.outcome == 'failure' }} run: | - cat ./build/meson-logs/meson-log.txt + cat ./build/osdep/mac/swift.h - linux-ffmpeg-6-1: - runs-on: ubuntu-latest - container: - # We want to test ffmpeg 6.1.1 which alpine 3.19 has exactly. - # Furthermore, this is a very minimal build of mpv without commonly - # used features to test build compatibility. Musl is a nice bonus as well - image: alpine:3.19 - steps: - - uses: actions/checkout@v4 - - name: Install dependencies + - name: Print swift.h run: | - apk update - apk add \ - binutils \ - ffmpeg-dev \ - gcc \ - git \ - g++ \ - libass-dev \ - lua5.2-dev \ - pulseaudio-dev \ - libx11-dev \ - libxfixes-dev \ - libxkbcommon-dev \ - libxrandr-dev \ - libxpresent-dev \ - libxscrnsaver-dev \ - meson \ - musl-dev \ - samurai - - - name: Build with meson - id: build - run: | - ./ci/build-linux-old.sh + cat ./build/osdep/mac/swift.h - name: Print meson log if: ${{ failure() && steps.build.outcome == 'failure' }} @@ -400,168 +291,290 @@ jobs: run: | cat ./build/meson-logs/testlog.txt - openbsd: - runs-on: ubuntu-latest # until https://github.com/actions/runner/issues/385 - timeout-minutes: 30 # avoid any weirdness with the VM - steps: - - uses: actions/checkout@v4 - - name: Test in OpenBSD VM - uses: cross-platform-actions/action@v0.25.0 - with: - operating_system: openbsd - version: '7.5' - run: | - sudo pkg_add -U \ - cmake \ - ffmpeg \ - git \ - libarchive \ - libbluray \ - libcaca \ - libcdio-paranoia \ - libdvdnav \ - libiconv \ - libplacebo \ - libv4l \ - libxkbcommon \ - luajit \ - meson \ - openal \ - pkgconf \ - pulseaudio \ - python3 \ - rubberband \ - sdl2 \ - shaderc \ - spirv-cross \ - spirv-headers \ - uchardet \ - vulkan-loader \ - vulkan-headers \ - zimg - ./ci/build-openbsd.sh - meson test -C build - - freebsd: - runs-on: ubuntu-latest # until https://github.com/actions/runner/issues/385 - timeout-minutes: 30 # avoid any weirdness with the VM - steps: - - uses: actions/checkout@v4 - - name: Test in FreeBSD VM - uses: cross-platform-actions/action@v0.25.0 - with: - operating_system: freebsd - version: '14.1' - run: | - sudo pkg update - sudo pkg install -y \ - alsa-lib \ - cmake \ - evdev-proto \ - ffmpeg \ - git \ - iconv \ - jackit \ - libarchive \ - libbluray \ - libcaca \ - libcdio-paranoia \ - libdvdnav \ - libdisplay-info \ - libplacebo \ - libXinerama \ - libxkbcommon \ - libxpresent \ - libXv \ - luajit \ - meson \ - mujs \ - openal-soft \ - pipewire \ - pkgconf \ - pulseaudio \ - python3 \ - rubberband \ - sekrit-twc-zimg \ - sdl2 \ - sndio \ - uchardet \ - v4l_compat \ - vulkan-headers \ - wayland-protocols - ./ci/build-freebsd.sh - meson test -C build - - msys2: - runs-on: windows-latest - strategy: - fail-fast: false - matrix: - sys: - - clang64 - - mingw32 - - mingw64 - - ucrt64 - defaults: - run: - shell: msys2 {0} - steps: - - name: Disable autocrlf - shell: pwsh - run: | - git config --global core.autocrlf false - git config --global core.eol lf - - uses: actions/checkout@v4 - - uses: msys2/setup-msys2@v2 + - uses: actions/upload-artifact@v4 with: - msystem: ${{ matrix.sys }} - update: true - install: git - pacboy: >- - ca-certificates:p - cc:p - ffmpeg:p - lcms2:p - libarchive:p - libass:p - libcdio-paranoia:p - libdvdnav:p - libjpeg-turbo:p - libplacebo:p - lua51:p - meson:p - ninja:p - pkgconf:p - python:p - shaderc:p - spirv-cross:p - uchardet:p - vapoursynth:p - vulkan-devel:p - - - name: Install dependencies - if: ${{ matrix.sys != 'mingw32' }} - run: | - pacboy --noconfirm -S {angleproject,cppwinrt,rst2pdf,rubberband}:p - - - name: Build with meson - id: build - run: | - ./ci/build-msys2.sh meson - env: - SYS: ${{ matrix.sys }} - - - name: Print meson log - if: ${{ failure() && steps.build.outcome == 'failure' }} - run: | - cat ./build/meson-logs/meson-log.txt - - - name: Run meson tests - id: tests - run: | - meson test -C build + name: mpv-${{ matrix.os }}-${{ matrix.arch }} + path: mpv.tar.gz - - name: Print meson test log - if: ${{ failure() && steps.tests.outcome == 'failure' }} - run: | - cat ./build/meson-logs/testlog.txt +# linux: +# runs-on: ubuntu-latest +# container: +# image: "registry.opensuse.org/home/mia/images/images/mpv-ci:stable-deps" +# env: +# CC: "${{ matrix.config.cc }}" +# CXX: "${{ matrix.config.cxx }}" +# ASAN_OPTIONS: "halt_on_error=1:abort_on_error=1:print_summary=1:detect_leaks=0" +# strategy: +# matrix: +# config: +# - { +# cc: "gcc", +# cxx: "g++", +# } +# - { +# cc: "clang", +# cxx: "clang++", +# } +# steps: +# - uses: actions/checkout@v4 +# +# - name: Build with meson +# id: build +# run: | +# ./ci/build-tumbleweed.sh +# +# - name: Print meson log +# if: ${{ failure() && steps.build.outcome == 'failure' }} +# run: | +# cat ./build/meson-logs/meson-log.txt +# +# - name: Run meson tests +# id: tests +# run: | +# meson test -C build +# +# - name: Print meson test log +# if: ${{ failure() && steps.tests.outcome == 'failure' }} +# run: | +# cat ./build/meson-logs/testlog.txt +# +# linux-fuzz: +# runs-on: ubuntu-latest +# container: +# image: "registry.opensuse.org/home/mia/images/images/mpv-ci:stable-deps" +# env: +# CC: "clang" +# CXX: "clang++" +# steps: +# - uses: actions/checkout@v4 +# +# - name: Build with meson +# id: build +# run: | +# meson setup build \ +# --werror \ +# -Dc_args="-Wno-error=deprecated -Wno-error=deprecated-declarations" \ +# -Dfuzzers=true -Dlibmpv=true -Dcplayer=false +# meson compile -C build fuzzers +# +# - name: Print meson log +# if: ${{ failure() && steps.build.outcome == 'failure' }} +# run: | +# cat ./build/meson-logs/meson-log.txt +# +# linux-ffmpeg-6-1: +# runs-on: ubuntu-latest +# container: +# # We want to test ffmpeg 6.1.1 which alpine 3.19 has exactly. +# # Furthermore, this is a very minimal build of mpv without commonly +# # used features to test build compatibility. Musl is a nice bonus as well +# image: alpine:3.19 +# steps: +# - uses: actions/checkout@v4 +# - name: Install dependencies +# run: | +# apk update +# apk add \ +# binutils \ +# ffmpeg-dev \ +# gcc \ +# git \ +# g++ \ +# libass-dev \ +# lua5.2-dev \ +# pulseaudio-dev \ +# libx11-dev \ +# libxfixes-dev \ +# libxkbcommon-dev \ +# libxrandr-dev \ +# libxpresent-dev \ +# libxscrnsaver-dev \ +# meson \ +# musl-dev \ +# samurai +# +# - name: Build with meson +# id: build +# run: | +# ./ci/build-linux-old.sh +# +# - name: Print meson log +# if: ${{ failure() && steps.build.outcome == 'failure' }} +# run: | +# cat ./build/meson-logs/meson-log.txt +# +# - name: Run meson tests +# id: tests +# run: | +# meson test -C build +# +# - name: Print meson test log +# if: ${{ failure() && steps.tests.outcome == 'failure' }} +# run: | +# cat ./build/meson-logs/testlog.txt +# +# openbsd: +# runs-on: ubuntu-latest # until https://github.com/actions/runner/issues/385 +# timeout-minutes: 30 # avoid any weirdness with the VM +# steps: +# - uses: actions/checkout@v4 +# - name: Test in OpenBSD VM +# uses: cross-platform-actions/action@v0.25.0 +# with: +# operating_system: openbsd +# version: '7.5' +# run: | +# sudo pkg_add -U \ +# cmake \ +# ffmpeg \ +# git \ +# libarchive \ +# libbluray \ +# libcaca \ +# libcdio-paranoia \ +# libdvdnav \ +# libiconv \ +# libplacebo \ +# libv4l \ +# libxkbcommon \ +# luajit \ +# meson \ +# openal \ +# pkgconf \ +# pulseaudio \ +# python3 \ +# rubberband \ +# sdl2 \ +# shaderc \ +# spirv-cross \ +# spirv-headers \ +# uchardet \ +# vulkan-loader \ +# vulkan-headers \ +# zimg +# ./ci/build-openbsd.sh +# meson test -C build +# +# freebsd: +# runs-on: ubuntu-latest # until https://github.com/actions/runner/issues/385 +# timeout-minutes: 30 # avoid any weirdness with the VM +# steps: +# - uses: actions/checkout@v4 +# - name: Test in FreeBSD VM +# uses: cross-platform-actions/action@v0.25.0 +# with: +# operating_system: freebsd +# version: '14.1' +# run: | +# sudo pkg update +# sudo pkg install -y \ +# alsa-lib \ +# cmake \ +# evdev-proto \ +# ffmpeg \ +# git \ +# iconv \ +# jackit \ +# libarchive \ +# libbluray \ +# libcaca \ +# libcdio-paranoia \ +# libdvdnav \ +# libdisplay-info \ +# libplacebo \ +# libXinerama \ +# libxkbcommon \ +# libxpresent \ +# libXv \ +# luajit \ +# meson \ +# mujs \ +# openal-soft \ +# pipewire \ +# pkgconf \ +# pulseaudio \ +# python3 \ +# rubberband \ +# sekrit-twc-zimg \ +# sdl2 \ +# sndio \ +# uchardet \ +# v4l_compat \ +# vulkan-headers \ +# wayland-protocols +# ./ci/build-freebsd.sh +# meson test -C build +# +# msys2: +# runs-on: windows-latest +# strategy: +# fail-fast: false +# matrix: +# sys: +# - clang64 +# - mingw32 +# - mingw64 +# - ucrt64 +# defaults: +# run: +# shell: msys2 {0} +# steps: +# - name: Disable autocrlf +# shell: pwsh +# run: | +# git config --global core.autocrlf false +# git config --global core.eol lf +# - uses: actions/checkout@v4 +# - uses: msys2/setup-msys2@v2 +# with: +# msystem: ${{ matrix.sys }} +# update: true +# install: git +# pacboy: >- +# ca-certificates:p +# cc:p +# ffmpeg:p +# lcms2:p +# libarchive:p +# libass:p +# libcdio-paranoia:p +# libdvdnav:p +# libjpeg-turbo:p +# libplacebo:p +# lua51:p +# meson:p +# ninja:p +# pkgconf:p +# python:p +# shaderc:p +# spirv-cross:p +# uchardet:p +# vapoursynth:p +# vulkan-devel:p +# +# - name: Install dependencies +# if: ${{ matrix.sys != 'mingw32' }} +# run: | +# pacboy --noconfirm -S {angleproject,cppwinrt,rst2pdf,rubberband}:p +# +# - name: Build with meson +# id: build +# run: | +# ./ci/build-msys2.sh meson +# env: +# SYS: ${{ matrix.sys }} +# +# - name: Print meson log +# if: ${{ failure() && steps.build.outcome == 'failure' }} +# run: | +# cat ./build/meson-logs/meson-log.txt +# +# - name: Run meson tests +# id: tests +# run: | +# meson test -C build +# +# - name: Print meson test log +# if: ${{ failure() && steps.tests.outcome == 'failure' }} +# run: | +# cat ./build/meson-logs/testlog.txt diff --git a/.github/workflows/fuzz.yml b/.github/workflows/fuzz.yml deleted file mode 100644 index 077b184844276..0000000000000 --- a/.github/workflows/fuzz.yml +++ /dev/null @@ -1,54 +0,0 @@ -name: Pull Request Fuzzing -on: - pull_request: - branches: [master] - paths-ignore: - - 'DOCS/**' - - 'TOOLS/lua/**' - - '.editorconfig' - - '.github/ISSUE_TEMPLATE/**' - - '.github/PULL_REQUEST_TEMPLATE' - - '.gitignore' - - 'Copyright' - - 'README.md' - - 'RELEASE_NOTES' -permissions: {} -jobs: - Fuzzing: - runs-on: ubuntu-latest - permissions: - security-events: write - strategy: - fail-fast: false - matrix: - sanitizer: [address, undefined, memory] - steps: - - name: Build Fuzzers (${{ matrix.sanitizer }}) - id: build - uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master - with: - oss-fuzz-project-name: 'mpv' - language: c - sanitizer: ${{ matrix.sanitizer }} - - name: Run Fuzzers (${{ matrix.sanitizer }}) - uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master - with: - oss-fuzz-project-name: 'mpv' - language: c - fuzz-seconds: 1200 - sanitizer: ${{ matrix.sanitizer }} - report-ooms: true - report-timeouts: true - output-sarif: true - - name: Upload Crash - uses: actions/upload-artifact@v4 - if: failure() && steps.build.outcome == 'success' - with: - name: ${{ matrix.sanitizer }}-artifacts - path: ./out/artifacts - - name: Upload Sarif - if: always() && steps.build.outcome == 'success' - uses: github/codeql-action/upload-sarif@v3 - with: - sarif_file: cifuzz-sarif/results.sarif - checkout_path: cifuzz-sarif diff --git a/player/command.c b/player/command.c index 478970bdad199..7df776da3debb 100644 --- a/player/command.c +++ b/player/command.c @@ -324,11 +324,11 @@ static char *append_selected_style(struct MPContext *mpctx, char *str) mpctx->video_out->osd->opts->osd_selected_color.b, mpctx->video_out->osd->opts->osd_selected_color.g, mpctx->video_out->osd->opts->osd_selected_color.r, - 255 - mpctx->video_out->osd->opts->osd_selected_color.a, + (unsigned char)(255 - mpctx->video_out->osd->opts->osd_selected_color.a), mpctx->video_out->osd->opts->osd_selected_outline_color.b, mpctx->video_out->osd->opts->osd_selected_outline_color.g, mpctx->video_out->osd->opts->osd_selected_outline_color.r, - 255 - mpctx->video_out->osd->opts->osd_selected_outline_color.a, + (unsigned char)(255 - mpctx->video_out->osd->opts->osd_selected_outline_color.a), OSD_ASS_1); }