mpv.mk
5.81 KB
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
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
################################################################################
#
# mpv
#
################################################################################
MPV_VERSION = 0.18.1
MPV_WAF_VERSION = 1.8.12
MPV_SITE = https://github.com/mpv-player/mpv/archive
MPV_SOURCE = v$(MPV_VERSION).tar.gz
MPV_EXTRA_DOWNLOADS = https://waf.io/waf-$(MPV_WAF_VERSION)
MPV_DEPENDENCIES = \
host-pkgconf ffmpeg zlib \
$(if $(BR2_PACKAGE_LIBICONV),libiconv)
MPV_LICENSE = GPLv2+
MPV_LICENSE_FILES = LICENSE
# Some of these options need testing and/or tweaks
MPV_CONF_OPTS = \
--prefix=/usr \
--disable-android \
--disable-caca \
--disable-cdda \
--disable-cocoa \
--disable-coreaudio \
--disable-libguess \
--disable-libv4l2 \
--disable-opensles \
--disable-rpi \
--disable-rsound \
--disable-rubberband \
--disable-uchardet \
--disable-vapoursynth \
--disable-vapoursynth-lazy \
--disable-vdpau
# ALSA support requires pcm+mixer
ifeq ($(BR2_PACKAGE_ALSA_LIB_MIXER)$(BR2_PACKAGE_ALSA_LIB_PCM),yy)
MPV_CONF_OPTS += --enable-alsa
MPV_DEPENDENCIES += alsa-lib
else
MPV_CONF_OPTS += --disable-alsa
endif
# GBM support is provided by mesa3d when EGL=y
ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_EGL),y)
MPV_CONF_OPTS += --enable-gbm
MPV_DEPENDENIES += mesa3d
else
MPV_CONF_OPTS += --disable-gbm
endif
# jack support
# It also requires 64-bit sync intrinsics
ifeq ($(BR2_TOOLCHAIN_HAS_SYNC_8)$(BR2_PACKAGE_JACK2),yy)
MPV_CONF_OPTS += --enable-jack
MPV_DEPENDENCIES += jack2
else
MPV_CONF_OPTS += --disable-jack
endif
# jpeg support
ifeq ($(BR2_PACKAGE_JPEG),y)
MPV_CONF_OPTS += --enable-jpeg
MPV_DEPENDENCIES += jpeg
else
MPV_CONF_OPTS += --disable-jpeg
endif
# lcms2 support
ifeq ($(BR2_PACKAGE_LCMS2),y)
MPV_CONF_OPTS += --enable-lcms2
MPV_DEPENDENCIES += lcms2
else
MPV_CONF_OPTS += --disable-lcms2
endif
# libarchive support
ifeq ($(BR2_PACKAGE_LIBARCHIVE),y)
MPV_CONF_OPTS += --enable-libarchive
MPV_DEPENDENCIES += libarchive
else
MPV_CONF_OPTS += --disable-libarchive
endif
# libass subtitle support
ifeq ($(BR2_PACKAGE_LIBASS),y)
MPV_CONF_OPTS += --enable-libass
MPV_DEPENDENCIES += libass
else
MPV_CONF_OPTS += --disable-libass
endif
# bluray support
ifeq ($(BR2_PACKAGE_LIBBLURAY),y)
MPV_CONF_OPTS += --enable-libbluray
MPV_DEPENDENCIES += libbluray
else
MPV_CONF_OPTS += --disable-libbluray
endif
# libdvdnav
ifeq ($(BR2_PACKAGE_LIBDVDNAV),y)
MPV_CONF_OPTS += --enable-dvdnav
MPV_DEPENDENCIES += libdvdnav
else
MPV_CONF_OPTS += --disable-dvdnav
endif
# libdvdread
ifeq ($(BR2_PACKAGE_LIBDVDREAD),y)
MPV_CONF_OPTS += --enable-dvdread
MPV_DEPENDENCIES += libdvdread
else
MPV_CONF_OPTS += --disable-dvdread
endif
# libdrm
ifeq ($(BR2_PACKAGE_LIBDRM),y)
MPV_CONF_OPTS += --enable-drm
MPV_DEPENDENCIES += libdrm
else
MPV_CONF_OPTS += --disable-drm
endif
# libenca support
ifeq ($(BR2_PACKAGE_LIBENCA),y)
MPV_CONF_OPTS += --enable-enca
MPV_DEPENDENCIES += libenca
else
MPV_CONF_OPTS += --disable-enca
endif
# LUA support, only for lua51/lua52/luajit
# This enables the controller (OSD) together with libass
ifeq ($(BR2_PACKAGE_LUA_5_1)$(BR2_PACKAGE_LUA_5_2)$(BR2_PACKAGE_LUAJIT),y)
MPV_CONF_OPTS += --enable-lua
MPV_DEPENDENCIES += luainterpreter
else
MPV_CONF_OPTS += --disable-lua
endif
# OpenGL support
ifeq ($(BR2_PACKAGE_HAS_LIBGL),y)
MPV_CONF_OPTS += --enable-gl --enable-standard-gl
MPV_DEPENDENCIES += libgl
else
MPV_CONF_OPTS += --disable-gl --disable-standard-gl
endif
# pulseaudio support
ifeq ($(BR2_PACKAGE_PULSEAUDIO),y)
MPV_CONF_OPTS += --enable-pulse
MPV_DEPENDENCIES += pulseaudio
else
MPV_CONF_OPTS += --disable-pulse
endif
# samba support
ifeq ($(BR2_PACKAGE_SAMBA4),y)
MPV_CONF_OPTS += --enable-libsmbclient
MPV_DEPENDENCIES += samba4
else
MPV_CONF_OPTS += --disable-libsmbclient
endif
# SDL support
# Both can't be used at the same time, prefer newer API
# It also requires 64-bit sync intrinsics
ifeq ($(BR2_TOOLCHAIN_HAS_SYNC_8)$(BR2_PACKAGE_SDL2),yy)
MPV_CONF_OPTS += --enable-sdl2 --disable-sdl1
MPV_DEPENDENCIES += sdl2
else ifeq ($(BR2_TOOLCHAIN_HAS_SYNC_8)$(BR2_PACKAGE_SDL),yy)
MPV_CONF_OPTS += --enable-sdl1 --disable-sdl2
MPV_DEPENDENCIES += sdl
else
MPV_CONF_OPTS += --disable-sdl1 --disable-sdl2
endif
# va-api support
# This requires one or more of the egl-drm, wayland, x11 backends
# For now we support wayland and x11
ifeq ($(BR2_PACKAGE_LIBVA),y)
ifneq ($(BR2_PACKAGE_WAYLAND)$(BR2_PACKAGE_XLIB_LIBX11),)
MPV_CONF_OPTS += --enable-vaapi
MPV_DEPENDENCIES += libva
else
MPV_CONF_OPTS += --disable-vaapi
endif
else
MPV_CONF_OPTS += --disable-vaapi
endif
# wayland support
ifeq ($(BR2_PACKAGE_WAYLAND),y)
MPV_CONF_OPTS += --enable-wayland
MPV_DEPENDENCIES += libxkbcommon wayland
else
MPV_CONF_OPTS += --disable-wayland
endif
# Base X11 support
ifeq ($(BR2_PACKAGE_XLIB_LIBX11),y)
MPV_CONF_OPTS += --enable-x11 --disable-xss
MPV_DEPENDENCIES += xlib_libX11
# xext
ifeq ($(BR2_PACKAGE_XLIB_LIBXEXT),y)
MPV_CONF_OPTS += --enable-xext
MPV_DEPENDENCIES += xlib_libXext
else
MPV_CONF_OPTS += --disable-xext
endif
# xinerama
ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y)
MPV_CONF_OPTS += --enable-xinerama
MPV_DEPENDENCIES += xlib_libXinerama
else
MPV_CONF_OPTS += --disable-xinerama
endif
# xrandr
ifeq ($(BR2_PACKAGE_XLIB_LIBXRANDR),y)
MPV_CONF_OPTS += --enable-xrandr
MPV_DEPENDENCIES += xlib_libXrandr
else
MPV_CONF_OPTS += --disable-xrandr
endif
# XVideo
ifeq ($(BR2_PACKAGE_XLIB_LIBXV),y)
MPV_CONF_OPTS += --enable-xv
MPV_DEPENDENCIES += xlib_libXv
else
MPV_CONF_OPTS += --disable-xv
endif
else
MPV_CONF_OPTS += --disable-x11
endif
define MPV_COPY_WAF
$(INSTALL) -m 0755 $(DL_DIR)/waf-$(MPV_WAF_VERSION) $(@D)/waf
endef
MPV_POST_EXTRACT_HOOKS += MPV_COPY_WAF
define MPV_CONFIGURE_CMDS
cd $(@D); \
$(TARGET_CONFIGURE_OPTS) \
./waf configure $(MPV_CONF_OPTS)
endef
define MPV_BUILD_CMDS
cd $(@D); \
$(TARGET_MAKE_ENV) \
./waf build
endef
define MPV_INSTALL_TARGET_CMDS
cd $(@D); \
$(TARGET_MAKE_ENV) \
DESTDIR=$(TARGET_DIR) \
./waf install
endef
$(eval $(generic-package))