diff options
Diffstat (limited to 'media-video/mpv')
-rw-r--r-- | media-video/mpv/Manifest | 4 | ||||
-rw-r--r-- | media-video/mpv/mpv-0.40.0.ebuild | 275 | ||||
-rw-r--r-- | media-video/mpv/mpv-9999.ebuild | 1 |
3 files changed, 279 insertions, 1 deletions
diff --git a/media-video/mpv/Manifest b/media-video/mpv/Manifest index f38fa36aa8af..86985bbba37b 100644 --- a/media-video/mpv/Manifest +++ b/media-video/mpv/Manifest @@ -1,4 +1,6 @@ DIST mpv-0.39.0.tar.gz 3494313 BLAKE2B 9f96ba225eb0587d50f8c439359b18f752b98024ab6b40f987be4d57b0ce4b595243f49177ffc48840b351ce19fddc84788b5784b508eb685e58fdfb8e1e0520 SHA512 9cf1d7487b1e9e36d2b731bf951c4d3b9deba95109af408ccfc71b88e85f6de2558e7b4950781667bb4d40e0352742e3ed278559ff34d07905dd459969cbf503 +DIST mpv-0.40.0.tar.gz 3561474 BLAKE2B 618cffca1ec30da0a49b91e168dd1d041e5646f7930fa65ced1f58aabed2e663f6a161c0c71b2f1769fa43a0873d91ef8219f11c5458e8ecb67b4466581c4f90 SHA512 24ccbff7fa34f85c033dc9ed94a364c6226e1081a47086365fc98e332af2004517dede371a005f1d51c2a3306b7dc915df9de4188cea140b1fd988058bbd6e8c EBUILD mpv-0.39.0-r1.ebuild 6978 BLAKE2B 5fe607c89e16f6e9c1414107a42bc2e76e6f7eae56b0c0923077ca770e9548f92dfd786d9c29027238ab0d1ed6b86085f2f6ad6e5663a4d037b452acf2d1e064 SHA512 fdf47bdf2ef0442eb1c71feb36cd6ecac6727202fe462a2f4ed67704eb1c4229fa0932da699ccef3a7c72d91d1d7bbc574912505677c44ad92c10523b354b2e1 -EBUILD mpv-9999.ebuild 6963 BLAKE2B 96de1de722e65efb5700728c05ecd444a963e58edc2a44a7824b69b068bfa11505e906b0ce407d9cbbefd4534b04fdfbc445f6d68899425e3975319cccd6c133 SHA512 9a0a3281671df48c02af39594f0a33be87575de23bc4b7dd7051dee1a011d3a68411378fe8f93e62dc8ed32af2dad77de17e99468d73c3902674a6a492828013 +EBUILD mpv-0.40.0.ebuild 6988 BLAKE2B 9676dc2f32b7cd3109d4e2be3abe9f2d6f12eadd7dbc9e76ded83932827caef8072fa58fe8ef8efb011d27cb49d128335c61035b0bb7bb4c761437b39d4ff450 SHA512 df279132c0714976e01dad700ebd96591a60cb9663fc77d9513452e15c9dcf5622792916455869f2f56a4b31e93e0413d9c0eb9edec63259aec3bb4125f60b65 +EBUILD mpv-9999.ebuild 6988 BLAKE2B 9676dc2f32b7cd3109d4e2be3abe9f2d6f12eadd7dbc9e76ded83932827caef8072fa58fe8ef8efb011d27cb49d128335c61035b0bb7bb4c761437b39d4ff450 SHA512 df279132c0714976e01dad700ebd96591a60cb9663fc77d9513452e15c9dcf5622792916455869f2f56a4b31e93e0413d9c0eb9edec63259aec3bb4125f60b65 MISC metadata.xml 2053 BLAKE2B dc35c3bcdb29eb08725a4f908575ecc2afed2d772988ff12ad052c39e9b195a68611e8037b82ee5ceefc33c40d8df666e03aa59d836eeb7c6472bd988f49b4ee SHA512 4e7cd2da4df81f9ecafddfe93788cabbc4f0de0ff9b976af2ab3fb0f63b2d7daee6d8c5607685240f41be37a158b9fa0acd030d8c62da835891d19af3870668c diff --git a/media-video/mpv/mpv-0.40.0.ebuild b/media-video/mpv/mpv-0.40.0.ebuild new file mode 100644 index 000000000000..fd89269f00c3 --- /dev/null +++ b/media-video/mpv/mpv-0.40.0.ebuild @@ -0,0 +1,275 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LUA_COMPAT=( lua5-1 luajit ) +PYTHON_COMPAT=( python3_{10..13} ) +inherit flag-o-matic lua-single meson optfeature pax-utils python-single-r1 xdg + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/mpv-player/mpv.git" +else + SRC_URI="https://github.com/mpv-player/mpv/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux" +fi + +DESCRIPTION="Media player for the command line" +HOMEPAGE="https://mpv.io/" + +LICENSE="LGPL-2.1+ GPL-2+ BSD ISC MIT" #506946 +SLOT="0/2" # soname +IUSE=" + +X +alsa aqua archive bluray cdda +cli coreaudio debug +drm dvb + dvd +egl gamepad +iconv jack javascript jpeg lcms libcaca +libmpv + +lua nvenc openal opengl pipewire pulseaudio rubberband sdl selinux + sixel sndio soc test tools +uchardet vaapi vdpau +vulkan wayland xv + zimg zlib +" +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + || ( cli libmpv ) + egl? ( || ( X drm wayland ) ) + lua? ( ${LUA_REQUIRED_USE} ) + nvenc? ( || ( egl opengl vulkan ) ) + opengl? ( || ( X aqua ) ) + test? ( cli ) + tools? ( cli ) + uchardet? ( iconv ) + vaapi? ( || ( X drm wayland ) ) + vdpau? ( X ) + vulkan? ( || ( X wayland ) ) + xv? ( X ) +" +RESTRICT="!test? ( test )" + +COMMON_DEPEND=" + media-libs/libass:=[fontconfig] + >=media-libs/libplacebo-7.349.0:=[opengl?,vulkan?] + >=media-video/ffmpeg-6.1:=[encode(+),soc(-)?,threads(+),vaapi?,vdpau?] + X? ( + x11-libs/libX11 + x11-libs/libXScrnSaver + x11-libs/libXext + x11-libs/libXpresent + x11-libs/libXrandr + xv? ( x11-libs/libXv ) + ) + alsa? ( media-libs/alsa-lib ) + archive? ( app-arch/libarchive:= ) + bluray? ( media-libs/libbluray:= ) + cdda? ( + dev-libs/libcdio-paranoia:= + dev-libs/libcdio:= + ) + drm? ( + media-libs/libdisplay-info:= + x11-libs/libdrm + egl? ( media-libs/mesa[gbm(+)] ) + ) + dvd? ( media-libs/libdvdnav ) + egl? ( + media-libs/libglvnd + media-libs/libplacebo[opengl] + ) + gamepad? ( media-libs/libsdl2[joystick] ) + iconv? ( + virtual/libiconv + uchardet? ( app-i18n/uchardet ) + ) + jack? ( virtual/jack ) + javascript? ( dev-lang/mujs:= ) + jpeg? ( media-libs/libjpeg-turbo:= ) + lcms? ( media-libs/lcms:2 ) + libcaca? ( media-libs/libcaca ) + lua? ( ${LUA_DEPS} ) + openal? ( media-libs/openal ) + opengl? ( media-libs/libglvnd[X?] ) + pipewire? ( media-video/pipewire:= ) + pulseaudio? ( media-libs/libpulse ) + rubberband? ( media-libs/rubberband:= ) + sdl? ( media-libs/libsdl2[sound,threads(+),video] ) + sixel? ( media-libs/libsixel ) + sndio? ( media-sound/sndio:= ) + vaapi? ( media-libs/libva:=[X?,drm(+)?,wayland?] ) + vdpau? ( x11-libs/libvdpau ) + vulkan? ( media-libs/vulkan-loader[X?,wayland?] ) + wayland? ( + dev-libs/wayland + x11-libs/libxkbcommon + ) + zimg? ( media-libs/zimg ) + zlib? ( sys-libs/zlib:= ) +" +RDEPEND=" + ${COMMON_DEPEND} + selinux? ( sec-policy/selinux-mplayer ) + tools? ( ${PYTHON_DEPS} ) +" +DEPEND=" + ${COMMON_DEPEND} + X? ( x11-base/xorg-proto ) + dvb? ( sys-kernel/linux-headers ) + nvenc? ( media-libs/nv-codec-headers ) + vulkan? ( dev-util/vulkan-headers ) + wayland? ( >=dev-libs/wayland-protocols-1.41 ) +" +BDEPEND=" + ${PYTHON_DEPS} + >=dev-build/meson-1.3.0 + virtual/pkgconfig + cli? ( dev-python/docutils ) + wayland? ( dev-util/wayland-scanner ) +" + +pkg_setup() { + use lua && lua-single_pkg_setup + python-single-r1_pkg_setup +} + +src_configure() { + if use !debug; then + if use test; then + einfo "Skipping -DNDEBUG due to USE=test" + else + append-cppflags -DNDEBUG # treated specially + fi + fi + + mpv_feature_multi() { + local use set + for use in ${1} ${2}; do + use ${use} || set=disabled + done + echo -D${3-${2}}=${set-enabled} + } + + local emesonargs=( + $(meson_use cli cplayer) + $(meson_use libmpv) + $(meson_use test tests) + + $(meson_feature cli html-build) + $(meson_feature cli manpage-build) + -Dpdf-build=disabled + + -Dbuild-date=false + + # misc options + $(meson_feature archive libarchive) + $(meson_feature bluray libbluray) + $(meson_feature cdda) + -Dcplugins=enabled + $(meson_feature dvb dvbin) + $(meson_feature dvd dvdnav) + $(meson_feature gamepad sdl2-gamepad) + $(meson_feature iconv) + $(meson_feature javascript) + -Dlibavdevice=enabled + $(meson_feature lcms lcms2) + -Dlua=$(usex lua "${ELUA}" disabled) + $(meson_feature rubberband) + -Dsdl2=$(use gamepad || use sdl && echo enabled || echo disabled) #857156 + $(meson_feature uchardet) + -Dvapoursynth=disabled # only available in overlays + $(meson_feature zimg) + $(meson_feature zlib) + + # audio output + $(meson_feature alsa) + $(meson_feature coreaudio) + $(meson_feature jack) + $(meson_feature openal) + $(meson_feature pipewire) + $(meson_feature pulseaudio pulse) + $(meson_feature sdl sdl2-audio) + $(meson_feature sndio) + + # video output + $(meson_feature X x11) + $(meson_feature aqua cocoa) + $(meson_feature drm) + $(meson_feature jpeg) + $(meson_feature libcaca caca) + $(meson_feature sdl sdl2-video) + $(meson_feature sixel) + $(meson_feature wayland) + $(meson_feature xv) + + -Dgl=$(use egl || use libmpv || use opengl && + echo enabled || echo disabled) + $(meson_feature egl) + $(mpv_feature_multi egl X egl-x11) + $(mpv_feature_multi egl drm gbm) # gbm is only used by egl-drm + $(mpv_feature_multi egl drm egl-drm) + $(mpv_feature_multi egl wayland egl-wayland) + $(meson_feature libmpv plain-gl) + $(mpv_feature_multi opengl X gl-x11) + $(mpv_feature_multi opengl aqua gl-cocoa) + + $(meson_feature vulkan) + + # hardware decoding + $(meson_feature nvenc cuda-hwaccel) + $(meson_feature nvenc cuda-interop) + + $(meson_feature vaapi) + $(mpv_feature_multi vaapi X vaapi-x11) + $(mpv_feature_multi vaapi drm vaapi-drm) + $(mpv_feature_multi vaapi wayland vaapi-wayland) + + $(meson_feature vdpau) + $(mpv_feature_multi vdpau opengl vdpau-gl-x11) + + $(mpv_feature_multi aqua opengl videotoolbox-gl) + + # notable options left to automagic + #dmabuf-wayland: USE="drm wayland" + plus memfd_create support + #vulkan-interop: USE="vulkan" + >=ffmpeg-6.1 + # TODO?: perhaps few more similar compound options should be left auto + ) + + meson_src_configure +} + +src_test() { + # ffmpeg tests are picky and easily break without necessarily + # meaning that there are runtime issues (bug #921091,#924276) + meson_src_test --no-suite ffmpeg +} + +src_install() { + meson_src_install + + if use lua; then + insinto /usr/share/${PN} + doins -r TOOLS/lua + + if use cli && use lua_single_target_luajit; then + pax-mark -m "${ED}"/usr/bin/${PN} + fi + fi + + if use tools; then + dobin TOOLS/{mpv_identify.sh,umpv} + newbin TOOLS/idet.sh mpv_idet.sh + python_fix_shebang "${ED}"/usr/bin/umpv + fi + + if use cli; then + dodir /usr/share/doc/${PF}/html + mv "${ED}"/usr/share/doc/{mpv,${PF}/html}/mpv.html || die + mv "${ED}"/usr/share/doc/{mpv,${PF}/examples} || die + fi + + local GLOBIGNORE=*/*build*:*/*policy* + dodoc RELEASE_NOTES DOCS/*.{md,rst} +} + +pkg_postinst() { + xdg_pkg_postinst + + optfeature "various websites URL support$(usev !lua \ + " (requires ${PN} with USE=lua)")" net-misc/yt-dlp +} diff --git a/media-video/mpv/mpv-9999.ebuild b/media-video/mpv/mpv-9999.ebuild index 4f4a6afc2c68..fd89269f00c3 100644 --- a/media-video/mpv/mpv-9999.ebuild +++ b/media-video/mpv/mpv-9999.ebuild @@ -117,6 +117,7 @@ DEPEND=" " BDEPEND=" ${PYTHON_DEPS} + >=dev-build/meson-1.3.0 virtual/pkgconfig cli? ( dev-python/docutils ) wayland? ( dev-util/wayland-scanner ) |