mirror of
https://github.com/mpv-player/mpv.git
synced 2026-06-06 20:10:30 +00:00
Introduces stream_http, an internal libcurl-driven backend for http:// and https:// URLs. Runs all transfers on a dedicated curl multi thread with a producer-side ring buffer, and exposes HTTP/2 multiplexing, QUIC/HTTP/3 (when libcurl supports it), HSTS and TCP keep-alive. Should generally be more stable and faster than FFmpeg HTTP/1.1 impl, additionally connections are kept-alive between files open, so if you open playlist of network files and navigate through them, it will re-use the same connection. Build is gated on the new 'libcurl' meson option (auto). When disabled or unavailable, mpv silently falls back to FFmpeg's HTTP implementation.
130 lines
9.9 KiB
Meson
130 lines
9.9 KiB
Meson
# booleans
|
|
option('gpl', type: 'boolean', value: true, description: 'GPL (version 2 or later) build')
|
|
option('cplayer', type: 'boolean', value: true, description: 'mpv CLI player')
|
|
option('libmpv', type: 'boolean', value: true, description: 'libmpv library')
|
|
option('build-date', type: 'boolean', value: true, description: 'include compile timestamp in binary')
|
|
option('tests', type: 'boolean', value: false, description: 'meson unit tests')
|
|
option('fuzzers', type: 'boolean', value: false, description: 'fuzzer binaries')
|
|
option('disable-packet-pool', type: 'boolean', value: false, description: 'disable packet pool (development only)')
|
|
|
|
# misc features
|
|
option('cdda', type: 'feature', value: 'auto', description: 'cdda support (libcdio)')
|
|
option('cplugins', type: 'feature', value: 'auto', description: 'C plugins')
|
|
option('dvbin', type: 'feature', value: 'auto', description: 'DVB input module')
|
|
option('dvdnav', type: 'feature', value: 'auto', description: 'dvdnav support')
|
|
option('iconv', type: 'feature', value: 'auto', description: 'iconv')
|
|
option('javascript', type: 'feature', value: 'auto', description: 'Javascript (MuJS backend)')
|
|
option('jpeg', type: 'feature', value: 'auto', description: 'libjpeg image writer')
|
|
option('lcms2', type: 'feature', value: 'auto', description: 'LCMS2 support')
|
|
option('libarchive', type: 'feature', value: 'auto', description: 'libarchive wrapper for reading zip files and more')
|
|
option('libavdevice', type: 'feature', value: 'auto', description: 'libavdevice')
|
|
option('libbluray', type: 'feature', value: 'auto', description: 'Bluray support')
|
|
option('libcurl', type: 'feature', value: 'auto', description: 'libcurl-based stream backend')
|
|
option('lua',
|
|
type: 'combo',
|
|
choices: ['lua', 'lua52', 'lua5.2', 'lua-5.2', 'luajit', 'lua51',
|
|
'lua5.1', 'lua-5.1', 'auto', 'enabled', 'disabled'],
|
|
value: 'auto',
|
|
description: 'Lua'
|
|
)
|
|
option('pthread-debug', type: 'feature', value: 'disabled', description: 'pthread runtime debugging wrappers')
|
|
option('rubberband', type: 'feature', value: 'auto', description: 'librubberband support')
|
|
option('sdl2-gamepad', type: 'feature', value: 'disabled', description: 'SDL2 gamepad input')
|
|
option('subrandr', type: 'feature', value: 'auto', description: 'subrandr support (SRV3 and WebVTT subtitle renderer)')
|
|
option('uchardet', type: 'feature', value: 'auto', description: 'uchardet support')
|
|
option('uwp', type: 'feature', value: 'disabled', description: 'Universal Windows Platform')
|
|
option('vapoursynth', type: 'feature', value: 'auto', description: 'VapourSynth filter bridge')
|
|
option('vector', type: 'feature', value: 'auto', description: 'GCC vector instructions')
|
|
option('win32-threads', type: 'feature', value: 'auto', description: 'win32 native threading')
|
|
option('x11-clipboard', type: 'feature', value: 'auto', description: 'X11 clipboard backend')
|
|
option('zimg', type: 'feature', value: 'auto', description: 'libzimg support (high quality software scaler)')
|
|
option('zlib', type: 'feature', value: 'auto', description: 'zlib')
|
|
|
|
# audio output features
|
|
option('alsa', type: 'feature', value: 'auto', description: 'ALSA audio output')
|
|
option('audiounit', type: 'feature', value: 'auto', description: 'AudioUnit output (iOS)')
|
|
option('coreaudio', type: 'feature', value: 'auto', description: 'CoreAudio audio output')
|
|
option('avfoundation', type: 'feature', value: 'auto', description: 'AVFoundation audio output')
|
|
option('jack', type: 'feature', value: 'auto', description: 'JACK audio output')
|
|
option('openal', type: 'feature', value: 'disabled', description: 'OpenAL audio output')
|
|
option('audiotrack', type: 'feature', value: 'auto', description: 'Android AudioTrack audio output')
|
|
option('aaudio', type: 'feature', value: 'auto', description: 'Android AAudio audio output')
|
|
option('opensles', type: 'feature', value: 'auto', description: 'OpenSL ES audio output')
|
|
option('oss-audio', type: 'feature', value: 'auto', description: 'OSSv4 audio output')
|
|
option('pipewire', type: 'feature', value: 'auto', description: 'PipeWire audio output')
|
|
option('pulse', type: 'feature', value: 'auto', description: 'PulseAudio audio output')
|
|
option('sdl2-audio', type: 'feature', value: 'disabled', description: 'SDL2 audio output')
|
|
option('sndio', type: 'feature', value: 'auto', description: 'sndio audio output')
|
|
option('wasapi', type: 'feature', value: 'auto', description: 'WASAPI audio output')
|
|
|
|
# video output features
|
|
option('amf', type: 'feature', value: 'auto', description: 'AMD AMF')
|
|
option('caca', type: 'feature', value: 'auto', description: 'CACA')
|
|
option('cocoa', type: 'feature', value: 'auto', description: 'Cocoa')
|
|
option('d3d11', type: 'feature', value: 'auto', description: 'Direct3D 11 video output')
|
|
option('direct3d', type: 'feature', value: 'auto', description: 'Direct3D support')
|
|
option('dmabuf-wayland', type: 'feature', value: 'auto', description: 'dmabuf-wayland video output')
|
|
option('drm', type: 'feature', value: 'auto', description: 'Direct Rendering Manager (DRM)')
|
|
option('egl', type: 'feature', value: 'auto', description: 'EGL 1.4')
|
|
option('egl-android', type: 'feature', value: 'auto', description: 'Android EGL support')
|
|
option('egl-angle', type: 'feature', value: 'auto', description: 'OpenGL ANGLE headers')
|
|
option('egl-angle-lib', type: 'feature', value: 'auto', description: 'OpenGL Win32 ANGLE library')
|
|
option('egl-angle-win32', type: 'feature', value: 'auto', description: 'OpenGL Win32 ANGLE backend')
|
|
option('egl-drm', type: 'feature', value: 'auto', description: 'OpenGL DRM EGL backend')
|
|
option('egl-wayland', type: 'feature', value: 'auto', description: 'OpenGL Wayland backend')
|
|
option('egl-x11', type: 'feature', value: 'auto', description: 'OpenGL X11 EGL backend')
|
|
option('gbm', type: 'feature', value: 'auto', description: 'Generic Buffer Manager (GBM)')
|
|
option('gl', type: 'feature', value: 'enabled', description: 'OpenGL context support')
|
|
option('gl-cocoa', type: 'feature', value: 'auto', description: 'OpenGL Cocoa backend')
|
|
option('gl-dxinterop', type: 'feature', value: 'auto', description: 'OpenGL/DirectX Interop backend')
|
|
option('gl-win32', type: 'feature', value: 'auto', description: 'OpenGL Win32 backend')
|
|
option('gl-x11', type: 'feature', value: 'disabled', description: 'OpenGL X11/GLX (deprecated/legacy)')
|
|
option('sdl2-video', type: 'feature', value: 'disabled', description: 'SDL2 video output')
|
|
option('shaderc', type: 'feature', value: 'auto', description: 'libshaderc SPIR-V compiler')
|
|
option('sixel', type: 'feature', value:'auto', description: 'Sixel video output')
|
|
option('spirv-cross', type: 'feature', value: 'auto', description: 'SPIRV-Cross SPIR-V shader converter')
|
|
option('plain-gl', type: 'feature', value: 'auto', description: 'OpenGL without platform-specific code (e.g. for libmpv)')
|
|
option('vdpau', type: 'feature', value: 'auto', description: 'VDPAU acceleration')
|
|
option('vdpau-gl-x11', type: 'feature', value: 'auto', description: 'VDPAU with OpenGL/X11')
|
|
option('vaapi', type: 'feature', value: 'auto', description: 'VAAPI acceleration')
|
|
option('vaapi-drm', type: 'feature', value: 'auto', description: 'VAAPI (DRM support)')
|
|
option('vaapi-wayland', type: 'feature', value: 'auto', description: 'VAAPI (Wayland support)')
|
|
option('vaapi-win32', type: 'feature', value: 'auto', description: 'VAAPI (Windows support)')
|
|
option('vaapi-x11', type: 'feature', value: 'auto', description: 'VAAPI (X11 support)')
|
|
option('vulkan', type: 'feature', value: 'auto', description: 'Vulkan context support')
|
|
option('wayland', type: 'feature', value: 'auto', description: 'Wayland')
|
|
option('x11', type: 'feature', value: 'auto', description: 'X11')
|
|
option('xv', type: 'feature', value: 'auto', description: 'Xv video output')
|
|
|
|
# hwaccel features
|
|
option('android-media-ndk', type: 'feature', value: 'auto', description: 'Android Media APIs')
|
|
option('cuda-hwaccel', type: 'feature', value: 'auto', description: 'CUDA acceleration')
|
|
option('cuda-interop', type: 'feature', value: 'auto', description: 'CUDA with graphics interop')
|
|
option('d3d-hwaccel', type: 'feature', value: 'auto', description: 'D3D11VA hwaccel')
|
|
option('d3d9-hwaccel', type: 'feature', value: 'auto', description: 'DXVA2 hwaccel')
|
|
option('gl-dxinterop-d3d9', type: 'feature', value: 'auto', description: 'OpenGL/DirectX DXVA2 hwaccel')
|
|
option('ios-gl', type: 'feature', value: 'auto', description: 'iOS OpenGL ES interop support')
|
|
option('videotoolbox-gl', type: 'feature', value: 'auto', description: 'Videotoolbox with OpenGL')
|
|
option('videotoolbox-pl', type: 'feature', value: 'auto', description: 'Videotoolbox with libplacebo')
|
|
|
|
# macOS features
|
|
option('macos-10-15-4-features', type: 'feature', value: 'auto', description: 'macOS 10.15.4 SDK Features')
|
|
option('macos-11-features', type: 'feature', value: 'auto', description: 'macOS 11 SDK Features')
|
|
option('macos-11-3-features', type: 'feature', value: 'auto', description: 'macOS 11.3 SDK Features')
|
|
option('macos-12-features', type: 'feature', value: 'auto', description: 'macOS 12 SDK Features')
|
|
option('macos-cocoa-cb', type: 'feature', value: 'auto', description: 'macOS libmpv backend')
|
|
option('macos-media-player', type: 'feature', value: 'auto', description: 'macOS Media Player support')
|
|
option('macos-touchbar', type: 'feature', value: 'auto', description: 'macOS Touch Bar support')
|
|
option('macos-bundle-category', type : 'combo', choices : ['video', 'games'], value : 'video', description: 'macOS bundle category')
|
|
option('swift-build', type: 'feature', value: 'auto', description: 'macOS Swift build tools')
|
|
option('swift-flags', type: 'string', description: 'Optional Swift compiler flags')
|
|
|
|
# Windows features
|
|
option('win32-smtc', type: 'feature', value: 'auto', description: 'Enable Media Control support')
|
|
option('win32-subsystem', type : 'string', value: 'windows', description : 'Windows subsystem to use for mpv.exe')
|
|
|
|
# manpages
|
|
option('html-build', type: 'feature', value: 'disabled', description: 'HTML manual generation')
|
|
option('manpage-build', type: 'feature', value: 'auto', description: 'manpage generation')
|
|
option('pdf-build', type: 'feature', value: 'disabled', description: 'PDF manual generation')
|