Committed, thanks!
On Sat Nov 12, 2022 at 08:12:49PM -0500, Brad Smith wrote:
> Here is an update to mpv 0.35.0 and a patch for minitube due to
> API change in libmpv.
>
> https://raw.githubusercontent.com/mpv-player/mpv/master/RELEASE_NOTES
>
>
> Index: multimedia/mpv/Makefile
> ===================================================================
> RCS file: /home/cvs/ports/multimedia/mpv/Makefile,v
> retrieving revision 1.83
> diff -u -p -u -p -r1.83 Makefile
> --- multimedia/mpv/Makefile 5 Nov 2022 17:06:30 -0000 1.83
> +++ multimedia/mpv/Makefile 13 Nov 2022 00:41:33 -0000
> @@ -2,17 +2,15 @@ COMMENT = movie player based on MPlayer
>
> GH_ACCOUNT = mpv-player
> GH_PROJECT = mpv
> -GH_TAGNAME = v0.34.1
> +GH_TAGNAME = v0.35.0
>
> -REVISION = 2
> -
> -SHARED_LIBS += mpv 0.2 # 1.109
> +SHARED_LIBS += mpv 1.0 # 2.0
>
> CATEGORIES = multimedia x11
>
> HOMEPAGE = https://mpv.io/
>
> -WAF = ${WRKSRC}/waf-2.0.20
> +WAF = ${WRKSRC}/waf-2.0.24
> MASTER_SITES0 = https://waf.io/
> DISTFILES = ${GH_DISTFILE} ${WAF:T}:0
> EXTRACT_ONLY = ${DISTNAME}${EXTRACT_SUFX}
> @@ -20,7 +18,7 @@ EXTRACT_ONLY = ${DISTNAME}${EXTRACT_SUF
> # GPLv2+
> PERMIT_PACKAGE = Yes
>
> -WANTLIB += EGL GL SDL2 X11 X11-xcb Xau Xdmcp Xext Xfixes Xinerama
> +WANTLIB += EGL GL SDL2 X11 X11-xcb Xau Xdmcp Xext Xfixes Xinerama Xpresent
> WANTLIB += Xrandr Xrender Xss Xv Xxf86vm archive ass avcodec avdevice
> WANTLIB += avfilter avformat avresample avutil bluray c cdio cdio_cdda
> WANTLIB += cdio_paranoia drm dvdnav dvdread epoxy expat fontconfig
> @@ -77,6 +75,7 @@ CONFIGURE_ARGS = --confloaddir=${SYSCONF
> --disable-rubberband \
> --disable-openal \
> --disable-optimize \
> + --disable-pipewire \
> --disable-pulse \
> --disable-sixel \
> --disable-sdl2-audio \
> @@ -91,11 +90,11 @@ CONFIGURE_ARGS = --confloaddir=${SYSCONF
> --disable-vdpau-gl-x11 \
> --disable-videotoolbox-gl \
> --disable-vulkan \
> - --disable-wayland-scanner \
> - --disable-wayland-protocols
> + --disable-wayland
>
> MAKE_ENV = CPPFLAGS="-I${LOCALBASE}/include -I${X11BASE}/include" \
> - LDFLAGS="-L${LOCALBASE}/lib -L${X11BASE}/lib"
> + LDFLAGS="-L${LOCALBASE}/lib -L${X11BASE}/lib" \
> + LIBmpv_VERSION=${LIBmpv_VERSION}
> MAKE_FLAGS = -o "${WRKBUILD}" -t "${WRKSRC}" --destdir="${DESTDIR}"
>
> NO_TEST = Yes
> @@ -103,15 +102,11 @@ NO_TEST = Yes
> DO_WAF = cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MODPY_BIN} \
> ${WAF} ${MAKE_FLAGS}
>
> -LMAJ = ${LIBmpv_VERSION:R}
> -LMIN = ${LIBmpv_VERSION:E}
> -UPDATE_PLIST_ARGS += -i LMAJ -i LMIN
> -SUBST_VARS += LMAJ \
> - LMIN
> +SUBST_VARS += LIBmpv_VERSION
>
> post-patch:
> cp ${DISTDIR}/${WAF:T} ${WAF}
> - ${SUBST_CMD} ${WRKSRC}/libmpv/client.h
> + ${SUBST_CMD} ${WRKSRC}/wscript_build.py
>
> do-configure:
> ${DO_WAF} configure ${CONFIGURE_ARGS}
> Index: multimedia/mpv/distinfo
> ===================================================================
> RCS file: /home/cvs/ports/multimedia/mpv/distinfo,v
> retrieving revision 1.28
> diff -u -p -u -p -r1.28 distinfo
> --- multimedia/mpv/distinfo 29 Jan 2022 12:30:14 -0000 1.28
> +++ multimedia/mpv/distinfo 12 Nov 2022 21:56:02 -0000
> @@ -1,4 +1,4 @@
> -SHA256 (mpv-0.34.1.tar.gz) = Mt7YwTtjmDEPondnN4GT3B2214sAa3Dby9MSOhRF50Y=
> -SHA256 (waf-2.0.20) = v5cemO3CQUloomLGqmuIVBomw80khonIn0xXNwlV7n8=
> -SIZE (mpv-0.34.1.tar.gz) = 3288356
> -SIZE (waf-2.0.20) = 104725
> +SHA256 (mpv-0.35.0.tar.gz) = 3EEciZpkVIJQwUK/H6GqdSjxtDmKJMhrgWCTmZBJ7AA=
> +SHA256 (waf-2.0.24) = k5CbyoI6Z1+fQK98ZbJIh8OjwO/fQR/xl4uoJxlL3rA=
> +SIZE (mpv-0.35.0.tar.gz) = 3365752
> +SIZE (waf-2.0.24) = 105408
> Index: multimedia/mpv/patches/patch-DOCS_man_ao_rst
> ===================================================================
> RCS file: multimedia/mpv/patches/patch-DOCS_man_ao_rst
> diff -N multimedia/mpv/patches/patch-DOCS_man_ao_rst
> --- multimedia/mpv/patches/patch-DOCS_man_ao_rst 11 Mar 2022 19:39:24
> -0000 1.3
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,19 +0,0 @@
> -ao_sndio: add this audio output again
> -
> -https://github.com/mpv-player/mpv/pull/8314
> -
> -Index: DOCS/man/ao.rst
> ---- DOCS/man/ao.rst.orig
> -+++ DOCS/man/ao.rst
> -@@ -219,5 +219,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.
> Index: multimedia/mpv/patches/patch-audio_out_ao_c
> ===================================================================
> RCS file: multimedia/mpv/patches/patch-audio_out_ao_c
> diff -N multimedia/mpv/patches/patch-audio_out_ao_c
> --- multimedia/mpv/patches/patch-audio_out_ao_c 11 Mar 2022 19:39:24
> -0000 1.4
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,25 +0,0 @@
> -Another attempt to return ao_sndio to mpv
> -
> -https://github.com/mpv-player/mpv/pull/9298
> -
> -Index: audio/out/ao.c
> ---- audio/out/ao.c.orig
> -+++ audio/out/ao.c
> -@@ -41,6 +41,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;
> -@@ -87,6 +88,9 @@ static const struct ao_driver * const audio_out_driver
> - #endif
> - #if HAVE_SDL2_AUDIO
> - &audio_out_sdl,
> -+#endif
> -+#if HAVE_SNDIO
> -+ &audio_out_sndio,
> - #endif
> - &audio_out_null,
> - #if HAVE_COREAUDIO
> Index: multimedia/mpv/patches/patch-audio_out_ao_sndio_c
> ===================================================================
> RCS file: multimedia/mpv/patches/patch-audio_out_ao_sndio_c
> diff -N multimedia/mpv/patches/patch-audio_out_ao_sndio_c
> --- multimedia/mpv/patches/patch-audio_out_ao_sndio_c 29 Apr 2022 08:53:41
> -0000 1.7
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,326 +0,0 @@
> -Another attempt to return ao_sndio to mpv
> -
> -https://github.com/mpv-player/mpv/pull/9298
> -
> -Index: audio/out/ao_sndio.c
> ---- audio/out/ao_sndio.c.orig
> -+++ audio/out/ao_sndio.c
> -@@ -0,0 +1,318 @@
> -+/*
> -+ * Copyright (c) 2008 Alexandre Ratchov <[email protected]>
> -+ * Copyright (c) 2013 Christian Neukirchen <[email protected]>
> -+ * Copyright (c) 2020 Rozhuk Ivan <[email protected]>
> -+ * Copyright (c) 2021 Andrew Krasavin <[email protected]>
> -+ *
> -+ * 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;
> -+ p->par.appbufsz = p->par.rate * 250 / 1000; /* 250ms buffer */
> -+ p->par.round = p->par.rate * 10 / 1000; /* 10ms block size */
> -+
> -+ 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_flush(p->hdl)) {
> -+ MP_ERR(ao, "reset: couldn't sio_flush()\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;
> -+ state->free_samples = state->free_samples / p->par.round * p->par.round;
> -+ /* 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;
> -+
> -+ /* report unexpected EOF / underrun */
> -+ if (state->queued_samples && state->queued_samples &&
> -+ state->queued_samples < state->free_samples &&
> -+ p->playing || sio_eof(p->hdl))
> -+ {
> -+ MP_VERBOSE(ao, "get_state: EOF/underrun detected.\n");
> -+ MP_VERBOSE(ao, "get_state: free: %d, queued: %d, delay: %lf\n", \
> -+ state->free_samples, state->queued_samples, state->delay);
> -+ p->playing = false;
> -+ state->playing = p->playing;
> -+ ao_wakeup_playthread(ao);
> -+ } else {
> -+ 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),
> -+};
> Index: multimedia/mpv/patches/patch-libmpv_client_h
> ===================================================================
> RCS file: multimedia/mpv/patches/patch-libmpv_client_h
> diff -N multimedia/mpv/patches/patch-libmpv_client_h
> --- multimedia/mpv/patches/patch-libmpv_client_h 11 Mar 2022 19:39:24
> -0000 1.7
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,14 +0,0 @@
> -Set shared library version.
> -
> -Index: libmpv/client.h
> ---- libmpv/client.h.orig
> -+++ libmpv/client.h
> -@@ -235,7 +235,7 @@ extern "C" {
> - * relational operators (<, >, <=, >=).
> - */
> - #define MPV_MAKE_VERSION(major, minor) (((major) << 16) | (minor) | 0UL)
> --#define MPV_CLIENT_API_VERSION MPV_MAKE_VERSION(1, 109)
> -+#define MPV_CLIENT_API_VERSION MPV_MAKE_VERSION(${LMAJ}, ${LMIN})
> -
> - /**
> - * The API user is allowed to "#define MPV_ENABLE_DEPRECATED 0" before
> Index: multimedia/mpv/patches/patch-wscript
> ===================================================================
> RCS file: multimedia/mpv/patches/patch-wscript
> diff -N multimedia/mpv/patches/patch-wscript
> --- multimedia/mpv/patches/patch-wscript 11 Mar 2022 19:39:24 -0000
> 1.6
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,19 +0,0 @@
> -Another attempt to return ao_sndio to mpv
> -
> -https://github.com/mpv-player/mpv/pull/9298
> -
> -Index: wscript
> ---- wscript.orig
> -+++ wscript
> -@@ -435,6 +435,11 @@ audio_output_features = [
> - 'func': check_statement(['sys/soundcard.h'], 'int x =
> SNDCTL_DSP_SETPLAYVOL'),
> - 'deps': 'posix && gpl',
> - }, {
> -+ 'name': '--sndio',
> -+ 'desc': 'sndio audio input/output',
> -+ 'func': check_pkg_config('sndio'),
> -+ 'default': 'disable'
> -+ }, {
> - 'name': '--pulse',
> - 'desc': 'PulseAudio audio output',
> - 'func': check_pkg_config('libpulse', '>= 1.0')
> Index: multimedia/mpv/patches/patch-wscript_build_py
> ===================================================================
> RCS file: /home/cvs/ports/multimedia/mpv/patches/patch-wscript_build_py,v
> retrieving revision 1.4
> diff -u -p -u -p -r1.4 patch-wscript_build_py
> --- multimedia/mpv/patches/patch-wscript_build_py 11 Mar 2022 19:39:24
> -0000 1.4
> +++ multimedia/mpv/patches/patch-wscript_build_py 13 Nov 2022 00:44:58
> -0000
> @@ -1,15 +1,12 @@
> -Another attempt to return ao_sndio to mpv
> -
> -https://github.com/mpv-player/mpv/pull/9298
> -
> Index: wscript_build.py
> --- wscript_build.py.orig
> +++ wscript_build.py
> -@@ -248,6 +248,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" ),
> +@@ -673,7 +673,7 @@ def build(ctx):
> + vre = '#define MPV_CLIENT_API_VERSION MPV_MAKE_VERSION\((.*),
> (.*)\)'
> + libmpv_header = ctx.path.find_node("libmpv/client.h").read()
> + major, minor = re.search(vre, libmpv_header).groups()
> +- libversion = major + '.' + minor + '.0'
> ++ libversion = '${LIBmpv_VERSION}' + '.0'
> +
> + def _build_libmpv(shared):
> + features = "c "
> Index: multimedia/mpv/pkg/PLIST
> ===================================================================
> RCS file: /home/cvs/ports/multimedia/mpv/pkg/PLIST,v
> retrieving revision 1.11
> diff -u -p -u -p -r1.11 PLIST
> --- multimedia/mpv/pkg/PLIST 11 Mar 2022 19:39:24 -0000 1.11
> +++ multimedia/mpv/pkg/PLIST 12 Nov 2022 23:26:36 -0000
> @@ -1,7 +1,6 @@
> @bin bin/mpv
> include/mpv/
> include/mpv/client.h
> -include/mpv/opengl_cb.h
> include/mpv/render.h
> include/mpv/render_gl.h
> include/mpv/stream_cb.h
> @@ -26,6 +25,6 @@ share/icons/hicolor/scalable/apps/mpv.sv
> share/icons/hicolor/symbolic/apps/mpv-symbolic.svg
> @tag gtk-update-icon-cache %D/share/icons/hicolor
> @tag update-desktop-database
> -share/zsh/
> -share/zsh/site-functions/
> +share/metainfo/
> +share/metainfo/mpv.metainfo.xml
> share/zsh/site-functions/_mpv
> Index: www/minitube/Makefile
> ===================================================================
> RCS file: /home/cvs/ports/www/minitube/Makefile,v
> retrieving revision 1.71
> diff -u -p -u -p -r1.71 Makefile
> --- www/minitube/Makefile 11 Mar 2022 20:10:06 -0000 1.71
> +++ www/minitube/Makefile 12 Nov 2022 23:21:29 -0000
> @@ -2,6 +2,7 @@ COMMENT = standalone YouTube.com video b
>
> V = 3.9.3
> DISTNAME = minitube-$V
> +REVISION = 0
> EXTRACT_SUFX = .tar.bz2
>
> CATEGORIES = www multimedia
> Index: www/minitube/patches/patch-lib_media_src_mpv_mpvwidget_cpp
> ===================================================================
> RCS file: www/minitube/patches/patch-lib_media_src_mpv_mpvwidget_cpp
> diff -N www/minitube/patches/patch-lib_media_src_mpv_mpvwidget_cpp
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ www/minitube/patches/patch-lib_media_src_mpv_mpvwidget_cpp 13 Nov
> 2022 01:02:40 -0000
> @@ -0,0 +1,20 @@
> +Adjust for API removal in mpv 0.35.0.
> +https://github.com/mpv-player/mpv/commit/632059816add
> +https://github.com/flaviotordini/minitube/issues/217
> +
> +Index: lib/media/src/mpv/mpvwidget.cpp
> +--- lib/media/src/mpv/mpvwidget.cpp.orig
> ++++ lib/media/src/mpv/mpvwidget.cpp
> +@@ -30,7 +30,11 @@ void MpvWidget::initializeGL() {
> + qDebug() << "initializeGL" << nativeParent;
> + if (nativeParent == nullptr) qFatal("No native parent");
> +
> +- mpv_opengl_init_params gl_init_params{get_proc_address, this, nullptr};
> ++ #if MPV_CLIENT_API_VERSION < MPV_MAKE_VERSION(2,0)
> ++ mpv_opengl_init_params gl_init_params{get_proc_address, this,
> nullptr};
> ++ #else
> ++ mpv_opengl_init_params gl_init_params{get_proc_address, this};
> ++ #endif
> + mpv_render_param params[]{{MPV_RENDER_PARAM_API_TYPE, (void
> *)MPV_RENDER_API_TYPE_OPENGL},
> + {MPV_RENDER_PARAM_OPENGL_INIT_PARAMS,
> &gl_init_params},
> + {MPV_RENDER_PARAM_INVALID, nullptr},
>