mpv Changelog

What's new in mpv 0.37.0

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

New in mpv 0.36.0 (Jul 24, 2023)

  • New:
  • player: add window-id property
  • vo_kitty: introduce modern sixel alternative
  • wayland: add wp-fractional-scale-v1 support
  • player/command: add user-data property (replacement for shared-script-properties)
  • vo_gpu_next: support mapping HDR10+ dynamic metadata
  • vo_gpu_next: allow screenshots in native colorspace
  • vo_gpu_next: parse Dolby Vision metadata for dynamic scene brightness
  • video: allow csp equalizer adjustments with floating point precision
  • command: add platform property
  • demux_mkv: support ARIB captions
  • hwdec_vulkan: add support for Vulkan-based hardware decoding
  • player: better handling of forced-only subtitles and a toggle in the OSC
  • vo_dmabuf_wayland: add osd support
  • Changed:
  • TOOLS/umpv: prefer $XDG_RUNTIME_DIR
  • ffmpeg: increase minimum required version to 4.4
  • player: choose speed of smallest acceptable factor for display sync
  • player: don't force saving start in watch-later-options
  • build: officially deprecate waf
  • vf_sub: undeprecate
  • player: set playlist title to media title if not set already
  • player: use and respect XDG_STATE_HOME and XDG_CACHE_HOME by default
  • wayland: bump required version to 1.20 and wayland-protocols to 1.25
  • ao_pipewire: require at least libpipewire 0.3.48
  • vo: hwdec: prioritise drmprime over drmprime_overlay
  • vo_gpu/vo_gpu_next: enable gpu shader and icc cache by default
  • Removed:
  • drm: remove support for legacy (non-atomic) API
  • stream/dvb: drop support for DVB API before Linux 3.7
  • hwdec_cuda: drop support for PL_HANDLE_WIN32_KMT (Windows 7 only)
  • vo_dmabuf_wayland: drop linux-dmabuf-v2 support
  • Options and Commands:
  • Added:
  • player: add --force-render option
  • demux: add --demuxer-hysteresis-secs option to save power with caching
  • ao_pipewire: allow usage of global volume control via --pipewire-volume-mode
  • vo_gpu_next: add --tone-mapping-visualize
  • sub: add --sub-fonts-dir and --osd-fonts-dir options
  • player: add --auto-window-resize
  • console.lua: add a script-opt for the border size
  • player: add --drag-and-drop option
  • vo_gpu_next: add --corner-rounding option
  • player: add more precise sub fallback options --subs-fallback and --subs-fallback-forced
  • player: add --input-cursor-passthrough option
  • TOOLS/lua/autoload: allow extending ext sets from script-opts
  • demux_playlist: add --directory-mode option to control recursive directory loading
  • vo_gpu_next: add --target-contrast and --hdr-contrast-recovery/smoothness
  • Changed:
  • vd_lavc: add "auto" choice for --vd-lavc-dr and make it the default
  • (notably this change was also backported to v0.35.1)
  • wayland: add auto choice to --wayland-configure-bounds
  • image_writer: change --screenshot-tag-colorspace default to yes
  • vo_gpu_next: expose --tone-mapping=st2094-40 and st2094-10
  • wayland: make --wayland-edge-pixels-pointer default to 16
  • options: enable scripts related opts also with cplugins
  • player/screenshot: add filename return field
  • options: set --subs-with-matching-audio to off by default
  • options: default --slang to auto, which uses the settings of the user's OS
  • vd_lavc: allow user to specify a priority list in --hwdec
  • vd_lavc: map hwdec=yes to hwdec=auto-safe and change ctrl+h to use auto-safe
  • Deprecated:
  • drm: deprecate --drm-atomic (now always enabled)
  • Removed:
  • vo_gpu_next: remove --tone-mapping-crosstalk
  • Fixes and Minor Enhancements:
  • ao_pipewire: log version and other useful debug info
  • wayland: error out if essential protocol support is missing
  • wayland: add support for content-type protocol
  • 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
  • hwdec_drmprime: support yuv420p format
  • ao_pipewire: properly clean up resources
  • vo/{sixel,tct}: use the alternate buffer to restore terminal
  • vo_sixel: add option to skip clear while drawing
  • filter_kernels: fix kaiser
  • hwdec/d3d11va: fix a possible memory leak
  • external_files: set log level for potential files to trace
  • external_files: recognize webp files as cover art
  • 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
  • demux: boost read EBU R128 gain values to ReplayGain's reference level
  • version.py: bump copyright year
  • TOOLS/umpv: support shell-quotes in $MPV
  • vulkan: fix build error for 32bit builds with clang
  • TOOLS/lua/autoload: improve and optimize the natural sorting
  • vo_wlshm: properly support video panscan
  • vo_dmabuf_wayland: support panscan and panning
  • ra_d3d11: fix incorrect type
  • meson: also search for rst2html with .py extension
  • audio: fix crash during uninit with ao_lavc
  • wayland: only warn about GNOME when actually missing idle inhibit support
  • mp_image: fix XYZ primaries default
  • msg: preserve early messages when log-file is set in mpv.conf
  • x11: fix issue with xpresent timing feedback
  • meson: reuse libmpv objects for cplayer to save 50% of compile steps
  • player/client: support observing sub-properties
  • m_property: implement new deletion operation on properties
  • vo_lavc: set frame rate on encoder to fix non-conforming outputs
  • player/video: don't resync audio if video is an image
  • stream: accept webdav:// and webdavs:// urls
  • video/image_writer: avoid stripping colorspace info when writing image
  • stats.lua: display HDR peak in nits
  • image_pool: fix memory leak with frames
  • options: transition from OPT_FLAG to OPT_BOOL
  • vd_lavc: sort hwdecs without hwdevices last for autoprobing
  • ytdl_hook: don't overwrite force-media-title
  • lua: use user-data for interop between osc.lua and console.lua
  • vo: fix race condition with redraw requests
  • various: more fixes to ensure correct playback of XYZ colorspace
  • ytdl_hook: fix fragment-related issue that broke YouTube DASH playback
  • command: expose hls-bitrate and program-id as track-list subproperties
  • ao_pipewire: use realtime scheduling for data thread
  • auto_profiles: check for non-existent properties
  • d3d11: retry device creation without debug, if SDK is not available
  • win32: follow Windows settings and update dark mode state
  • ytdl_hook.lua: fix clip start and end
  • hwdec_drmprime: support custom rpi4_8 and rpi4_10 formats
  • sub: fix UPDATE_SUB_HARD for converted and external subtitles
  • charset_conv: fix memory corruption in mp_iconv_to_utf8
  • options: read config file as stream
  • wayland: improve guessing when mpv is focused
  • player: always try to detect subtitle language from file name
  • vo: fix mp_frame_perf thread safety
  • lua: read_options: find script-opts prefix at index 1 exactly
  • path: handle URLs consistently in mp_basename
  • ao_wasapi: remove infinite loop hack in AOCONTROL_UPDATE_STREAM_TITLE
  • ao_wasapi: use client name instead of hardcoded string
  • vd_lavc: fix crash if hwdec devices fail to create
  • vo_drm: fix null dereference and using closed fd
  • image_writer: respect jpeg-quality when using ffmpeg for writing
  • image_writer: add support for AVIF
  • TOOLS/lua/autoload: avoid unnecessary playlist manipulation, performance
  • various: correctly ignore cache files with --no-config
  • terminal-unix: better error detection logic
  • json: raise parse depth to 50 for the sake of utils.parse_json()
  • player: delete watch_later file only after successful load
  • wayland: fix memory leak with multiple monitors
  • vd_lavc: prefer d3d11va-copy over dxva2-copy
  • vd_lavc: fix hwdec for videos with less than less than 3 frames
  • wayland: add support for suspended toplevel state
  • draw_bmp: ensure last slice is less than total width (again)
  • console.lua: sort the output from the help command
  • vd_lavc: try other hwdecs when falling back after an hwdec failure
  • sd_ass: don't reconfigure ass on every frame (performance regression)
  • sd_ass: fix converted subtitles having too-wide borders
  • loadfile: compute audio language for sub selection when using lavfi-complex
  • wayland: fix modifier keys in certain situations
  • vd_lavc: corrections towards hwdec and swdec fallback
  • zimg: fix broken sig_peak (HDR) handling
  • screenshot: implement screenshot window in sw for most VOs
  • osc: don't add margins to osc-deadzonesize
  • vo_vaapi: fix segfault in draw_osd
  • vo_dmabuf_wayland: correctly handle force-window
  • ao_pipewire: fix error with pipewire 0.3.75 or later

New in mpv 0.35.1 (Feb 10, 2023)

  • 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 0.35.0 (Nov 14, 2022)

  • 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.
  • This release adds the Meson build system as an alternative to waf. It is supposed to be feature-complete but please report any issues you encounter.
  • 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

New in mpv 0.34.1 (Jan 4, 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 0.34.0 (Nov 4, 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 0.33.1 (Apr 6, 2021)

  • Security fix release for the 0.30 branch. Users are advised to upgrade immediately.
  • (CVE number pending)
  • Fixes and Minor Enhancements:
  • demux_mf: improve format string processing

New in mpv 0.33.0 (Nov 25, 2020)

  • 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 0.32.0 (Feb 2, 2020)

  • Features:
  • Added:
  • stream_libarchive: enable RAR5 support
  • bash completion: add initial implementation
  • cocoa-cb: add support for forcing the dedicated GPU for rendering
  • cocoa-cb: add pinch to resize window gesture
  • w32_common: support minimizing/maximizing using osc window controls
  • Changed:
  • wayland: print warning on GNOME due to serious issues with their compositor
  • player: write watch-later config even for unseekable streams
  • Removed:
  • vo_gpu: hwdec_vdpau: remove direct_mode
  • vo_gpu: hwdec_vaegl: remove support for old-style interop
  • Options and Commands:
  • Added:
  • command: add a playlist-unshuffle command
  • command: add osd-dimensions property
  • input: new PLAYONLY and PAUSEONLY keycodes
  • Changed:
  • options: change option parsing when using a single dash
  • This adds a warning for -o file.mkv and disallows the use of
  • --o file.mkv (use --o=file.mkv instead).
  • Fixes and Minor Enhancements:
  • lua: fix mp.file_info for large files
  • vo_gpu: fix crash if dither texture fails to allocate
  • wayland: unscrew up cursors, fix various issues
  • osc: usability improvements for osc window controls

New in mpv 0.31.0 (Dec 30, 2019)

  • Features:
  • Added:
  • vo_gpu/d3d11: allow configurable swapchain color space for native HDR output
  • player: add mechanisms for better logging as preperation for console.lua
  • audio: add ao_audiotrack for Android
  • input: introduce a pseudo key name that grabs all text input
  • wayland: add grab zone for resizing window with mouse
  • osc: implement pseudo client side decorations via OSC
  • vf_gpu: add video filter using vo_gpu's renderer
  • added console.lua: interactive REPL for input commands
  • osc: display Santa hat for idle logo in December
  • vd_lavc: add option to autoselect known good hwdec implementations
  • mac: replace old event tap for media key support with MediaPlayer
  • Changed:
  • input: disable gamepad code by default
  • vo_gpu: allow vdpau usage under EGL
  • stream, demux: redo origin policy
  • Removed:
  • mac: remove Apple Remote support
  • client API: deprecate tick event
  • Options and Commands:
  • Added:
  • vo_gpu/d3d11: add --d3d11-output-csp for configuring swap chain color space
  • command: add command-list property
  • command, input: add input-bindings property
  • command: add --window-maximized and make --window-minimized settable
  • command: add property returning hidpi scale
  • command, lua: add a way to share data between scripts
  • client API, lua: add new API for setting OSD overlays
  • Changed:
  • add a builtin "sw-fast" profile, which restores performance settings
  • for software video conversion. These were switched to higher quality.
  • This affects video outputs like vo_x11 and vo_drm, and screenshots.
  • options: make --show-profile without parameters list all profiles
  • wayland: support for --hidpi-window-scale option
  • stream_lavf: set --network-timeout to 60 seconds by default
  • x11: scale window-scale by DPI
  • Deprecated:
  • deprecate --input-file
  • deprecate --video-sync=display-adrop
  • deprecate all input section commands
  • deprecate --display-fps, replaced by --override-display-fps
  • Removed:
  • remove deprecated --playlist-pos alias
  • Fixes and Minor Enhancements:
  • vo_drm, vo_x11: allow use of zimg
  • vo_sdl: Support mouse wheel input, Improve mouse button input
  • video: fix track switching work for external images
  • vo_gpu: fix infinite scaler reinit spam
  • f_output_chain: fix possible crash when changing filters
  • vo_gpu: opengl: add hack for ancient Mesa/GLX
  • demux_lavf: export demuxer_id for more formats which have it
  • lua: make later key bindings always have higher priority
  • drm_common: fix display FPS estimation for interlaced modes
  • vo_drm: fix incorrect pixel format possibly being picked for 30-bit
  • zsh completion: fix pcre usage to really be optional
  • options: increase consistency between list options and document them
  • osc: reduce unnecesary CPU usage by using property notifications

New in mpv 0.30.0 (Nov 4, 2019)

  • Features:
  • 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 0.29.1 (May 17, 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.
  • Options and Commands:
  • Added:
  • --cocoa-cb-sw-renderer to control whether or not to fall back on software rendering on macOS.

New in mpv 0.29.0 (Jul 23, 2018)

  • FEATURES:
  • Added:
  • ao/openal: Add better sample format and channel layout selection
  • ao/openal: Add support for direct channels output
  • cocoa-cb: initial implementation via opengl-cb API
  • context_drm_egl: Introduce 30bpp support (requires Mesa 18.0.0_rc4 or later)
  • osx: add some more menu bar items as suggested by Apples's HIG
  • vo_gpu: make screenshots use the GL renderer (#5498, #5240)
  • x11: support Shift+TAB as an input key bind (#5849)
  • ytdl_hook: support native dash demuxer, if present
  • Changed:
  • ao_alsa, ao_pulse: reduce requested buffer size
  • audio: change format negotiation, remove channel remix fudging
  • client API: deprecate opengl-cb API and introduce a replacement API
  • demux: lower demuxer cache default sizes from 400MB/400MB to 50MB/150MB
  • osx: always deactivate the early opengl flush on macOS
  • scripting: change when/how player waits for scripts being loaded
  • vo_gpu: various improvements to HDR peak detection
  • vo_gpu: various improvements to HDR tone mapping
  • wayland_common: update to stable xdg-shell
  • ytdl_hook: parse youtube playlist urls to set start index if --ytdl-raw-option=yes-playlist= is specified
  • Deprecated:
  • af_lavrresample: deprecate this filter
  • Removed:
  • build: drop support for SDL1 (only applied to ao_sdl)
  • OPTIONS AND COMMANDS:
  • Added:
  • add a number of --audio-resample-* options, which should from now on be used instead of --af-defaults=lavrresample:
  • ao/openal: --openal-direct-channels
  • command: add --osd-on-seek option defaulting to bar
  • command: add a change-list command (#5435)
  • options: add --http-proxy
  • options: add a builtin low-latency profile
  • vaapi: add option to select a non-default device path with --vaapi-device (#4320)
  • video: add option to reduce latency by 1 or 2 frames
  • vo_gpu: introduce --target-peak (#5521)
  • Changed:
  • command: change cycle-value command behavior (#5772)
  • config: replace config dir lua-settings/ with dir script-opts/
  • options: --lavfi-complex now requires uniquely named filter pads.
  • options: --ytdl is now always enabled, even for libmpv
  • options: make --deinterlace=yes always deinterlace (#5219)
  • options: slightly improve filter help output for lavfi bridge
  • vo: rename --vo=opengl-cb to --vo=libmpv
  • Deprecated:
  • encoding: deprecate a bunch of obscure options (--ovoffset, --oaoffset, --ovfirst, --oafirst)
  • options: deprecate --vf-defaults and --af-defaults
  • osx: --gpu-context=cocoa with --gpu-api=opengl is now deprecated in favour of --vo=libmpv
  • Removed:
  • command: remove an old compatibility hack that allowed CLI aliases to be set as property, deprecated in 0.26.0
  • input: remove legacy command handling for MPlayer commands that were deprecated in 2013
  • options: drop --opensles-sample-rate, as --audio-samplerate should be used if desired
  • options: drop deprecated --videotoolbox-format, --ff-aid, --ff-vid, --ff-sid, --ad-spdif-dtshd, --softvol options
  • options: remove --video-stereo-mode
  • options: remove deprecated ao/vo auto profiles
  • options: remove the following encoding options: --ocopyts (now the default, old timestamp handling is gone), --oneverdrop (now default), --oharddup (you need to use --vf=fps=VALUE), --ofps, --oautofps, --omaxfps
  • FIXES AND MINOR ENHANCEMENTS:
  • HIDRemote: fix volume buttons on macOS 10.13 (#5721)
  • TOOLS/autoload: Fix broken "disabled" option
  • TOOLS/autoload: be more robust with slow directory listings (#5618)
  • ao_sdl: fix default buffer size
  • build: add static libraries to libmpv.pc
  • build: bump waf to 2.0.9 (fixes Python 3.7 compatibility)
  • build: manually add standard library search paths for linking (#5791)
  • common: round all integer times to milliseconds
  • demux, player: fix playback of sparse video streams (w/ still images)
  • demux: support for some kinds of timed metadata (e.g. ICY)
  • demux_mkv: add V_AV1 identifier for AV1
  • demux_mkv: support Meridian Lossless Packing in Matroska (#5923)
  • display additional metadata tags during video playback
  • drm_atomic: Fix memory leaks in drm_atomic_create
  • enable cache for FUSE filesystems on OpenBSD and FreeBSD
  • gpu: prefer 16bit floating point FBO formats to 16bit integer ones
  • hwdec_vaegl: Fix VAAPI EGL interop used with gpu-context=drm
  • input.conf: use exact value for [ binding, which does the inverse of ]
  • input: add a keybinding to toggle hardware decoding
  • input: minor additions to default key bindings (#973)
  • osc: fix accidentally skipping files when seeking with slider
  • player: fix strange behavior on edition switching
  • player: fix track autoselection of external files yet again
  • terminal-unix: stop trying to read when terminal disappears (#5842)
  • video: actually wait for last frame being rendered on EOF
  • video: fix --video-rotate in some cases
  • video: fix crash with vdpau when reinitializing rendering (#5447)
  • vo_gpu: fix anamorphic screenshots (#5619)
  • vo_vdpau: fix resizing and rotation problems

New in mpv 0.28.2 (Feb 19, 2018)

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

New in mpv 0.28.1 (Feb 14, 2018)

  • FIXES AND MINOR ENHANCEMENTS:
  • This release fixes CVE-2018-6360:
  • ytdl_hook: whitelist protocols from urls retrieved from youtube-dl (#5456)

New in mpv 0.28.0 (Jan 5, 2018)

  • 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
  • ytdl_hook: don't prepend ytdl:// to non-youtube links in playlists (#5003)

New in mpv 0.27.0 (Sep 17, 2017)

  • FEATURES:
  • Added:
  • 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 (#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:
  • macOS: add --no-native-fs option to disable the native macOS fullscreen (#4014)
  • player: add --track-auto-selection option
  • 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
  • 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:
  • TOOLS/autocrop.lua: fix cropdetect black limit for 10-bit videos
  • TOOLS/lua/autodeint: update to lavfi-bridge
  • TOOLS/lua/status-line: improve and update
  • af_lavrresample: don't call swr_set_compensation() unless necessary (#4716)
  • ao_oss: fix period_size calculation (#4642)
  • ao_rsound: allow setting the host
  • audio: fix spdif mode
  • filter_kernels: correct spline64 kernel
  • macOS: fix media keys input when other Apps steal the priority (#4834)
  • macOS: fix the support of multiple renderers (GPU switch) (#2371)
  • macOS: remove the standard "Show Tab Bar" menu item
  • options: fix --include (#4673)
  • player: fix --end with large values (#4650)
  • player: fix confusion in audio resync code (#4688)
  • player: make refresh seeks slightly more robust (#4757)
  • player: readd smi subtitle extension (#4626)
  • vd_lavc: change auto-probe order to prefer cuda over vdpau-copy
  • vd_lavc: fix device leak with copy-mode hwaccels (#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 (#4720)
  • video: increase --monitorpixelaspect range
  • vo_opengl: adjust the rules for linearization (#4631)
  • vo_opengl: scale deband-grain to the signal range
  • vo_opengl: tone map on the maximum signal component
  • x11: fix that window could be resized when using embedding (#4784)
  • ytdl_hook: resolve relative paths when joining segment urls (#4827)
  • ytdl_hook: support fragments with relative paths, fixes segmented DASH

New in mpv 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
  • 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
  • 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 0.25.0 (Apr 27, 2017)

  • This release drops support for OS X 10.7 and earlier.
  • Support for some optical media functionality (DVD/CD) is now disabled by default.
  • More parts of the player are now licensed under LGPL. In particular:
  • OSD symbol font
  • ass_mp, sd_ass
  • common.h
  • demux/packet
  • demux_mkv (with minor exceptions), ebml, matroska.h
  • sd_lavc
  • sub/osd
  • 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
  • macOS: initial Touch Bar support
  • 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
  • macOS: add --ontop-level option for modifying ontop window level (#2376, #3974)
  • macOS: add key mappings for previous and next Media Keys (#4204)
  • macOS: add option to force dedicated GPU (#3242)
  • macOS: fix autofit options on HiDPI resolutions without HiDPI scaling (#4194)
  • macOS: fix black edges on live resize
  • macOS: fix cursor hiding in the Dock area and top of the screen
  • macOS: fix event propagation of menu bar item key shortcuts
  • macOS: fix first responder when borderless window is used
  • macOS: fix key input in certain circumstances
  • macOS: fix retrieval of non-fullscreen window size, also while animating (#4323)
  • macOS: fix scroll wheel input with Shift modifier (#3506)
  • macOS: improve bundle environment variable handling (#2061)
  • macOS: make window draggable on init
  • macOS: only move window into screen bounds when changing screens (#4178)
  • macOS: only report mouse movements when window is not being dragged (might have triggered OSC and other scripts)
  • macOS: properly restore shell state when quitting from the Dock's context menu
  • macOS: refactor mouse events and cursor visibility (#1817, #3856, #4147)
  • macOS: set background of the title bar from black to white
  • 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 0.24.0 (Feb 13, 2017)

  • FEATURES
  • Added:
  • macOS: add border cycling (#2430)
  • 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)
  • macOS: consistent normalization when searching for external files (#4016)
  • macOS: don't change Space on quit in fullscreen (#3957)
  • macOS: don't constrain window frame for fullscreen (#4044)
  • macOS: don't init displaylink on reconfig (#4031)
  • macOS: fix build on OS X 10.9 (#3946)
  • macOS: fix color profile retrieval
  • macOS: fix displaylink refresh rate retrieval
  • macOS: fix dropping of files and URLs (#4036)
  • macOS: fix handling of geometry option (#3867)
  • macOS: fix unwanted behavior with window level other than the default (#1757, #1884)
  • macOS: fix window size in certain circumstances
  • macOS: properly recover from toggleFullscreen fail (#4035)
  • 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 0.22.0 (Nov 29, 2016)

  • FEATURES:
  • Added:
  • audio/out: add AudioUnit output driver for iOS
  • demux_mkv: parse Matroska colorimetry metadata
  • filter_kernels: add ability to taper kernels/windows, add tukey window
  • osc: add seekbarstyle=knob (#2365)
  • video/out: add tct as modern caca alternative for true-color and 256-color terminals
  • video: add --hwdec=vdpau-copy mode
  • Deprecated:
  • vf_vdpaurb: deprecated in favor of --hwdec=vdpau-copy
  • OPTIONS AND COMMANDS:
  • Added:
  • --opengl-early-flush=auto
  • --scale-taper, --scale-wtaper
  • --scale-wblur
  • macOS: --hidpi-window-scale (#3716)
  • osc: add script message handlers for chapter/track/playlists
  • Fixes and Minor Enhancements:
  • Apply --autofit-larger after --autofit-smaller (#3753)
  • Set subtitle track title to indicate hearing/visual impaired tracks
  • ao_alsa: disable chmap API use for mono/stereo (#2905, #3045)
  • build: add required failure message for libavfilter check (#3692)
  • build: fix compilation with mingw-w64/Clang (#3800)
  • build: make VideoToolbox available on iOS
  • command: fix reset-on-next-file=all and tv-freq option (#3708)
  • command: if window-scale can't be set properly, set it as option (#3724)
  • demux_mkv: don't recursively resolve timeline for opened reference files
  • demux_mkv: fix ordered chapter sources with ordered editions
  • opengl: compile against iOS OpenGLES implementation
  • 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 (#3691)
  • osc: fix crash with no chapters
  • osc: fix crashes when dragging seekbar across file changes (#3210)
  • 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 (#3737)
  • 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 (#3770)
  • player: removing last playlist entry while looping should not stop (#3808)
  • player: show subtitles on VO if --force-window is used (#3684)
  • player: speed up audio/video re-sync when there is a huge delay
  • vdpau: fix hwdec uninit (#3788)
  • vo_opengl: blend against background color for --alpha=blend
  • vo_opengl: context_rpi: fix stdatomic usage (#3699)
  • vo_opengl: fix --blend-subtitles handling (#3773)
  • vo_opengl: fix redrawing with hardware decoding (#3773)
  • vo_opengl: partially re-enable glFlush() calls (#3670)
  • ytdl_hook: sort chapters by time

New in mpv 0.21.0 (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)
  • hwdec: Add support for CUDA and cuvid/NvDecode (mostly useful on Linux where VDPAU still lacks HEVC Main 10 support; keep using DXVA2 on Windows)
  • osc: add right-click behavior to playlist and chapter buttons
  • osc: add user-alterable margin for top/bottombar
  • rpi: add --hwdec=rpi-copy (#3604)
  • sd_lavc: enable teletext
  • vaapi: support drm devices when running in vaapi-copy mode
  • vd_lavc: Add hwdec wrapper for crystalhd
  • vo_opengl: add hw overlay support and use it for RPI
  • vo_opengl: basic mali fbdev support
  • vo_opengl: rpi: merge vo_rpi features
  • 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 (#977)
  • 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 (#3387)
  • 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 (#3591)
  • 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 (#3615) settable at runtime
  • vo_opengl: rename 3dlut-size to icc-3dlut-size
  • vo_drm: change CLI options:
  • Change connector selection to accept human readable names (such as eDP-1, HDMI-A-2) rather than arbitrary numbers.
  • Change GPU selection to accept GPU number rather than device paths.
  • Merge connector and GPU selection into one --drm-connector.
  • Add support for --drm-connector=help.
  • Add support for --drm-* in EGL backend.
  • 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
  • vo_xv: replace no-colorkey with ck-method=none
  • 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
  • vo_opengl: deprecate 'drm-egl' backend and introduce 'drm' instead
  • FIXES AND MINOR ENHANCEMENTS:
  • TOOLS/zsh.pl: die if we can't parse main options
  • TOOLS/zsh.pl: don't filter files by extension (#2273)
  • ao_alsa: try to fallback to "hdmi" before "iec958" for spdif
  • ao_rsound: fix compilation (#3501)
  • 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 (#3610)
  • 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 (#3446)
  • 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 (#3598)
  • macOS: fix fullscreen regression on 10.11 and newer (#3364)
  • mp_image: fix clearing to black with p010 format
  • osc: Fix scaling issues when toggling fullscreen (#3429)
  • osc: align text vertically in top/bottombar (#2093)
  • 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 (#3591)
  • 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_file: don't use poll() on directories (would hang on macOS; #3530, #3649)
  • stream_lavf: fix determining seekability (#1701)
  • sub: actually apply text alignment options to non-ASS subtitles
  • terminal-win: support modifier keys in console input (#3625)
  • vo_drm: fix segfault when using invalid card
  • vo_opengl: apply 90Ā° rotation to chroma texture size (#3568)
  • vo_opengl: fix incorrect video rendering after vdpau preemption recovery
  • vo_opengl: partially fix dumb-mode cropping with rotation
  • vo_opengl: rpi: use overlay for yuv420p too
  • w32_common: initialize playback status as soon as possible (#3482)
  • wayland: reject resize events with either dimension being 0 (#3679)
  • x11: fix external fullscreen update (#3570)
  • 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 0.20.0 (Aug 29, 2016)

  • OPTIONS AND COMMANDS:
  • Added:
  • aspect: add --video-unscaled=downscale-big
  • player: add --image-display-duration option to control duration of image display (#3425)
  • 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 (#3445)
  • 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 (#3456)
  • demux: fix undefined behavior with ogg metadata update (#3451)
  • player: make looping slightly more seamless
  • player: refresh very low framerate video on filter changes (#3435)
  • stream_memory: disable stream cache
  • vf_rotate: allow arbitrary rotation (#3434)
  • vo: be more trusting to estimated display FPS (#3433)
  • w32_common: use hooks to detect parent window resize
  • x11: work around mutter fullscreen issue (#2072)

New in mpv 0.19.0 (Aug 17, 2016)

  • Build System Changes:
  • build: add --htmldir option
  • build: always require atomics
  • wscript: add proper unversioned SONAME for Android
  • Features:
  • New:
  • client API: add stream_cb API for user-defined stream implementations (bumps client API version to 1.22)
  • vf_d3d11vpp: add video processor selection
  • videotoolbox: add --hwdec=videotoolbox-copy for h/w accelerated decoding with video filters
  • vo_opengl: add a tscale=linear direct implementation
  • Removed:
  • audio/filter: remove delay audio filter
  • Options and Commands:
  • Added:
  • command: add filename/no-ext sub-property that returns filename without extension (#3404)
  • command: add properties for HDR metadata
  • command: add replaygain information properties to track-list
  • options: add vp9 to --hwdec-codecs
  • player: add --audio-stream-silence
  • player: add --audio-wait-open
  • player: add --no-autoload-files
  • videotoolbox: add yuv420p to --videotoolbox-format
  • Changed:
  • options: un-restrict --audio-delay
  • use - as command-name separator everywhere
  • vo_opengl: reduce default 3dlut-size to 64x64x64 (since accuracy is improved)
  • Deprecated:
  • deprecate "balance" option/property (no replacement)
  • Fixes and Minor Enhancements:
  • Windows: don't wait for GUI thread when polling for events (#3393)
  • af_lavcac3enc: error out properly if encoding fails
  • af_volume: don't let softvol overwrite af_volume volumedb sub-option
  • ao_pulse: fix some volume control rounding issues
  • ao_wasapi: in exclusive mode, do not output multichannel by default
  • audio: add heuristic to move auto-downmixing before other filters
  • audio: show an osd bar when changing ao-volume
  • demux: make ALBUM replaygain tags optional (#3405)
  • demux_raw: fix small typo to add s16be support
  • demux_timeline: restore mkv edition switching
  • libarchive: sanitize non-UTF8 archive entries
  • macOS/vo_opengl: fix crash when glctx is NULL during init (#3360)
  • player: disable display-sync with spdif transcoding
  • player: do not cut off terminal status line if it contains newlines (#3340)
  • player: fix display-sync timing if audio resumes slowly
  • player: improve instant track switching (#3392)
  • player: improve non-hr seeking with external audio tracks
  • player: offset demuxer on start/seek properly with audio/sub delay
  • player: sync audio as well when enabling it mid-stream
  • stream/stream_bluray: display list of available titles in verbose mode
  • sub: don't potentially discard too many subtitles on seek
  • video: respect --deinterlace=auto
  • vo_direct3d: add missing header (fixes Cygwin build)
  • vo_opengl: angle: try D3D9 when D3D11 fails eglInitialize
  • vo_opengl: angle: use WARP if there are no hw adapters (makes it work on Windows 7 without hardware-accelerated graphics)
  • vo_opengl: increase 3DLUT accuracy at smaller LUT sizes
  • vo_opengl: remove the 3dlut-size npot2 restriction
  • vo_wayland: fix high CPU usage due to busy polling
  • wayland_common: clip window size to the display output size
  • wayland_common: fix crashes when switching to fullscreen before the video output is fully initialized
  • wayland_common: fix fullscreen image switching bug
  • wayland_common: prevent black bars on most non-native aspect ratios
  • wayland_common: remove untested/unusable wayland dnd code
  • win32: mpv.rc: re-add version info
  • x11: skip ICC update on every window move
  • ytdl: Error out with http_dash_segments (unsupported for now)

New in mpv 0.18.1 (Jul 10, 2016)

  • FEATURES:
  • New:
  • d3d: implement screenshots for --hwdec=d3d11va
  • vo_opengl: add output_size uniform to custom shader
  • vo_opengl: implement the Panasonic V-Log function (#3157)
  • vo_opengl: implement ARIB STD-B68 (HLG) HDR TRC
  • OPTIONS AND COMMANDS:
  • Changed:
  • command: pack sub image data in overlay-add command
  • Deprecated:
  • options: deprecate --heartbeat-cmd
  • audio: deprecate --softvol
  • Removed:
  • audio: drop --softvol=no and --softvol=auto (#3322)
  • Fixes and Minor Enhancements:
  • video: fix deinterlace filter handling on pixel format changes
  • x11: silence xdg-screensaver
  • vo_opengl: angle: update the swapchain on resize (#3301)
  • vo_opengl: error out gracefully when trying to use FBOs without FBO API
  • vd_lavc: expose mastering display side data reference peak (improves results with HDR content)
  • vo_opengl: generalize HDR tone mapping mechanism (#3293)
  • vo_opengl: don't constantly resize the output FBO
  • vo_opengl: use ringbuffer of PBOs
  • Windows: make WM_NCHITTEST simpler and more accurate
  • ao_oss: do not add an entry to audio-device-list if device file missing
  • dec_audio: fix segment boudnary switching
  • ao_lavc, vo_lavc: Migrate to new FFmpeg encoding API
  • vo_opengl: explicitly use main framebuffer when reading window content (#3284)
  • vo_xv: fix behavior with odd sizes
  • audio: insert auto-inserted filters at end of chain
  • x11: add missing FocusChangeMask (disables key repeat when losing focus while a key is down)
  • ao_coreaudio: error out when selecting invalid device
  • ad_lavc: work around misbehavior of some FFmpeg decoders like wmapro (#3297)
  • player: cut off status line on terminal width

New in mpv 0.18.0 (Jun 25, 2016)

  • Build System Changes:
  • build: Do not link to libGL for egl-drm
  • build: also use the iconv check on FreeBSD
  • build: don't install tests, only build them
  • build: re-enable encoding mode by default
  • vo_opengl: hwdec: remove build-dependency on dxva2 (#3150)
  • wscript: make at least 1 OpenGL output mandatory
  • Features:
  • New:
  • csputils: add SMPTE ST2084 support
  • demux_mkv: support Matroska webvtt (#3247)
  • demux_playlist: read directories recursively
  • stream_memory: add hex:// protocol
  • vf_crop: support opaque hardware decoding formats
  • vf_d3d11vpp: add a D3D11 video processor filter
  • vo_opengl: D3D11VA + ANGLE interop
  • vo_opengl: add an angle-es2 backend
  • vo_opengl: angle: dynamically load ANGLE
  • vo_opengl: d3d11egl: native NV12 sampling support
  • vo_opengl: enable color management on GLES
  • vo_opengl: implement HDR (SMPTE ST2084)
  • vo_opengl: implement tone mapping algorithms
  • vo_opengl: make PBOs work on GLES 3.x
  • vo_opengl: support external user hooks, enhancing the flexibility of user shaders
  • vo_opengl: vdpau interop without RGB conversion
  • wayland: implement HIDPI support
  • Removed:
  • vo_opengl: remove nnedi3 prescaler (replaced by user shaders)
  • vo_opengl: remove prescaling framework with superxbr prescaler (replaced by user shaders)
  • Options and Commands:
  • Added:
  • Windows: make taskbar progress indication optional (#2535)
  • af_lavcac3enc: make encoder configurable
  • command: add playlist-pos-1 property (#2828)
  • command: introduce hwdec-current and hwdec-interop properties.
  • options: add --fit-border video option (currently Windows only)
  • video: add --hwdec=auto-copy mode
  • vo_opengl: always autoselect ANGLE as backend if available
  • vo_opengl: expose performance timers as properties
  • x11: add --x11-bypass-compositor=never
  • x11: extend --x11-bypass-compositor with fs-only option (#2582)
  • Changed:
  • command: allow setting panscan etc. properties if no video is active
  • command: don't seek immediately when setting a-b loop while paused
  • command: if only ab-loop-b is set, loop from start of file
  • options: --geometry: center window position after applying size (#2397)
  • player: loop on end of file if ab-loop-b is unset
  • sd_add: replace --sub-ass=no with --ass-style-override=strip
  • Removed:
  • vo_opengl: remove non-working rgb/rgba FBO formats
  • Fixes and Minor Enhancements:
  • TOOLS/zsh.pl: add .f4v extension in zsh completions
  • TOOLS/zsh.pl: complete --audio-device
  • Windows: center window on original window center on resize to fit screen
  • Windows: fix size calculations for window resize (#2935)
  • Windows: fix wrong behavior with window-scale when window size exceeds screen size
  • Windows: make VOCTRL_SET_UNFS_WINDOW_SIZE resize the window around its center (#3164)
  • af_lavcac3enc: fix custom bitrates
  • ao_alsa: add more workarounds for hardware with broken drivers (e.g. ODROID-C2)
  • ao_opensles: remove 32-bit audio formats (not supported by Android)
  • cocoa: fix actual display refresh rate retrieval
  • cocoa: use displaylink without manually tracking the display id (#2392)
  • command: improve playlist* properties change notifications (#3267)
  • command: slightly nicer OSD list formatting
  • compatibility with recent FFmpeg APIs
  • d3d: fix hardware decoding of most MPEG2 things
  • d3dva: move Intel_H264_NoFGT_ClearVideo to lower priority (#3059)
  • demux_mkv: better resync behavior for broken google-created webms
  • demux_mkv: fix seeking with files that miss the first index entry
  • demux_playlist: recognize m3u8 as playlist extension (#3154)
  • input: fix parsing multiple input command prefixes
  • lcms: don't warn/error on 3dlut cache misses
  • lcms: improve black point handling (especially BT.1886)
  • macOS: handle multiple dropped files on the window (#3076)
  • player: always show the first frame in DS mode
  • player: assume video forwards timestamps jumps only with some formats (#3027)
  • player: do not update OSD all the time when paused
  • player: eagerly redraw OSD when seeking with coverart
  • player: fix use-after-free with --screenshot-directory (#3049)
  • player: force VO reconfig when unselecting video track
  • player: really start audio only once video is ready
  • sd_lavc: work around bug in older FFmpeg releases (#3109)
  • stream_cdda: enable cache by default
  • sub: fix --sub-gauss
  • vd_lavc: better hwdec wrapper decoder selection
  • vo_opengl: EGL: fix hwdec probing
  • vo_opengl: angle: avoid fullscreen FBO copy for flipping
  • vo_opengl: angle: enable DirectComposition (lowers vsync jitter)
  • vo_opengl: angle: prevent DXGI hooking Alt+Enter
  • vo_opengl: avoid outputting ultra-wide-gamut by default
  • vo_opengl: correctly disable interpolation if tscale can't be used
  • vo_opengl: fix bicubic_fast in ES mode
  • vo_opengl: fix d3d11 hardware decoding probing on Windows 7
  • vo_opengl: improve scale=oversample performance
  • vo_opengl: make the screen blue on shader errors
  • vo_opengl: partially fix 0bgr format support
  • vo_opengl: possibly update icc profile after changing options
  • vo_opengl: request core profile on X11/EGL too
  • vo_opengl: require at least ES 3.0 for float textures
  • vo_opengl: vdpau: fix certain cases of preemption recovery failures
  • vo_rpi: attempt to survive display mode changes
  • vo_rpi: fix destroying overlays (#3100)
  • vo_rpi: wait for vsync with a timeout
  • vo_sdl: fix pixel formats.
  • vo_xv: Handle incorrect size returned by Xv(Shm)CreateImage (#320)
  • wayland: correctly report display refresh rate
  • wayland: use the advertised size in fullscreen (#3021, #2657)
  • x11: tell GNOME to use dark window decorations
  • ytdl_hook: fix brightcove urls
  • ytdl_hook: just check if protocol is rtmp (#3090)
  • ytdl_hook: support multi-arc subtitles
  • 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 0.17.0 (Apr 12, 2016)

  • Build System Changes:
  • install symbolic SVG icon
  • build: allow plain-gl build on OSX (#2980)
  • build: disable encoding mode by default (uses deprecated FFmpeg APIs)
  • New:
  • csputils: add DCI-P3 colorspace
  • d3d11va hwdec
  • demux: add null demuxer
  • ipc: add Windows implementation with named pipes
  • mediacodec decoder hwdec wrapper
  • vo_opengl: add dxva2 interop to angle backend
  • vo_opengl: generate 3DLUT against source and use full BT.1886 (#2815)
  • Added:
  • command: add cache-speed property
  • command: add keepaspect property
  • command: add video-stereo-mode property (#2994)
  • command: export canonical ffmpeg version identifier (ffmpeg-version)
  • command: export lists of all codecs (decoder-list and encoder-list)
  • osd: add italic font for osd (#3031)
  • Changed:
  • aspect: make video-zoom logarithmic (#3004)
  • command: export more information under track-list
  • ipc: rename --input-unix-socket to --input-ipc-server
  • vo_opengl: decrease default superxbr-edge-strength
  • vo_opengl: rename prescale to prescale-luma
  • Fixes and Minor Enhancements:
  • TOOLS/zsh.pl: don't complete URLs by default unless no files match (#2892)
  • ad_lavc, vd_lavc: support new Libav decoding API
  • cache: disable useless "Cache is not responding" warning (#3019)
  • demux: delay bitrate calculation on packets with unknown timestamps (#2903)
  • demux_timeline: set correct seekable flags (#2898)
  • input: accept plain text for drag and drop (#2945)
  • input: do not force double-click emulation for artificial commands (#2899)
  • lavc_conv: fix Libav srt subtitles (#2888)
  • player: add missing audio reconfig events (#2929, #2920)
  • player: add wv to list of external audio file extensions
  • player: fix --stream-dump exit code (#2848)
  • player: fix breakage when combining 3D and rotate auto-filters
  • playlist: improve shuffle algorithm (better uniformity)
  • sub: interpret "text" subtitles as srt
  • vo_opengl, osd: allow osc.lua to react faster on resizes
  • vo_opengl: GLX: try to create 3.3 core profile context (#2938)
  • vo_opengl: draw transparency checkerboard after upscaling
  • vo_opengl: fix operation without GL_ARB_texture_rg
  • vo_opengl: improve superxbr algorithm
  • vo_opengl: only open one OpenGL/DX interop handle when using dxva2 (fixes interop with AMD drivers)
  • wayland: don't set fs mode on every configure (#2817)
  • x11: do not set _NET_WM_BYPASS_COMPOSITOR by default (#2997)
  • ytdl_hook: handle optional format_note

New in mpv 0.16.0 (Feb 29, 2016)

  • FEATURES:
  • New:
  • Initial Android support
  • ao: initial OpenSL ES support
  • dxva2: support HEVC Main 10
  • osc: add always-on mode and unify visibility mode (always/never/auto)
  • player: add complex filter graph support
  • rpi: add mpeg-4, vc-1 decoding support
  • stream_dvb: support frontends with multiple delivery systems (e.g. DVB-C/DVB-T combo cards)
  • vo_opengl: 10 bit support with ANGLE
  • vo_opengl: add KMS/DRM VAAPI hardware decoding interop
  • vo_opengl: dxinterop: add dxva2 passthrough
  • vo_rpi: add geometry handling (--geometry, --autofit, fullscreen switching, etc.)
  • vo_x11: add 16bpp support
  • OPTIONS AND COMMANDS:
  • Added:
  • --lavfi-complex option for complex filter graphs
  • audio: change downmix behavior, add --audio-normalize-downmix
  • command: add vf-command and af-command commands
  • player: add --external-file option
  • vo_opengl: add interpolation-threshold sub-option
  • Changed:
  • audio: change --audio-channels default back to stereo
  • audio: remove default preference for libdcadec (decoder was merged with FFmpeg)
  • command: always allow setting volume/mute properties
  • command: show original aspect in video-aspect property too
  • input: ignore --input-cursor for events injected by input commands (issue #2750)
  • options: set fs=yes by default on RPI, and change RPI defaults handling
  • sub: implement "sub-seek 0" (issue #2791)
  • vo_opengl: default scaler-resizes-only sub-option to yes
  • Fixes and Minor Enhancements:
  • OS X/cocoa: fix charcode retrieving for accented characters
  • TOOLS/lua/ao-null-reload.lua: send ao-reload on audio-device-list change (issue #2738)
  • TOOLS/lua/autoload.lua: remove the extension prior to sort
  • Windows: fix dropping URIs (issue #2782)
  • af_lavrresample: prevent channels from being dropped, e.g. when going 7.1 -> 7.1(wide) and similar cases
  • ao_coreaudio: fix 7.1(rear) channel mapping
  • ao_openal: wipe out global context on init error (PR #2719)
  • ao_wasapi: avoid under-run cascade in exclusive mode
  • ao_wasapi: set buffer size to device period in exclusive mode
  • audio: fix spdif PCM fallback
  • build: add special openbsd case for iconv check (issue #2710)
  • command: fix NULL pointer deref in "video-codec" property (issue #2729)
  • command: fix track cycling logic (issue #2784)
  • demux: disable stream cache if no tracks are selected (issue #2692)
  • demux_mkv: add hack to fix opus gapless behavior
  • demux_mkv: support channel layout in VfW muxed PCM (issue #2820)
  • osc: fix runtime enable_osc(true/false)
  • player: fix initial audio sync in certain cases (issue #2770)
  • player: honor --force-window if video is selected, but inactive
  • player: never show "DS: (unavailable)"
  • player: restore old/correct --force-window behavior (issue #2825)
  • player: rewrite timeline/ordered chapter support
  • vaapi: fix compilation on older FFmpeg/Libav (issue #2737)
  • vdpau: force driver to report preemption early
  • video: don't wait for last video frame in the normal case (issue #2745)
  • video: fix coverart switching
  • video: slightly improve video stream switching
  • vo_opengl: add precision qualifier to usampler2D on ANGLE (issue #2761)
  • vo_opengl: default to rgba16f FBOs on ANGLE
  • vo_opengl: don't use normalized coords for debanding rectangle textures (issue #2831)
  • vo_opengl: dxinterop: fix compatibility issue with Vista
  • vo_opengl: pass the correct target to deband functions with Apple hwdec interop
  • vo_opengl: rename custom shader entrypoint from sample to sample_pixel (issue #2733)
  • x11: get current XRandR screen configuration instead of polling for new screens, too

New in mpv 0.15.0 (Jan 18, 2016)

  • Build System Changes:
  • OS X bundle: remove git sha from the Info.plist version (issue #2677)
  • add "lua51" ("51obsd") to list of possible lua names
  • add option to customize config files system path (issue #2704)
  • New:
  • vo_opengl: implement support for transparent video display on OS X (alpha=yes suboption)
  • vo_opengl: use a checkerboard pattern as background for transparent video by default
  • Added:
  • add --audio-file-paths (issue #2632)
  • player, stream_dvb: implement dvb-channel-name property, add switch binding
  • Changed:
  • vf_stereo3d: add alternating modes
  • vo_opengl: disable pbo by default for opengl-hq due to driver problems
  • vf_yadif: change defaults (issue #2539)
  • command: change heuristic for files with 1 chapter (issue #2550)
  • demux_mkv: adjust subtitle preroll defaults
  • exclude 360 from --video-rotate range (issue #2647)
  • osd: make osd-width/height properties watchable
  • Fixes and Minor Enhancements:
  • ao_pulse: check for sample rate bounds, attempt fallback (issue #2654)
  • ao_wasapi: remove volume "restore" on exit
  • demux_cue: better error resilience
  • mixer: fix volume initialization with --af=volume
  • mpv.desktop: add audio/mp4 mime type
  • player: detect audio PTS jumps, make video PTS heuristic less aggressive
  • player: make watch later/resume work when "playing" directories
  • player: reset playback abort when reloading a file (issue #2568)
  • recognize frame sequenced 3D Matroska video
  • stream_dvb: fix channel switching
  • vaapi: add VP9 profile (requires VA-API 0.38.1 or newer)
  • vo_opengl: dxinterop: prevent crash after lost device
  • vo_opengl: enable brightness/contrast controls for RGB
  • vo_opengl: fix operation on GLES 2.0
  • vo_opengl: fix operation on GLSL versions earlier than 1.30
  • vo_opengl: flip screenshot image if backend uses flipped rendering (issue #2635)
  • vo_opengl: reset nnedi3 weights properly (issue #2661)
  • vo_rpi: handle rotation
  • vo_rpi: work around firmware oddness leading to incorrect video rect
  • windows: fix fd://
  • ytdl: Include Referer header as well
  • TOOLS/zsh.pl: add .opus extension in zsh completions

New in mpv 0.14.0 (Dec 12, 2015)

  • BUILD SYSTEM CHANGES:
  • build: install scalable svg icon as well
  • vo_opengl: require --enable-gpl3 for nnedi
  • win32: enable internal pthreads wrapper by default
  • FEATURES:
  • New:
  • vo_opengl: add experimental dxinterop backend (renders with OpenGL, displays through Direct3D; broken with Intel drivers)
  • vo_opengl: add initial ANGLE support
  • windows: implement icc-profile-auto
  • windows: support taskbar button progress indicator (issue #2399)
  • Removed:
  • Windows XP support
  • demux: remove old subtitle parser (FFmpeg users are unaffected; Libav loses support for some minor formats)
  • demux_libass: remove this demuxer (libavformat takes its place)
  • stream: drop old Linux PVR support
  • OPTIONS AND COMMANDS:
  • Added:
  • command, vo: add estimated-display-fps property
  • command: add vsync-ratio property
  • command: export some per-video-frame information (issue #2444)
  • vo_opengl: make LOOKUP_TEXTURE_SIZE configurable
  • windows: add option to set VO MMCSS profile
  • Changed:
  • --sub-fix-timing now applies to ASS subtitles as well
  • command: rename vo-missed-frame-count property to vo-delayed-frame-count
  • input.conf: add default bindings for changing window scale (issue #2500)
  • videotoolbox: make decoder format customizable
  • vo_opengl: disable interpolation without display-sync
  • vo_opengl: make tscale=mitchell:tscale-clamp the default
  • vo_rpi: add an option to disable OSD
  • FIXES AND MINOR ENHANCEMENTS:
  • af_lavrresample: clamp float output to range
  • ao: disambiguate default device list entries
  • ao_alsa: filter audio device list
  • ao_alsa: list bidirectional devices too
  • ao_openal: accommodate more sample formats (issue #2494)
  • ao_openal: fix virtual speaker positioning
  • ao_wasapi: only report per-app volume in shared mode
  • ao_wasapi: work around DTS passthrough failure
  • build: make vaapi-wayland depend on gl-wayland (issue #2476)
  • demux: fix seeking in .ts
  • demux_lavf: mark ASS tracks as always UTF-8
  • demux_mkv: fix incremental indexing with single-keyframe files (issue #2498)
  • drm: fix setting up connectors
  • dxva2: reject 10 bit HEVC (issue #2516)
  • player: replace mistimed-frame-count with vsync-ratio on status line
  • sd_ass: fix secondary subtitle mode
  • various display-sync improvements
  • vo_opengl: enable NNEDI3 prescaler on OpenGL ES 3.0
  • vo_opengl: enable colormatrix even for RGB input
  • vo_opengl: fix backend autoprobing, attempt to improve GLX vs. EGL backend detection
  • vo_opengl: fix backend=x11 on Intel
  • vo_opengl: fix issues with some obscure pixel formats (e.g. rgb555)
  • vo_opengl: fix precision loss of fruit dithering matrix
  • vo_opengl: force dumb mode if RG textures are not available
  • vo_opengl: improve boundary check for polar filters
  • vo_opengl: various GLES compatibility improvements
  • vo_opengl: win32: test for exclusive mode
  • vo_opengl_cb: do not block on flipping when redrawing
  • vo_rpi: set aspect ratio
  • win32: fix console output with raw stdio functions
  • windows: try to avoid detection as exclusive fullscreen window (issue #2177)
  • x11: request bypassing compositor (issue #2502)

New in mpv 0.13.0 (Nov 10, 2015)

  • FEATURES:
  • New:
  • SVG version of the icon (with symbolic counterpart)
  • stream_libarchive: add multivolume support
  • vo_opengl: add prescaling framework along with Super-xBR and NNEDI3 (currently very slow) prescalers (issue #2230)
  • OPTIONS AND COMMANDS:
  • Added:
  • command: add mistimed-frame-count property
  • vo_opengl: add vsync-fences option
  • Changed:
  • command: make display-fps property writable
  • options: enable mpeg2 hw decoding by default if hw decoding is requested
  • vo_opengl: rename fancy-downscaling to correct-downscaling
  • vo_opengl: correct-downscaling: enable also for anamorphic clips
  • vo_opengl: rename "drm_egl" to "drm-egl"
  • vo_opengl: disable drm-egl autopickup
  • vo_opengl: never load vaapi GLX interop by default
  • FIXES AND MINOR ENHANCEMENTS:
  • ao_alsa: fix 7.1 over HDMI
  • audio: do not require full audio chain reinit for speed changes
  • rpi: add support for codecs other than h264 (mpeg2 for now)
  • vd_lavc: make hwdec fallback more tolerant
  • video: fix playback of pal8
  • video: multiple display-sync fixes
  • vo: fix no-audio mode with interpolation enabled/display-sync disabled
  • vo_direct3d: fix operation (issue #2434)
  • vo_drm: handle possible errors from sigaction
  • vo_drm: show osd in audio only mode
  • vo_opengl: do not attempt to cache frames in FBO in dumb-mode (issue #2432)
  • vo_opengl: win32: always request MMCSS for DWM
  • vo_opengl: win32: try to enable DwmFlush by default
  • vo_vdpau: check VDP_RGBA_FORMAT_A8 support
  • win32: request MMCSS "Playback" profile

New in mpv 0.12.0 (Oct 29, 2015)

  • FEATURES:
  • New:
  • vo_opengl: support new VAAPI EGL interop (requires Mesa 11)
  • vo_opengl: vaapi: add Wayland support (#478)
  • bring back the x11 video output (#2300)
  • vo_opengl: support all kinds of GBRP formats
  • Removed:
  • video: remove VDA support (VideoToolbox is preferred)
  • Behavior:
  • vo_opengl: enable X11 EGL backend by default (disabled for NVIDIA due to driver bugs)
  • ytdl: don't override user-set format in no-video mode
  • sub: adjust behavior on mismatching video/subtitle aspect ratio
  • OPTIONS AND COMMANDS:
  • Added:
  • audio: add option for falling back to ao_null
  • options: add support for client certificate authentication
  • input: add key name for U+3000 IDEOGRAPHIC SPACE (#2349)
  • player: add audio drop/duplicate mode to video-sync
  • Changed:
  • vo_opengl: remove sharpen scalers, add sharpen sub-option
  • vo_opengl: make sw suboption work without explicit backend selection (#2361)
  • command: make time properties unavailable if timestamp is unknown
  • command: do not return 0 for bitrate if unknown (make property unavailable instead)
  • vo_opengl: make the default debanding settings less excessive
  • ytdl: disable --all-subs if "sub-lang" is in raw-options
  • Removed:
  • video: remove user-controllable PTS sorting (--pts-association-mode)
  • FIXES AND MINOR ENHANCEMENTS:
  • player: fix another --force-window bug (#2339)
  • player: add wav to list of external audio file extensions (#2378)
  • ao_alsa: fix failure to find any sample format
  • player: make stop command actually stop in all cases
  • audio: various fixes related to audio device hotplugging
  • vo_xv: fix crash with --wid (#2386)
  • ytdl: Remove DASH hacks, use DASH by default (#579, #1321, #2359)
  • player: be slightly less prone to framedrop in display sync mode
  • sd_lavc: extend subtitle resolution if images go outside video frame
  • player: offset chapter display by start time
  • command: make bitrate properties work correctly for external tracks
  • w32_common: disable IME
  • player: fix display-sync A/V calculation on high playback speeds
  • player: fix display sync A/V difference estimation on drops
  • player: raise display sync desync tolerance

New in mpv 0.11.0 (Oct 12, 2015)

  • FEATURES:
  • New:
  • vo_opengl: implement debanding
  • Removed:
  • audio/filter: remove center, extrastereo, karaoke, sinesuppress, sub, surround, sweep, ladspa, hrtf, export and bs2b filters (these are either considered useless or have replacements in lavfi)
  • video/filter: remove lavfi wrappers for noise, hqdn3d, unsharp and delogo (these filters remain usable through lavfi)
  • Behavior:
  • vo_opengl: require FBOs by default (use dumb-mode suboption for old hardware and broken drivers)
  • vo_opengl: enable debanding by default for the opengl-hq preset
  • audio/out: use new sample format determination code
  • player: prefer logical current directory path (affects logic for resuming playback)
  • vf_vdpaurb: Pass through non-hardware-decoded content
  • player: make force-window=immediate work in auto-profiles
  • OPTIONS AND COMMANDS:
  • Added:
  • af_lavrresample: add normalize suboption
  • vo_opengl: add deband, deband-iterations, deband-threshold, deband-range and deband-grain suboptions
  • af_lavfi: implement af-metadata property (like vf-metadata) (#2311)
  • Changed:
  • command: make "add 0" not change the value
  • Removed:
  • vo_opengl: remove source-shader suboption
  • FIXES AND MINOR ENHANCEMENTS:
  • options: fix --no-config
  • cache: do not include backbuffer size in total stream cache size (#2305)
  • audio/format: actually prefer float over double sample format for int->float conversions
  • audio/format: fix interlaved vs. non-interleaved conversions
  • audio/format: revise format conversion scoring
  • video: make --field-dominance set interlaced flag (#2289)
  • vf: vf_stereo3d compilation depends on libavfilter
  • vf_yadif: add hack for Libav compatibility (#2335)
  • player: add opus to list of external audio file extensions (#2336)
  • build: allow disabling vapoursynth completely
  • libmpv/win32: allow multiple windows at the same time (#2319)

New in mpv 0.10.0 (Sep 5, 2015)

  • New:
  • uchardet support (#908)
  • Matroska: reading cue sheets embedded in tags (#1957)
  • Support for VideoToolbox hardware decoding
  • Display sync mode (--display-sync)
  • --force-window=immediate mode
  • fd:// protocol
  • libarchive wrapper for reading compressed archives
  • TOOLS/lua: zones.lua
  • Support for the "new" libavcodec VDPAU API
  • vf_vdpaurb, a new filter for reading back VDPAU decoded frames
  • DXVA2: HEVC support
  • Enabled HEVC profiles with VA API
  • HEVC added to whitelist of hwdec codecs
  • vo_null: framerate emulation
  • vo_opengl: support for custom shaders
  • vo_opengl: temporal-dither-period option
  • vo_opengl: tscale-clamp option
  • vo_opengl: option to attach target-prim/target-csp to window screenshots
  • vo_opengl_cb: "block" framedrop mode (now default)
  • vo_opengl_cb: support for interpolation
  • vo_vdpau: rotation support
  • ytdl_hook: support for 'multi_video' results (#2027)
  • Removed:
  • af_convert24 (af_lavrresample does this now)
  • af_dummy
  • audio: S8, U16, U24, U32 formats
  • DVD and BD menu support
  • TOOLS: youtube-starttime.lua
  • VA API: compatibility crap (< 0.34.0) and vo_vaapi deinterlacer
  • vo_x11
  • Deprecated:
  • vf_dlopen
  • Behavior:
  • audio: softvol scale is now cubic
  • cache: readahead size is limited to half the cache size at the beginning (#2000)
  • charset_conv: "auto" encoding detection now prefers uchardet
  • demux_playlist: skip hidden directories
  • input.conf: O toggles between 2 states only
  • input.conf: Ctrl+s key binding for window screenshots
  • input.conf: mouse volume control (horizontal scrolling) inverted
  • input.conf: L to toggle infinite looping
  • input.conf: remap d/D keys (dropped framedrop cycle, replaced with deinterlacing toggle) (#973)
  • player: disabled seeking on unseekable streams even if the cache is enabled
  • player: parses and exposes m3u playlist titles (#2100)
  • player: --term-playing-msg is now in a separate log category (#1983)
  • player: removed automatic DVB channel advancement on no data
  • player: now restores video-aspect on playback resume
  • player: now uses exit code 0 by default for quit, 4 for signals, etc. (#2029)
  • player: warns against using HLS URLs with --playlist
  • screenshots: changed the default directory in pseudo-gui mode to desktop
  • screenshots: screenshot directory is now created automatically
  • screenshots: default template is now prefixed with "mpv-"
  • TOOLS/lua/autoload: adds all files on start (#2219)
  • vo: vo_wayland moved up in autoprobe list
  • vo_opengl: enabled pbo by default with opengl-hq
  • vo_opengl: cache dir for ICC profiles is now created automatically
  • w32: shift drag and drop appends
  • x11: shift drag and drop appends
  • Added:
  • af_volume: replaygain-fallback option
  • ao_coreaudio: change-physical-format option
  • ao_coreaudio: exclusive option
  • ao_null: channel-layouts option for testing channel layout selection
  • audio: --audio-spdif as new method for enabling passthrough
  • cache: --cache-backbuffer to configure cache backbuffer size
  • command: define-section command for defining input bindings
  • command: audio-params and audio-out-params properties
  • command: keypress, keydown, and keyup commands
  • command: playlist_shuffle command (#965)
  • command: option-info/N/set-locally property indicating per-file options (#2165)
  • command: protocol-list property (#1972)
  • command: track-list/N/audio-channels property
  • demux: --demuxer-max-packets and --demuxer-max-bytes options to control maximum queue size
  • input: relative percentage seek (#1950)
  • osc: time display configuration options
  • player: --playlist-pos option
  • screenshots: --screenshot-jpeg-source-chroma option to disable JPEG 4:4:4 output
  • screenshots: --screenshot-high-bit-depth option to allow or disallow 16 bit output
  • screenshots: --screenshot-directory option
  • sub: --stretch-image-subs-to-screen option for stretching image subtitles to screen (#2098)
  • TOOLS/stats-conv: allow passing regex via command line
  • video: --video-aspect-method option to configure container vs. bitstream aspect ratio (#2259)
  • vo_drm: mode suboption to set the mode ID to use
  • vo_opengl_cb, vo_opengl: --hwdec-preload option for preloading hwdec context
  • vo_rpi: background disabled by default
  • vo_xv: buffers suboption to configure number of buffers
  • win32: portable config mode (#2042)
  • Changed:
  • audio: changed the range of the volume option/property (0 is still silence, and 100 now always means unchanged volume)
  • command: allow changing deinterlace property any time
  • command: allow changing track properties while no file is loaded
  • command: always make video-aspect property accessible
  • command: better choice when to allow playback-related commands
  • command: change OSD symbol for absolute perc. seek
  • command: change the default action for rescan_external_files
  • command: change the hwdec properties
  • command: define-section with empty contents removes a section
  • command: export stereo 3D tags (#2066)
  • command: make auto-deinterlacing output at field rate
  • command: make deinterlace property use interlaced-only yadif mode
  • command: make property event mask matching more restrictive
  • command: make the playback-time property writable
  • input: allow - as separator between commands, instead of _
  • options: --loop without argument means looping forever (#1970)
  • options: make keyvalue list parsing less strict
  • player: extend --hls-bitrate option (#2116)
  • vf_yadif: expose interlaced frame mode
  • video: --video-stereo-mode=no to disable automatic stereo conversion (#2111)
  • vo_opengl_cb, vo_opengl: --hwdec-preload for preloading hwdec context
  • vo_opengl: replace icc-cache with icc-cache-dir
  • vo_opengl: icc-profile overrides icc-profile-auto
  • Renamed:
  • command: rename audio-format property to audio-codec-name
  • options: rename --media-title option to --force-media-title
  • vo_opengl: rename use_full_range to use_normalized_range
  • Deprecated:
  • --ad-spdif-dtshd (use --audio-spdif=dts-hd)
  • audio-samplerate property
  • length property
  • Removed:
  • get_property command
  • --demuxer-readahead-packets and --demuxer-readahead-bytes
  • image_writer: don't use jpeg baseline, and remove useless jpeg-optimize and jpeg-baseline options
  • --leak-report
  • --slave-broken
  • vo_opengl: npot suboption
  • Fixes and Minor Enhancements:
  • ad_spdif: use DTS-HD passthrough only if the audio is really DTS-HD (#1949)
  • af: fix behavior with filter chains that require a large number of auto-inserted conversion filters
  • af_lavcac3enc: fix A/V sync
  • ao_alsa: accept 7.1 over HDMI
  • ao_alsa: refuse to use spdif if AES flags can't be set
  • ao_wasapi: fix crash on hotplug init error
  • audio: avoid wasting CPU due to continuous wakeup (#1958)
  • audio: do not exit when loading small files in paused mode
  • audio: fix channel map fallback selection
  • audio: fix crash on uninit
  • audio: fix --end handling (#2189)
  • audio: fix EOF state with --keep-open (#2167)
  • audio: fix restoring volume
  • charset_conv: fix switched parameters (#2186)
  • charset_conv: use our own UTF-8 check with ENCA only (#2195)
  • cocoa: don't load hardcoded icon if running from bundle
  • cocoa: hide cursor using a blank image instead of a system-wide API (#503)
  • command: do not exit playback if the B point of A-B loop is past EOF (#2046)
  • command: fix audio-out-detected-device property
  • command: fix track property when no file is loaded
  • command: fix video-aspect property update notification (#2194)
  • command: let track properties return option value in idle mode
  • demux: don't get stuck on some cases of timestamp resets
  • demux: handle Matroska-style replaygain tags as well (#2128)
  • demux_lavf: do a better job at guessing the vobsub .sub filename
  • demux_mkv: disable ordered chapters if ChapterTimeEnd is missing
  • demux_mkv: discard broken index
  • demux_mkv: fix mpeg2 mapping
  • demux_mkv: ignore deprecated FrameRate, do not assume PAL
  • demux_mkv: improve video duration detection heuristic
  • demux_mkv: parse FLAC channel layouts
  • demux_playlist: make mime type comparison case-insensitive
  • dxva2: fix handling of cropped video
  • idet.sh: Support larger files
  • mp_image: fix vf_vdpaupp references (#2115)
  • options: fix conversion of flags to strings
  • options: move program name to end of window title (#2188)
  • options: remove the period at the end of "No file."
  • osc: completely disable if no VO window exists
  • osc: exit tick immediately if disabled
  • osc: reinit on playlist changes
  • osx: add NULL check for input context in a missing case
  • player: fix crashes when adding external tracks before loading main file (#1984)
  • player: increase tick event update frequency
  • player: make decoding cover art more robust (#2056)
  • player: raise maximum idle time
  • player: return better guess for playback time during seeks
  • player: show larger cache sizes in MB on status line
  • player: slim down A/V desync warning
  • sd_ass: assume negative durations are unknown durations, and handle them (#2244)
  • terminal: disable terminal foreground state polling
  • terminal-unix: set terminal mode on init
  • timer: fix a corner case on clock changes
  • TOOLS: make autodeint detect telecine in parallel
  • TOOLS/zsh.pl: die loudly if mpv fails to run
  • vaapi: prefer direct display over copy-back
  • vaapi: fix some videos only showing up green (#2123)
  • vaapi: treat cropped decoder output slightly more correctly
  • vda: add support for nv12 image formats
  • vd_lavc: fix a hw decoding fallback case
  • vf_stereo3d: drop internal implementation
  • vf_vavpp: don't attempt to deinterlace progressive frames
  • vf_vavpp: fix bob deinterlacing for bottom field first videos
  • vf_vdpaupp: Don't crash when evaluating interlacing of NULL mpi
  • video: always re-probe auto deint filter on filter reconfig
  • video: better heuristic for timestamp resets
  • video: fix panscan in vertical case
  • video: fix VideoToolbox/VDA autodetection
  • video: unbreak EOF with video-only files that have timestamp resets
  • vo_direct3d: fix broken pseudo GUI drag and drop hint (#2184)
  • vo_drm: fix centering with regard to stride
  • vo_drm: fix crashes with --profile=pseudo-gui
  • vo_drm: fix resolution not restored after exiting
  • vo_drm: fix stride problem for certain devices
  • vo_drm: make VT switching non mandatory
  • vo: free frames before killing VO
  • vo_opengl: avoid broken shader if hwdec fails to provide textures
  • vo_opengl_cb: drop frames eagerly if frames are not rendered
  • vo_opengl: CMS no longer implies linear scaling
  • vo_opengl: fix alpha video in one case
  • vo_opengl: fix dangling pointers with vo_cmdline (#2035)
  • vo_opengl: fix framestepping/pausing + interpolation
  • vo_opengl: fix "freezes" after seeking with interpolation on (#2097)
  • vo_opengl: fix scale=oversample's threshold calculations
  • vo_opengl: framebuffers work under GLES 2
  • vo_opengl: improve robustness against PBO failure
  • vo_opengl: reimplement tscale=oversample (#2102)
  • vo_opengl: reject future images in different formats
  • vo_opengl: X11: don't leak when GL init fails
  • vo: restore frame-drop logic for high-fps clips
  • vo_rpi: fix blackscreen before the first subtitle/OSD is rendered
  • vo_rpi, vo_opengl: do not globally terminate EGL on VO uninit
  • vo_sdl: fix glaring memory leak
  • vo_vdpau: check maximum video size
  • vo_vdpau: limit output surfaces to allowed maximum dimensions
  • win32: fix window resize logic
  • win32: fix crashes when changing system time
  • x11: Handle external fullscreen toggles (#2081)
  • ytdl: catch bogus extractor info (#2254)
  • ytdl: do not use deprecated media-title option
  • ytdl: don't print failure warning when youtube-dl was killed by us
  • ytdl: get start_time

New in mpv 0.9.2 (May 19, 2015)

  • Changes:
  • The Lua check now also checks for lua52.pc, as used by Arch Linux testing.
  • (X11) vo_opengl's icc-profile-auto now queries the current ICC profile relative to the center of the window.
  • ao_coreaudio, ao_alsa now support adding dummy padding channels for better compatibility with hardware decoders that only support specific channel counts (e.g. 5.1 now should work on a decoder that only accepts 7.1).
  • Channel fallback (in case the audio device doesn't natively support a given channel layout) has been improved.
  • vf_vapoursynth now rejects unaligned video instead of outputting corrupted video.
  • mpv now tries to autoload .sup subtitles as well.
  • Bug fixes:
  • vo_opengl's default for fbo-format is now rgba16, to avoid rounding errors when using non-default cscale (issue #1918).
  • Improved framedrop behavior when playing video that has higher framerate than the display (issue #1897).
  • Trying to play a directory will no longer spam Connection lost! to the console log.
  • (Linux) Several vo_rpi bugfixes.
  • (Linux) Several vo_drm bugfixes. Pan&Scan is now supported.
  • (X11) Fix fullscreen behavior on certain window managers (issues #1937, #1920).
  • (OSX) The OSD no longer always shows up on startup.
  • (OSX) Several ao_coreaudio and ao_coreaudio_exclusive bugfixes.
  • (OSX) Fixed potential crash on exit when using Cocoa.
  • (ClientAPI) vo_opengl_cb now actually applies options changed at runtime.
  • (OSX, ClientAPI) Cocoa now works when both the cplayer (mpv) and libmpv are built at the same time; however, libmpv now always creates an application singleton. Cocoa has to be disabled completely to prevent libmpv from creating the singleton.

New in mpv 0.9.1 (Apr 29, 2015)

  • Changes:
  • mpv's IRC channel moved from #mpv-player to #mpv on chat.freenode.net.
  • Documentation updates.
  • The default value for the --ytdl-format option is now best, in order to work around youtube-dl's 2015.04.26 release enabling DASH by default, as FFmpeg / Libav do not yet properly support DASH.
  • When seeking, the current timestamp will show the predicted seek timestamp instead, until the final timestamp is resolved. Improves UI responsiveness on slow streams and/or large seeks.
  • Bug fixes:
  • Corrected the release marker on DOCS/client-api-changes. The release manager forgot to fix it before release...
  • Fix vo_vdpau rendering garbage lines on H.264 video with non-mod16 size (issue #1863).
  • Fix a crash on exit if the "sub_reload" command had run successfully.
  • Fixed seeking with the mouse when osc-seekbarstyle=bar is set (issue #1876).
  • (IPC) Fixed encoding of UTF-8 data in JSON (issue #1874).

New in mpv 0.9.0 (Apr 27, 2015)

  • CHANGES:
  • Note: mpv is not compatible with Lua 5.3. Lua 5.1 or 5.2 is required.
  • The minimum required libass version is now 0.12.1 or newer.
  • The minimum required FFmpeg version is now 2.4.0 (equiv. Libav 11) or newer.
  • The internal libmpg123 support was removed. This was already not used by default in the previous release.
  • (!) The LIRC support was removed. Configure LIRC remotes as input devices instead.
  • (!) The Linux Joystick support was removed.
  • (!) vf_screenshot was removed, as they are now handled at a VO level and is compatible with all VOs.
  • (!) --ass-use-margins has been renamed to --sub-use-margins and applies only to plain-text (non-ASS) subtitles (enabled by default). The new --ass-force-margins option applies only to ASS subtitles (disabled by default). To get the old behaviour back, enable both at the same time.
  • (!) The --sub-scale-with-window option now only applies to plain text (non-ASS) subtitles (enabled by default). The new --ass-scale-with-window option does the same but only with ASS subtitles (disabled by default).
  • (!) The range for the param1 for the gaussian vo_opengl scaler has been redefined. Instead of being an arbitrary 1-100 range, have a default value of 1.0, and anything higher is blurrier.
  • (!) The seek, playlist_next, playlist_prev, loadfile and loadlist parameters no longer accept numerical parameters where symbolic parameter names exist.
  • (!) vf_format no longer converts video to YUYV if there is no parameter. Video is now passed unchanged unless a format is specifically requested.
  • (!) The --colormatrix, --colormatrix-input-range, --colormatrix-output-range and --colormatrix-primaries options have been converted into vf_format suboptions. See commit 27715b7 and the manual for details.
  • vf_mirror's implementation was replaced with calling into libavfilter's vf_hflip filter, thus depending on libavfilter to function.
  • The device subption to ao_wasapi has been deprecated in favor of --audio-device.
  • --video-rotate now allows 360 as an argument instead of stopping at 359.
  • Several improvements to af_scaletempo.
  • Options that have multiple options and also include a "yes" option now default to that if specified with no arguments.
  • The default value of --cache-default is now 150000 (153.6 MB, ~146 MiB).
  • JPEG screenshots now use the same subsampling as the source video. The images are still RGB regardless of source format though.
  • (!) vo_opengl changes:
  • (!) The smoothmotion suboption has been renamed to interpolation. The old name is still supported for now.
  • (!) The bilinear_slow scaler has been renamed to triangle.
  • (!) scale-down has been renamed to dscale and now has its own set of config options (e.g. dscale-radius).
  • (!) Scaler radius no longer defaults to 3 but to a preferred value that may be different for each filter.
  • The scale-radius option may now go down as low as 0.5, which is the value used by the nearest filter.
  • spline36 is the new cscale default for opengl-hq. This might break setups that use fbo-format=rgb8. To work around it, leave fbo-format as its default, or set to something higher than 8, or set cscale=bilinear, the previous default.
  • BUG FIXES:
  • mpv no longer saves position on files that can't be resumed (issue #1701).
  • (X11) Fix the player thinking the mouse has left the window in some WMs / embeddings (issue #1672).
  • mpv no longer freezes on wayland when the compositor stops asking it to draw itself (e.g. when minimized) (issue #249).
  • .ac3 files are no longer rejected by --audio-file-auto (issue #1759).
  • ao_wasapi now automatically enables exclusive when passthrough is attempted (issue #1742).
  • Attempt to fix flickering on Intel VAAPI drivers with --hwdec=vaapi and --vo=opengl (issue #1765).
  • youtube-dl will no longer download video streams when video playback is disabled with --no-video.
  • (Windows) mpv now prevents system sleep when playing a video-only file. Previously, only files with an opened audio track would prevent sleep.
  • NEW FEATURES:
  • New Linux-only vo_drm video output driver. Uses the direct rendering / kernel modesetting drivers to draw directly to the framebuffer, but with no hardware acceleration. See manual for details.
  • New pseudo-gui builtin profile, automatically used when launched from mpv.desktop by opening mpv.exe on windows (mpv.com still works as usual), or by opening the mpv.app bundle. The pseudo-gui tries to make the player window behave closer to what a desktop player would do, by not immediately closing and allowing the user to drag&drop files for playback. See manual for details.
  • mpv can now play directories by automatically playing their contents instead. Works everywhere but on Windows, due to issues with Windows' C runtime.
  • Add support to pitch correct stretched audio with librubberband.
  • Add support for the Raspberry Pi 2's hardware decoder when FFmpeg (or Libav) is built with --enable-mmal. See commit 8fff125 for details.
  • The --cache option now accepts a "yes" option, that always enables a --cache-default-sized cache on all cases a cache can be used, unless --cache-default disables caching.
  • ao_pulse, ao_coreaudio and ao_wasapi now support device hotplugging.
  • New --osd-align-x and --osd-align-y options can be used to align the OSD independently from subtitles.
  • New --osd-bold and --sub-text-bold options can be enabled to bold all OSD or plain-text subtitle text, respectively.
  • Added a default keybind to the u key that enables/disables ASS style overriding. When enabled, is equivalent to --ass-style-override=force.
  • There is now a MOUSE_ENTER keybind, that is called when the mouse cursor enters the VO from outside.
  • The new --ytdl-params option can be set to arguments that are always given to youtube-dl invocations. There is no sanity checking, so invalid options can prevent mpv from working with http URLs.
  • There's a new --demuxer-mkv-fix-timestamps option, enabled by default, that tries to guess more accurate video timestamps by using FPS information, if available. See manual for details.
  • The new --window-scale option can be used to scale the video window by the specified multiplier, before other options such as --autofit are applied.
  • vo_direct3d_shaders now supports NV12 colorspace without using stretchrect, but it seems no drivers actually support that.
  • (Client API) Added a rescan_external_files command, as requested on issue #1586.
  • (Client API) If enabled, initializing the Client API will now also load the user's mpv.conf.
  • (Client API) There's a new mpv_opengl_cb_report_flip() call for API users to call to inform mpv of when exactly a frame was displayed.
  • (Client API) The mpv_opengl_cb_render() function was deprecated in favor of the new, simpler mpv_opengl_cb_draw() function.
  • (Client API) There is a new screenshot_raw command. See input.rst for details.
  • The --input-file argument may now also be a file descriptor in the form "fd://N", where N is the FD number.
  • vo_opengl features:
  • Added ewa_ginseng, ewa_hanning, robidoux, robidouxsharp, oversample and haasnsoft scalers.
  • There are now ewa_lanczossoft and ewa_lanczossharp aliases to ewa_lanczos that are tuned to be blurrier and sharper, respectively.
  • Added gamma-auto option that uses ambient light sensors to automatically adjust the video gamma. See commit c028d78 for details.
  • Added blend-subtitles option to draw subtitles directly into the video instead of rendered afterwards. Potentially necessary for correct rendering with files that use ASS subtitles for typesetting in combination with an icc-profile. There is a default option for drawing after upscaling, and a video option for drawing before upscaling. See details and warning on the manual.
  • There is now a tscale option, used to choose the temporal scaler used in the interpolation mode (previously smoothmotion).
  • There is a new scale-blur parameter to adjust the amount of blur that most of the filters produce. Deviating from the default may introduce artifacts in EWA filters.
  • (Windows) There is now a dwmflush option that might help improve rendering of high-fps video. Disabled by default. See manual for options.

New in mpv 0.8.3 (Mar 17, 2015)

  • Changes:
  • Documentation fixes and updates.
  • (Client API) Clarify mpv_opengl_cb_render's viewport parameter behavior.
  • Bug fixes:
  • (X11) Fix crash on vo_xv:no-colorkey with the Overlay adapter. (bug #1629)
  • Make the video equalizer work correctly on some VAAPI drivers. (bug #1647)
  • Prevent OSD from disappearing when clicking on mozplugger. (bug #1672)
  • The new DVB-S2 support code, using S2API, now builds on FreeBSD.
  • Fix decoding of seekable matroska from unseekable network stream. (bug #1656)
  • (OSX) Fix crashing when closing a VO's window (usually at exit). (bug #1657)
  • (OSX) Unhide the mouse cursor when over the Dock or Launchpad. (bug #513)
  • (OSX) Fix mouse cursor autohiding when the player is fullscreen.
  • vf_vavpp (VAAPI postprocessing) now deinterlaces video correctly.
  • smb:// streams now use the stream cache (used to be inefficient).
  • (Windows) Do not hide the mouse cursor when it is hovering the window menu.
  • Fix 8-channel output on ao_jack. (bug #1688)
  • Fix --mf-fps parameter on JPEG files. (bug #1689)
  • Fix anamorphic scaling being ignored if it was very minor.

New in mpv 0.8.2 (Feb 27, 2015)

  • Fix OSD placement accidentally messed up in 0.8.1.

New in mpv 0.8.1 (Feb 26, 2015)

  • Changes:
  • DOCS/client-api-changes has been correctly updated for the v0.8.0 release series.
  • Quality and major perfomance improvements to smoothmotion.
  • Silence the "[ytdl_hook] WARNING: video doesn't have subtitles" warning.
  • Other documentation updates.
  • Bug fixes:
  • Attempt to fix OpenGL shader compilation on Intel windows drivers. (bug #1536)
  • Attempt to improve the OpenGL shader's compatibility with GLES2.
  • (Windows) Fix noise when seeking while using wasapi:exclusive. (bug #1529)
  • Fix the waf-based build system when used with newer versions of waf with python3.
  • Documentation fixes. (includes bug #1608)
  • New features:
  • mpv now tries to load '.vtt' subtitles.

New in mpv 0.8.0 (Feb 17, 2015)

  • Changes:
  • vo_opengl_old has been removed. OpenGL rendering now requires hardware that can do at least OpenGL 2.1, the oldest version supported by vo_opengl.
  • vf_pp has been removed. A version of it can still be accessed through lavfilter (e.g. --vf=lavfi=[pp...]), but it receives no QP information. Also, vf_dlopen no longer passes QP information to its loaded plugin either (it's always 0).
  • vf_softpulldown, vf_swapuv, vf_phase, vf_divtc and vf_ilpack have all been removed. Ports or alternative versions of these filters are available through libavfilter (vf_lavfi).
  • vf_pullup and vf_noise now are simply wrappers to their libavfilter equivalents. Both are only currently available on FFmpeg (not Libav).
  • ao_portaudio has been removed. There is good support for the native audio drivers of all major desktop platforms, as well as ao_sdl and ao_openal as fallbacks.
  • vo_opengl's lscale suboption has been renamed to scale; lradius is now scale-radius, lparam1 and lparam2 are now respectively scale-param1 and scale-param2; lscale-down is now scale-down. The cscale suboption remains as is.
  • Several of the vo_opengl radius-preset aliases supported by scale have been removed; use scale-radius to set if needed. For example, use --vo=opengl:scale=lanczos:scale-radius=2 instead of scale=lanczos2. The default radius is recommended for most filters.
  • vo_opengl no longer supports the stereo suboption. The anaglyph effect can be reproduced with the stereo3d filter. The quadbuffer support, which requires expensive specialized hardware to begin with, is removed.
  • The approx-gamma suboption to vo_opengl has been removed. The BT.1886 specification says that it's actually how it's supposed to be done so it is now the default when srgb or icc-profile are enabled. This does not include BT.1886's gamma drop.
  • The no-scale-sep and indirect suboptions to vo_opengl have been removed. These are now autodetected and enabled whenever they would have benefit.
  • The --lua and --lua-opts parameters / options are now called --script and --script-opts, respectively. The lua subdir of the mpv config dir is also now expected to be called scripts instead.
  • The --fixed-vo option has been removed. It has been the default for a long time anyway, and disabling fixed-vo is not useful.
  • vo_opengl_hq has been updated to take into account new features. fancy-downscaling and sigmoid-upscaling are enabled, "mitchell" is now the default for scale-down.
  • The sub-visibility OSD message is now clearer about whether subtitles are hidden or just not available / selected.
  • The device IDs given to --audio-device for use with ao_coreaudio now use UIDs, so they don't change when devices are added/removed or after reboots.
  • --msg-level now also accepts ',' as separator.
  • (Client API) The client API now refuses to initialize if the LC_NUMERIC locale is not "C".
  • (Client API) The native type of the msg-level parameter is now a key-value list. Setting or reading it as a string still works.
  • (Slave API) The get_property command is now deprecated.
  • Documentation updates.
  • PDF documentation is now disabled by default due to rst2pdf being fickle, causing weird build errors.
  • Print desync messages with negative A/V sync as well. While rare, it could happen with some uses of --autosync.
  • Bug fixes:
  • Multiple cdda:// fixes. (bugs #1555, #1560)
  • VP9 timestamps no longer cause "missing PTS" warnings with new enough FFmpeg builds.
  • Fix a crash when using H.264 hardware decoding on new enough libavcodecs. (bug #1587)
  • New features:
  • vo_opengl now supports frame blending to eliminate stuttering when the video framerate does not nicely match the display framerate through the smoothmotion suboption. This is not meant to artificially increase the video's FPS, so there is no "soap opera effect" or difficulties with some video types (e.g. anime).
  • vo_opengl now supports sigmoidal upscaling (e.g. for fullscreen), which reduces ringing induced by upscaling, enabled through the sigmoid-upscaling suboption.
  • vo_opengl now supports ewa_lanczos (Jinc) scaling, which provides higher quality with less aliasing. It supports an experimental scale-antiringing parameter, which tries to further reduce video ringing.
  • vo_opengl now has a linear-scaling suboption, that makes the scalers work in linear light. Implied by the srgb, icc-profile or the new sigmoid-upscaling suboption.
  • vo_opengl has improved downscaling for higher downscale ratios when fancy-downscaling is enabled.
  • Add --keep-open=always to make --keep-open apply to all files instead of only the last.
  • mpv now filters the tags that are printed on the console to try to hide useless metadata. The filter works as a whitelist, and can be configured with the --display-tags option.
  • Add a --sub-scale-by-window option that, when set to 'no', prevents subtitles from changing their pixel size when the window changes sizes.
  • vo_opengl now technically has GLES 2 and 3 support (but not GLES 1). GLES 3 support is only tested on Mesa's software emulation. GLES 2 has been tested on nvidia drivers. Both GLES modes are feature deficient and inefficient due to GLES limitations, so they should not be preferred over the standard OpenGL mode.
  • (X11) vo_opengl now supports the icc-profile-auto option on X11 hosts.
  • The 'A' key now by default cycles through a list of preset aspect ratios. Meant to be used to work around broken files.
  • There is now a "force" mode for --loop. Works like "inf", but tries to open files/streams even if there was an error on the previous attempt.
  • There is now a --log-file option to write mpv's log messages to a specifed file.
  • There is now a --audio-file-auto option to automatically load an external audio file with certain constraints. Will only load external audio if the playing file has a video stream. Set to "exact" by default. (bug #967)
  • There is now a --network-timeout option to specify a timeout in seconds for network access. If 0 (default), uses the libavformat default. If a protocol that doesn't support timeouts is used, this option is ignored.
  • (X11) The XF86 special keys are now all mappable in input.conf. All keys documented in XF86keysym.h are available, but only as their numeric codes.
  • (Linux) The DVB implementation now supports DVB-S2 through S2API.
  • (Linux) The VDR format for channels.conf is now supported and preferred. See http://linuxtv.org/vdrwiki/index.php/Syntax_of_channels.conf for the syntax. Tuning to DVB-S2 channels requires the VDR-format channels.conf.
  • (Linux) There is now a --dvbin-full-transponder option for handling special broadcast cases where PIDs switch, or just to work around incomplete PID data.
  • (Client API) There is now an opengl_cb VO, which receives the OpenGL context from the libmpv client. This allows a client to render libmpv video directly to a provided OpenGL context without having to use --wid embedding.
  • (Client API) The aforementioned --wid parameter can now be set at any time, but has no effect if a file is already loaded.
  • (Client API) The list of DVD titles can now be queried.
  • (Client API) There is now a filtered-metadata property, containing only the tags allowed by --display-tags.
  • (Client API) There is now support for XEmbed --wid targets, such as a GtkSocket's gtk_socket_get_id().
  • (Client API) There is now a file-format property with a symbolic name for the file format. In some cases this might be a comma separated list of various different extensions due to libavformat idiosyncrasies.
  • (Client API) There is now a mouse command for generating mouse events over the video window.
  • (Client API) There is now a partially-seekable property that indicates whether a file is only considered seekable because of the stream cache, but would not be seekable otherwise (e.g. realtime stream, or HTTP with no resume support). Small relative seeks may be fine, but larger seeks will likely fail.
  • (Client API) There is now an MPV_EVENT_QUEUE_OVERFLOW event that is posted whenever events have to be dropped because the queue is full. No further events are posted until the MPV_EVENT_QUEUE_OVERFLOW is consumed to avoid duplicated posting.
  • (Client API) There is now a helper mpv_wait_async_requests() function that blocks until all known async requests have completed. (bug #1542)
  • (Client API) There is now a detected-hwdec property that returns the detected hardware decoder when one is successfully opened. This probably only returns a valid value after playback has started.
  • (Client API) There are now audio_add, audio_remove and audio_reload counterparts to the equivalent sub_ commands for handling external audio files.

New in mpv 0.8.0 RC 2 (Feb 12, 2015)

  • Changes:
  • vo_opengl_old has been removed. OpenGL rendering now requires hardware that can do at least OpenGL 2.1, the oldest version supported by vo_opengl.
  • vf_pp has been removed. A version of it can still be accessed through lavfilter (e.g. --vf=lavfi=[pp...]), but it receives no QP information. Also, vf_dlopen no longer passes QP information to its loaded plugin either (it's always 0).
  • vf_softpulldown, vf_swapuv, vf_phase, vf_divtc and vf_ilpack have all been removed. Ports or alternative versions of these filters are available through libavfilter (vf_lavfi).
  • vf_pullup and vf_noise now are simply wrappers to their libavfilter equivalents. Both are only currently available on FFmpeg (not Libav).
  • ao_portaudio has been removed. There is good support for the native audio drivers of all major desktop platforms, as well as ao_sdl and ao_openal as fallbacks.
  • vo_opengl's lscale suboption has been renamed to scale; lradius is now scale-radius, lparam1 and lparam2 are now respectively scale-param1 and scale-param2; lscale-down is now scale-down. The cscale suboption remains as is.
  • Several of the vo_opengl radius-preset aliases supported by scale have been removed; use scale-radius to set if needed. For example, use --vo=opengl:scale=lanczos:scale-radius=3 instead of scale=lanczos3. The default radius is recommended for most filters.
  • vo_opengl no longer supports the stereo suboption. The anaglyph effect can be reproduced with the stereo3d filter. The quadbuffer support, which requires expensive specialized hardware to begin with, is removed.
  • The approx-gamma suboption to vo_opengl has been removed. The BT.1886 specification says that it's actually how it's supposed to be done so it is now the default when srgb or icc-profile are enabled. This does not include BT.1886's gamma drop.
  • The no-scale-sep and indirect suboptions to vo_opengl have been removed. These are now autodetected and enabled whenever they would have benefit.
  • The --lua and --lua-opts parameters / options are now called --script and --script-opts, respectively. The lua subdir of the mpv config dir is also now expected to be called scripts instead.
  • The --fixed-vo option has been removed. It has been the default for a long time anyway, and disabling fixed-vo is not useful.
  • vo_opengl_hq has been updated to take into account new features. fancy-downscaling and sigmoid-upscaling are enabled, "mitchell" is now the default for scale-down.
  • The sub-visibility OSD message is now clearer about whether subtitles are hidden or just not available / selected.
  • The device IDs given to --audio-device for use with ao_coreaudio now use UIDs, so they don't change when devices are added/removed or after reboots.
  • --msg-level now also accepts ',' as separator.
  • (Client API) The client API now refuses to initialize if the LC_NUMERIC locale is not "C".
  • (Client API) The native type of the msg-level parameter is now a key-value list. Setting or reading it as a string still works.
  • Documentation updates.
  • PDF documentation is now disabled by default due to rst2pdf being fickle, causing weird build errors.
  • Print desync messages with negative A/V sync as well. While rare, it could happen with some uses of --autosync.
  • Bug fixes:
  • Multiple cdda:// fixes. (bugs #1555, #1560)
  • VP9 timestamps no longer cause "missing PTS" warnings with new enough FFmpeg builds.
  • New features:
  • vo_opengl now supports frame blending to eliminate stuttering when the video framerate does not nicely match the display framerate through the smoothmotion suboption. This is not meant to artificially increase the video's FPS, so there is no "soap opera effect" or difficulties with some video types (e.g. anime).
  • vo_opengl now supports sigmoidal upscaling (e.g. for fullscreen), which reduces ringing induced by upscaling, enabled through the sigmoid-upscaling suboption.
  • vo_opengl's ewa_lanczos scaler (Jinc) now supports an experimental scale-antiringing parameter, which tries to reduce video ringing.
  • vo_opengl now has a linear-scaling suboption, that makes the scalers work in linear light. Implied by the srgb, icc-profile or the new sigmoid-upscaling suboption.
  • vo_opengl has improved downscaling for higher downscale ratios when fancy-downscaling is enabled.
  • Add --keep-open=always to make --keep-open apply to all files instead of only the last.
  • mpv now filters the tags that are printed on the console to try to hide useless metadata. The filter works as a whitelist, and can be configured with the --display-tags option.
  • Add a --sub-scale-by-window option that, when set to 'no', prevents subtitles from changing their pixel size when the window changes sizes.
  • vo_opengl now technically has GLES 2 and 3 support (but not GLES 1). GLES 3 support is only tested on Mesa's software emulation. GLES 2 has been tested on nvidia drivers. Both GLES modes are feature deficient and inefficient due to GLES limitations, so they should not be preferred over the standard OpenGL mode.
  • (X11) vo_opengl now supports the icc-profile-auto option on X11 hosts.
  • The 'A' key now by default cycles through a list of preset aspect ratios. Meant to be used to work around broken files.
  • There is now a --log-file option to write mpv's log messages to a specifed file.
  • There is now a --audio-file-auto option to automatically load an external audio file with certain constraints. Will only load external audio if the playing file has a video stream. Set to "exact" by default. (bug #967)
  • There is now a --network-timeout option to specify a timeout in seconds for network access. If 0 (default), uses the libavformat default. If a protocol that doesn't support timeouts is used, this option is ignored.
  • (Linux) The DVB implementation now supports DVB-S2 through S2API.
  • (Linux) The VDR format for channels.conf is now supported and preferred. See http://linuxtv.org/vdrwiki/index.php/Syntax_of_channels.conf for the syntax.
  • (Client API) There is now an opengl_cb VO, which receives the OpenGL context from the libmpv client. This allows a client to render libmpv video directly to a provided OpenGL context without having to use --wid embedding.
  • (Client API) The aforementioned --wid parameter can now be set at any time, but has no effect if a file is already loaded.
  • (Client API) The list of DVD titles can now be queried.
  • (Client API) There is now a filtered-metadata property, containing only the tags allowed by --display-tags.
  • (Client API) There is now support for XEmbed --wid targets, such as a GtkSocket's gtk_socket_get_id().
  • (Client API) There is now a file-format property with a symbolic name for the file format. In some cases this might be a comma separated list of various different extensions due to libavformat idiosyncrasies.
  • (Client API) There is now a mouse command for generating mouse events over the video window.
  • (Client API) There is now a partially-seekable property that indicates whether a file is only considered seekable because of the stream cache, but would not be seekable otherwise (e.g. realtime stream, or HTTP with no resume support). Small relative seeks may be fine, but larger seeks will likely fail.
  • (Client API) There is now an MPV_EVENT_QUEUE_OVERFLOW event that is posted whenever events have to be dropped because the queue is full. No further events are posted until the MPV_EVENT_QUEUE_OVERFLOW is consumed to avoid duplicated posting.
  • (Client API) There is now a helper mpv_wait_async_requests() function that blocks until all known async requests have completed. (bug #1542)
  • (Client API) There is now a detected-hwdec property that returns the detected hardware decoder when one is successfully opened. This probably only returns a valid value after playback has started.
  • (Client API) There are now audio_add, audio_remove and audio_reload counterparts to the equivalent sub_ commands for handling external audio files.

New in mpv 0.7.3 (Jan 27, 2015)

  • Changes:
  • Several documentation updates and typo fixes.
  • Don't show "0%" position when the stream is infinite / has unknown length.
  • Fixes the config file loading order so that lower priority mpv.conf files don't override higher priority config files.
  • (OSX) Remove coreaudio_exclusive from the "auto" codec list.
  • Failing to create a GL3 context is now a warning instead of error, to reduce user confusion.
  • The subtitle decoder now gets reset when cycling subtitles. This makes the currently shown subtitle event disappear even if cycling back to the current subtitle track.
  • --shuffle and --merge-files now affects the contents of playlist files, instead of just the list of files given as arguments to mpv.
  • ./waf install avoids installing a few additional data/config files if only libmpv was built.
  • Improved channel mapping when the file's channel map doesn't match the AO's available channel maps.
  • (OSX) VDA now gracefully refuses to run on non-OpenGL3-capable systems instead of trying and failing to build its shaders.
  • Add workaround for vf_vapoursynth filters that expect an FPS.
  • The default value for --screenshot-template now shows up in --list-options.
  • ao_pulse's latency-hacks suboption is now off by default, as it causes issues with newer pulseaudio releases. If A/V Sync issues happen, either add the latency-hacks=on pulse suboption in mpv.conf, or update the pulseaudio daemon (bug #1430).
  • (Linux) ao_alsa now deals better with audio device disconnection.
  • Client API: timestamp properties that have no value return "no" instead of magic number.
  • Bug fixes:
  • (Windows, OSX) Many ao_wasapi and ao_coreaudio fixes.
  • (OSX) Make the window title update correctly on OS X Yosemite.
  • Fixes for handling mono audio on various AOs.
  • (Linux) Fixes resuming from suspend on ao_alsa.
  • Fixes for playlist file parsing.
  • Overly long options in the --list-options output now break the column layout instead of getting truncated; fixes shell completion scripts.
  • Fix rendering resolution of certain DVB subtitles (bug #1425).
  • Fix EDL or --merge-files breaking timestamps with .avi files.
  • Workaround for libavcodec bug with the VP9 codec parser (bug #1448), fixes possible crash.
  • Improve robustness of the matroska parser with broken files (bugs #1457, #1461).
  • Improve 10bit video compatibility with older GPUs (specially Intel) (bug #1383).
  • Fixes flashing the VO window when playing a list of files that includes non-media files (bug #1459).
  • Workaround for window embedding in OpenBox (bug #1235)
  • Fixes for several crashes and lockups (bugs #838, #1389, #1408, #1463, #1473, #1474).
  • Fixes for the zsh completion script (bugs #997)
  • New features:
  • mpv now prints the contents of its config.h when running in verbose mode, to aid with debugging.
  • The include= option now accepts ~ to refer to the HOME dir (bug #1406).
  • af_volume now prints ReplayGain values in verbose mode.
  • m3u playlists that don't have the #EXTM3U header are now accepted if they "look like" ASCII or UTF-8 text and have the .m3u extension.
  • Chapter marks in the seek bar now update when switching files.
  • Supports embedded cover art in MKV files (bug #1374).
  • (Windows) Video window can now be resized even with --no-border.
  • (Windows) Client API: the "run" command now works on Windows too.
  • (Linux) vo_wayland now supports key modifiers (Meta, Alt, Control, Shift)
  • Client API: "display-names" property is now observable.

New in mpv 0.7.2 (Dec 23, 2014)

  • Changes:
  • Give precedence to the DVD menu navigation keyboard bindings so that user defined LEFT/RIGHT/... bindings don't break DVD menu navigation.
  • Try to fallback to the "default" device if the selected device is busy in the alsa AO.
  • Don't create Dock icon for audio only files on OS X.
  • Save screenshots to desktop when using the app bundle on OS X.
  • Restore ab-loop settings with playback resume.
  • Bump required youtube-dl version to 2014.11.26 and enable the ytdl_hook Lua script by default (now playing videos from YouTube and the like will work out of the box without any configuration change needed).
  • Bug fixes:
  • Don't signal an error if --stream-dump is used.
  • Fix removing key bindings from Lua scripts.
  • Reject channel descriptions with too many channels in the coreaudio AO.
  • Don't async redraw when waiting for VO redraw on OS X (this fixes the very annoying glitch where the black bars disappear for a single frame when going fullscreen).
  • Fix mono playback with the also AO.
  • Don't crash if framebuffers are not available in the opengl VO.
  • New features:
  • Try to handle multi-arc videos in the ytdl_hook Lua script.

New in mpv 0.7.1 (Dec 3, 2014)

  • Changes:
  • Don't show the volume neutral marker on the OSD if softvol is disabled.
  • Don't select a subtitle track when executing the sub_add input command in "auto" mode.
  • Bug fixes:
  • Fix busy loop when seeking while paused (this fixes a problem with pulseaudio that caused mpv and the pulseaudio daemon to use 100% CPU).
  • Fix Lua function utils.subprocess() in Windows versions older than Vista.
  • Avoid creating a window bigger than the screen on Windows.
  • Don't ignore the last line in m3u playlists.
  • Don't crash if a codec could not be opened.
  • Dynamically allocate audio channel map entries (this should fix a crash in the alsa and coreaudio AOs with audio devices that support more than 20 channel maps).
  • Ignore the "srgb" option in the opengl VO if hardware decoding is enabled.
  • Linearize non-RGB sRGB files correctly (eg. JPEG).
  • Fix opening reference URLs (.file/id=) on OS X.

New in mpv 0.7.0 (Nov 26, 2014)

  • Changes:
  • Buffer partial log messages in the client API (the client API will now only pass full log messages to clients).
  • Remove ncurses/terminfo/termcap support (it was disabled by default and replaced by new code since v0.6.0).
  • Enable cdda:// support by default again (it was disabled since v0.6.0).
  • Cascade-load input.conf (if there are several input.confs in the set of valid config paths, load them all).
  • Draw the OSD twice in 3D mode (this fixes subtitles display in 3D mode).
  • Make wasapi the default AO on Windows again since many of its problems have been solved.
  • Use "site-functions" subdir to install the zsh completion script instead of the Debian-specific "vendor-completions" (also provide the --zshdir waf configure option for changing this value).
  • Improve synchronization between the Cocoa GUI and the player (this fixes some long standing deadlock issues on Mac OS X).
  • Remove --fs-missioncontrol option (only relevant to Mac OS X).
  • New features:
  • Enable pitch correction by default when playing at higher speeds (this can be controlled with the --audio-pitch-correction option).
  • Open stream and demuxer asynchronously (this should avoid having the player get blocked on network streams).
  • Add cache-buffering-state property for querying the cache fill status until the player unpauses.
  • Add support for listing and selecting the audio device (note that it is not implemented for all AOs, see the --audio-device option for more information).
  • Add support for a JSON-based IPC mechanism (note that this is not currently supported on Windows, see the JSON IPC section in the manpage for more information).
  • Add Lua utility function for starting processes (see utils.subprocess() in the manpage).
  • Add Lua utility function for parsing JSON (see utils.parse_json() in the manpage).
  • Add field-dominance property (see --field-dominance option).
  • Add video-rotate property (see --video-rotate option).
  • Add playback-abort property for querying whether playback is stopped or is to be stopped.
  • Add cursor-autohide property (see --cursor-autohide option).
  • Add vo-configured property for querying whether a window is created.
  • Add support for dxva2 hardware acceleration on Windows.
  • Drop libquvi support (this has been replaced by a built-in Lua script that invokes the youtube-dl tool, which needs to be installed, see the --ytdl option).
  • Add support for loading chapters from an external file (see the --chapters-file option).
  • Add window-minimized property for querying whether the window is minimized (works for X11 only).
  • Make it possible to configure the OSC seekbar style (see the "seekbarstyle" OSC option).
  • Add support for libmpv on Mac OS X (it used to be broken, now it's fully functional and also provides support for embedding the mpv window inside a Cocoa/Qt application).
  • Try to use the audio channel map reported by ALSA in the alsa AO.
  • Add option to disable text OSD rendering completely (useful for working around certain fontconfig issues, see the --use-text-osd option).

New in mpv 0.6.2 (Oct 25, 2014)

  • Changes:
  • The --ass-style-override option now requires a newer version of libass.
  • Bug fixes:
  • Correctly signal EOF when using --frames.
  • Strictly endorce the limit imposed by --frames (i.e. avoid producing an extra frame at the end).
  • Fix \x-style escaping when parsing commands.
  • Correctly handle ^h key on the terminal (this should fix the when inserted from Backspace key on new versions of xterm).
  • Don't put the player to sleep after audio reinit.
  • Properly exit if both audio and video fail to initialize.

New in mpv 0.6.1 (Oct 13, 2014)

  • Changes:
  • Don't show message on "osd" command by default (this essentially reverts a change introduced in the last release).
  • Add an alternative input configuration that reverts the key binding changes introduced by previous releases (see etc/restore-old-bindings.conf in the sources).
  • Automatically install example input configuration files.
  • Bug fixes:
  • Fix stream languages with Bluray
  • Don't try to create surfaces of size 0 in the VDPAU vo.
  • Don't print audio/video init failure message twice.
  • Fix playback on the root window on X11 (i.e. when using --wid=0).
  • Fix the autodetection of the input format in the vf_stereo3d filter when mpv is built against libav (this makes --video-stereo-mode work with libav as well).
  • Fix compilation with PulseAudio 1.0.
  • Fix compilation with clang.
  • Try harder to decode cover art picture only once.
  • Fix cursor autohide (--cursor-autohide) with audio-only files on file change (e.g. when skipping to the next playlist file).

New in mpv 0.6.0 (Oct 1, 2014)

  • Changes:
  • Map ESC to exiting fullscreen.
  • Run the vo inside its own thread.
  • Enable the demuxer thread by default.
  • Prefer the opengl vo over the vdpau one.
  • Complete profile names in the zsh completion script.
  • Raise dsound ao buffer size to 200ms and make it configurable.
  • Bind ctrl+c to quit, so that it works both in the terminal and the player window.
  • Automatically load playlists without needing --load-unsafe-playlists or --playlist. Unsafe URLs are still rejected (e.g. remote playlists can't load local files).
  • Remove quvi-format property (which never really worked).
  • Wait until all Lua scripts are loaded on start.
  • Use separate threads for input sources (terminal, lirc, joystick) instead of using a central I/O loop.
  • Complete values for options that take file names in the zsh completion script.
  • Use libwaio for pipe input on Windows (if you want --input-file to work on Windows you need libwaio as an additional dependency).
  • Remove the --volstep option (users should change the argument to the "add" function in input.conf instead).
  • Always show the OSD message when changing volume, gamma, panscan, etc along with the OSD bar.
  • When changing a property always show it on the OSD (except for "pause" and "fullscreen").
  • Prefer the libavcodec decoder over libmpg123 for mp3 decoding (ffmpeg/libav support for gapless audio works better for mpv's use-case).
  • Allow passing number of loops to --loop-file.
  • Change --keep-open option semantics to not terminate the player when playing or seeking past the end of the file and there's no next file to be played.
  • Disable the sndio ao by default and prefer other outputs even if it's enabled.
  • New features:
  • Add new framedrop mode that limits the frequency of new video frames displayed based on the display framerate (this is enabled by default, the old decoder-based mode can be enabled with --framedrop=decoder).
  • Add --demuxer-readahead-secs option to control the readahead buffer using a duration value.
  • Add estimated-frame-count and estimated-frame-number properties.
  • Add --cache-secs option which overrides the value of --demuxer-readahead-secs if the stream cache is active.
  • Add demuxer-cache-duration and demuxer-cache-idle properties.
  • Make --cache-file create a temporary file if the string "TMP" is passed instead of a file name.
  • Add support for Matroska 3D (if a file is marked as 3D using the StereoMode element, an automatic conversion filter is added).
  • Add --osd-playing-msg option to show a message on the OSD when the playback starts.
  • Add --media-title option to force the content of the media-title property.
  • Add --osd-msg1, --osd-msg2 and --osd-msg3 options to override the OSD message for the corresponding OSD level (before only level 3 could be overridden with --osd-status-message).
  • Add support for digital passthrough in the pulse ao.
  • Add support for opening DVD and Blu-ray directories directly.
  • Add --input-x11-keyboard option to control whether keyboard input should be enabled on the X11 window ot not (this is disabled by default when using the libmpv library).

New in mpv 0.5.4 (Sep 24, 2014)

  • Bug fixes:
  • Fix generation of watch later config file for multiline file names when --write-filename-in-watch-later-config is used (avoid writing the new lines in the config, which would make it possible for the filename to set options).
  • Fix random crashes on audio uninit.

New in mpv 0.5.3 (Sep 11, 2014)

  • Bug fixes:
  • Fix build failure introduced by the previous release.

New in mpv 0.5.2 (Sep 11, 2014)

  • Changes:
  • Inherit event flags from parent X11 window when using --wid.
  • Properly resume playlists loaded at runtime (this makes mpv try to resume a playlist when loaded like "mpv playlist.m3u").
  • Don't honor $XDG_CONFIG_DIRS anymore for global paths (this fixes a regression on systems that set the variable by default to somewhere else then /etc, making mpv skip previously created config files).
  • Allow up to 256 MB of extradata to make broken files work.
  • Bug fixes:
  • Restore old speed change behavior (this fixes a temporary lack of sound after restoring normal speed e.g. when pressing Backspace).
  • Fix quit handling when seeking past EOF while paused.
  • Prevent burning CPU when seeking while paused.
  • Don't add the playlist base path twice when using --playlist.
  • Fix a crash when the initialization of the EGL context fails on Wayland.
  • Make EOF handling properly event-based (this fixes a bug that made mpv hang when changing from one file to the next with --gapless-audio=no).
  • Assume icy title data is terminated with ';' (this fixes handling of streams with metadata containing apostrophes).

New in mpv 0.5.1 (Sep 3, 2014)

  • Changes:
  • Add audio/flac to the MIME type list in mpv.desktop.
  • The --slave-broken option has been reintroduced and is equivalent to using --input-file=/dev/stdin and --input-terminal=no.
  • Bug fixes:
  • Fix screenshots with anamorphic videos in the vdpau vo.
  • Fix a crash happening when mpv fails to create a vdpau mixer in the vdpau vo.
  • Don't quit when the --loop-file option is used.
  • Always load the cursor theme in the wayland vo (this fixes a crash caused by moving the mouse cursor over the video).
  • Properly return non-zero from the zsh completion script when no matches are found (this fixes the use of user-defined zsh completion matchers).
  • Fix the description of the opengl-hq vo default options in the manpage.
  • Remove duplicated content from the manpage that was accidentally added in the manpage reorganization from the previous release.
  • Avoid clobbering playback position on video end (when both audio and video streams reached the end, the playback poisition was briefly set at 0).
  • Avoid overwriting user input in the coreaudio_device ao.

New in mpv 0.5.0 (Aug 12, 2014)

  • CHANGES:
  • Support setting the start time relative to the start PTS with --start.
  • Use /dev/sr0 as default cdrom/dvd device on Linux.
  • Change "cache" property representation to float.
  • Split the ao_coreaudio audio output into ao_coreaudio (which uses the AudioUnits and the CoreAudio sound server) and ao_coreaudio_device (which uses direct device access).
  • Complete supported URL schemes in the zsh completion script.
  • Enable compiler optimizations (-O2) during build.
  • Allow precise seeking with percent-based seeks too.
  • Do precise seeks when clicking on the OSC seekbar.
  • Remove support for older VDA hwaccel versions on Mac OS X (requires recent versions of ffmpeg/libav).
  • Remove the last remains of slave mode (--slave-broken option). Support for reading input commands from stdin can be emulated using: --input-terminal=no --input-file=/dev/stdin.
  • Make it possible to build the client API (libmpv) on Mac OS X.
  • Do necessary checks for nested Wayland compositors which only have limited interfaces.
  • The options in the manpage have been re-organized into sections and ordered by usage to make it easier to navigate.
  • The "hard" framedrop mode has been removed (this behaviour is still available via the --vd-lavc-framedrop option).
  • Show the basename of a subtitle file only (without the directory part).
  • Some key binding were remapped or removed:
  • "LEFT" and "RIGHT" have been remapped to seek 5 seconds instead of 10.
  • "c" for changing the YUV color space was unmapped.
  • OSD level cycling has been remapped from "o" to "O".
  • "o" is now mapped to the show_progress command (like "P").
  • "PGUP" and "PGDWN" have been remapped to chapter-based seeks (the old bindings "@" and "!" are still available). The old behvaiour has been remapped to "Shift+PGUP" and "Shift+PGDWM".
  • Increasing/decreasing audio delay have been remapped from "+" and "-" to "Ctrl++" and "Ctrl+-".
  • "(" and ")" for adjusting audio balance have been unmapped.
  • "F" for toggling the "sub-forced-only" option has been unmapped.
  • "TAB" for cycling TS programs has been unmapped.
  • "A" for cycling DVD angle has been unmapped.
  • "U" for stopping playback has been unmapped.
  • "l" and "L" for cycling quvi format have been unmapped.
  • BUG FIXES:
  • Use a default color space for files with no video (this fixes color managed OSD messages when no video channel is present).
  • Fix key equivalent dispatching for Cocoa on Mac OS X.
  • Disable non-interleaved audio formats by default with ao_alsa, since some ALSA plugins don't cope well with them (non-interleaved formats can still be enabled using the "non-interleaved" ao_alsa option).
  • Fix deadlock in the client API when calling mpv_terminate_destroy() before mpv_initialize().
  • Fix flushing of filter chain (this fixes a bug where the last frames would get dropped on EOF, if buffered by filters).
  • Actually use the channels.conf configuration file for DVB.
  • Restore the --dvbin-file option.
  • Fix off by one error in the command parser which caused a segfault when using the mp.commandv() Lua function with 10 or more arguments.
  • NEW FEATURES:
  • Search for config files in $XDG_CONFIG_HOME and $XDG_CONFIG_DIRS in addition to ~/.mpv. The config file has also been renamed to mpv.conf (although the old file still works and will be loaded even if the new one exists).
  • Add "playback-time" property that returns the current playback time always starting at 0. This is now used to show the playback time in the OSD and the status line, fixing the shown playback time for transport streams that start at a completely random timestamp.
  • Add cache-related "cache-free", "cache-used" and "cache-idle" properties.
  • Add option to list supported protocols (--list-protocols).
  • Allow setting libavformat stream options with the --stream-lavf-o option.
  • Support running the demuxer in a separate thread and prefetch packets (this can be enabled using the --demuxer-thread option).

New in mpv 0.4.2 (Jul 28, 2014)

  • Bug fixes:
  • Include changes from point releases in the release notes.
  • Fix --cache-file operation when file size is unknown (e.g. when playing from a pipe).
  • Don't sleep if playback is stopped when reconnecting for remote stream.
  • Suspend read on vts change even if the requested title is not found when using dvdnav (dvd://) (this fixes a bug where the DVD menu was not shown properly after a DVD track ended).
  • Avoid draining if the audio output is paused (this fixes a bug where mpv would hang when switching tracks when paused).
  • Drop buffered audio when switching tracks or filters (this fixes a possible regression when using gapless audio).
  • Reverse video rotation direction.
  • Fix initialization of the input when playing from a pipe.
  • Fix description of the --mf option in the manpage (the --mf syntax changed a while ago, but was not documented).
  • Actually append entries to the end of the playlist instead of after the current entry with the "loadlist append" command.
  • New features:
  • Add "append-play" mode for the loadfile command.
  • This listing is not complete. There are many more bug fixes and changes. The complete change log can be viewed by running git log bb00774..d50be0a in the git repository.

New in mpv 0.4.1 (Jul 12, 2014)

  • Bug fixes:
  • Fix af_volume bug that caused negative ReplayGain values to increase volume instead of decreasing it in some situations.
  • Actually use "weak" as --gapless-audio default value (as documented in the 0.4.0 release notes).
  • Fix cache resizing bug that caused seeking to not work anymore.
  • Escape all colons in the options descriptions in the zsh completion script.
  • Don't consume an extra argument with --ao/af and --vo/vf options in the zsh completion script (as side effect, the completion now uses --opt=val instead of --opt val).
  • Allow client applications to call mpv_terminate_destroy(NULL).
  • Make sure seeking bounds are within range with dvdnav://.
  • Check the length of the last title too with dvdnav://longest.
  • Properly flush buffers on DVD seek (this fixes some seeking problems when playing DVDs).
  • Allow compilation without atomics (for compilers that don't support atomic operations).
  • Disable ao_null latency emulation.
  • Restore ability to combine mouse buttons.

New in mpv 0.3.10 (May 26, 2014)

  • Mostly insignificant bug fixes.

New in mpv 0.3.9 (May 1, 2014)

  • Minor fixes.

New in mpv 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 0.3.7 (Mar 31, 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 0.3.5 (Feb 15, 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 0.3.4 (Feb 1, 2014)

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

New in mpv 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.

New in mpv 0.3.2 (Jan 7, 2014)

  • Bug fixes (including some regressions). Don't auto-select subtitles if libquvi 0.9 is used, unless the --sid or --slang options select them.
  • On windows, change the default config location to roaming.

New in mpv 0.3.0 (Dec 30, 2013)

  • Changes:
  • Build system switches to waf. The old build system is still available by running ./old-configure, but it will be removed some time in the future.
  • The "run" input command changes in a not backwards compatible way.
  • Some input.conf commands were replaced (such as speed_mult).
  • Many audio/video filter have changed sub-options in a not backwards compatible way. (This is a consequence of unifying audio/video filter option parsing.)
  • Most video filters now use libavfilter internally if available.
  • Disable key autorepeat for some key binds, which prevents accidentally triggering a binding multiple times.
  • Encoding: install and include encoding profiles by default.
  • Bug fixes:
  • Fix a bug that degraded vdpau playback after ~1 hour of runtime.
  • Restrict hardware decoding to codecs where it generally makes sense. This excludes mpeg4 for example, which often causes hardware decoders to decode to garbage. Use --hwdec-codecs to enable hardware decoding for more codecs.
  • New features:
  • Add window-scale property, which allows changing the window size via mpv key bindings.
  • Add revert_seek command, which is meant to undo accidental seeks.
  • Hardware decoding (vdpau, vda, vaapi) can now be used with vo_opengl.
  • Pulseaudio: set pulse stream name to mpv window title (like MPlayer).
  • Support showing 2 subtitles at a time (--secondary-sid).
  • Re-add some basic dvdnav:// support. This doesn't handle navigation highlights correctly, but navigation should mostly work. (Note that dvdnav:// by default starts the longest title, instead of the DVD menu. The menu is available with dvdnav://menu.)
  • Win32: you can drop files on the mpv window.

New in mpv 0.2.4 (Dec 2, 2013)

  • Random bug fixes, nothing particularly important.

New in mpv 0.2.3 (Nov 8, 2013)

  • Fix youtube playlist loading with libquvi 0.9.
  • Fix issues with some http streams (connection retry loop and enf ot stream).
  • Handle SIGTERM. (Before we handled some similar signals only.)
  • Some other bug fixes/corrections.

New in mpv 0.1.1 (Aug 13, 2013)

  • Some minor bug fixes, but most of all fix the version display.