Index | Thread | Search

From:
Rafael Sadowski <rafael@sizeofvoid.org>
Subject:
Enable VA-API in multimedia/mpv
To:
ports <ports@openbsd.org>
Date:
Sat, 20 Jul 2024 11:40:24 +0200

Download raw body.

Thread
Tested by many, OK to enable VA-API support in mpv?

diff --git a/multimedia/mpv/Makefile b/multimedia/mpv/Makefile
index 4840a6a7199..f7d0845ef7d 100644
--- a/multimedia/mpv/Makefile
+++ b/multimedia/mpv/Makefile
@@ -4,6 +4,7 @@ GH_ACCOUNT =		mpv-player
 GH_PROJECT =		mpv
 GH_TAGNAME =		v0.38.0
 USE_NOBTCFI =		Yes
+REVISION =		0
 
 SHARED_LIBS +=		mpv		2.0
 
@@ -14,11 +15,11 @@ HOMEPAGE =		https://mpv.io/
 # GPLv2+
 PERMIT_PACKAGE =	Yes
 
-WANTLIB += ${MODLUA_WANTLIB}
-WANTLIB += EGL SDL2 X11 Xext Xpresent Xrandr Xss Xv archive
-WANTLIB += ass avcodec avdevice avfilter avformat avutil bluray
-WANTLIB += c cdio cdio_cdda cdio_paranoia dvdnav iconv jpeg lcms2
-WANTLIB += m placebo pthread sndio swresample swscale vulkan z zimg
+WANTLIB += ${MODLUA_WANTLIB} EGL SDL2 X11 Xext Xpresent Xrandr
+WANTLIB += Xss Xv archive ass avcodec avdevice avfilter avformat
+WANTLIB += avutil bluray c cdio cdio_cdda cdio_paranoia drm dvdnav
+WANTLIB += iconv jpeg lcms2 m placebo pthread sndio swresample
+WANTLIB += swscale va va-drm va-x11 vulkan z zimg
 
 MODULES =		devel/meson \
 			lang/lua \
@@ -37,7 +38,7 @@ LIB_DEPENDS =		archivers/libarchive \
 			audio/libcdio-paranoia \
 			converters/libiconv \
 			devel/sdl2 \
-			graphics/ffmpeg \
+			graphics/ffmpeg>=4.4.4p5 \
 			graphics/jpeg \
 			graphics/lcms2 \
 			graphics/libplacebo \
@@ -74,7 +75,8 @@ CONFIGURE_ARGS =	-Dlua=lua${MODLUA_DEP_VERSION} \
 			-Dd3d-hwaccel=disabled \
 			-Ddirect3d=disabled \
 			-Ddmabuf-wayland=disabled \
-			-Ddrm=disabled \
+			-Ddrm=enabled \
+			-Degl=enabled \
 			-Ddvbin=disabled \
 			-Degl-android=disabled \
 			-Degl-angle=disabled  \
@@ -82,6 +84,7 @@ CONFIGURE_ARGS =	-Dlua=lua${MODLUA_DEP_VERSION} \
 			-Degl-angle-win32=disabled \
 			-Degl-drm=disabled \
 			-Degl-wayland=disabled \
+			-Dgl-x11=disabled \
 			-Dgbm=disabled \
 			-Dgl-cocoa=disabled \
 			-Dgl-dxinterop=disabled \
@@ -106,9 +109,9 @@ CONFIGURE_ARGS =	-Dlua=lua${MODLUA_DEP_VERSION} \
 			-Dswift-build=disabled \
 			-Dswift-flags=disabled \
 			-Duchardet=disabled \
-			-Dvaapi=disabled \
-			-Dvaapi-drm=disabled \
-			-Dvaapi-x11=disabled \
+			-Dvaapi=enabled \
+			-Dvaapi-drm=enabled \
+			-Dvaapi-x11=enabled \
 			-Dvaapi-wayland=disabled \
 			-Dvaapi-win32=disabled \
 			-Dvapoursynth=disabled \
@@ -121,11 +124,11 @@ CONFIGURE_ARGS =	-Dlua=lua${MODLUA_DEP_VERSION} \
 			-Dwin32-threads=disabled \
 			-Dwasapi=disabled
 
-CFLAGS +=		-I${LOCALBASE}/include
-LDFLAGS +=		-L${LOCALBASE}/lib
+CFLAGS +=		-I${LOCALBASE}/include -I${X11BASE}/include
+LDFLAGS +=		-L${LOCALBASE}/lib -L${X11BASE}/lib
 
 MODMESON_CONFIGURE_ENV +=	CFLAGS="${CFLAGS}" \
-					LDFLAGS="${LDFLAGS}"
+				LDFLAGS="${LDFLAGS}"
 
 NO_TEST =		Yes
 
diff --git a/multimedia/mpv/patches/patch-meson_build b/multimedia/mpv/patches/patch-meson_build
index ab1a5804ec2..f359b5f9b79 100644
--- a/multimedia/mpv/patches/patch-meson_build
+++ b/multimedia/mpv/patches/patch-meson_build
@@ -25,3 +25,12 @@ Index: meson.build
  
  cplugins = get_option('cplugins').require(
      win32 or (features['libdl'] and cc.has_link_argument('-rdynamic')),
+@@ -525,7 +537,7 @@ features += {'glob': features['glob-posix'] or feature
+ 
+ features += {'vt.h': cc.has_header_symbol('sys/vt.h', 'VT_GETMODE')}
+ 
+-features += {'consio.h': not features['vt.h'] and cc.has_header_symbol('sys/consio.h', 'VT_GETMODE')}
++features += {'consio.h': not features['vt.h'] and cc.has_header_symbol('dev/wscons/wsdisplay_usl_io.h', 'VT_GETMODE', prefix: '#include <sys/param.h>')}
+ 
+ # macOS's pthread_setname_np is a special snowflake and differs from literally every other platform.
+ features += {'mac-thread-name': darwin}
diff --git a/multimedia/mpv/patches/patch-video_out_drm_common_c b/multimedia/mpv/patches/patch-video_out_drm_common_c
new file mode 100644
index 00000000000..99cc7b9adee
--- /dev/null
+++ b/multimedia/mpv/patches/patch-video_out_drm_common_c
@@ -0,0 +1,12 @@
+Index: video/out/drm_common.c
+--- video/out/drm_common.c.orig
++++ video/out/drm_common.c
+@@ -30,7 +30,7 @@
+ #include "config.h"
+ 
+ #if HAVE_CONSIO_H
+-#include <sys/consio.h>
++#include <dev/wscons/wsdisplay_usl_io.h>
+ #else
+ #include <sys/vt.h>
+ #endif