logo

overlay

My own overlay for experimentations, use with caution, no support is provided git clone https://hacktivis.me/git/overlay.git
commit: a2275730ee342c6b3d2627599a6d98564bf43671
parent 14836bed3301bfb52b4f0b0ee454343bb058a13a
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date:   Sun, 16 Oct 2022 11:19:47 +0200

media-video/mpv: treeclean

Diffstat:

Dmedia-video/mpv/Manifest4----
Dmedia-video/mpv/files/mpv-0.33.1-sndio_pr9298.patch407-------------------------------------------------------------------------------
Dmedia-video/mpv/metadata.xml33---------------------------------
Dmedia-video/mpv/mpv-0.33.1-r2.ebuild364-------------------------------------------------------------------------------
Dmedia-video/mpv/mpv-0.34.1-r2.ebuild364-------------------------------------------------------------------------------
5 files changed, 0 insertions(+), 1172 deletions(-)

diff --git a/media-video/mpv/Manifest b/media-video/mpv/Manifest @@ -1,4 +0,0 @@ -DIST mpv-0.33.1.tar.gz 3259882 BLAKE2B 97ab101c2013ffb219d36a788020fb9fc4382d09971ac0beee42701a54667a6c766521be7b052193de4505b2117c2d47b3682ebafab46632fc40b637e0d19c04 SHA512 99d6c40d18c5cf83814b44ec6d8eade229800c5b51a734c9bbe831c3aeb95f8931124c94f6ae2360ffff62053c163bc3c55b254df021e005b350ebc3df7e952b -DIST mpv-0.34.1.tar.gz 3288356 BLAKE2B c0e5dc3cd23307449a526bd2cf0df5d870322aa1914a139784fd50d77274d42648a769ee4da3ba74e34a7a080700a5740dae13ed0827df1b3cfef36846f983ab SHA512 77ea349d6999f8cce9b5cce4cebd3506a224fc18ab08d22dd16bd34c34d012bb170879b268ddd62db40d116b4cc0b2d9d651b8097f387ed9115c426834cac77e -DIST waf-2.0.22 104880 BLAKE2B 6cae9e764712012ef97f790c723b86a2603dc64e9bafcec02c5251dbc1b23ec629db26c02eee2a72a77cf70c11d2729a626ea71f3cb50a6281257fd6f63eadf0 SHA512 4156cefa65b7e6349ddb1ca643bbdf3e4444449d137e5f595535564271d521362291f257765329015671584ac2c596a0ad98cfdbd621f5d5352141a55d384292 -DIST waf-2.0.9 103104 BLAKE2B c7e996aa49662da3ff941d076fc7e2dd23e867ade92a3b2ae07560b76d63a69e495184a1f9c76be5c51977ddb1713f9247f62e672033ecb988ac559e3a47e546 SHA512 0755170ded115b03e78a2096f197cd9fff62b5036db764153d26ce426f182ea7d7b8231cfa1a10b4a564a8480428502f3691851df66e7b83c7bca8e5fe26de7d diff --git a/media-video/mpv/files/mpv-0.33.1-sndio_pr9298.patch b/media-video/mpv/files/mpv-0.33.1-sndio_pr9298.patch @@ -1,407 +0,0 @@ -From d41e8d39dd1de81aa5f56bb1aa4d9fffc1a2ef3d Mon Sep 17 00:00:00 2001 -From: rim <rozhuk.im@gmail.com> -Date: Mon, 18 Oct 2021 23:55:49 +0200 -Subject: [PATCH] ao_sndio: add this audio output again - -Changes: -- rewrite to use new internal MPV API; -- code refactoring; -- fix buffers size calculations; -- buffer set to auto; -- reset() - clean/reinit device only after errors; ---- - DOCS/man/ao.rst | 6 + - audio/out/ao.c | 4 + - audio/out/ao_sndio.c | 311 +++++++++++++++++++++++++++++++++++++++++++ - wscript | 6 + - wscript_build.py | 1 + - 5 files changed, 328 insertions(+) - create mode 100644 audio/out/ao_sndio.c - -diff --git a/DOCS/man/ao.rst b/DOCS/man/ao.rst -index cc42ec23a6..1f9bf915b3 100644 ---- a/DOCS/man/ao.rst -+++ b/DOCS/man/ao.rst -@@ -216,5 +216,11 @@ Available audio output drivers are: - ``no-waveheader`` option - with ``waveheader`` it's broken, because - it will write a WAVE header every time the file is opened. - -+``sndio`` -+ Audio output to the OpenBSD sndio sound system -+ -+ (Note: only supports mono, stereo, 4.0, 5.1 and 7.1 channel -+ layouts.) -+ - ``wasapi`` - Audio output to the Windows Audio Session API. -diff --git a/audio/out/ao.c b/audio/out/ao.c -index 52a38b63be..00893c0eb3 100644 ---- a/audio/out/ao.c -+++ b/audio/out/ao.c -@@ -40,6 +40,7 @@ extern const struct ao_driver audio_out_audiounit; - extern const struct ao_driver audio_out_coreaudio; - extern const struct ao_driver audio_out_coreaudio_exclusive; - extern const struct ao_driver audio_out_rsound; -+extern const struct ao_driver audio_out_sndio; - extern const struct ao_driver audio_out_pulse; - extern const struct ao_driver audio_out_jack; - extern const struct ao_driver audio_out_openal; -@@ -83,6 +84,9 @@ static const struct ao_driver * const audio_out_drivers[] = { - #endif - #if HAVE_SDL2_AUDIO - &audio_out_sdl, -+#endif -+#if HAVE_SNDIO -+ &audio_out_sndio, - #endif - &audio_out_null, - #if HAVE_COREAUDIO -diff --git a/audio/out/ao_sndio.c b/audio/out/ao_sndio.c -new file mode 100644 -index 0000000000..ec2fb3bcb6 ---- /dev/null -+++ b/audio/out/ao_sndio.c -@@ -0,0 +1,311 @@ -+/* -+ * Copyright (c) 2008 Alexandre Ratchov <alex@caoua.org> -+ * Copyright (c) 2013 Christian Neukirchen <chneukirchen@gmail.com> -+ * Copyright (c) 2020 Rozhuk Ivan <rozhuk.im@gmail.com> -+ * -+ * Permission to use, copy, modify, and distribute this software for any -+ * purpose with or without fee is hereby granted, provided that the above -+ * copyright notice and this permission notice appear in all copies. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -+ */ -+ -+#include "config.h" -+ -+#include <sys/types.h> -+#include <poll.h> -+#include <errno.h> -+#include <sndio.h> -+ -+#include "options/m_option.h" -+#include "common/msg.h" -+ -+#include "audio/format.h" -+#include "ao.h" -+#include "internal.h" -+ -+struct priv { -+ struct sio_hdl *hdl; -+ struct sio_par par; -+ int delay; -+ bool playing; -+ int vol; -+ int havevol; -+ struct pollfd *pfd; -+}; -+ -+ -+static const struct mp_chmap sndio_layouts[] = { -+ {0}, /* empty */ -+ {1, {MP_SPEAKER_ID_FL}}, /* mono */ -+ MP_CHMAP2(FL, FR), /* stereo */ -+ {0}, /* 2.1 */ -+ MP_CHMAP4(FL, FR, BL, BR), /* 4.0 */ -+ {0}, /* 5.0 */ -+ MP_CHMAP6(FL, FR, BL, BR, FC, LFE), /* 5.1 */ -+ {0}, /* 6.1 */ -+ MP_CHMAP8(FL, FR, BL, BR, FC, LFE, SL, SR), /* 7.1 */ -+ /* Above is the fixed channel assignment for sndio, since we need to -+ * fill all channels and cannot insert silence, not all layouts are -+ * supported. -+ * NOTE: MP_SPEAKER_ID_NA could be used to add padding channels. */ -+}; -+ -+static void uninit(struct ao *ao); -+ -+ -+/* Make libsndio call movecb(). */ -+static void process_events(struct ao *ao) -+{ -+ struct priv *p = ao->priv; -+ -+ int n = sio_pollfd(p->hdl, p->pfd, POLLOUT); -+ while (poll(p->pfd, n, 0) < 0 && errno == EINTR); -+ -+ sio_revents(p->hdl, p->pfd); -+} -+ -+/* Call-back invoked to notify of the hardware position. */ -+static void movecb(void *addr, int delta) -+{ -+ struct ao *ao = addr; -+ struct priv *p = ao->priv; -+ -+ p->delay -= delta; -+} -+ -+/* Call-back invoked to notify about volume changes. */ -+static void volcb(void *addr, unsigned newvol) -+{ -+ struct ao *ao = addr; -+ struct priv *p = ao->priv; -+ -+ p->vol = newvol; -+} -+ -+static int init(struct ao *ao) -+{ -+ struct priv *p = ao->priv; -+ struct mp_chmap_sel sel = {0}; -+ size_t i; -+ struct af_to_par { -+ int format, bits, sig; -+ }; -+ static const struct af_to_par af_to_par[] = { -+ {AF_FORMAT_U8, 8, 0}, -+ {AF_FORMAT_S16, 16, 1}, -+ {AF_FORMAT_S32, 32, 1}, -+ }; -+ const struct af_to_par *ap; -+ const char *device = ((ao->device) ? ao->device : SIO_DEVANY); -+ -+ /* Opening device. */ -+ MP_VERBOSE(ao, "Using '%s' audio device.\n", device); -+ p->hdl = sio_open(device, SIO_PLAY, 0); -+ if (p->hdl == NULL) { -+ MP_ERR(ao, "Can't open audio device %s.\n", device); -+ goto err_out; -+ } -+ -+ sio_initpar(&p->par); -+ -+ /* Selecting sound format. */ -+ ao->format = af_fmt_from_planar(ao->format); -+ -+ p->par.bits = 16; -+ p->par.sig = 1; -+ p->par.le = SIO_LE_NATIVE; -+ for (i = 0; i < MP_ARRAY_SIZE(af_to_par); i++) { -+ ap = &af_to_par[i]; -+ if (ap->format == ao->format) { -+ p->par.bits = ap->bits; -+ p->par.sig = ap->sig; -+ break; -+ } -+ } -+ -+ p->par.rate = ao->samplerate; -+ -+ /* Channels count. */ -+ for (i = 0; i < MP_ARRAY_SIZE(sndio_layouts); i++) { -+ mp_chmap_sel_add_map(&sel, &sndio_layouts[i]); -+ } -+ if (!ao_chmap_sel_adjust(ao, &sel, &ao->channels)) -+ goto err_out; -+ -+ p->par.pchan = ao->channels.num; -+#ifdef __FreeBSD__ -+ /* OSS wrapper have bad defaults, overwrite it. */ -+ p->par.appbufsz = ((p->par.rate * 25) / 1000); /* 25 ms. */ -+#endif -+ if (!sio_setpar(p->hdl, &p->par)) { -+ MP_ERR(ao, "couldn't set params\n"); -+ goto err_out; -+ } -+ -+ /* Get current sound params. */ -+ if (!sio_getpar(p->hdl, &p->par)) { -+ MP_ERR(ao, "couldn't get params\n"); -+ goto err_out; -+ } -+ if (p->par.bps > 1 && p->par.le != SIO_LE_NATIVE) { -+ MP_ERR(ao, "swapped endian output not supported\n"); -+ goto err_out; -+ } -+ -+ /* Update sound params. */ -+ if (p->par.bits == 8 && p->par.bps == 1 && !p->par.sig) { -+ ao->format = AF_FORMAT_U8; -+ } else if (p->par.bits == 16 && p->par.bps == 2 && p->par.sig) { -+ ao->format = AF_FORMAT_S16; -+ } else if ((p->par.bits == 32 || p->par.msb) && p->par.bps == 4 && p->par.sig) { -+ ao->format = AF_FORMAT_S32; -+ } else { -+ MP_ERR(ao, "couldn't set format\n"); -+ goto err_out; -+ } -+ -+ p->havevol = sio_onvol(p->hdl, volcb, ao); -+ sio_onmove(p->hdl, movecb, ao); -+ -+ p->pfd = talloc_array_ptrtype(p, p->pfd, sio_nfds(p->hdl)); -+ if (!p->pfd) -+ goto err_out; -+ -+ ao->device_buffer = p->par.bufsz; -+ MP_VERBOSE(ao, "bufsz = %i, appbufsz = %i, round = %i\n", -+ p->par.bufsz, p->par.appbufsz, p->par.round); -+ -+ p->delay = 0; -+ p->playing = false; -+ if (!sio_start(p->hdl)) { -+ MP_ERR(ao, "start: sio_start() fail.\n"); -+ goto err_out; -+ } -+ -+ return 0; -+ -+err_out: -+ uninit(ao); -+ return -1; -+} -+ -+static void uninit(struct ao *ao) -+{ -+ struct priv *p = ao->priv; -+ -+ if (p->hdl) { -+ sio_close(p->hdl); -+ p->hdl = NULL; -+ } -+ p->pfd = NULL; -+ p->playing = false; -+} -+ -+static int control(struct ao *ao, enum aocontrol cmd, void *arg) -+{ -+ struct priv *p = ao->priv; -+ ao_control_vol_t *vol = arg; -+ -+ switch (cmd) { -+ case AOCONTROL_GET_VOLUME: -+ if (!p->havevol) -+ return CONTROL_FALSE; -+ vol->left = vol->right = p->vol * 100 / SIO_MAXVOL; -+ break; -+ case AOCONTROL_SET_VOLUME: -+ if (!p->havevol) -+ return CONTROL_FALSE; -+ sio_setvol(p->hdl, vol->left * SIO_MAXVOL / 100); -+ break; -+ default: -+ return CONTROL_UNKNOWN; -+ } -+ return CONTROL_OK; -+} -+ -+static void reset(struct ao *ao) -+{ -+ struct priv *p = ao->priv; -+ -+ if (p->playing) { -+ p->playing = false; -+ -+ if (!sio_stop(p->hdl)) { -+ MP_ERR(ao, "reset: couldn't sio_stop()\n"); -+ } -+ p->delay = 0; -+ if (!sio_start(p->hdl)) { -+ MP_ERR(ao, "reset: sio_start() fail.\n"); -+ } -+ } -+} -+ -+static void start(struct ao *ao) -+{ -+ struct priv *p = ao->priv; -+ -+ p->playing = true; -+ process_events(ao); -+} -+ -+static bool audio_write(struct ao *ao, void **data, int samples) -+{ -+ struct priv *p = ao->priv; -+ const size_t size = (samples * ao->sstride); -+ size_t rc; -+ -+ rc = sio_write(p->hdl, data[0], size); -+ if (rc != size) { -+ MP_WARN(ao, "audio_write: unexpected partial write: required: %zu, written: %zu.\n", -+ size, rc); -+ reset(ao); -+ p->playing = false; -+ return false; -+ } -+ p->delay += samples; -+ -+ return true; -+} -+ -+static void get_state(struct ao *ao, struct mp_pcm_state *state) -+{ -+ struct priv *p = ao->priv; -+ -+ process_events(ao); -+ -+ /* how many samples we can play without blocking */ -+ state->free_samples = ao->device_buffer - p->delay; -+ /* how many samples are already in the buffer to be played */ -+ state->queued_samples = p->delay; -+ /* delay in seconds between first and last sample in buffer */ -+ state->delay = p->delay / (double)p->par.rate; -+ -+ /* reset on unexpected EOF / underrun */ -+ if (state->queued_samples && state->queued_samples && -+ state->queued_samples < state->free_samples && -+ p->playing) -+ { -+ reset(ao); -+ } -+ state->playing = p->playing; -+} -+ -+const struct ao_driver audio_out_sndio = { -+ .name = "sndio", -+ .description = "sndio audio output", -+ .init = init, -+ .uninit = uninit, -+ .control = control, -+ .reset = reset, -+ .start = start, -+ .write = audio_write, -+ .get_state = get_state, -+ .priv_size = sizeof(struct priv), -+}; -diff --git a/wscript b/wscript -index b81f1202ec..e9af544b0c 100644 ---- a/wscript -+++ b/wscript -@@ -421,6 +421,12 @@ audio_output_features = [ - 'desc': 'SDL2 audio output', - 'deps': 'sdl2', - 'func': check_true, -+ }, { -+ 'name': '--sndio', -+ 'desc': 'sndio audio input/output', -+ 'func': check_statement('sndio.h', -+ 'struct sio_par par; sio_initpar(&par); const char *s = SIO_DEVANY', lib='sndio'), -+ 'default': 'disable' - }, { - 'name': '--pulse', - 'desc': 'PulseAudio audio output', -diff --git a/wscript_build.py b/wscript_build.py -index 14c254e1ec..7943f850b0 100644 ---- a/wscript_build.py -+++ b/wscript_build.py -@@ -247,6 +247,7 @@ def build(ctx): - ( "audio/out/ao_pcm.c" ), - ( "audio/out/ao_pulse.c", "pulse" ), - ( "audio/out/ao_sdl.c", "sdl2-audio" ), -+ ( "audio/out/ao_sndio.c", "sndio" ), - ( "audio/out/ao_wasapi.c", "wasapi" ), - ( "audio/out/ao_wasapi_changenotify.c", "wasapi" ), - ( "audio/out/ao_wasapi_utils.c", "wasapi" ), --- -2.32.0 - diff --git a/media-video/mpv/metadata.xml b/media-video/mpv/metadata.xml @@ -1,33 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <use> - <flag name="archive">Enable support for various archive formats via <pkg>app-arch/libarchive</pkg></flag> - <flag name="bluray">Enable playback of Blu-ray filesystems</flag> - <flag name="cli">Build mpv CLI player</flag> - <flag name="cplugins">Enable C plugins support</flag> - <flag name="cuda">Enable hardware video decoding via Nvidia CUDA</flag> - <flag name="drm">Enable Kernel Mode Setting / Direct Rendering Manager based video output</flag> - <flag name="egl">Enable support for various EGL-based video outputs / backends</flag> - <flag name="gamepad">Enable gamepad input support</flag> - <flag name="gbm">Enable Graphics Buffer Manager based EGL video backend</flag> - <flag name="jpeg">Enable support for saving screenshots in JPEG format</flag> - <flag name="libass">Enable OSD (On Screen Display) and subtitles support via <pkg>media-libs/libass</pkg></flag> - <flag name="libmpv">Build mpv shared library</flag> - <flag name="lua">Enable Lua scripting, OSC (On Screen Controller) GUI and <pkg>net-misc/youtube-dl</pkg> hook-script</flag> - <flag name="opengl" restrict="&lt;media-video/mpv-0.28.0">Enable the recommended 'opengl' video output</flag> - <flag name="opengl" restrict="&gt;=media-video/mpv-0.28.0">Enable support for various OpenGL-based video backends</flag> - <flag name="raspberry-pi">Enable support for the Raspberry Pi</flag> - <flag name="rubberband">Enable high quality pitch correction via <pkg>media-libs/rubberband</pkg></flag> - <flag name="sdl">Enable <pkg>media-libs/libsdl2</pkg> based video and audio outputs - (Note: these outputs exist for compatibility reasons only, avoid if possible)</flag> - <flag name="tools">Install extra tools: mpv_identify.sh, mpv_idet.sh, and umpv</flag> - <flag name="uchardet">Enable subtitles charset discovery via <pkg>app-i18n/uchardet</pkg></flag> - <flag name="vulkan">Enable support for various Vulkan-based video backends</flag> - <flag name="zimg">Enable libzimg support (for vf_fingerprint)</flag> - <flag name="sndio">Enable support for sndio</flag> - </use> - <upstream> - <remote-id type="github">mpv-player/mpv</remote-id> - </upstream> -</pkgmetadata> diff --git a/media-video/mpv/mpv-0.33.1-r2.ebuild b/media-video/mpv/mpv-0.33.1-r2.ebuild @@ -1,364 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -LUA_COMPAT=( lua5-{1..2} luajit ) -PYTHON_COMPAT=( python3_{7..9} ) -PYTHON_REQ_USE='threads(+)' - -WAF_PV=2.0.9 - -inherit bash-completion-r1 flag-o-matic lua-single optfeature pax-utils python-r1 toolchain-funcs waf-utils xdg-utils - -DESCRIPTION="Media player based on MPlayer and mplayer2" -HOMEPAGE="https://mpv.io/ https://github.com/mpv-player/mpv" - -if [[ ${PV} != *9999* ]]; then - SRC_URI="https://github.com/mpv-player/mpv/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux" - DOCS=( RELEASE_NOTES ) -else - EGIT_REPO_URI="https://github.com/mpv-player/mpv.git" - inherit git-r3 - DOCS=(); SRC_URI="" -fi -SRC_URI+=" https://waf.io/waf-${WAF_PV}" -DOCS+=( README.md DOCS/{client-api,interface}-changes.rst ) - -# See Copyright in sources and Gentoo bug 506946. Waf is BSD, libmpv is ISC. -LICENSE="LGPL-2.1+ GPL-2+ BSD ISC" -SLOT="0" -IUSE="+alsa aqua archive bluray cdda +cli coreaudio cplugins cuda debug doc drm dvb - dvd +egl gamepad gbm +iconv jack javascript jpeg lcms libcaca libmpv +lua - openal +opengl pulseaudio raspberry-pi rubberband sdl - selinux sndio test tools +uchardet vaapi vdpau vulkan wayland +X +xv zlib zimg" - -REQUIRED_USE=" - || ( cli libmpv ) - aqua? ( opengl ) - cuda? ( opengl ) - egl? ( || ( gbm X wayland ) ) - gamepad? ( sdl ) - gbm? ( drm egl opengl ) - lcms? ( opengl ) - lua? ( ${LUA_REQUIRED_USE} ) - opengl? ( || ( aqua egl X raspberry-pi !cli ) ) - raspberry-pi? ( opengl ) - test? ( opengl ) - tools? ( cli ) - uchardet? ( iconv ) - vaapi? ( || ( gbm X wayland ) ) - vdpau? ( X ) - vulkan? ( || ( X wayland ) ) - wayland? ( egl ) - X? ( egl? ( opengl ) ) - xv? ( X ) - ${PYTHON_REQUIRED_USE} -" - -RESTRICT="!test? ( test )" - -COMMON_DEPEND=" - >=media-video/ffmpeg-4.0:0=[encode,threads,vaapi?,vdpau?] - alsa? ( >=media-libs/alsa-lib-1.0.18 ) - archive? ( >=app-arch/libarchive-3.4.0:= ) - bluray? ( >=media-libs/libbluray-0.3.0:= ) - cdda? ( dev-libs/libcdio-paranoia - dev-libs/libcdio:= ) - drm? ( x11-libs/libdrm ) - dvd? ( - >=media-libs/libdvdnav-4.2.0:= - >=media-libs/libdvdread-4.1.0:= - ) - egl? ( media-libs/mesa[egl(+),gbm(-)?,wayland(-)?] ) - gamepad? ( media-libs/libsdl2 ) - iconv? ( - virtual/libiconv - uchardet? ( app-i18n/uchardet ) - ) - jack? ( virtual/jack ) - javascript? ( >=dev-lang/mujs-1.0.0 ) - jpeg? ( virtual/jpeg:0 ) - lcms? ( >=media-libs/lcms-2.6:2 ) - >=media-libs/libass-0.12.1:=[fontconfig,harfbuzz(+)] - virtual/ttf-fonts - libcaca? ( >=media-libs/libcaca-0.99_beta18 ) - lua? ( ${LUA_DEPS} ) - openal? ( >=media-libs/openal-1.13 ) - pulseaudio? ( media-sound/pulseaudio ) - raspberry-pi? ( >=media-libs/raspberrypi-userland-0_pre20160305-r1 ) - rubberband? ( >=media-libs/rubberband-1.8.0 ) - sdl? ( media-libs/libsdl2[sound,threads,video] ) - sndio? ( media-sound/sndio:= ) - vaapi? ( x11-libs/libva:=[drm?,X?,wayland?] ) - vdpau? ( x11-libs/libvdpau ) - vulkan? ( - <media-libs/libplacebo-3.104.0:=[vulkan] - media-libs/shaderc - ) - wayland? ( - >=dev-libs/wayland-1.6.0 - >=dev-libs/wayland-protocols-1.14 - >=x11-libs/libxkbcommon-0.3.0 - ) - X? ( - x11-libs/libX11 - x11-libs/libXScrnSaver - x11-libs/libXext - x11-libs/libXinerama - x11-libs/libXrandr - opengl? ( - x11-libs/libXdamage - virtual/opengl - ) - xv? ( x11-libs/libXv ) - ) - zlib? ( sys-libs/zlib ) - zimg? ( >=media-libs/zimg-2.9.2 ) -" -DEPEND="${COMMON_DEPEND} - ${PYTHON_DEPS} - cuda? ( >=media-libs/nv-codec-headers-8.2.15.7 ) - dvb? ( virtual/linuxtv-dvb-headers ) -" -RDEPEND="${COMMON_DEPEND} - cuda? ( x11-drivers/nvidia-drivers[X] ) - selinux? ( sec-policy/selinux-mplayer ) - tools? ( ${PYTHON_DEPS} ) -" -BDEPEND="dev-python/docutils - virtual/pkgconfig - test? ( >=dev-util/cmocka-1.0.0 ) -" - -PATCHES=( - "${FILESDIR}/mpv-0.33.1-sndio_pr9298.patch" -) - -pkg_setup() { - use lua && lua-single_pkg_setup -} - -src_prepare() { - cp "${DISTDIR}/waf-${WAF_PV}" "${S}"/waf || die - chmod +x "${S}"/waf || die - default -} - -src_configure() { - python_setup - tc-export CC PKG_CONFIG AR - - if use raspberry-pi; then - append-cflags -I"${SYSROOT%/}${EPREFIX}/opt/vc/include" - append-ldflags -L"${SYSROOT%/}${EPREFIX}/opt/vc/lib" - fi - - local mywafargs=( - --confdir="${EPREFIX}/etc/${PN}" - - $(usex cli '' '--disable-cplayer') - $(use_enable libmpv libmpv-shared) - - --disable-libmpv-static - --disable-static-build - # See deep down below for build-date. - --disable-optimize # Don't add '-O2' to CFLAGS. - $(usex debug '' '--disable-debug-build') - - $(use_enable doc html-build) - --disable-pdf-build - --enable-manpage-build - $(use_enable cplugins) - $(use_enable test) - - $(use_enable iconv) - $(use_enable lua) - $(use_enable javascript) - $(use_enable zlib) - $(use_enable bluray libbluray) - $(use_enable dvd dvdnav) - $(use_enable cdda) - $(use_enable uchardet) - $(use_enable rubberband) - $(use_enable lcms lcms2) - --disable-vapoursynth # Only available in overlays. - $(use_enable archive libarchive) - - --enable-libavdevice - - # Audio outputs: - $(use_enable sdl sdl2) # Listed under audio, but also includes video. - $(use_enable pulseaudio pulse) - $(use_enable sndio) - $(use_enable jack) - $(use_enable openal) - --disable-opensles - $(use_enable alsa) - $(use_enable coreaudio) - - # Video outputs: - $(use_enable aqua cocoa) - $(use_enable drm) - $(use_enable gbm) - $(use_enable wayland wayland-scanner) - $(use_enable wayland wayland-protocols) - $(use_enable wayland) - $(use_enable X x11) - $(use_enable xv) - $(usex opengl "$(use_enable aqua gl-cocoa)" '--disable-gl-cocoa') - $(usex opengl "$(use_enable X gl-x11)" '--disable-gl-x11') - $(usex egl "$(use_enable X egl-x11)" '--disable-egl-x11') - $(usex egl "$(use_enable gbm egl-drm)" '--disable-egl-drm') - $(usex opengl "$(use_enable wayland gl-wayland)" '--disable-gl-wayland') - $(use_enable vdpau) - $(usex vdpau "$(use_enable opengl vdpau-gl-x11)" '--disable-vdpau-gl-x11') - $(use_enable vaapi) # See below for vaapi-glx, vaapi-x-egl. - $(usex vaapi "$(use_enable X vaapi-x11)" '--disable-vaapi-x11') - $(usex vaapi "$(use_enable wayland vaapi-wayland)" '--disable-vaapi-wayland') - $(usex vaapi "$(use_enable gbm vaapi-drm)" '--disable-vaapi-drm') - $(use_enable libcaca caca) - $(use_enable jpeg) - $(use_enable vulkan shaderc) - $(use_enable vulkan libplacebo) - $(use_enable raspberry-pi rpi) - $(usex libmpv "$(use_enable opengl plain-gl)" '--disable-plain-gl') - $(usex opengl '' '--disable-gl') - $(use_enable vulkan) - $(use_enable gamepad sdl2-gamepad) - - # HWaccels: - # Automagic Video Toolbox HW acceleration. See Gentoo bug 577332. - $(use_enable cuda cuda-hwaccel) - $(use_enable cuda cuda-interop) - - # TV features: - $(use_enable dvb dvbin) - - # Miscellaneous features: - $(use_enable zimg) - ) - if use lua; then - if use lua_single_target_luajit; then - mywafargs+=( --lua="luajit" ) - else - # Because it would be too simple to just let the user directly - # specify the package name to check, wouldn't it. - mywafargs+=( --lua="$(ver_rs 1 '' $(ver_cut 1-2 $(lua_get_version)))" ) - fi - fi - - if use vaapi && use X; then - mywafargs+=( - $(use_enable egl vaapi-x-egl) - ) - fi - - # Not for us - mywafargs+=( - --disable-android - --disable-egl-android - --disable-uwp - --disable-audiounit - --disable-macos-media-player - --disable-wasapi - --disable-ios-gl - --disable-macos-touchbar - --disable-macos-cocoa-cb - --disable-tvos - --disable-egl-angle-win32 - ) - - mywafargs+=( - --bashdir="$(get_bashcompdir)" - --zshdir="${EPREFIX}"/usr/share/zsh/site-functions -) - - # Create reproducible non-live builds. - [[ ${PV} != *9999* ]] && mywafargs+=(--disable-build-date) - - waf-utils_src_configure "${mywafargs[@]}" -} - -src_install() { - waf-utils_src_install - - if use lua; then - insinto /usr/share/${PN} - doins -r TOOLS/lua - fi - - if use cli && use lua_single_target_luajit; then - pax-mark -m "${ED}"/usr/bin/${PN} - fi - - if use tools; then - dobin TOOLS/{mpv_identify.sh,umpv} - newbin TOOLS/idet.sh mpv_idet.sh - python_replicate_script "${ED}"/usr/bin/umpv - fi -} - -pkg_postinst() { - local rv softvol_0_18_1=0 osc_0_21_0=0 txtsubs_0_24_0=0 opengl_0_25_0=0 - - for rv in ${REPLACING_VERSIONS}; do - ver_test ${rv} -lt 0.18.1 && softvol_0_18_1=1 - ver_test ${rv} -lt 0.21.0 && osc_0_21_0=1 - ver_test ${rv} -lt 0.24.0 && txtsubs_0_24_0=1 - ver_test ${rv} -lt 0.25.0 && ! use opengl && opengl_0_25_0=1 - done - - if [[ ${softvol_0_18_1} -eq 1 ]]; then - elog "Since version 0.18.1 the software volume control is always enabled." - elog "This means that volume controls don't change the system volume," - elog "e.g. per-application volume with PulseAudio." - elog "If you want to restore the previous behaviour, please refer to" - elog - elog "https://wiki.gentoo.org/wiki/Mpv#Volume_in_0.18.1" - elog - fi - - if [[ ${osc_0_21_0} -eq 1 ]]; then - elog "In version 0.21.0 the default OSC layout was changed." - elog "If you want to restore the previous layout, please refer to" - elog - elog "https://wiki.gentoo.org/wiki/Mpv#OSC_in_0.21.0" - elog - fi - - if [[ ${txtsubs_0_24_0} -eq 1 ]]; then - elog "Since version 0.24.0 subtitles with .txt extension aren't autoloaded." - elog "If you want to restore the previous behaviour, please refer to" - elog - elog "https://wiki.gentoo.org/wiki/Mpv#Subtitles_with_.txt_extension_in_0.24.0" - elog - fi - - if [[ ${opengl_0_25_0} -eq 1 ]]; then - elog "Since version 0.25.0 the 'opengl' USE flag is mapped to" - elog "the 'opengl' video output and no longer explicitly requires" - elog "X11 or Mac OS Aqua. Consider enabling the 'opengl' USE flag." - fi - - optfeature "URL support" net-misc/youtube-dl - - xdg_icon_cache_update - xdg_desktop_database_update -} - -pkg_postrm() { - xdg_icon_cache_update - xdg_desktop_database_update -} - -src_test() { - cd "${S}"/build/test || die - local test - for test in *; do - if [[ -x ${test} ]]; then - ./"${test}" || die "Test suite failed" - fi - done -} diff --git a/media-video/mpv/mpv-0.34.1-r2.ebuild b/media-video/mpv/mpv-0.34.1-r2.ebuild @@ -1,364 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -LUA_COMPAT=( lua5-{1..2} luajit ) -PYTHON_COMPAT=( python3_{8..10} ) -PYTHON_REQ_USE='threads(+)' - -WAF_PV=2.0.22 - -inherit bash-completion-r1 flag-o-matic lua-single optfeature pax-utils python-r1 toolchain-funcs waf-utils xdg-utils - -DESCRIPTION="Media player based on MPlayer and mplayer2" -HOMEPAGE="https://mpv.io/ https://github.com/mpv-player/mpv" - -if [[ ${PV} != *9999* ]]; then - SRC_URI="https://github.com/mpv-player/mpv/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux" - DOCS=( RELEASE_NOTES ) -else - EGIT_REPO_URI="https://github.com/mpv-player/mpv.git" - inherit git-r3 - DOCS=(); SRC_URI="" -fi -SRC_URI+=" https://waf.io/waf-${WAF_PV}" -DOCS+=( README.md DOCS/{client-api,interface}-changes.rst ) - -# See Copyright in sources and Gentoo bug 506946. Waf is BSD, libmpv is ISC. -LICENSE="LGPL-2.1+ GPL-2+ BSD ISC" -SLOT="0" -IUSE="+alsa aqua archive bluray cdda +cli coreaudio cplugins debug doc drm dvb - dvd +egl gamepad gbm +iconv jack javascript jpeg lcms libcaca libmpv +lua - nvenc openal +opengl pulseaudio raspberry-pi rubberband sdl - selinux sndio test tools +uchardet vaapi vdpau vulkan wayland +X +xv zlib zimg" - -REQUIRED_USE=" - || ( cli libmpv ) - aqua? ( opengl ) - egl? ( || ( gbm X wayland ) ) - gamepad? ( sdl ) - gbm? ( drm egl opengl ) - lcms? ( opengl ) - lua? ( ${LUA_REQUIRED_USE} ) - nvenc? ( opengl ) - opengl? ( || ( aqua egl X raspberry-pi !cli ) ) - raspberry-pi? ( opengl ) - test? ( opengl ) - tools? ( cli ) - uchardet? ( iconv ) - vaapi? ( || ( gbm X wayland ) ) - vdpau? ( X ) - vulkan? ( || ( X wayland ) ) - wayland? ( egl ) - X? ( egl? ( opengl ) ) - xv? ( X ) - ${PYTHON_REQUIRED_USE} -" - -RESTRICT="!test? ( test )" - -COMMON_DEPEND=" - >=media-video/ffmpeg-4.0:0=[encode,threads,vaapi?,vdpau?] - alsa? ( >=media-libs/alsa-lib-1.0.18 ) - archive? ( >=app-arch/libarchive-3.4.0:= ) - bluray? ( >=media-libs/libbluray-0.3.0:= ) - cdda? ( dev-libs/libcdio-paranoia - dev-libs/libcdio:= ) - drm? ( x11-libs/libdrm ) - dvd? ( - >=media-libs/libdvdnav-4.2.0:= - >=media-libs/libdvdread-4.1.0:= - ) - egl? ( media-libs/mesa[egl(+),gbm(+)?,wayland(-)?] ) - gamepad? ( media-libs/libsdl2 ) - iconv? ( - virtual/libiconv - uchardet? ( app-i18n/uchardet ) - ) - jack? ( virtual/jack ) - javascript? ( >=dev-lang/mujs-1.0.0 ) - jpeg? ( virtual/jpeg:0 ) - lcms? ( >=media-libs/lcms-2.6:2 ) - >=media-libs/libass-0.12.1:=[fontconfig,harfbuzz(+)] - virtual/ttf-fonts - libcaca? ( >=media-libs/libcaca-0.99_beta18 ) - lua? ( ${LUA_DEPS} ) - openal? ( >=media-libs/openal-1.13 ) - pulseaudio? ( media-sound/pulseaudio ) - raspberry-pi? ( >=media-libs/raspberrypi-userland-0_pre20160305-r1 ) - rubberband? ( >=media-libs/rubberband-1.8.0 ) - sdl? ( media-libs/libsdl2[sound,threads,video] ) - sndio? ( media-sound/sndio:= ) - vaapi? ( x11-libs/libva:=[drm(+)?,X?,wayland?] ) - vdpau? ( x11-libs/libvdpau ) - vulkan? ( - >=media-libs/libplacebo-3.104.0:=[vulkan] - media-libs/shaderc - ) - wayland? ( - >=dev-libs/wayland-1.6.0 - >=dev-libs/wayland-protocols-1.14 - >=x11-libs/libxkbcommon-0.3.0 - ) - X? ( - x11-libs/libX11 - x11-libs/libXScrnSaver - x11-libs/libXext - x11-libs/libXinerama - x11-libs/libXrandr - opengl? ( - x11-libs/libXdamage - virtual/opengl - ) - xv? ( x11-libs/libXv ) - ) - zlib? ( sys-libs/zlib ) - zimg? ( >=media-libs/zimg-2.9.2 ) -" -DEPEND="${COMMON_DEPEND} - ${PYTHON_DEPS} - dvb? ( virtual/linuxtv-dvb-headers ) - nvenc? ( >=media-libs/nv-codec-headers-8.2.15.7 ) -" -RDEPEND="${COMMON_DEPEND} - nvenc? ( x11-drivers/nvidia-drivers[X] ) - selinux? ( sec-policy/selinux-mplayer ) - tools? ( ${PYTHON_DEPS} ) -" -BDEPEND="dev-python/docutils - virtual/pkgconfig - test? ( >=dev-util/cmocka-1.0.0 ) -" - -PATCHES=( - "${FILESDIR}/mpv-0.33.1-sndio_pr9298.patch" -) - -pkg_setup() { - use lua && lua-single_pkg_setup -} - -src_prepare() { - cp "${DISTDIR}/waf-${WAF_PV}" "${S}"/waf || die - chmod +x "${S}"/waf || die - default -} - -src_configure() { - python_setup - tc-export CC PKG_CONFIG AR - - if use raspberry-pi; then - append-cflags -I"${ESYSROOT}/opt/vc/include" - append-ldflags -L"${ESYSROOT}/opt/vc/lib" - fi - - local mywafargs=( - --confdir="${EPREFIX}/etc/${PN}" - - $(usex cli '' '--disable-cplayer') - $(use_enable libmpv libmpv-shared) - - --disable-libmpv-static - --disable-static-build - # See deep down below for build-date. - --disable-optimize # Don't add '-O2' to CFLAGS. - $(usex debug '' '--disable-debug-build') - - $(use_enable doc html-build) - --disable-pdf-build - --enable-manpage-build - $(use_enable cplugins) - $(use_enable test) - - $(use_enable iconv) - $(use_enable lua) - $(use_enable javascript) - $(use_enable zlib) - $(use_enable bluray libbluray) - $(use_enable dvd dvdnav) - $(use_enable cdda) - $(use_enable uchardet) - $(use_enable rubberband) - $(use_enable lcms lcms2) - --disable-vapoursynth # Only available in overlays. - $(use_enable archive libarchive) - - --enable-libavdevice - - # Audio outputs: - $(use_enable sdl sdl2) # Listed under audio, but also includes video. - $(use_enable pulseaudio pulse) - $(use_enable sndio) - $(use_enable jack) - $(use_enable openal) - --disable-opensles - $(use_enable alsa) - $(use_enable coreaudio) - - # Video outputs: - $(use_enable aqua cocoa) - $(use_enable drm) - $(use_enable gbm) - $(use_enable wayland wayland-scanner) - $(use_enable wayland wayland-protocols) - $(use_enable wayland) - $(use_enable X x11) - $(use_enable xv) - $(usex opengl "$(use_enable aqua gl-cocoa)" '--disable-gl-cocoa') - $(usex opengl "$(use_enable X gl-x11)" '--disable-gl-x11') - $(usex egl "$(use_enable X egl-x11)" '--disable-egl-x11') - $(usex egl "$(use_enable gbm egl-drm)" '--disable-egl-drm') - $(usex opengl "$(use_enable wayland gl-wayland)" '--disable-gl-wayland') - $(use_enable vdpau) - $(usex vdpau "$(use_enable opengl vdpau-gl-x11)" '--disable-vdpau-gl-x11') - $(use_enable vaapi) # See below for vaapi-glx, vaapi-x-egl. - $(usex vaapi "$(use_enable X vaapi-x11)" '--disable-vaapi-x11') - $(usex vaapi "$(use_enable wayland vaapi-wayland)" '--disable-vaapi-wayland') - $(usex vaapi "$(use_enable gbm vaapi-drm)" '--disable-vaapi-drm') - $(use_enable libcaca caca) - $(use_enable jpeg) - $(use_enable vulkan shaderc) - $(use_enable vulkan libplacebo) - $(use_enable raspberry-pi rpi) - $(usex libmpv "$(use_enable opengl plain-gl)" '--disable-plain-gl') - $(usex opengl '' '--disable-gl') - $(use_enable vulkan) - $(use_enable gamepad sdl2-gamepad) - - # HWaccels: - # Automagic Video Toolbox HW acceleration. See Gentoo bug 577332. - $(use_enable nvenc cuda-hwaccel) - $(use_enable nvenc cuda-interop) - - # TV features: - $(use_enable dvb dvbin) - - # Miscellaneous features: - $(use_enable zimg) - ) - if use lua; then - if use lua_single_target_luajit; then - mywafargs+=( --lua="luajit" ) - else - # Because it would be too simple to just let the user directly - # specify the package name to check, wouldn't it. - mywafargs+=( --lua="$(ver_rs 1 '' $(ver_cut 1-2 $(lua_get_version)))" ) - fi - fi - - if use vaapi && use X; then - mywafargs+=( - $(use_enable egl vaapi-x-egl) - ) - fi - - # Not for us - mywafargs+=( - --disable-android - --disable-egl-android - --disable-uwp - --disable-audiounit - --disable-macos-media-player - --disable-wasapi - --disable-ios-gl - --disable-macos-touchbar - --disable-macos-cocoa-cb - --disable-tvos - --disable-egl-angle-win32 - ) - - mywafargs+=( - --bashdir="$(get_bashcompdir)" - --zshdir="${EPREFIX}"/usr/share/zsh/site-functions -) - - # Create reproducible non-live builds. - [[ ${PV} != *9999* ]] && mywafargs+=(--disable-build-date) - - waf-utils_src_configure "${mywafargs[@]}" -} - -src_install() { - waf-utils_src_install - - if use lua; then - insinto /usr/share/${PN} - doins -r TOOLS/lua - fi - - if use cli && use lua_single_target_luajit; then - pax-mark -m "${ED}"/usr/bin/${PN} - fi - - if use tools; then - dobin TOOLS/{mpv_identify.sh,umpv} - newbin TOOLS/idet.sh mpv_idet.sh - python_replicate_script "${ED}"/usr/bin/umpv - fi -} - -pkg_postinst() { - local rv softvol_0_18_1=0 osc_0_21_0=0 txtsubs_0_24_0=0 opengl_0_25_0=0 - - for rv in ${REPLACING_VERSIONS}; do - ver_test ${rv} -lt 0.18.1 && softvol_0_18_1=1 - ver_test ${rv} -lt 0.21.0 && osc_0_21_0=1 - ver_test ${rv} -lt 0.24.0 && txtsubs_0_24_0=1 - ver_test ${rv} -lt 0.25.0 && ! use opengl && opengl_0_25_0=1 - done - - if [[ ${softvol_0_18_1} -eq 1 ]]; then - elog "Since version 0.18.1 the software volume control is always enabled." - elog "This means that volume controls don't change the system volume," - elog "e.g. per-application volume with PulseAudio." - elog "If you want to restore the previous behaviour, please refer to" - elog - elog "https://wiki.gentoo.org/wiki/Mpv#Volume_in_0.18.1" - elog - fi - - if [[ ${osc_0_21_0} -eq 1 ]]; then - elog "In version 0.21.0 the default OSC layout was changed." - elog "If you want to restore the previous layout, please refer to" - elog - elog "https://wiki.gentoo.org/wiki/Mpv#OSC_in_0.21.0" - elog - fi - - if [[ ${txtsubs_0_24_0} -eq 1 ]]; then - elog "Since version 0.24.0 subtitles with .txt extension aren't autoloaded." - elog "If you want to restore the previous behaviour, please refer to" - elog - elog "https://wiki.gentoo.org/wiki/Mpv#Subtitles_with_.txt_extension_in_0.24.0" - elog - fi - - if [[ ${opengl_0_25_0} -eq 1 ]]; then - elog "Since version 0.25.0 the 'opengl' USE flag is mapped to" - elog "the 'opengl' video output and no longer explicitly requires" - elog "X11 or Mac OS Aqua. Consider enabling the 'opengl' USE flag." - fi - - optfeature "URL support" net-misc/yt-dlp - - xdg_icon_cache_update - xdg_desktop_database_update -} - -pkg_postrm() { - xdg_icon_cache_update - xdg_desktop_database_update -} - -src_test() { - cd "${S}"/build/test || die - local test - for test in *; do - if [[ -x ${test} ]]; then - ./"${test}" || die "Test suite failed" - fi - done -}