blob: 93e261f486fd6de2f1dcb527f0d59a14fdf4aca5 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
|
PORTNAME= mpv
DISTVERSIONPREFIX= v
DISTVERSION= 0.36.0
PORTREVISION= 5
PORTEPOCH= 1
CATEGORIES= multimedia audio
PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
PATCHFILES+= 3bdf702b1de8.patch:-p1 # https://github.com/mpv-player/mpv/pull/10871
PATCHFILES+= 48eb77207bff.patch:-p1 # https://github.com/mpv-player/mpv/pull/12012
PATCHFILES+= f2453b60ee27.patch:-p1 # https://github.com/mpv-player/mpv/pull/11304
MAINTAINER= multimedia@FreeBSD.org
COMMENT= Free and open-source general-purpose video player
WWW= https://mpv.io
LICENSE= GPLv2+ LGPL21+
LICENSE_COMB= multi
LICENSE_FILE_GPLv2+ = ${WRKSRC}/LICENSE.GPL
LICENSE_FILE_LGPL21+ = ${WRKSRC}/LICENSE.LGPL
BUILD_DEPENDS= ffmpeg>=4.0.2,1:multimedia/ffmpeg
LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg \
libass.so:multimedia/libass
USES= compiler:c11 cpe desktop-file-utils iconv jpeg \
meson pkgconfig python:build shebangfix tar:bz2
USE_LDCONFIG= yes
SHEBANG_FILES= *.py TOOLS/*.py
USE_GITHUB= yes
GH_ACCOUNT= mpv-player
MESON_ARGS= --auto-features=auto \
-Dshaderc=disabled \
-Dlibmpv=true
OPTIONS_DEFINE= ARCHIVE DOCS LCMS2 MANPAGES MUJS RUBBERBAND UCHARDET EXAMPLES ZIMG
OPTIONS_DEFAULT= ARCHIVE DVDNAV LCMS2 LUAJIT MANPAGES NVDEC OPENGL UCHARDET \
V4L VAAPI VDPAU VULKAN WAYLAND X11 YTDLP
OPTIONS_GROUP= IN VO AO
OPTIONS_GROUP_IN= CDIO DVDNAV LIBBLURAY V4L VAPOURSYNTH
OPTIONS_GROUP_VO= CACA NVDEC OPENGL SIXEL VAAPI VDPAU VULKAN WAYLAND X11
OPTIONS_GROUP_AO= ALSA JACK OPENAL PIPEWIRE PULSEAUDIO SDL SNDIO
OPTIONS_RADIO= YOUTUBE
OPTIONS_RADIO_YOUTUBE= YTDL YTDLP
OPTIONS_SINGLE= LUA
OPTIONS_SINGLE_LUA= LUA LUAJIT LUA_NONE
OPTIONS_SUB= yes
DVDNAV_DESC= DVD menu navigation
LUA_NONE_DESC= Disable Lua scripting language support
LUAJIT_DESC= Use LuaJIT instead of Lua scripting language support
MUJS_DESC= Use MuJS for Javascript language support
NVDEC_DESC= NVIDIA decoder with CUDA support
RUBBERBAND_DESC= High quality pitch correction with librubberband
SIXEL_DESC= Sixel graphics support
UCHARDET_DESC= Guess subtitle encoding via uchardet
VAPOURSYNTH_DESC= VapourSynth filter bridge
VULKAN_DESC= Vulkan output support
YTDLP_DESC= Install yt-dlp (youtube-dl fork)
YTDL_DESC= Install youtube-dl
ZIMG_DESC= High quality software scaling via "z" library
IN_DESC= Input
VO_DESC= Video Output
AO_DESC= Audio Output
ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib
ALSA_MESON_ENABLED= alsa
ARCHIVE_USES= libarchive
ARCHIVE_MESON_ENABLED= libarchive
CACA_LIB_DEPENDS= libcaca.so:graphics/libcaca
CACA_MESON_ENABLED= caca
CDIO_LIB_DEPENDS= libcdio_paranoia.so:sysutils/libcdio-paranoia
CDIO_MESON_ENABLED= cdda
DOCS_BUILD_DEPENDS= rst2html:textproc/py-docutils
DOCS_MESON_ENABLED= html-build
DVDNAV_LIB_DEPENDS= libdvdnav.so:multimedia/libdvdnav
DVDNAV_MESON_ENABLED= dvdnav
JACK_LIB_DEPENDS= libjack.so:audio/jack
JACK_MESON_ENABLED= jack
LCMS2_LIB_DEPENDS= liblcms2.so:graphics/lcms2
LCMS2_MESON_ENABLED= lcms2
LIBBLURAY_LIB_DEPENDS= libbluray.so:multimedia/libbluray
LIBBLURAY_MESON_ENABLED= libbluray
LUA_USES= lua:51-52
LUA_MESON_ON= -Dlua=lua-${LUA_VER}
LUAJIT_USES= luajit
LUAJIT_MESON_ON= -Dlua=luajit
LUA_NONE_MESON_ON= -Dlua=disabled
MANPAGES_BUILD_DEPENDS= rst2man:textproc/py-docutils
MANPAGES_MESON_ENABLED= manpage-build
MUJS_LIB_DEPENDS= libmujs.so:lang/mujs
MUJS_MESON_ENABLED= javascript
NVDEC_BUILD_DEPENDS= ${LOCALBASE}/include/ffnvcodec/dynlink_loader.h:multimedia/ffnvcodec-headers
NVDEC_RUN_DEPENDS= ${LOCALBASE}/include/ffnvcodec/dynlink_loader.h:multimedia/ffnvcodec-headers
NVDEC_MESON_ENABLED= cuda-hwaccel
OPENAL_USES= openal
OPENAL_MESON_ENABLED= openal
OPENAL_LDFLAGS= ${_OPENAL_LDFLAGS_${ARCH}}
_OPENAL_LDFLAGS_i386= -Wl,-znotext
OPENGL_USES= gl
OPENGL_USE= GL=egl,gbm
OPENGL_MESON_ENABLED= gl
PIPEWIRE_LIB_DEPENDS= libpipewire-0.3.so:multimedia/pipewire
PIPEWIRE_MESON_ENABLED= pipewire
PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
PULSEAUDIO_MESON_ENABLED= pulse
RUBBERBAND_LIB_DEPENDS= librubberband.so:audio/rubberband
RUBBERBAND_MESON_ENABLED= rubberband
SDL_USES= sdl
SDL_USE= SDL=sdl2
SDL_MESON_ENABLED= sdl2
SIXEL_LIB_DEPENDS= libsixel.so:graphics/libsixel
SIXEL_MESON_ENABLED= sixel
SNDIO_LIB_DEPENDS= libsndio.so:audio/sndio
SNDIO_MESON_ENABLED= sndio
UCHARDET_LIB_DEPENDS= libuchardet.so:textproc/uchardet
UCHARDET_MESON_ENABLED= uchardet
V4L_BUILD_DEPENDS= ${LOCALBASE}/include/linux/dvb/dmx.h:multimedia/v4l_compat
V4L_MESON_ENABLED= dvbin
VAAPI_LIB_DEPENDS= libva.so:multimedia/libva
VAAPI_MESON_ENABLED= vaapi
VAPOURSYNTH_LIB_DEPENDS= libvapoursynth-script.so:multimedia/vapoursynth
VAPOURSYNTH_MESON_ENABLED= vapoursynth
VDPAU_LIB_DEPENDS= libvdpau.so:multimedia/libvdpau
VDPAU_MESON_ENABLED= vdpau
VDPAU_IMPLIES= X11
VULKAN_BUILD_DEPENDS= ${LOCALBASE}/include/vulkan/vulkan.h:graphics/vulkan-headers
VULKAN_LIB_DEPENDS= libplacebo.so:graphics/libplacebo \
libvulkan.so:graphics/vulkan-loader
VULKAN_MESON_ENABLED= vulkan libplacebo
WAYLAND_CATEGORIES= wayland
WAYLAND_BUILD_DEPENDS= wayland-protocols>=1.15:graphics/wayland-protocols \
${LOCALBASE}/include/linux/input-event-codes.h:devel/evdev-proto
WAYLAND_LIB_DEPENDS= libwayland-client.so:graphics/wayland \
libwayland-cursor.so:graphics/wayland \
libxkbcommon.so:x11/libxkbcommon
WAYLAND_RUN_DEPENDS= wayland-protocols>=1.15:graphics/wayland-protocols # pkg-config
WAYLAND_MESON_ENABLED= wayland
WAYLAND_IMPLIES= OPENGL
X11_USES= gnome xorg
X11_USE= XORG=x11,xext,xinerama,xorgproto,xpresent,xrandr,xscrnsaver,xv,xxf86vm
X11_MESON_ENABLED= x11
YTDLP_RUN_DEPENDS= yt-dlp:www/yt-dlp
YTDL_RUN_DEPENDS= youtube-dl:www/youtube_dl
ZIMG_LIB_DEPENDS= libzimg.so:graphics/sekrit-twc-zimg
ZIMG_MESON_ENABLED= zimg
.include <bsd.port.options.mk>
.if ${PORT_OPTIONS:MVAAPI} && ${PORT_OPTIONS:MWAYLAND}
MESON_ARGS+= -Dvaapi-wayland=enabled
LIB_DEPENDS+= libva-wayland.so:multimedia/libva
.else
MESON_ARGS+= -Dvaapi-wayland=disabled
.endif
post-patch-MANPAGES-on:
@${FIND} ${WRKSRC}/DOCS/man -name '*.rst' | ${XARGS} ${REINPLACE_CMD} \
-e 's|/usr/local|${PREFIX}|g'
pre-test:
@if [ ! -e ${WRKDIR}/.meson_build_tests ]; then \
${RM} ${CONFIGURE_COOKIE} ${BUILD_COOKIE}; \
${MAKE} -C${.CURDIR} build MESON_ARGS="${MESON_ARGS} --reconfigure -Dtests=true"; \
${TOUCH} ${WRKDIR}/.meson_build_tests; \
fi
.include <bsd.port.mk>
|