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