This release requires FFmpeg 4.4 or newer and libplacebo 6.338.2 or newer.
The new improved renderer (vo_gpu_next) is being worked on and not the default yet.
Features
New
- scripting: add mp.input()
- player: add an option to automatically turn on deinterlacing
- mac: add more Now Playing information and functionality
- osxbundle: automatically include MoltenVK to enable Vulkan support
- input.conf: bind Ctrl+WHEEL_UP/DOWN to video-zoom
- ao_avfoundation: initial support for AVFoundation audio driver (macOS)
- vo: add context menu support on win32
Changed
- osc: allow disabling special mouse wheel behavior
- mac: add support for dynamic change of geometry, autofit
- x11_common: allow DPI scale in unit of 0.5 and prefer the value from Xft.dpi
- vo_gpu_next: save cache to separate files
- mac: large amounts of refactoring, internal improvements and cleanups
- builtin.conf: remove debanding from the high-quality profile
Removed
- player: remove legacy, non-standard Raspberry Pi-specific support code
Options and Commands
Added
- options: add secondary-sub-delay
- options: add --osd-bar-border-size
- filter_sdh: add --sub-filter-sdh-enclosures option
- options: add --secondary-sub-ass-override
- audio: add --volume-gain option to control volume in decibels
- command: export current-gpu-context property
- sub: add --sub-lavc-o option
- command: add load-config-file and load-input-conf
- input: add --input-preprocess-wheel option
- player: add loadfile/loadlist insert-next commands
- input: rework window dragging to be command controllable
- options: add --deinterlace-field-parity option
- vo: add video-target-params property
- options: add --input-commands that runs commands at startup
Changed
- player/command: add ability to scale overlay
- mac: add support for window-id property and --drag-and-drop
- command: support passing scale to
keypress
- mac: add support for --auto-window-resize, --input-cursor-passthrough options
- win32: add support for --input-cursor-passthrough option
- x11_common: support --title-bar
- sub: allow setting special page numbers via --teletext_page
- player: set --hidpi-window-scale to no by default
- osd_libass: update the OSD bar's dent and border size
- player: remove --alpha and rename --background to --background-color
- options: remove --focus-on-open and add --focus-on
Removed
- player: remove --term-remaining-playtime option
Fixes and Minor Enhancements
- vaapi: add support for vaapi-win32
- ao/coreaudio_exclusive: fix segfault when changing formats
- mac: fix libmpv usage without embedding
- build: only directly link shaderc and spirv-cross on windows
- build: enable dvbin by default again
- playloop: use a 16:9 ratio with --force-window
- mac: report modifier keys on precise scrolling
- input: fix double click handling
- input: add missing forward media key ('GO_FORWARD')
- sub: don't busy loop if the player is paused for cache
- playlist: correctly populate playlist-path with the --playlist option
- win32: opt in to the windows segment heap
- demux_lavf: remove fix_editlists hack for mp4
- wayland: fix key modifier handling again
- win32: re-enable IME
- wayland_common: guard against negative configure sizes
- demux_lavf: detect ico as images
- bash-completion: parse the mpv options lazily
- f_auto_filters: use bwdif_cuda for deinterlacing with cuda hwdec
- command: do a normal seek instead of a refresh seek when switching vo
- ad_spdif: fix DTS 44.1khz passthrough playback
- vo_dmabuf_wayland: scale smarter in hidpi situations
- hwdec_drmprime: add P010 and P210 support
- wayland: look for "default" cursor as well as "left_ptr"
- wayland_common: properly handle high resolution scrolling
- vo_vdpau: fix timing for nanoseconds
- demux_mkv: add tags for A_MPEG/L1 (mp1) audio and FFV1 video
- osdep: fix infinite loop when cancelling subprocess
- dec_sub: expand sub packet caching
- player/sub: avoid wasteful subtitle redraws
- ao_pipewire: add support for SPDIF formats
- wayland_common: implement multi-seat support
- vo: make libmpv last in the auto-probing order for cocoa-cb only
- player/loadfile: rewrite sub autoselection logic
- meson: add custom target for macOS App bundling
- image_writer: cleanup leftover files if image writing fails
- sub: fix LRC lines with multiple timestamps
- ao: don't clip floating point formats at non-unity gain
- wayland: remove old sway/wlroots hack
- hwdec/dmabuf_interop_gl: migrate to EXT_EGL_image_storage on desktop GL
- sd_ass: don't wrongly recognize \pos as \p
- ao_audiotrack: fix missing check for passthrough support
- wayland_common: log if Drag-and-Drop fails
- vo_gpu_next: render subtitles at video colorspace
- swresample: stop using deprecated {in,out}_channel_layout options
- path: don't load any files if --no-config is passed (incl. cache and state)
- vo_gpu/vo_gpu_next: fix transparency with GLX
- wayland_common: require WAYLAND_DISPLAY to be set for initialization
- vo_drm: add support for BGR formats and YUYV
- stream: enable caching for sockets, pipes and FIFOs
- ao_coreaudio: stop audio unit after idle timeout
- vo_gpu_next: add support for --dither-depth=auto
- vo_gpu_next: don't render ASS subtitles at HDR colorspace
- video/image_writer: attach MDVC metadata and CLLI metadata
- win32: resolve dropped shell links (Windows shortcuts)
- af_lavcac3enc: fix memory leak on 2ch audio
- win32: increase hires timer resolution
- input: raise maximum key down limit to 16
- input: remove max active section limit
- video/egl_helpers: fix fallback logic for EGL_KHR_create_context
- ao_pulse: reenable latency hacks by default
- hwdec/vulkan: enable the stable AV1 extension
- af_scaletempo2: fix false reporting of frame availability
- win32: fix native key repeat support
- ao_pipewire: fix some buffer size / timing calculations
- audio: pause handling improvements for pull-based AOs
- ad_spdif: specify missing media type and sample rate
- mac/vulkan: add support for frame timing via presentation feedback
- demux_mkv: corrected direction of ProjectionPoseRoll rotation
- demux_mkv: add support for BCP 47 language tags
- player: avoid busy looping during subtitle track switches
This listing is not complete. Check DOCS/client-api-changes.rst for a history
of changes to the client API, and DOCS/interface-changes.rst for a history
of changes to other user-visible interfaces.
A complete changelog can be seen by running git log v0.37.0..v0.38.0
in the git repository or by visiting
v0.37.0...v0.38.0.