Release 0.37.0 ============== This release requires FFmpeg 4.4 or newer and libplacebo 6.338.0 or newer. This is the first release to unconditionally require libplacebo, but note that the new improved renderer (vo_gpu_next) is not yet the default. 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 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.36.0..v0.37.0` in the git repository or by visiting either https://github.com/mpv-player/mpv/compare/v0.36.0...v0.37.0 or https://git.srsfckn.biz/mpv/log/?qt=range&q=v0.36.0..v0.37.0