1 # Buildsheet autogenerated by ravenadm tool -- Do not edit.
7 SDESC[standard]= Advanced general-purpose multimedia player
8 HOMEPAGE= https://mpv.io/
11 DOWNLOAD_GROUPS= main waf
12 SITES[main]= GITHUB/mpv-player:mpv:v0.27.2
13 SITES[waf]= GITHUB/waf-project:waf:waf-1.9.8
14 DISTFILE[1]= generated:main
15 DISTFILE[2]= generated:waf
17 SPKGS[standard]= complete
22 OPTIONS_AVAILABLE= none
23 OPTIONS_STANDARD= none
25 BUILD_DEPENDS= python-docutils:single:python_default
26 video4linux:headers:standard
27 BUILDRUN_DEPENDS= ffmpeg:primary:standard
28 libarchive:single:standard
29 libass:single:standard
30 libdvdnav:single:standard
31 libdvdread:single:standard
32 libvdpau:single:standard
34 uchardet:single:standard
35 video4linux:primary:standard
36 RUN_DEPENDS= youtube-dl:single:standard
38 USES= desktop-utils iconv jpeg lua:5.2 pkgconfig
39 perl:build python:build gnome-icons
41 XORG_COMPONENTS= x11 xext xinerama xrandr xscrnsaver xv xxf86vm
43 FPC_EQUIVALENT= multimedia/mpv
46 CONFIGURE_ARGS= --prefix="{{PREFIX}}"
47 --docdir="{{STD_EXAMPLESDIR}}"
48 --htmldir="{{STD_DOCDIR}}/html"
49 --mandir="{{MANPREFIX}}/man"
50 --lua={{LUA_VER_STR}}fbsd
51 --enable-libmpv-shared
64 --disable-vaapi-wayland
66 --disable-vapoursynth-lazy
74 -j{{MAKE_JOBS_NUMBER}}
75 CONFIGURE_ENV= BIN_PYTHON="{{PYTHON_CMD}}"
79 DESTDIRNAME= --destdir
82 @${FIND} ${WRKSRC}/DOCS/man -name '*.rst' | \
83 ${XARGS} ${REINPLACE_CMD} -e 's|/usr/local|${PREFIX}|g'
86 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/mpv
87 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libmpv.so
89 [FILE:364:descriptions/desc.primary]
90 Mpv is based on the MPlayer and mplayer2 projects which it greatly improves.
91 It supports a wide variety of video file formats, audio and video codecs, and
92 subtitle types. Special input URL types are available to read input from
93 a variety of sources other than disk files. Depending on platform, a variety of
94 different video and audio output methods are supported.
98 2ad104d83fd3b2b9457716615acad57e479fd1537b8fc5e37bfe9065359b50be 2957191 mpv-player-mpv-0.27.2.tar.gz
99 b487efec83ea33cf8df0495cc5730e245f8dc8784e68aebf3dcf07c6712c5913 628874 waf-project-waf-waf-1.9.8.tar.gz
102 [FILE:465:manifests/plist.primary]
104 etc/mpv/encoding-profiles.conf
115 share/man/man1/mpv.1.gz
116 share/applications/mpv.desktop
117 share/icons/hicolor/16x16/apps/mpv.png
118 share/icons/hicolor/32x32/apps/mpv.png
119 share/icons/hicolor/64x64/apps/mpv.png
120 share/icons/hicolor/scalable/apps/mpv.svg
121 share/icons/hicolor/symbolic/apps/mpv-symbolic.svg
122 share/zsh/site-functions/_mpv
125 [FILE:89:manifests/plist.examples]
130 restore-old-bindings.conf
133 [FILE:28:manifests/plist.docs]
134 share/doc/mpv/html/mpv.html
137 [FILE:3093:patches/patch-2ecf240]
138 From 2ecf240b1cd20875991a5b18efafbe799864ff7f Mon Sep 17 00:00:00 2001
139 From: Mark Thompson <sw@jkqxz.net>
140 Date: Mon, 9 Oct 2017 20:10:26 +0100
141 Subject: [PATCH] vaapi: Use libva2 message callbacks
143 They are no longer global, so they work vaguely sensibly.
145 video/vaapi.c | 32 +++++++++++++++++++++++++++++---
146 1 file changed, 29 insertions(+), 3 deletions(-)
148 diff --git video/vaapi.c video/vaapi.c
149 index 6bedbbaa18..3b1cb9cc41 100644
152 @@ -40,9 +40,27 @@ int va_get_colorspace_flag(enum mp_csp csp)
156 -// VA message callbacks are global and do not have a context parameter, so it's
157 -// impossible to know from which VADisplay they originate. Try to route them
158 -// to existing mpv/libmpv instances within this process.
159 +#if VA_CHECK_VERSION(1, 0, 0)
160 +static void va_message_callback(void *context, const char *msg, int mp_level)
162 + struct mp_vaapi_ctx *res = context;
163 + mp_msg(res->log, mp_level, "libva: %s", msg);
166 +static void va_error_callback(void *context, const char *msg)
168 + va_message_callback(context, msg, MSGL_ERR);
171 +static void va_info_callback(void *context, const char *msg)
173 + va_message_callback(context, msg, MSGL_V);
176 +// Pre-libva2 VA message callbacks are global and do not have a context
177 +// parameter, so it's impossible to know from which VADisplay they
178 +// originate. Try to route them to existing mpv/libmpv instances within
180 static pthread_mutex_t va_log_mutex = PTHREAD_MUTEX_INITIALIZER;
181 static struct mp_vaapi_ctx **va_mpv_clients;
182 static int num_va_mpv_clients;
183 @@ -77,6 +95,7 @@ static void va_info_callback(const char *msg)
185 va_message_callback(msg, MSGL_V);
189 static void open_lavu_vaapi_device(struct mp_vaapi_ctx *ctx)
191 @@ -108,6 +127,10 @@ struct mp_vaapi_ctx *va_initialize(VADisplay *display, struct mp_log *plog,
195 +#if VA_CHECK_VERSION(1, 0, 0)
196 + vaSetErrorCallback(display, va_error_callback, res);
197 + vaSetInfoCallback(display, va_info_callback, res);
199 pthread_mutex_lock(&va_log_mutex);
200 MP_TARRAY_APPEND(NULL, va_mpv_clients, num_va_mpv_clients, res);
201 pthread_mutex_unlock(&va_log_mutex);
202 @@ -118,6 +141,7 @@ struct mp_vaapi_ctx *va_initialize(VADisplay *display, struct mp_log *plog,
203 vaSetErrorCallback(va_error_callback);
204 vaSetInfoCallback(va_info_callback);
209 int status = vaInitialize(display, &major, &minor);
210 @@ -154,6 +178,7 @@ void va_destroy(struct mp_vaapi_ctx *ctx)
211 if (ctx->destroy_native_ctx)
212 ctx->destroy_native_ctx(ctx->native_ctx);
214 +#if !VA_CHECK_VERSION(1, 0, 0)
215 pthread_mutex_lock(&va_log_mutex);
216 for (int n = 0; n < num_va_mpv_clients; n++) {
217 if (va_mpv_clients[n] == ctx) {
218 @@ -164,6 +189,7 @@ void va_destroy(struct mp_vaapi_ctx *ctx)
219 if (num_va_mpv_clients == 0)
220 TA_FREEP(&va_mpv_clients); // avoid triggering leak detectors
221 pthread_mutex_unlock(&va_log_mutex);
228 [FILE:178:files/special.mk]
230 MAKE_CMD= ${PYTHON_CMD} ${WRKDIR}/waf-*/waf-light
231 CONFIGURE_CMD= ${PYTHON_CMD} ${WRKDIR}/waf-*/waf-light configure
234 MAKE_ARGS+= --verbose
237 [FILE:158:dragonfly/patch-libmpv_mpv.def]
238 --- libmpv/mpv.def.orig 2017-07-18 19:14:02 UTC
243 mpv_client_api_version
248 [FILE:158:freebsd/patch-libmpv_mpv.def]
249 --- libmpv/mpv.def.orig 2017-07-18 19:14:02 UTC
254 mpv_client_api_version