Features
Added
vo_gpu: make screenshots use the GL renderer
ytdl_hook: support native dash demuxer, if present
Changed
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
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
ytdl_hook: parse youtube playlist urls to set start index if --ytdl-raw-option=yes-playlist= is specified
Deprecated
af_lavrresample: deprecate this filter
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
options: add --http-proxy
options: add a builtin low-latency profile
video: add option to reduce latency by 1 or 2 frames
vo_gpu: introduce --target-peak
Changed
command: change cycle-value command behavior
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
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
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
TOOLS/autoload: Fix broken "disabled" option
TOOLS/autoload: be more robust with slow directory listings
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
display additional metadata tags during video playback
gpu: prefer 16bit floating point FBO formats to 16bit integer
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
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
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
vo_gpu: fix anamorphic screenshots
This release contains an additional fix for CVE-2018-6360.
Fixes and Minor Enhancements
ytdl_hook: whitelist subtitle URLs as well (#5456)
This release fixes CVE-2018-6360.
Fixes and Minor Enhancements
ytdl_hook: whitelist protocols from urls retrieved from youtube-dl (#5456)
Features
Added
csputils: Add support for Display P3 primaries
demux: support multiple seekable cached ranges, display cache ranges on OSC
demux_playlist: support .url files (#5107)
lua: integrate stats.lua script (bound to i/I by default)
vd_lavc: add support for nvdec hwaccel
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
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)
Removed
options: remove --heartbeat-cmd and --heartbeat-interval (incidentally fixes #4888)
Fixes and Minor Enhancements
TOOLS/autoload.lua: add ogm, ogg and opus extensions
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)
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
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)
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_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: reduce the --alpha=blend-tiles checkerboard intensity
vo_gpu: win: remove exclusive-fullscreen detection hack
vo_lavc: remove messy delayed subtitle rendering logic (#4689)
Windows: skip window snapping if Windows handled it
Windows: add more-POSIXy versions of open() and fstat() (#4711)
ytdl_hook: don't prepend ytdl:// to non-youtube links in playlists (#5003)