mpv 0.37.0 – Open-source general-purpose video player.

mpv is a free and open-source general-purpose video player. mpv is based on the MPlayer and mplayer2 projects, which it seeks to improve.

Features
New

ao_oss: add SPDIF passthrough support
hwtransfer: implement support for HW->HW format conversions
stream/dvbin: add support for delivery system ISDB-T
audio/chmap: support up to 64 channels (including 22.2 layout)
libmpv: add mpv_time_ns()
vo_gpu, vo_gpu_next: add Vulkan support for macOS
meson: make libplacebo a required dependency
hwdec: support videotoolbox hwdec with libplacebo

Changed

msg: print warning and error messages to stderr
options: restore old default subtitle selection behavior
input.conf: swap wheel up/down with wheel left/right

Removed

waf: remove waf as a build system
osc.lua: remove toggle for forced only subpictures (appeared as [F])
mac: remove runtime checks and compatibility for macOS older than 10.15
cocoa: remove deprecated OpenGL cocoa backend

Options and Commands
Added

vo_gpu_next: add –hdr-peak-percentile
player: add –term-remaining-playtime option
x11: add –x11-wid-title option
vo_gpu_next: add –libplacebo-opts
player: add –subs-match-os-language option (replaces ‘auto’ option)
vo: add –video-crop
win32: add –window-corners, –window-affinity, –title-bar, –backdrop-type
sub: add –sub-stretch-durations option

Changed

builtin.conf: add –hdr-peak-percentile=99.995 to gpu-hq profile
player: add ‘always’ option to –subs-fallback-forced
demux_playlist: default to –directory-mode=lazy
builtin.conf: add –allow-delayed-peak-detect=no to gpu-hq profile
vo_gpu, vo_gpu_next: support –icc-3dlut-size=auto
demux: prepend some cache options with –demuxer-
builtin.conf: modernize internal profiles for higher quality rendering by default,
rename ‘gpu-hq’ profile to ‘high-quality’, add ‘fast’ profile
vo_gpu, vo_gpu_next: default to dscale=hermite
builtin.conf: remove deprecated ‘opengl-hq’ profile
options: remove a bunch of old option fallbacks/deprecated ones
vo_gpu: allow –deband-iterations to be 0
stream_cdda: deprecate –cdda-toc-bias and always check for offsets
options: disable –allow-delayed-peak-detect by default
options: adjust default of –watch-later-options

Deprecated

command: deprecate shared-script-properties
demux_cue: deprecate –demuxer-cue-codepage for –metadata-codepage

Removed

player: remove special ‘auto’ option from alang/slang/vlang (previous default)
vo_gpu: remove –tone-mapping-mode
vo_gpu: remove –scale-wblur, –scale-cutoff etc.
vo_gpu: remove –scaler-lut-size
m_option: drop support for -del for list options

Fixes and Minor Enhancements

build: remove unneeded libdl requirement for vaapi
zimg: fix abort on subsampled input with odd heights
video_writer: fix gamma for YUV screenshots
player/video: fix possible crash when changing lavfi-complex
ad_spdif: fix segfault due to early deallocation
ao_pipewire: fix race conditon with setting the media role
draw_bmp: fix overflowing coordinates in mark_rcs
ao_sndio: use sio_flush() to improve controls responsiveness
vo_vdpau: fix hwdec for this vo
vo_gpu, vo_gpu_next: fix setting an empty dscale
vd_lavc: repeatedly attempt to fallback if hwdec fails in reinit
options: fix relative time parsing on negative input
win32: signal DPI changes correctly
mp_image: properly infer color levels for some pixfmts
vo_gpu_next: add ability to use named hook params
vo_gpu_next: take into account PAR when taking screenshots
ao_audiotrack: support more channel layouts
osc.lua: support speed-independent time-remaining display
sub: fix switching tracks while paused
audio: fix clipping with gapless audio enabled
player/video: avoid spamming logs with EOF
player/command: detect aspect ratio name and show it in stats.lua
wayland: keyboard input fixes
demux_playlist: remove len restriction on headerless m3u
win32: fix display resolution calculation on mulitple monitors
vo_gpu_next: multiple adjustments and fixes to interpolation
loadfile: avoid infinite playlist loading loops
context_drm_egl: don’t free EGL properties if they are null
x11: require xrandr 1.4, remove xinerama support
drm_common: skip cards that don’t have connected outputs
win32_common: fixes minimized window being focused on launch
ao/jack: set device_buffer to JACK buffer size
meson: rename all features with underscores
input: add new keys: Back, Tools, ZoomIn, ZoomOut
win32: don’t ignore –screen and –fs-screen
input: add missing keypad key defines and Windows multimedia keys
player: use audio pts corresponding to playing audio on EOF
command: add sub-ass-extradata property
vo_dmabuf_wayland: unmap osd surface when not needed
player: always write redirect entries for resuming playback
stats.lua: reorganize how video params are displayed
stats.lua: display HDR metadata
osc.lua: add scrolling to the seekbar
demux_lavf: prefer track durations over container durations to determine total
vo: vulkan: allow picking devices by UUID
video: allow overriding container crop if it is present
vo_gpu, vo_gpu_next, screenshot: support applying crop for screenshots
sd_lavc: account for floating point inaccuracy, fix sub PTS
stream: accept dav:// and davs:// urls
filter_kernels: refine some constants
filter_kernels: add ewa_lanczos4sharpest
osc.lua: add scrolling to audio/sub buttons
demux_mkv: support cropping and rotation
vo_dmabuf_wayland: support 90 degree rotations
filter_kernels: add hermite filter
vo: avoid unnecessary redraws when the OSD shows
scripting: support DLL cplugins
af_scaletempo2: various bug fixes
sdl_gamepad: fix button detection on modern controllers
vo_dmabuf_wayland: support osd rendering when there’s no video
demux_playlist: add –directory-mode=auto
vo_gpu_next: use proper color for subtitles
win32: add an option to change window affinity and control title bar state
win32: reduce top border thickness to imitate DWM invisible borders
wayland: remove gnome-specific idle-inhibit warning
win32: pass window handle to the window-id property
osc.lua: fix calculation for slider’s min-max average
recorder: fix a couple of memory leaks
af_scaletempo2: raise max playback rate to 8.0
osc.lua: move the idle logo behind other overlays
hwdec_drmprime: add nv16 support
various: change internal timing code to work in nanoseconds instead of microseconds
vo: increase display refresh rate estimation limit from 99 Hz to 400 Hz
external_files: base cover-art-whitelist on cover-art-auto-exts
path: don’t override cache and state paths with –config-dir
codec_tags: map some more image mimetypes
af/vf-command: add ability to target a specific lavfi filter
win32: prevent white window flash on startup
demux_playlist: use –metacode-codepage when parsing playlist files
video: revert racey change that led to stutter and deadlocking
console.lua: various improvements
command: add playlist-next-playlist and playlist-prev-playlist
ytdl_hook.lua: set metadata with single tracks
defaults.lua: add a disabled parameter to timer constructors
terminal-unix: race condition fixes
af_scaletempo2: better defaults
hwtransfer: handle hwcontexts that don’t implement frame constraints
stream_cdda: remove fallback for ancient libcdio versions
osdep: drop support for C11 without atomics
dvbin: do a big cleanup on code style and functions
ytdl_hook.lua: parse the separate cookies field
sub: update subtitles if current track is an image
javascript: use –js-memory-report option instead of MPV_LEAK_REPORT
ao_coreaudio: signal buffer underruns
ytdl_hook.lua: support thumbnails
demux: make hysteresis-secs respect cache-secs
mp_image: pass rotation correctly to/from AVFrame correctly
various: add new internal mp_thread abstraction and use it
drm: use present_sync mechanism for presentation feedback
vo_gpu: apply ICC profile and dithering only to window screenshots
audio: introduce ao_read_data_nonblocking() and use it in relevant backends
wayland: obey initial size hints set by the compositor
command: export storage aspect ratio (sar) properties
vo: delay vsync samples by at least 10 refreshes to improve convergence time
vo_sdl: fix broken mouse wheel multiplier
vo_gpu_next: simplify cache code and don’t re-save when unmodified

Download Now]]>