PKGNAME=mpv
PKGSEC=video
PKGDEP="alsa-lib desktop-file-utils enca ffmpeg gcc-runtime glibc \
        hicolor-icon-theme jack lcms2 libarchive libass libbluray libcaca \
        libcdio libcdio-paranoia libdisplay-info libdrm libdvbpsi libdvdnav \
        libguess libjpeg-turbo libplacebo libsixel libva libvdpau libxkbcommon \
        lua luajit mesa mujs openal-soft pipewire pulseaudio rubberband samba \
        sdl2 sndio uchardet vapoursynth vulkan vulkan-loader wayland x11-lib \
        xdg-utils yt-dlp zimg zlib"
# FIXME: No LuaJIT for these architectures.
PKGDEP__NOLUAJIT="${PKGDEP/luajit/lua}"
PKGDEP__PPC64EL="${PKGDEP__NOLUAJIT}"
PKGDEP__RISCV64="${PKGDEP__NOLUAJIT}"
# NVIDIA driver is only available on amd64 and arm64
PKGDEP__AMD64="${PKGDEP} ffnvcodec"
PKGDEP__ARM64="${PKGDEP} ffnvcodec"
PKGDEP__RETRO="ffmpeg lcms2 mesa enca desktop-file-utils hicolor-icon-theme \
        xdg-utils lua libdvdnav openjpeg-legacy libvdpau libcdio-paranoia \
        libguess samba libva libcaca uchardet yt-dlp libcdio libarchive"
BUILDDEP="docutils ladspa-sdk"
BUILDDEP__RETRO=""
PKGSUG="libva-vdpau-driver"
PKGSUG__AMD64="${PKGSUG} libva-intel-driver"
PKGDES="FFmpeg-driven command-line and GUI video player"

PKGBREAK="celluloid<=0.18-1 haruna<=0.9.1 minitube<=3.9.3-1"

# Note: -Dgpl=true, DVB-in, libcaca, libcdio/cdda, libdvdnav, jack, X11
# features would be disabled if GPL build is *not* specified.
#
# Note: -Dbuild-date=false (include compile timestamp in binary), binary would
# not be reproducible with this enabled (even if we don't enforce this right
# now, this seems pointless).
#
# Note: -Duwp=disabled, Universal Windows Platform.
#
# Note: -Dvideotoolbox-gl=diasbled, -Dvideotoolbox-pl=disabled, Video Toolbox
# is macOS-specific.
#
# Note: -Dshaderc=disabled,
# get_option('shaderc').require(features['win32-desktop'])),
# and well, we are not building for Windows.
#
# Note: -Dspirv-cross=disabled,
# get_option('spirv-cross').require(features['win32-desktop'])), ditto above.
MESON_AFTER=(
    '-Dgpl=true'
    '-Dcplayer=true'
    '-Dlibmpv=true'
    '-Dbuild-date=false'
    '-Dtests=false'
    '-Dfuzzers=false'
    '-Ddisable-packet-pool=false'
    '-Dcdda=enabled'
    '-Dcplugins=enabled'
    '-Ddvbin=enabled'
    '-Ddvdnav=enabled'
    '-Diconv=enabled'
    '-Djavascript=enabled'
    '-Djpeg=enabled'
    '-Dlcms2=enabled'
    '-Dlibarchive=enabled'
    '-Dlibavdevice=enabled'
    '-Dlibbluray=enabled'
    '-Dlua=luajit'
    '-Dpthread-debug=disabled'
    '-Drubberband=enabled'
    '-Dsdl2-gamepad=enabled'
    '-Duchardet=enabled'
    '-Duwp=disabled'
    '-Dvapoursynth=enabled'
    '-Dvector=enabled'
    '-Dwin32-threads=disabled'
    '-Dx11-clipboard=enabled'
    '-Dzimg=enabled'
    '-Dzlib=enabled'
    '-Dalsa=enabled'
    '-Daudiounit=disabled'
    '-Dcoreaudio=disabled'
    '-Davfoundation=disabled'
    '-Djack=enabled'
    '-Dopenal=enabled'
    '-Daudiotrack=disabled'
    '-Daaudio=disabled'
    '-Dopensles=disabled'
    '-Doss-audio=disabled'
    '-Dpipewire=enabled'
    '-Dpulse=enabled'
    '-Dsdl2-audio=enabled'
    '-Dsndio=enabled'
    '-Dwasapi=disabled'
    '-Dcaca=enabled'
    '-Dcocoa=disabled'
    '-Dd3d11=disabled'
    '-Ddirect3d=disabled'
    '-Ddmabuf-wayland=enabled'
    '-Ddrm=enabled'
    '-Degl=enabled'
    '-Degl-android=disabled'
    '-Degl-angle=disabled'
    '-Degl-angle-lib=disabled'
    '-Degl-angle-win32=disabled'
    '-Degl-drm=enabled'
    '-Degl-wayland=enabled'
    '-Degl-x11=enabled'
    '-Dgbm=enabled'
    '-Dgl=enabled'
    '-Dgl-cocoa=disabled'
    '-Dgl-dxinterop=disabled'
    '-Dgl-win32=disabled'
    '-Dgl-x11=enabled'
    '-Dsdl2-video=enabled'
    '-Dshaderc=disabled'
    '-Dsixel=enabled'
    '-Dspirv-cross=disabled'
    '-Dplain-gl=enabled'
    '-Dvdpau=enabled'
    '-Dvdpau-gl-x11=enabled'
    '-Dvaapi=enabled'
    '-Dvaapi-drm=enabled'
    '-Dvaapi-wayland=enabled'
    '-Dvaapi-win32=disabled'
    '-Dvaapi-x11=enabled'
    '-Dvulkan=enabled'
    '-Dwayland=enabled'
    '-Dx11=enabled'
    '-Dxv=enabled'
    '-Dandroid-media-ndk=disabled'
    '-Dcuda-hwaccel=disabled'
    '-Dcuda-interop=disabled'
    '-Dd3d-hwaccel=disabled'
    '-Dd3d9-hwaccel=disabled'
    '-Dgl-dxinterop-d3d9=disabled'
    '-Dios-gl=disabled'
    '-Dvideotoolbox-gl=disabled'
    '-Dvideotoolbox-pl=disabled'
    '-Dmacos-10-15-4-features=disabled'
    '-Dmacos-11-features=disabled'
    '-Dmacos-11-3-features=disabled'
    '-Dmacos-12-features=disabled'
    '-Dmacos-cocoa-cb=disabled'
    '-Dmacos-media-player=disabled'
    '-Dmacos-touchbar=disabled'
    '-Dmacos-bundle-category=video'
    '-Dswift-build=disabled'
    '-Dswift-flags=disabled'
    '-Dwin32-smtc=disabled'
    '-Dhtml-build=disabled'
    '-Dmanpage-build=enabled'
    '-Dpdf-build=disabled'
)
# FIXME: No LuaJIT for these architectures.
MESON_AFTER__NOLUAJIT=(
    "${MESON_AFTER[@]}"
    '-Dlua=lua-5.1'
)
MESON_AFTER__PPC64EL=(
    "${MESON_AFTER__NOLUAJIT[@]}"
)
MESON_AFTER__RISCV64=(
    "${MESON_AFTER__NOLUAJIT[@]}"
)
# FIXME: CUDA/ffnvcodec only for these architectures.
MESON_AFTER__FFNVCODEC=(
    "${MESON_AFTER[@]}"
    '-Dcuda-hwaccel=enabled'
    '-Dcuda-interop=enabled'
)
MESON_AFTER__AMD64=(
    "${MESON_AFTER__FFNVCODEC[@]}"
)
MESON_AFTER__ARM64=(
    "${MESON_AFTER__FFNVCODEC[@]}"
)
