mpv player Changelog

What's new in mpv player 0.37.0 Stable

Dec 11, 2023
  • 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

New in mpv player 0.35.1 Stable (Jan 29, 2023)

  • Fixes and Minor Enhancements:
  • ao_pipewire: log version and other useful debug info
  • wayland: error out if essential protocol support is missing
  • wayland: also log refresh rate on surface entrance
  • vo_gpu_next: fix undefined behavior on alpha-first formats
  • meson: prepend MPV_CONFDIR path with prefix
  • meson: unbreak dl check on BSDs without libdl
  • lcms: fix crash with lcms2-related options if lcms is disabled
  • meson: fix stdatomic detection on bsd
  • osc: don't spam window-controls bindings on every render
  • wayland: check for resize/move in touch event first
  • ao_coreaudio: use device's nominal sample rate for latency properties
  • ao_pipewire: properly clean up resources
  • filter_kernels: fix kaiser
  • hwdec/d3d11va: fix a possible memory leak
  • external_files: set log level for potential files to trace
  • vo_opengl: do not blindly reject all Microsoft's OpenGL implementations
  • ao_coreaudio: use AudioUnitReset as ao_driver.reset to prevent long restart
  • hwdec_drmprime: fix memory leak
  • vo: hwdec: fix libdrm-related memory leak
  • draw_bmp: ensure last slice width is less than total width
  • wayland: dispatch and wait for compositor events in uninit
  • demux: boost read EBU R128 gain values to ReplayGain's reference level
  • version.py/version.sh: bump copyright year
  • vulkan: fix build error for 32bit builds with clang
  • vo_wlshm: cleanup on failure
  • ra_d3d11: fix incorrect type
  • meson: also search for rst2html with .py extension
  • audio: fix crash during uninit with ao_lavc
  • mp_image: fix XYZ primaries default
  • vd_lavc: add "auto" choice for vd-lavc-dr
  • vo: implement VO_DR_FLAG_HOST_CACHED
  • x11: fix issue with xpresent timing feedback

New in mpv player 0.35.0 Stable (Nov 15, 2022)

  • Features:
  • Added:
  • vo_gpu_next: add new libplacebo-based renderer
  • build: add meson build support
  • vo_gpu_next: forward Dolby Vision metadata to libplacebo
  • ao_pipewire: add PipeWire audio backend
  • ao_sndio: readd this audio output again
  • vo_gpu_next: apply film grain if such metadata is present
  • drm: context_drm_egl: add support for enabling VRR
  • demux: add support for R128 replaygain tags
  • x11: support X Present extension
  • af_rubberband: add support for new engine in rubberband 3.0.0
  • hwdec/drmprime: add drmprime hwdec-interop (commonly found on SoCs)
  • various: support binding functions keys beyond F12
  • audio: support hotplug events for multiple AOs
  • sub: use Unicode linebreaking for non-ASS subs and OSD
  • vo_gpu: hwdec: add Android hwdec utilizing AImageReader
  • vo_dmabuf_wayland: add wayland VO displaying dmabuf buffers (vaapi or drm hwdec only)
  • lua/console: add history deduplication
  • Changed:
  • filters: re-add vavpp hardware deinterlacing auto-filter (for --deinterlace)
  • swresample: don't forcibly clip audio on every conversion
  • ytdl_hook: always set HTTP headers to fix yt-dlp on certain sites
  • Removed:
  • libmpv: remove opengl_cb API and other deprecated symbols
  • lua: remove deprecated mp.suspend(), resume() and resume_all()
  • build: raise minimum libplacebo version requirement to v4.157.0
  • Options and Commands:
  • Added:
  • vo_gpu_next: add --target-colorspace-hint to facilitate HDR passthrough
  • vo_gpu_next: new tone mapping options 'auto', 'spline', 'bt.2446a' and add --tone-mapping-crosstalk, --inverse-tone-mapping
  • vo_gpu: add --gamut-mapping-mode and --tone-mapping-mode
  • options: add 'always' choice to --stop-screensaver
  • options: add --osd-playing-msg-duration
  • player: add --cover-art-whitelist option
  • x11: add --x11-present option
  • Changed:
  • ao_openal: enable --openal-direct-channels by default
  • options: only apply --sub-visibility to primary subtitles
  • options: make --cover-art-auto=exact the default
  • vo_gpu/hwdec: rename and introduce legacy names for some interops
  • Deprecated:
  • vo_gpu: deprecate --gamma-factor and --gamma-auto
  • Removed:
  • vo_gpu: remove --gamut-clipping, --gamut-warning, --tone-mapping-desaturate and --tone-mapping-desaturate-exponent (replacements available)
  • vulkan: remove --vulkan-disable-events
  • Fixes and Minor Enhancements:
  • context_drm_egl: use gbm_surface_create_with_modifiers
  • context_drm_egl: add support for BGR surface formats
  • vo_gpu: vulkan: open DRM render fd when using VK_KHR_display
  • client API: use symbol visibility attributes
  • vo_gpu: hwdec_vaapi: add dma-buf modifiers support
  • wayland: fix various issues that could lead to jitter
  • osc: fix cache displaying 60s in some cases
  • player: make --keep-open=always work with --loop-playlist
  • opengl: support driver debug message under OpenGL ES
  • vo_gpu: opengl: fixes for OpenGL ES version and extension handling
  • f_decoder_wrapper: support frame rotation metadata (used by JPEG)
  • wscript: switch shaderc checks to pkgconfig
  • vd_lavc: enable hwdec for prores by default
  • vo_gpu: add HOOKED_gather for custom shaders
  • wayland, x11: sanitize window title for valid UTF-8
  • win32: apply geometry position to content instead of window
  • filter_kernels: add cosine window
  • vo_gpu: hwdec_vaapi: don't probe formats for irrelevant endpoints
  • vo_gpu: hwdec: load hwdec interops on-demand by default
  • stats.lua: graphs: fix bad rendering due to division by 0
  • hwdec: warn on unsupported --hwdec option value
  • x11: fix --screen-name option
  • x11: avoid wasteful rendering when possible
  • video/image_writer: add JPEG XL support
  • stream_lavf: enable ipfs, ipns and rist protocol support
  • osc.lua: fix crash when calling osc-tracklist while idle
  • player: add jxl, tiff, tif to list of image extensions
  • various: switch to new AVChannelLayout structure
  • lua: command_native_async: always run callback asynchronously (edge case)
  • context_x11egl: remove supposed transparency workaround
  • vo_gpu: fix 3DLUT precision
  • drm: avoid drmModeAtomicCommit races by blocking
  • drm_common: skip cards that don't support KMS for autodetection
  • hwdec/dmabuf_interop_gl: support basic multi-plane formats
  • misc/random: switch to internal xoshiro rng implementation
  • ytdl_hook: improve track detection
  • ad_lavc: strip non-normalized floats
  • mpv.metainfo.xml: add XDG appstream metadata manifest
  • mac: avoid unnecessary unsafe conversions; fixes crash in debug builds
  • af_scaletempo2: fix crash when the number of channels increases
  • wayland: correctly handle non-CLOCK_MONOTONIC clocks
  • x11: fix --on-all-workspaces option
  • sd_ass: improve handling of subtitles with unknown duration
  • hwdec/vaapi: improve probing of supported sw formats
  • demux_mf: enable support for QOI, PHM and HDR images
  • demux_mkv: add AVS2 and AVS3 to tag list
  • TOOLS/lua/autoload: fix incorrect duplicate file loading behavior
  • demux/codec_tags: support more WAVEFORMATEXTENSIBLE tags
  • sd_ass: never mangle colours on RGB video
  • 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.

New in mpv player 0.34.0-285 Build 20220501 (May 1, 2022)

  • Fixes and Minor Enhancements:
  • player: fix autofit/geometry related segfault
  • ao_oss: add missing PATH_DEV_MIXER define
  • egl_helpers: fix context creation if GLES 3 is not available
  • audio: stop corrupting audio on underreads
  • wayland: fix a potential segfault on surface enter
  • vo_gpu: opengl: fix wrong glMemoryBarrier call
  • vo_gpu: opengl: create context at version 4.4 again
  • af_lavcac3enc: fix memory leak on no-op
  • subprocess: unblock/reset signals before running child process
  • wayland: avoid doing unneccesary window resizes

New in mpv player 0.34.0 Stable (Nov 7, 2021)

  • Features:
  • Added:
  • player: allow vo to be switched at runtime
  • input.conf syntax: support custom quotes in `XstringX` form & single quotes
  • ao_oss: readd OSSv4 audio output, default on *BSD
  • player: load cover art with the media filename
  • vo_gpu: vulkan: implement a VkDisplayKHR backed context
  • osc: seekbar hover/drag: display target chapter at the OSC title
  • stats.lua: add page 4 with a list of active key bindings
  • sub: add --sub-filter-jsre (JS regex)
  • vo_rpi: restore fullscreen handling
  • vo_tct: add resize capability
  • ytdl_hook.lua: search for yt-dlp by default (preferred over youtube-dl)
  • Changed:
  • vo_sixel: many fixes and improvements
  • filters: switch from scaletempo to scaletempo2, used for speed option
  • audio/vo_pulse: fix various edge cases and issues
  • stats.lua: move internal performance info from page 4 to page 0
  • command: don't hardcode command lists to be repeatable
  • Removed:
  • mac: drop build support for swift versions earlier than 4.1
  • vo_gpu: drop support for libplacebo older than v3.104.0
  • Options and Commands:
  • Added:
  • vo_sixel: add --vo-sixel-exit-clear
  • player: add --screen-name and --fs-screen-name
  • player/command: add albumart argument to video-add
  • command: add pid (process id), display-width and display-height properties
  • sub: add secondary-sub-text, -start, and -end properties; secondary-sub-visibility option
  • vo_gpu: add --icc-force-contrast
  • player: add append-play flag to loadlist
  • command: add support for secondary subs to sub-seek and sub-step
  • options: add watch-later-options to configure which options are saved
  • player: add track-list/N/image sub-property
  • input: add --no-input-builtin-bindings option
  • drm_common: add --drm-device option
  • Changed:
  • vo_sixel: change default dither to "auto"
  • vd_lavc: add VP8 to the default allowed hwdec codec list
  • vo_gpu: lower default deband threshold to preserve more detail
  • vo_gpu: adjust interpolation-threshold's default
  • demux: undeprecate --cache-secs
  • options: add Uploader, Channel_URL to --display-tags defaults
  • options: --audio-display determines cover priority
  • command: make current-window-scale writeable
  • Deprecated:
  • win32: ignore and deprecate --fit-border
  • drm_common: deprecate selecting by card number in --drm-connector
  • Removed:
  • vo_gpu: remove --icc-contrast
  • stats.lua: remove script-opts for the main keys (i/I)
  • vo_gpu: opengl: remove --opengl-restrict
  • Fixes and Minor Enhancements:
  • terminal: correctly process input when foregrounded
  • vo_wlshm: support presentation time
  • mac: fix a window positioning bug when exiting fullscreen
  • csputils: add mappings for DCI-P3 (ST.431-2) and P3-D65 (ST.432-1)
  • player: make resetting of track selection to "auto" work
  • stream_lavf: support rtsps
  • vo_wlshm: support big endian systems
  • demux_mf: add support for more image codecs
  • msg: fix really-quiet option to only affect terminal output
  • mac: fix traditional fullscreen on macOS 11
  • ao_pulse: fix misbehavior with PipeWire when setting volume or mute
  • stats.lua: include a filter's @‍label when displaying filters on page 1
  • wayland, win32: support the display-hidpi-scale property
  • win32: keep the window title-bar inside the screen
  • filter_kernels: fix incorrect constant for quadric window
  • command: add display-width/display-height property
  • edl: add a way to add tags
  • stream_file: disable readahead for remote files on macOS to fix stutter
  • osxbundle: fix slow and wasteful memory allocation that caused stutter
  • vo_gpu: fix extreme clipping with --gamut-clipping for HDR outputs
  • af_scaletempo2: speed up using vector calculations
  • recorder: fix muxing of certain codecs
  • win32: support the focused property
  • js: add mp.utils.append_file
  • subs: fix missing subtitles on last frame
  • stats.lua: show scaled resolution
  • osc: expose osc-visibility via shared-script-properties
  • terminal-unix: fix ^Z identification and ignore unknown CSI sequences
  • context_drm_egl: allow autoprobe selection
  • wayland: improve behavior with touch events
  • command: make current-window-scale writeable
  • vo_vdpau: don't treat preemption as an error to fix VT switching
  • wayland: read XCURSOR_THEME to get cursor theme
  • demux_playlist: extend maximum line size (again) to 2M
  • win32: call timeBeginPeriod on demand on Windows 10
  • build: allow easier selection of lua version/package
  • vo_gpu: fix distortion with certain rotated videos
  • drm_common: skip non-primary devices during automatic choosing
  • drm_common: support USB, SPI, Writeback and unknown connector types (future proofing)

New in mpv player 0.33.0 Build 20201122 (Nov 23, 2020)

  • This release requires FFmpeg 4.0 or newer.
  • For packagers: Note that mpv's build system is only supported on Python 3. If you use the bootstrap.py script it will take care of this, otherwise you need to explicitly invoke the build system using python3 waf.
  • Features:
  • Added:
  • scripting: load scripts from directories
  • mac: activate logging when started from the bundle
  • ytdl_hook.lua: delay load subtitles
  • sub: add an option to filter subtitles by regex
  • scripting: add a way to run subprocesses as "scripts"
  • command: implement asynchronous commands and support for named arguments
  • player: add optional separate video decoding thread
  • vo_gpu: d3d11: add support for exclusive fullscreen
  • w32_common: Support HiDPI on Windows
  • vo_x11: add 10 bit support
  • vo_gpu: add BT.2390 tone-mapping
  • client API: add software rendering API
  • audio: add scaletempo2 filter based on chromium
  • auto_profiles: add this script
  • stream: Implement slice:// for reading slices of streams
  • player: add automatic loading of external cover art files
  • vo_sixel: implement terminal video output using sixel
  • Changed:
  • sws_utils: use zimg by default if available
  • build: pick up Lua 5.2 by default (preferred over 5.1)
  • build: disable RPI vendor blob auto-detection in favor of open-source stack
  • build: make C11 atomics mandatory
  • build: make libass non-optional
  • player: stricter filename matching for external subtitle auto-loading
  • lua: support Unicode paths in script loading and IO library
  • vo_direct3d: rip out texture video rendering path and dumb down OSD rendering
  • audio: rewrite internal audio handling and AO API
  • build: disable GLX by default
  • Removed:
  • stream_libarchive: disable tar support due to bugs
  • Remove remains of Libav compatibility
  • stream_smb: remove due to lack of thread safety and the abundance of alternatives, FFmpeg still includes SMB support
  • command: remove legacy hook API (has been deprecated for a long time)
  • client API: remove deprecated qthelper.hpp header
  • removed audio outputs: sndio, rsound, oss
  • x11: remove xdg-screensaver invocations that supported dbus based idle inhibit
  • client API: deactivate the opengl_cb API
  • build system: drop Python 2 compatbility
  • Options and Commands:
  • Added:
  • demux: add option to disable cache "sharing" between back and forward buffers
  • player: add ab-loop-count option/property
  • ytdl_hook: add a way to use ytdl's default formats
  • ytdl_hook: add all_formats option that loads all formats that were found
  • demux_mkv: document probe-start-time option and enable it by default
  • command: extend osd-overlay command with bounds reporting
  • player: a number of new playlist contol commands/properties
  • ipc: add --input-ipc-client option
  • options: add option to control display-sync factor
  • vo_gpu: add better gamut clipping option
  • vo_gpu: vulkan: add ability to disable events
  • x11: add option to make window appear on a specific workspace
  • wayland: expose wayland-app-id as a user option
  • player: add --subs-with-matching-audio option
  • command: add read-only focused property
  • screenshot: option to use software rendering for screenshots
  • command: add delete-watch-later-config
  • command: new property mouse-pos with current position and hover state
  • Changed:
  • options: remove deprecation warning for "-foo bar" syntax
  • player: make audio hr-seek default
  • ad_lavc: disable decoder downmix by default
  • command: support save-position-on-quit for "stop" command too
  • command: extend subprocess command
  • options: do not accept ":" as separator anymore in key/value lists
  • Deprecated:
  • demux: deprecate --cache-secs
  • Removed:
  • wayland: remove wayland-frame-wait-offset option
  • input: remove deprecated --input-file option
  • vo_vdpau: remove deprecated/inactive --vo-vdpau-deint option
  • Fixes and Minor Enhancements:
  • options: stop hiding deprecated options from --help output
  • lua, js: add mp.get_script_directory() function
  • lua: fix security relevant loading order issue with scripts
  • player: make screenshot each-frame mode more accurate
  • bash completion: complete ao/af/vo/vf options
  • zimg: add alpha support
  • wayland: make resizing better
  • edl: add mechanism for delay loading streams
  • stream_file: fix caching-related performance regression on CIFS
  • cocoa-cb: fix crashes and issues with UI updates
  • sub, demux: improve behavior with negative subtitle delay/muxed subs
  • demux: make seek ranges work for static images + audio
  • cocoa-cb: support maximize/minimize on startup
  • umpv: change from legacy FIFO to socket
  • stats: move input speed to cache page, make it a graph
  • stats: add fourth page with performance graphs
  • command: print edition title to OSD when cycling
  • zimg: add support for big endian input and output
  • demux_mkv: add png intra support
  • build: detect VT_GETMODE on FreeBSD and DragonFly
  • win32: use windows 10 native virtual-terminal if available
  • vo_gpu: enable frame caching for still frames
  • command: add property to return text subtitles in ASS
  • vo_gpu: ra_pl: add timers support
  • build: allow vo_wlshm on more Wayland platforms (e.g. FreeBSD)
  • zimg: add slice threading and use it by default
  • command: add a way to access properties of a current track
  • vo_gpu: EGL: fix transparency on X11/EGL/Mesa
  • vd_lavc: add AV1 to the default allowed hwdec codec list

New in mpv player 0.30.0 (Dec 1, 2019)

  • Added:
  • vo_gpu: vulkan: hwdec_cuda: Add support for Vulkan interop
  • command: support for async commands
  • input: support for named arguments
  • cocoa-cb: add support for mac 10.14 Dark mode and run time switching
  • vo_gpu: switch to Vulkan API implementation based on libplacebo
  • context_drm_egl: Add support for presentation feedback
  • vo_gpu: implement error diffusion for dithering
  • vo/gpu: hwdec_vdpau: Support direct mode for 4:4:4 content
  • vo_gpu: hwdec_vaapi: Add Vulkan interop
  • video, TOOLS: add vf_fingerprint and a skip-logo script
  • vo_gpu: d3d11: add support for presentation feedback
  • vo_drm: 30bpp support
  • cocoa-cb: add support for 10bit opengl rendering
  • video: add pure gamma TRC curves for 2.0, 2.4 and 2.6
  • vo_drm: Implement N-buffering and presentation feedback
  • Reintroduce vo_wayland as vo_wlshm
  • video: add zimg wrapper
  • wayland: add presentation time
  • input: add gamepad support through SDL2
  • Changed:
  • cocoa-cb: use libmpv's advanced rendering control and timing
  • vo_gpu: improve tone mapping desaturation
  • vo_gpu: redesign peak detection algorithm
  • vo_gpu: allow boosting dark scenes when tone mapping
  • osc: improve look of seekranges
  • vo_gpu: x11: remove special vdpau probing, use EGL by default
  • demux: sort filenames naturally when playing a directory / archive
  • stream_dvb: rewrite channel switching, remove old stream control
  • filters: extend vf_format so that it can convert color parameters
  • Removed:
  • demux, stream: rip out the classic stream cache
  • vo_gpu: removed internal Vulkan implementation
  • Remove libdvdread support in favor of libdvdnav
  • demux, stream: remove much of the optical disc support
  • Remove classic Linux analog TV support, and DVB runtime controls
  • demux, stream: remove old rar support in favor of libarchive
  • vo_gpu: remove mali-fbdev
  • vo_gpu: remove vdpau/GLX backend
  • vf_vapourynth: remove Lua backend
  • vo_gpu: remove hwdec_d3d11eglrgb
  • Options and Commands
  • Added:
  • command: add a subprocess command
  • vo_gpu: added --tone-mapping-max-boost, --hdr-peak-decay-rate, --hdr-scene-threshold-low/high
  • player: add --demuxer-cache-wait option
  • Implement backwards playback
  • demux: add a on-disk cache
  • demux, command: add another stream recording mechanism, dump-cache command
  • ao_pulse: add --pulse-allow-suspended
  • command: add video-add/video-remove/video-reload commands
  • demux_cue: added --demuxer-cue-codepage to select CUE sheet charset
  • input: add keybind command
  • command: add sub-start & sub-end properties
  • video/d3d11: added --d3d11-adapter to select a rendering adapter by name
  • vo_gpu/d3d11: added --d3d11-output-format for configuring swap chain format
  • Changed:
  • vo_gpu: split --linear-scaling into --linear-upscaling and --linear-downscaling
  • vo_gpu: split --tone-mapping-desaturate into strength and exponent
  • drm: rename --drm-osd-plane-id to --drm-draw-plane, --drm-video-plane-id to --drm-drmprime-video-plane, --drm-osd-size to --drm-draw-surface-size
  • Deprecated
  • options: deprecate --video-aspect, replaced by --video-aspect-override
  • options: deprecate --record-file, --spirv-compiler
  • Removed:
  • options: remove deprecated --chapter option
  • demux: remove "program" property
  • stream: remove "disc-titles", "disc-title", "disc-title-list", and "angle" properties
  • cocoa-cb: remove --macos-title-bar-style, replaced by --macos-title-bar-material and --macos-title-bar-appearance
  • spirv: remove support for --spirv-compiler=nvidia (shaderc is the only remaining option)
  • Fixes and Minor Enhancements
  • context_drm_egl: implement n-buffering
  • cocoa-cb: add support for custom colored title bar
  • vo_gpu: x11egl: support Mesa OML sync extension
  • demux, demux_edl: add extension for tracks sourced from separate streams
  • context_drm_egl: Use eglGetPlatformDisplayEXT if available
  • vo_gpu: vulkan: add Android context
  • wayland: use xdg-decoration if available
  • vo_gpu: glx: use GLX_OML_sync_control for better vsync reporting
  • demux: runtime option changing for cache and stream recording
  • x11: fix ICC profiling for multiple monitors
  • zsh completion: move generation to runtime and improve

New in mpv player 0.29.1 Build 20190428 (Apr 30, 2019)

  • Fixes and Minor Enhancements:
  • af_rubberband: Fix for A-V drift on seeking.
  • ao_alsa: Fixes to remove spam during pausing and end-of-file.
  • ao_jack: Fix for mpv attempting to connect to non-standard devices such as MIDI.
  • ao_openal: Drop support for Apple's bundled OpenAL due to lack of features to successfully build.
  • ao_pulse: Fix for audio buffer length calculation.
  • demux_lavf: Fix EDL playback of certain DASH streams.
  • demux_lavf: Mark v4l streams as not seekable.
  • demux_raw: Fix for gapless playback from raw audio input.
  • drm_atomic: Fix to enable video output with devices without a video overlay plane.
  • encode: Fix for crashes in case of failure to write to output.
  • encode: Fix for encoding when utilizing lavfi-complex.
  • Fix to strip HDR peak metadata if attached to SDR video (#6111)
  • macOS: Capability to fall back on SW rendering for testing purposes.
  • macOS: Fix for issues with the main menu.
  • macOS: Fix for side by side split view.
  • macOS: Fixes for crashes, most notably those happening on 10.14 (#5908, #6097, #6041, #6062).
  • macOS: No longer let older, unsupported versions of the Swift build tools through configure.
  • manpage: Misc fixups.
  • stream_{smb,file}: Fix for partial writes to buffers.
  • stream_libarchive: Fix hang when an out-of-bound seek happens.
  • stream_smb: Fix for crashes due to libsmbclient and threading (#5936).
  • vo_gpu: Fix for corruption when multiple compute shaders override each others' block sizes (#6083).
  • ytdl_hook: Always load "ytdl://" URLs with ytdl_hook first.
  • ytdl_hook: Fix audio streams not being picked up for some sites.

New in mpv player 0.29.1 Build 20181110 (Nov 10, 2018)

  • Fixes and Minor Enhancements:
  • af_rubberband: Fix for A-V drift on seeking.
  • ao_alsa: Fixes to remove spam during pausing and end-of-file.
  • ao_jack: Fix for mpv attempting to connect to non-standard devices such as MIDI.
  • ao_openal: Drop support for Apple's bundled OpenAL due to lack of features to successfully build.
  • ao_pulse: Fix for audio buffer length calculation.
  • demux_lavf: Fix EDL playback of certain DASH streams.
  • demux_lavf: Mark v4l streams as not seekable.
  • demux_raw: Fix for gapless playback from raw audio input.
  • drm_atomic: Fix to enable video output with devices without a video overlay plane.
  • encode: Fix for crashes in case of failure to write to output.
  • encode: Fix for encoding when utilizing lavfi-complex.
  • Fix to strip HDR peak metadata if attached to SDR video (#6111)
  • macOS: Capability to fall back on SW rendering for testing purposes.
  • macOS: Fix for issues with the main menu.
  • macOS: Fix for side by side split view.
  • macOS: Fixes for crashes, most notably those happening on 10.14 (#5908, #6097, #6041, #6062).
  • macOS: No longer let older, unsupported versions of the Swift build tools through configure.
  • manpage: Misc fixups.
  • stream_{smb,file}: Fix for partial writes to buffers.
  • stream_libarchive: Fix hang when an out-of-bound seek happens.
  • stream_smb: Fix for crashes due to libsmbclient and threading (#5936).
  • vo_gpu: Fix for corruption when multiple compute shaders override each others' block sizes (#6083).
  • ytdl_hook: Always load "ytdl://" URLs with ytdl_hook first.
  • ytdl_hook: Fix audio streams not being picked up for some sites.
  • Added:
  • --cocoa-cb-sw-renderer to control whether or not to fall back on software rendering on macOS.

New in mpv player 0.28.0 Build 20181019 (Oct 22, 2018)

  • Af_rubberband: Fix for A-V drift on seeking.
  • Ao_alsa: Fixes to remove spam during pausing and end-of-file.
  • Ao_jack: Fix for mpv attempting to connect to non-standard devices such as MIDI.
  • Ao_openal: Drop support for Apple's bundled OpenAL due to lack of features to successfully build.
  • Ao_pulse: Fix for audio buffer length calculation.
  • Demux_lavf: Fix EDL playback of certain DASH streams.
  • Demux_lavf: Mark v4l streams as not seekable.
  • Demux_raw: Fix for gapless playback from raw audio input.
  • Drm_atomic: Fix to enable video output with devices without a video overlay plane.
  • Encode: Fix for crashes in case of failure to write to output.
  • Encode: Fix for encoding when utilizing lavfi-complex.
  • Fix to strip HDR peak metadata if attached to SDR video (#6111)
  • Manpage: Misc fixups.
  • Stream_{smb,file}: Fix for partial writes to buffers.
  • Stream_libarchive: Fix hang when an out-of-bound seek happens.
  • Stream_smb: Fix for crashes due to libsmbclient and threading (#5936).
  • Vo_gpu: Fix for corruption when multiple compute shaders override each others' block sizes (#6083).
  • Ytdl_hook: Always load "ytdl://" URLs with ytdl_hook first.
  • Ytdl_hook: Fix audio streams not being picked up for some sites.

New in mpv player 0.28.2 Build 20180513 (May 13, 2018)

  • This release contains an additional fix for CVE-2018-6360.
  • Fixes and Minor Enhancements:
  • ytdl_hook: whitelist subtitle URLs as well (#5456)

New in mpv player 0.28.0 Build 20180317 (Mar 17, 2018)

  • Fixes and Minor Enhancements:
  • ytdl_hook: whitelist subtitle URLs as well (#5456)

New in mpv player 0.28.0 Build 20171225 (Dec 27, 2017)

  • Features:
  • Added:
  • Add DRM_PRIME Format Handling and Display for RockChip MPP decoders
  • csputils: Add support for Display P3 primaries
  • demux: support multiple seekable cached ranges, display cache ranges on OSC
  • demux_playlist: support .url files (#5107)
  • dvb: Add multiple frontends support (up to 8)
  • dvb: implement parsing of modulation for VDR-style channels config
  • hwdec: add mediacodec hardware decoder for IMGFMT_MEDIACODEC frames,
  • rename mediacodec to mediacodec-copy
  • lua: integrate stats.lua script (bound to i/I by default)
  • vd_lavc: add support for nvdec hwaccel
  • vo_gpu: add android opengl backend
  • vo_gpu: initial d3d11 support
  • vo_gpu: vulkan support
  • Removed:
  • af: remove deprecated audio filters (channels, equalizer, pan, volume;
  • replacements in lavfi)
  • vf: remove most GPL video filters (crop, dsize, expand, flip, gradfun, mirror,
  • noformat, pullup, rotate, scale, stereo3d, yadif; replacements in lavfi)
  • vf_buffer: remove this filter
  • video: remove automatic stereo3d filter insertion
  • vo_gpu: remove hwdec_vaglx interop
  • vo_opengl: refactor into vo_gpu
  • vo_wayland: remove
  • Options and Commands:
  • Added:
  • demux: add option to create CC tracks eagerly (--sub-create-cc-track)
  • options: add --start=none to reset previously set start time
  • options: add --vlang switch
  • Changed:
  • cache: lower default size to 2*10MB
  • demux: bump the demuxer cache readahead duration to 10 hours
  • demux: use seekable cache for network by default, bump prefetch limit
  • msg: make --msg-level affect --log-file too
  • player/misc.c: allow both --length and --end to control play endpoint
  • player: match subtitles with language tags with --sub-auto=exact
  • rename --opengl-hwdec-interop to --gpu-hwdec-interop (now mostly useless)
  • vd_lavc: prefer nvdec over vdpau with --hwdec=auto (better codec and surface
  • format support)
  • vd_lavc: rename --hwdec=rpi to --hwdec=mmal
  • Removed:
  • options: remove --heartbeat-cmd and --heartbeat-interval
  • (incidentally fixes #4888)
  • Fixes and Minor Enhancements:
  • TOOLS/autoload.lua: add ogm, ogg and opus extensions
  • Use /dev/tty instead of stdin for terminal input (#4190)
  • audio: add audio softvol processing to AO (replaces previously GPL’d code)
  • audio: fix channel conversion with NA channels (e.g. with ALSA)
  • audio: fix missing volume update on init and reinit
  • csputils: Fix DCI P3 primaries white point
  • demux: don't allow subtitles to mess up buffered time display
  • demux: fix .cue files with audio files that contain attached pictures
  • demux: fix accounting for seekable ranges on track switches (fixes missing
  • audio when cycling through audio tracks with e.g. EDL, --merge-files, ordered
  • chapters and youtube-dl pseudo DASH)
  • demux: fix crash with cue/ordered chapter files (#5027)
  • demux: speed up cache seeking with a coarse index
  • demux_lavf: always give libavformat the filename when probing
  • (helps with mp3 files)
  • demux_mkv: add V_SNOW tag to mkv_video_tags
  • dvb: Fix long channel switching: next/prev channel
  • dvb: fixes for ATSC tuning
  • lavc_conv: clamp timestamps to positive (#5047)
  • macOS: fix bundle on macOS High Sierra (10.13) (#4926, #4866)
  • mp_image: always copy color attributes on hw download (#4804)
  • mp_image: select an explicit fallback for chroma location (#4804)
  • msg: bump log level of --log-file to -v -v
  • msg: reinterpret a bunch of message levels
  • osc: fix rare stack overflow when changing visibility mode
  • osdep/io: add android-related bullshit to fix files >2 GiB
  • player/playloop.c: respect playback start time when using --loop-file
  • player: allow seeking in cached parts of unseekable streams
  • player: make track language matching case insensitive (#5272)
  • player: use start timestamp for ab-looping if --ab-loop-a is absent
  • player: when loading external file, always add all track types (#5132)
  • restore-old-bindings.conf: add old macOS/Wayland AXIS bindings
  • screenshot: create directories from template
  • scripting: report dlerror() output
  • sd_ass: accept RFC8081 font media types
  • sd_ass: accept otc as fallback OpenType collection file extension
  • stream_libarchive: work around various types of locale braindeath
  • (https://git.io/vbiFJ)
  • subprocess-win: don't change the mouse cursor when creating processes
  • video: add a hack to avoid missing subtitles with vf_sub (#5194)
  • video: fix alpha handling (#4983)
  • video: fix memory leaks (roughly 1 KB per decoded frame) with hwdec copy modes
  • video: fix rotation and deinterlace auto filters
  • video: properly pass through ICC data
  • vo: add support for externally driven renderloop and make wayland use it
  • (partially fixes display-sync under wayland; disables rendering when window
  • is invisible)
  • vo_gpu: change --tone-mapping-desaturate algorithm
  • vo_gpu: enable 3DLUTs in dumb mode
  • vo_gpu: fix gamma scale
  • vo_gpu: fix mobius tone mapping compatibility to GLSL 120 (#5069)
  • vo_gpu: fix video sometimes not being rerendered on equalizer change
  • vo_gpu: kill off FBOTEX_FUZZY (#1814)
  • vo_gpu: opengl: fix possible screenshot window crash (#4905)
  • vo_gpu: opengl: use GLX_MESA_swap_control where available
  • vo_gpu: reduce the --alpha=blend-tiles checkerboard intensity
  • vo_gpu: win: remove exclusive-fullscreen detection hack
  • vo_lavc: remove messy delayed subtitle rendering logic (#4689)
  • wayland_common: implement output tracking, many cleanups and bugfixes
  • Windows: skip window snapping if Windows handled it
  • Windows: add more-POSIXy versions of open() and fstat() (#4711)
  • ytdl_hook: don't prepend ytdl:// to non-youtube links in playlists (#5003)
  • 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.

New in mpv player 0.27.0 (Sep 13, 2017)

  • Added:
  • Windows: handle media keys
  • libmpv: options: add a thread-safe way to notify option updates
  • vd_lavc/vo_opengl: support embedded ICC profiles
  • vo: rendering API abstraction for future non-GL video outputs
  • vo_opengl: add a gamut warning feature to highlight out-of-gamut colors (--gamut-warning)
  • vo_opengl: add direct rendering support (--vd-lavc-dr)
  • vo_opengl: implement (faster) compute shader based EWA kernel
  • vo_opengl: implement HLG OOTF inverse
  • vo_opengl: support HDR peak detection (--hdr-compute-peak)
  • vo_opengl: support float input pixel formats
  • vo_opengl: support loading custom user textures (issue #4586)
  • vo_opengl: support user compute shaders
  • Removed:
  • Remove video equalizer handling from vo_direct3d, vo_sdl, vo_vaapi, and vo_xv (GPL, not worth the effort to support legacy VOs)
  • Options and Commands added:
  • player: add --track-auto-selection option
  • Options and Commands changed:
  • input: use mnemonic names for mouse buttons, same as Qt: https://doc.qt.io/qt-5/qt.html#MouseButton-enum
  • options: change --loop semantics
  • player: make --lavfi-complex changeable at runtime
  • vf_eq: remove this filter (GPL; uses libavfilter’s eq filter now, with changed semantics)
  • video: change --deinterlace behavior
  • vo_opengl: generalize HDR tone mapping to gamut mapping, --hdr-tone-mapping → --tone-mapping
  • Options and Commands removed:
  • --field-dominance (GPL-only author, no chance of relicensing)
  • input: drop deprecated "osd" command
  • options: drop --video-aspect-method=hybrid (GPL-only)
  • Fixes and Minor Enhancements:
  • af_lavrresample: don't call swr_set_compensation() unless necessary (issue #4716)
  • audio: fix spdif mode
  • filter_kernels: correct spline64 kernel
  • options: fix --include (issue #4673)
  • player: fix --end with large values (issue #4650)
  • player: fix confusion in audio resync code (issue #4688)
  • player: make refresh seeks slightly more robust (issue #4757)
  • player: readd smi subtitle extension (issue #4626)
  • vd_lavc: change auto-probe order to prefer cuda over vdpau-copy
  • vd_lavc: fix device leak with copy-mode hwaccels (issue #4735)
  • vd_lavc: fix hwdec compatibility with yuvj420p formats
  • vd_lavc: fix mid-stream hwdec fallback
  • vf_vapoursynth: fix inverted sign and restore 10 bit support (issue #4720)
  • video: increase --monitorpixelaspect range
  • vo_opengl: adjust the rules for linearization (issue #4631)
  • vo_opengl: scale deband-grain to the signal range
  • vo_opengl: tone map on the maximum signal component
  • ytdl_hook: resolve relative paths when joining segment urls (issue #4827)
  • ytdl_hook: support fragments with relative paths, fixes segmented DASH
  • 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.26.0..v0.27.0 in the git repository.

New in mpv player 0.26.0 (Jul 19, 2017)

  • FEATURES:
  • Added:
  • Universal Windows Plaform (UWP) support (libmpv only)
  • csputils: implement sony s-gamut
  • js: add javascript scripting support using MuJS
  • See DOCS/man/javascript.rst for more details
  • vo_opengl: add new HDR tone mapping algorithm (mobius, now default)
  • vo_opengl: hwdec_cuda: Support separate decode and display devices
  • vo_opengl: implement sony s-log1 and s-log2 trc
  • vo_opengl: implement support for OOTFs and non-display referred content
  • Removed:
  • vf_dlopen: remove this filter
  • OPTIONS AND COMMANDS:
  • Added:
  • vo_opengl: add --tone-mapping-desaturate
  • vo_opengl: support tone-mapping-param for clip
  • ytdl_hook: add option to exclude URLs from being parsed
  • Changed:
  • allow setting profile option with libmpv
  • audio: move replaygain control to top-level options
  • external_files: parse ~ in --{sub,audio}-paths
  • options: change --sub-fix-timing default to no (#4484)
  • options: expose string list actions for --sub-file option
  • options: slight cleanup of --sub-ass-style-override
  • signfs → scale
  • --sub-ass-style-override → --sub-ass-override
  • renamed the HDR TRCs st2084 and std-b67 to pq and hlg respectively
  • replace vf_format's peak suboption by sig-peak, which is relative to the reference white level instead of in cd/m^2
  • the following options change to append-by-default (and possibly separator):
  • --script
  • video: change --video-aspect-method default value to container
  • Deprecated:
  • m_option: deprecate multiple items for -add etc.
  • player: deprecate "osd" command
  • --audio-file-paths => --audio-file-path
  • --sub-paths => --sub-file-path
  • --opengl-shaders => --opengl-shader
  • --sub-paths => --sub-file-paths
  • the following options are deprecated for setting via API:
  • "script" (use "scripts")
  • "sub-file" (use "sub-files")
  • "audio-file" (use "audio-files")
  • "external-file" (use "external-files")
  • (the compatibility hacks for this will be removed after this release)
  • Removed:
  • chmap: remove misleading "downmix" channel layout name (#4545)
  • demux_lavf: remove --demuxer-lavf-cryptokey option (#4579)
  • input.conf: drop TV/DVB bindings
  • options: remove remaining deprecated audio device selection options
  • --alsa-device
  • --oss-device
  • --coreaudio-exclusive
  • --pulse-sink
  • --rsound-host/--rsound-port
  • --ao-sndio-device
  • --ao-wasapi-exclusive
  • --ao-wasapi-device
  • remove option --target-brightness
  • remove property "video-params/nom-peak"
  • FIXES AND MINOR ENHANCEMENTS:
  • TOOLS/lua/autoload.lua: actually sort files case insensitive (#4398)
  • TOOLS/lua/autoload.lua: ignores all files starting with "."
  • ao_openal: kill off device listing (#4311)
  • ao_pulse: reorder format choice to prefer float and S32 over S16 as fallback format
  • ao_wasapi: try correct initial format (#4582)
  • command: add missing change notification for playlist-shuffle (#4573)
  • demux_disc: fix bluray subtitle language retrieval (#4611)
  • demux_mkv: fix alpha with vp9 + libvpx
  • demux_mkv: support FFmpeg A_MS/ACM extensions
  • ipc-unix: don’t truncate the message on EAGAIN (#4452)
  • ipc: raise json nesting limit (#4394)
  • macOS: fix mpv-wrapper.sh when used with csh or tcsh shell
  • macOS: properly unhide Dock when quitting during System fs animation
  • mpv_identify: replace deprecated fps property (#4550)
  • options/path: fallback to USERPROFILE if HOME isn't set
  • player: close audio device on no audio track
  • player: fix potential segfault when playing dvd:// with DVD disabled (#4393)
  • player: prevent seek position to jump around adjacent keyframes, e.g. when dragging the OSC bar on short videos (#4183)
  • vo_opengl: bump up SHADER_MAX_HOOKS and MAX_TEXTURE_HOOKS to 64
  • vo_opengl: correct off-by-one in scale=oversample
  • vo_opengl: do not use vaapi-over-GLX (#4555)
  • vo_opengl: fall back to ordered dither instead of blowing up (#4519)
  • vo_opengl: tone map in linear XYZ instead of RGB
  • x11: add 128x128 sized icon support
  • ytdl_hook: add a header to support geo-bypass
  • ytdl_hook: don't override start time set by saved state
  • ytdl_hook: don't override user-set start time
  • ytdl_hook: treat single-entry playlists as a single video

New in mpv player 0.25.0-git-809d160 (Apr 24, 2017)

  • FEATURES:
  • Added:
  • TOOLS: add acompressor.lua script for runtime acompressor ffmpeg filter control
  • dvb: add support for DVB-T2
  • lavfi: support hwdec filters for --lavfi-complex
  • osc: add volume button (mouse wheel to change volume)
  • sub: add SDH subtitle filter
  • vo_opengl: add experimental vdpauglx backend
  • vo_opengl: implement videotoolbox hwdec on iOS
  • Removed:
  • image_writer: remove useless formats (PPM, PGM, TGA)
  • af_drc: remove (use --af=acompressor instead; higher quality)
  • OPTIONS AND COMMANDS:
  • Added:
  • --demuxer-lavf-probe-info
  • --sub-filter-sdh, --sub-filter-sdh-harder
  • add automatic libavfilter bridges to option parsing
  • command: add better runtime filter toggling method
  • command: add demux-start-time property
  • command: add property notifications for hwdec properties (#4289)
  • input: add "async" flag
  • osc: add user_opts.boxmaxchars for box layout title limit
  • player: add --keep-open-pause=no option
  • va_vavpp: reversal-bug=no
  • vo_opengl: --opengl-es=force2
  • vo_opengl: add --opengl-shader-cache-dir option for caching shaders on disk (mostly for ANGLE)
  • vo_opengl: angle: add --angle-flip to set the ANGLE present model
  • Changed:
  • command: update sub-fps etc. options on runtime changes
  • vo_opengl: prefer X11 backends over Wayland backends
  • options: change --audio-file-auto default to not to load any files
  • Deprecated:
  • audio: deprecate most non-lavfi audio filters
  • (channels, equalizer, pan, volume)
  • video: deprecate almost all non-lavfi video filters
  • (buffer, crop, dlopen, dsize, eq, expand, flip, gradfun, mirror, noformat,
  • pullup, rotate, scale, stereo3d, sub, yadif)
  • options: deprecate --loop semantics (planned alias to --loop-file)
  • Fixes and Minor Enhancements:
  • Windows: demux_cue: fix UTF-8 paths
  • Windows: fix mismatched free/talloc_free (#4315)
  • Windows: fix undefined behaviour when toggling fullscreen
  • ao_alsa: close lost audio devices (#4189)
  • ao_alsa: filter fewer devices
  • ao_alsa: fix an error check (#4188)
  • ao_jack: update latency on buffer_size/graph change
  • ao_wasapi: do not pass nonsense to drivers with double precision formats
  • ass_mp: reallocate cached subtitle image data on format changes (#4325)
  • build: decouple dvdnav check from dvdread (#4290)
  • build: encode_lavc: fix build failure after libavcodec major bump
  • build: fix build with HAVE_GL==0
  • build: replace android-gl check with a standard GLES3 check
  • build: update bundled waf to 1.9.8
  • build: vd_lavc: fix potential build failure with vaapi
  • demux_lavf: disable half-working mp4 edit list support in libavcodec
  • demux_lavf: skip avformat_find_stream_info() for some formats (hls, mp4, mkv by default)
  • etc/encoding_profiles.conf: update and remove deprecated stuff
  • etc/mpv.conf: remove deprecated options
  • external_files: actually try to autoload from fallback paths
  • external_files: enable autoloading with URLs (#3264)
  • image_writer: make it work with libavcodec's jpg encoder
  • osc: bottom/topbar: add fullscreen button
  • osc: bottom/topbar: don't clip title vertically
  • osc: bottom/topbar: increase timecodes width a bit (#3952)
  • osc: fix PlayResX undefined warning when aspect is 0
  • osc: fix window dragging with showwindowed=no (#1819)
  • osc: make title configurable and use property expansion on it (#4221)
  • osc: refactor osc message scaling (#4081, #4083, #4102)
  • player: don't block playback stop when seeking
  • player: enable "buffering" pausing for DASH streams too
  • player: fix core-idle and eof-reached update notifcations
  • player: make screenshot commands honor the async flag (#4250)
  • player: reduce blocking on VO when switching pause (#4152)
  • sd_ass: disable --sub-fix-timing if sub style override is fully disabled
  • stream/stream_dvdnav: don't ignore setting title (#4283)
  • stream_dvd: fix subs/audio detection on DVDs containing multi-PGC titles
  • vf_vavpp: add advanced deint bug compatibility for Intel vaapi drivers
  • vf_vavpp: fix first-field mode
  • vo_opengl: fix crash with temporal dithering in dumb mode
  • vo_opengl: hwdec_d3d11egl: make it work with some ANGLE DLL versions
  • vo_x11: reduce flickering on playlist navigation
  • wayland: correctly map mouse buttons

New in mpv player 0.24.0-git-0f1afc6ba (Apr 24, 2017)

  • FEATURES:
  • Added:
  • Windows: allow snapping to screen edges (#2248)
  • player: add experimental C plugin interface
  • player: add experimental stream recording feature (--record-file)
  • player: add prefetching of the next playlist entry (--prefetch-playlist; does NOT work with URLs resolved by youtube-dl)
  • stream_lavf: add support for data URIs (#4058)
  • vaapi: add support for 10-bit video formats (requires patched Mesa and capable hardware)
  • x11: pseudo HiDPI scaling
  • OPTIONS AND COMMANDS:
  • Added:
  • sub: add --sub-justify and --sub-ass-justify options
  • sub: add option to force using video resolution for image subtitles (--image-subs-video-resolution)
  • Changed:
  • command: rename framedrop properties
  • drop-frame-count → decoder-frame-drop-count
  • vo-drop-frame-count → frame-drop-count
  • input.conf: change "L" to change loop-file by default
  • Deprecated:
  • --hwdec-preload (replaced with --opengl-hwdec-interop)
  • Removed:
  • options: drop deprecated --sub-codepage syntax
  • options: drop deprecated --vd/--ad codecs selection features
  • player: remove --stream-capture option/property
  • Fixes and Minor Enhancements:
  • Windows: update the fullscreen state on restoring
  • ad_spdif: fix obscure cases of AC3 passthrough (e.g. 44100 Hz AC3)
  • ao_oss: use --audio-device if --oss-device isn't set (#4122)
  • build: fix --disable-gl if cuda is enabled
  • build: rpi: rely on pkgconfig for compiler flags to ease cross compilation
  • charset_conv: fallback to interpreting subs as latin1 if iconv fails
  • charset_conv: fix "auto" fallback with uchardet not compiled (#3954)
  • client API: fix freeze when destroying mpv_handle before mpv_initialize
  • client API: fix mpv_set_property() return value before init (#3988)
  • command: fix potential crash for script-binding with multi-commands
  • command: nicer OSD formatting for loop-file
  • command: shorten long playlists on OSD
  • config: do not resolve default profile during "include" processing (#4024)
  • cuda: fix 10 bit decoding
  • cue: accept lower-case cue commands (#4057)
  • demux_mkv: any reference makes a frame not a keyframe (fixes seeking in WebM files with alpha channel)
  • lavfi: slightly better disconnected output handling (#4118)
  • lua: close directory after reading its entries (#4045)
  • osc: allow playlist buttons when looping (#4092)
  • osc: bottom/topbar: clip title instead of stretching
  • osc: bottombar/topbar: make chapter markers slightly bigger
  • osc: box: clip with ellipsis after too much stretching
  • osc: fix crashes related to field eventresponder being nil (#3210)
  • player: add .scc subtitle extension
  • stream_bluray: use proper 0-based index
  • sub: remove .txt as text subtitle extension
  • tv: fix segfaults on TV input (#4096)
  • vaapi: set libva > 0.39.4 message callbacks to prevent it from printing messages to the terminal
  • vd_lavc: improved fallback behavior for --hwdec=cuda (#3914)
  • vdpau: reject decoding of non-4:2:0 (would decode to garbage)
  • vf_lavfi: don't crash with VOs without hardware decoding support (#4064)
  • vo_opengl, vo_opengl_cb: better hwdec interop backend selection
  • vo_opengl: angle: rewrite with custom swap chain (fixes problems with e.g. 24 fps video on 24 Hz monitors, avoids problems with DirectComposition, enables "screenshot window" command on Windows 8 and newer)
  • vo_opengl: partially fix rotation for 4:2:2 content
  • vo_opengl: x11egl: fix alpha mode
  • wayland: fix high CPU usage with mpv paused and visible
  • ytdl_hook, edl: implement pseudo-DASH support
  • ytdl_hook: add non-dash fallbacks to default formats
  • ytdl_hook: fix opening hitbox.tv rtmp stream
  • ytdl_hook: respect --no-audio, don't force-select track
  • ytdl_hook: support livestream segmented DASH VODs
  • ytdl_hook: support segmented dash

New in mpv player 0.22.0-git-1d4273c (Nov 22, 2016)

  • Added Features:
  • demux_mkv: parse Matroska colorimetry metadata
  • filter_kernels: add ability to taper kernels/windows, add tukey window
  • osc: add seekbarstyle=knob
  • Added Options and Commands:
  • --opengl-early-flush=auto
  • --scale-taper, --scale-wtaper
  • --scale-wblur
  • osc: add script message handlers for chapter/track/playlists
  • Fixes and Minor Enhancements:
  • Apply --autofit-larger after --autofit-smaller
  • Set subtitle track title to indicate hearing/visual impaired tracks
  • command: if window-scale can't be set properly, set it as option
  • demux_mkv: don't recursively resolve timeline for opened reference files
  • demux_mkv: fix ordered chapter sources with ordered editions
  • options: handle legacy no-* sub-options
  • osc: add alpha animation to tooltip (fix lingering tooltip)
  • osc: change default deadzonesize to 0.5
  • osc: don't wrap the title
  • osc: fix crash after reaching a certain position in limited lists
  • osc: fix crash with no chapters
  • osc: fix crashes when dragging seekbar across file changes
  • osc: fix displaying only half of the entries when at the end of a list
  • osc: fix missing chapter ticks with seekbarstyle=bar
  • osc: slimbox: fix clipping with seekbarstyle=bar
  • osc: top/bottombar: also scale when min-width is reached to match box/slimbox behavior
  • osc: top/bottombar: dynamically size timecodes according to timems
  • osc: top/bottombar: rescale layout to same size with scale=1
  • osc: top/bottombar: scale title if too large like box
  • player: consistently initialize screensaver state with --force-window
  • player: enable no-video subtitle display on coverart too
  • player: make --start-time work with --rebase-start-time=no
  • player: make sure non-video subtitle rendering is reset if video resumes
  • player: removing last playlist entry while looping should not stop
  • player: show subtitles on VO if --force-window is used
  • player: speed up audio/video re-sync when there is a huge delay
  • vo_opengl: blend against background color for --alpha=blend
  • vo_opengl: fix --blend-subtitles handling
  • vo_opengl: fix redrawing with hardware decoding
  • vo_opengl: partially re-enable glFlush() calls
  • ytdl_hook: sort chapters by time

New in mpv player 0.21.0-git-e6b85c9 (Oct 20, 2016)

  • Features:
  • Added:
  • config: allow profile forward-references in default profile
  • demux_lavf: "support" mov edit lists and log errors if used (FFmpeg only)
  • osc: add right-click behavior to playlist and chapter buttons
  • osc: add user-alterable margin for top/bottombar
  • sd_lavc: enable teletext
  • Removed:
  • vo_opengl: remove pre/post/scale-shaders in favor of user-shaders
  • Deprecated:
  • config: deprecate ao and vo auto-profiles
  • vo_rpi: deprecate this VO
  • Options and Commands:
  • Added:
  • add --teletext-page option
  • af_pan: add af-command support to change the matrix
  • af_rubberband: add af-command and option to change the pitch
  • command: add a load-script command
  • command: add a video-dec-params property
  • command: add an apply-profile command
  • command: add audio-pts property to get the audio pts
  • command: add options to property list
  • command: add sub-text property for current subtitle text
  • command: export profile list as a property
  • options: add --hwdec=yes as alias for --hwdec=auto
  • player: add --player-operation-mode=pseudo-gui
  • player: add --video-osd=no option to disable video OSD
  • player: add --watch-later-directory option
  • stream_bluray: select title by playlist (bd://mpls/[playlist])
  • vo_opengl: disable glFlush() by default, and add an option to enable it for testing
  • Changed:
  • af_rubberband: default to channels=together
  • command: allow absolute seeks relative to end of stream
  • command: make bitrate properties observable
  • command: make most options observable
  • msg: make --log-file and --dump-stats accept config path expansion
  • options: deprecate --playlist-pos to --playlist-start
  • options: make input options generally runtime-settable
  • options: rename subtitle options (--sub-text- ? --sub; --ass- ? --sub-ass-)
  • osc: change default layout to bottombar, seekbarstyle to bar, use larger scalewindowed and scalefullscreen
  • player: make --terminal, --log-file, --dump-stats, --osc, --ytdl, --audio-*, --priority, --stop-screensaver settable at runtime
  • vo_opengl: rename 3dlut-size to icc-3dlut-size
  • Removed:
  • command: remove hwdec-active and hwdec-detected properties
  • command: remove vo-cmdline
  • options: drop unreferenced --bluray-angle option
  • vo, ao: disable positional parameter suboptions
  • Deprecated:
  • all VOs and AOs: deprecate sub-options, add them as global options
  • command: deprecate "cache" property, replace with "cache-percent"
  • deprecate --vo-defaults
  • deprecate --vo=opengl-hq alias in favor of opengl-hq profile
  • options: deprecate --mute=auto
  • vo_direct3d: deprecate direct3d_shaders alias, use shaders by default
  • Fixes and Minor Enhancements:
  • aspect: use nominal width instead of actual width for video-unscaled
  • audio/out: prevent underruns with spdif under certain conditions
  • audio: fix late audio start
  • audio: fix missed wakeup when changing audio output device
  • audio: fix segfault when yanking USB DAC
  • charset_conv: Use CP949 instead of EUC-KR
  • command: don't log "ignore" command with -v verbosity
  • command: try selecting the next track if track switching fails
  • demux_mkv: don't crash if --ordered-chapters-files fails
  • displayconfig: treat a refresh rate of 1 as invalid
  • ipc: log when listening to IPC socket
  • mp_image: fix clearing to black with p010 format
  • osc: Fix scaling issues when toggling fullscreen
  • osc: align text vertically in top/bottombar
  • osc: change seekbar background's alpha scaling
  • osc: fix display of chapters and playlist scaling
  • osc: move tooltip to inside seekbar for top/bottombar
  • osc: show playlist/chapter list on prev/next instead of osd
  • path: default ~~ paths to home directory
  • player: do not let pseudo-gui override user config settings
  • player: enable reading from stdin after loading input.conf
  • player: fix instant subtitle refresh on track switches
  • player: make --force-window work with opengl-cb
  • stream_lavf: fix determining seekability
  • sub: actually apply text alignment options to non-ASS subtitles
  • terminal-win: support modifier keys in console input
  • vo_opengl: apply 90° rotation to chroma texture size
  • vo_opengl: partially fix dumb-mode cropping with rotation
  • w32_common: initialize playback status as soon as possible
  • ytdl_hook: Add title to playlist items if available
  • ytdl_hook: Set aspect ratio for anamorphic video
  • ytdl_hook: Support playlist entries without subtitles
  • ytdl_hook: add chapters by parsing video's description
  • ytdl_hook: don't add subtitles with unknown duration
  • ytdl_hook: temporarily force disable dash segments formats

New in mpv player 0.20.0-git-c226bc7 (Aug 26, 2016)

  • Added:
  • aspect: add --video-unscaled=downscale-big
  • player: add --image-display-duration option to control duration of image display
  • vo_opengl: angle: new flag (dcomposition) to control DirectComposition
  • Fixes and Minor Enhancements:
  • af_lavrresample: fix error if resampler could not be recreated
  • audio: avoid missed wakeups with ab-loops
  • audio: do not apply --audio-channels if spdif passthrough is in use
  • cache: don't use a backbuffer if the cache is as large as the file
  • command: prevent O(n^2) behaviour for playlist property
  • demux: close underlying stream if it's fully read anyway
  • demux: fix undefined behavior with ogg metadata update
  • player: make looping slightly more seamless
  • player: refresh very low framerate video on filter changes
  • stream_memory: disable stream cache
  • vf_rotate: allow arbitrary rotation
  • vo: be more trusting to estimated display FPS
  • w32_common: use hooks to detect parent window resize

New in mpv player 0.4.0 (Nov 27, 2014)

  • Changes:
  • Drop support for Libav 9 and earlier FFmpeg releases. At least FFmpeg 2.1.4 or Libav 10 are now required.
  • Change cache options to take kilobytes instead of percentages, and raise the default values.
  • Lower --auto-pause/resume defaults values to improve web streams playback.
  • Use dvdnav support instead of the internal dvd implementation for dvd:// URLs (the old implementation is available under dvdread://).
  • Rename some options to make them more consistent. Here's a partial list of renamed options
  • Audio-related
  • audiofile → --audio-file
  • audiofile-cache → --audio-file-cache
  • channels → --audio-channels
  • format → --audio-format
  • srate → --audio-samplerate
  • Input-related
  • ar → --input-appleremote
  • consolecontrols → --input-terminal
  • media-keys → --input-media-keys
  • joystick → --input-joystick
  • lirc → --input-lirc
  • lircconf → --input-lirc-conf
  • mouse-movements → --input-cursor
  • right-alt-gr → --input-right-alt-gr
  • Terminal-related
  • msgcolor → --msg-color
  • msglevel → --msg-level
  • msgmodule → --msg-module
  • msgtime → --msg-time
  • playing-msg → --term-playing-msg
  • status-msg → --term-status-msg
  • Subtitle-related
  • ass → --sub-ass
  • autosub → --sub-auto
  • autosub-match → --sub-auto-match
  • sub → --sub-file
  • subcp → --sub-codepage
  • subfps → --sub-fps
  • Video-related
  • --aspect → --video-aspect
  • --fstype → --x11-fstype
  • --native-fs → --fs-missioncontrol
  • --name → --x11-name
  • Remove global options variables for --tv, --pvr, --dvb and --cdda.
  • Move post-processing support to a separate filter (vdpaupp) for the vdpau vo, and deprecate the old vdpau post-processing options.
  • Remove radio:// support.
  • Remove support for ASX, SMIL and NSC playlist formats.
  • Re-introduce pretty-printing for module names with --msg-module.
  • Load Lua scripts under $MPV_HOME/lua/ (default ~/.mpv/lua/) automatically (this can be disabled by using --load-scripts=no).
  • Corrupt/broken frames are not shown by default anymore (this can be re-enabled by using --vd-lavc-show-all=yes).
  • Automatically copy metadata from the input file to the output when encoding (this can be disabled by using --no-ometadata).
  • Change --sub-file semantics: if multiple --sub-file are used, the subtitle tracks can be cycled at runtime and used with --sid and --secondary-sid.
  • Make the subtitle font size relative to the window, instead of the video, when --sub-scale-with-window=yes is used.
  • Change default ao from wasapi to dsound on Windows.
  • Bug fixes:
  • Fix tv:// playback with missing timestamps.
  • Fix display of cover art inside audio files with the vdpau vo.
  • New features:
  • Add client API in the form of the libmpv library, which is intended to be a stable API to get some rough control over the player (this is not supported on Mac OS X).
  • Add option for approximating BT.709 gamma for the opengl vo (similarly to many programs in the Apple ecosystem).
  • Add support for non-BT.709 primaries.
  • Add support for BT.2020 colorspace.
  • Generate and install zsh completion script (disabled by default since it may interfere with cross-compilation).
  • Add support for looping a single file (instead of the whole playlist) with the --loop-file option.
  • Add VapourSynth video filter (this has various restrictions, which are listed in the manpage).
  • Add support for ReplayGain in the volume audio filter.
  • Add a --config-dir option to force config directory.
  • Add support for GPU switching on Mac OS X.
  • Add support for automatic selection of color profiles on Mac OS X.
  • Add support for binding commands to sequences of keys.
  • Add support for passing options to Lua scripts with --lua-opts.
  • Add some filesystem utility functions to the Lua API.
  • Add functions for observing property changes to the Lua API .
  • Add support for creating a cache file on the filesystem with --cache-file.
  • Add support for window dragging by grabbing with the x11 vo.
  • Add option to write file name to watch later file.
  • Add support for a "weak" gapless mode, and make it default (the old mode can be enabled with --gapless-audio or --gapless-audio=yes).
  • Automatically detect network filesystems on Linux and Windows.

New in mpv player 0.3.11 (Nov 27, 2014)

  • Minor fixes. Most importantly, fix compilation with recent FFmpeg git.

New in mpv player 0.3.9 (May 5, 2014)

  • Minor fixes.
  • Might fix the build on OpenBSD, but still will need --disable-asm to be passed to waf configure. (This problem doesn't exist on git master, but merging these changes back to 0.3.x would be too intrusive.)

New in mpv player 0.3.8 (Apr 18, 2014)

  • This contains some more workarounds for Mesa bug 66384 and related bugs, and as consequence probably fixes issues with mpv behaving badly when pausing vdpau playback.

New in mpv player 0.3.7 (Apr 18, 2014)

  • Minor bug fixes, including a workaround for a Libav 9 bug (or corresponding FFmpeg version) where seeking could trigger a crash.

New in mpv player 0.3.5 (Apr 18, 2014)

  • Bug fixes:
  • switch to c99 mode to prevent gcc from messing up aspect ratio handling code
  • fix --no-aspect option
  • x11: fix a certain fullscreen problem with OpenBox
  • wayland: bump minimum client libraries versions
  • vo_opengl: fix context creation failure with some newer mesa drivers
  • vo_opengl: color management fixes
  • vo_vdpau: fix behavior with some weirdly behaving mesa drivers

New in mpv player 0.3.4 (Feb 1, 2014)

  • Disable libquvi 0.9 subtitles, because they were a major annoyance. Can be reenabled with --quvi-fetch-subtitles.

New in mpv player 0.3.3 (Jan 16, 2014)

  • Wayland bug fixes, bug fixes for MicroDVD subtitles, mess with handling of broken Matroska files, and some more things.