diff options
Diffstat (limited to 'DOCS/man/changes.rst')
-rw-r--r-- | DOCS/man/changes.rst | 450 |
1 files changed, 10 insertions, 440 deletions
diff --git a/DOCS/man/changes.rst b/DOCS/man/changes.rst index a4f3467b53..92ec3444af 100644 --- a/DOCS/man/changes.rst +++ b/DOCS/man/changes.rst @@ -1,443 +1,13 @@ -CHANGES FROM OTHER VERSIONS OF MPLAYER -====================================== +CHANGELOG +========= -**mpv** is based on mplayer2, which in turn is based on the original MPlayer -(also called mplayer, mplayer-svn, mplayer1). Many changes have been made, a -large part of which is incompatible or completely changes how the player -behaves. Although there are still many similarities to its ancestors, **mpv** -should generally be treated as a completely different program. +There is no real changelog, but you can look at the following things: -.. note:: - These lists are incomplete. +* The release changelog, which should contain most user-visible changes, + including new features and bug fixes: -General Changes from MPlayer to mpv ------------------------------------ - -This listing is about changes introduced by mplayer2 and mpv relatively to -MPlayer. - -Player -~~~~~~ - -* New name for the binary (``mpv``). New location for config files (either - ``~/.config/mpv/mpv.conf``, or if you want, ``~/.mpv/config``). -* Encoding functionality (replacement for MEncoder, see the `ENCODING`_ section). -* Support for Lua scripting (see the `LUA SCRIPTING`_ section). -* Better pause handling (e.g. do not unpause on a command). -* Precise seeking support. -* Improvements in audio/video sync handling. -* Do not lose settings when playing a new file in the same player instance. -* Slave mode compatibility broken (see below). -* Re-enable screensaver while the player is paused. -* Allow resuming playback at a later point with ``Shift+q``, also see the - ``quit_watch_later`` input command. -* ``--keep-open`` option to stop the player from closing the window and - exiting after playback ends. -* A client API, that allows embedding **mpv** into applications - (see ``libmpv/client.h`` in the sources). - -Input -~~~~~ - -* Improved default keybindings. MPlayer bindings are also available (see - ``etc/mplayer-input.conf`` in the source tree). -* Improved responsiveness on user input. -* Support for modifier keys (alt, shift, ctrl) in input.conf. -* Allow customizing whether a key binding for seeking shows the video time, the - OSD bar, or nothing (see the `Input Command Prefixes`_ section). -* Support mapping multiple commands to one key. - -Audio -~~~~~ - -* Support for gapless audio (see the ``--gapless-audio`` option). -* Support for OSS4 volume control. -* Improved support for PulseAudio. -* Make ``--softvol`` default (**mpv** is not a mixer control panel). -* By default, do pitch correction if playback speed is increased. -* Improved downmixing and output of surround audio: - - - Instead of using hardcoded pan filters to do remixing, libavresample is used - - Channel maps are used to identify the channel layout, so e.g. ``3.0`` and - ``2.1`` audio can be distinguished. - -Video -~~~~~ - -* Wayland support. -* Native support for VAAPI and VDA. Improved VDPAU video output. -* Improved OpenGL output (see the ``opengl-hq`` video output). -* Make hardware decoding work with the ``opengl`` video output. -* Support for libavfilter (for video->video and audio->audio). This allows - using most of FFmpeg's filters, which improve greatly on the old MPlayer - filters in features, performance, and correctness. -* More correct color reproduction (color matrix generation), including support - for BT.2020 (Ultra HD) and linear XYZ (Digital Cinema) inputs. -* Support for color managed displays, via ICC profiles. -* High-quality image resamplers (see the ``opengl`` ``scale`` suboption). -* Support for scaling in (sigmoidized) linear light. -* Better subtitle rendering using libass by default. -* Improvements when playing multiple files (``-fixed-vo`` is default, do not - reset settings by default when playing a new file). -* Replace image video outputs (``--vo=jpeg`` etc.) with ``--vo=image``. -* Removal of ``--vo=gif89a``, ``--vo=md5sum``, ``--vo=yuv4mpeg``, as encoding - can handle these use cases. For yuv4mpeg, for example, use:: - - mpv input.mkv -o output.y4m --no-audio --oautofps --oneverdrop - -* Image subtitles (DVDs etc.) are rendered in color and use more correct - positioning (color for image subs can be disabled with ``--sub-gray``). - -OSD and terminal -~~~~~~~~~~~~~~~~ - -* Cleaned up terminal output: nicer status line, less useless noise. -* Improved OSD rendering using libass, with full Unicode support. -* New OSD bar with chapter marks. Not positioned in the middle of the video - (this can be customized with the ``--osd-bar-align-y`` option). -* Display list of chapters and audio/subtitle tracks on OSD (see the - `Properties`_ section). - -Screenshots -~~~~~~~~~~~ - -* Instant screenshots without 1-frame delay. -* Support for taking screenshots even with hardware decoding. -* Support for saving screenshots as JPEG or PNG. -* Support for configurable file names. -* Support for taking screenshots with or without subtitles. - -Note that the ``screenshot`` video filter is not needed anymore, and should not -be put into the mpv config file. - -Miscellaneous -~~~~~~~~~~~~~ - -* Better MKV support (e.g. ordered chapters, 3D metadata). -* Matroska edition switching at runtime. -* Support for playing URLs of popular streaming sites directly. - (e.g. ``mpv https://www.youtube.com/watch?v=...``). - Requires a recent version of ``youtube-dl`` to be installed. Can be - disabled with ``ytdl=no`` in the mpv config file. -* Support for precise scrolling which scales the parameter of commands. If the - input doesn't support precise scrolling the scale factor stays 1. -* Allow changing/adjusting video filters at runtime. (This is also used to make - the ``D`` key insert vf_yadif if deinterlacing is not supported otherwise). -* Improved support for .cue files. - -Mac OS X -~~~~~~~~ - -* Native OpenGL backend. -* Cocoa event loop is independent from MPlayer's event loop, so user - actions like accessing menus and live resizing do not block the playback. -* Apple Remote support. -* Media Keys support. -* VDA support using libavcodec hwaccel API instead of FFmpeg's decoder with up - to 2-2.5x reduction in CPU usage. - -Windows -~~~~~~~ - -* Improved support for Unicode file names. -* Improved window handling. -* Do not block playback when moving the window. -* Improved Direct3D video output. -* Added WASAPI audio output. - -Internal changes -~~~~~~~~~~~~~~~~ - -* Switch to GPLv2+ (see ``Copyright`` file for details). -* Removal of lots of cruft: - - - Internal GUI (replaced by the OSC, see the `ON SCREEN CONTROLLER`_ section). - - MEncoder (replaced by native encoding, see the `ENCODING`_ section). - - OSD menu. - - Kernel video drivers for Linux 2.4 (including VIDIX). - - Teletext support. - - Support for dead platforms. - - Most built-in demuxers have been replaced by their libavformat counterparts. - - Built-in network support has been replaced by libavformat's (which also - supports https URLs). - - Embedded copies of libraries (such as FFmpeg). - -* General code cleanups (including refactoring or rewrites of many parts). -* New build system. -* Many bug fixes and removal of long-standing issues. -* Generally preferring FFmpeg/Libav over internal demuxers, decoders, and - filters. - -Detailed Listing of User-visible Changes ----------------------------------------- - -This listing is about changed command line switches, slave commands, and similar -things. Completely removed features are not listed. - -Command Line Switches -~~~~~~~~~~~~~~~~~~~~~ - -* There is a new command line syntax, which is generally preferred over the old - syntax. ``-optname optvalue`` becomes ``--optname=optvalue``. - - The old syntax will not be removed. However, the new syntax is mentioned in - all documentation and so on, and unlike the old syntax is not ambiguous, - so it is a good thing to know about this change. -* In general, negating switches like ``-noopt`` now have to be written as - ``-no-opt`` or ``--no-opt``. -* Per-file options are not the default anymore. You can explicitly specify - file-local options. See ``Usage`` section. -* Many options have been renamed, removed or changed semantics. Some options - that are required for a good playback experience with MPlayer are now - superfluous or even worse than the defaults, so make sure to read the manual - before trying to use your existing configuration with **mpv**. -* Table of renamed/replaced switches: - - =========================== ======================================== - Old New - =========================== ======================================== - ``-no<opt>`` ``--no-<opt>`` (add a dash) - ``-a52drc level`` ``--ad-lavc-ac3drc=level`` - ``-ac spdifac3`` ``--ad=spdif:ac3`` (see ``--ad=help``) - ``-af volnorm`` ``--af=drc`` (renamed) - ``-afm hwac3`` ``--ad=spdif:ac3,spdif:dts`` - ``-ao alsa:device=hw=0.3`` ``--ao=alsa:device=[hw:0,3]`` - ``-aspect`` ``--video-aspect`` - ``-ass-bottom-margin`` ``--vf=sub=bottom:top`` - ``-ass`` ``--sub-ass`` - ``-audiofile-cache`` (removed; the main cache settings are used) - ``-audiofile`` ``--audio-file`` - ``-benchmark`` ``--untimed`` (no stats) - ``-capture`` ``--stream-capture=<filename>`` - ``-channels`` ``--audio-channels`` (changed semantics) - ``-cursor-autohide-delay`` ``--cursor-autohide`` - ``-delay`` ``--audio-delay`` - ``-dumpstream`` ``--stream-dump=<filename>`` - ``-dvdangle`` ``--dvd-angle`` - ``-endpos`` ``--length`` - ``-fixed-vo`` (removed; always the default) - ``-font`` ``--osd-font`` - ``-forcedsubsonly`` ``--sub-forced-only`` - ``-forceidx`` ``--index`` - ``-format`` ``--audio-format`` - ``-fsmode-dontuse`` (removed) - ``-fstype`` ``--x11-netwm`` (changed semantics) - ``-hardframedrop`` ``--framedrop=hard`` - ``-identify`` (removed; use TOOLS/mpv_identify.sh) - ``-idx`` ``--index`` - ``-lavdopts ...`` ``--vd-lavc-...`` - ``-lavfdopts`` ``--demuxer-lavf-...`` - ``-lircconf`` ``--input-lirc-conf`` - ``-loop 0`` ``--loop=inf`` - ``-mixer-channel`` AO suboptions (``alsa``, ``oss``) - ``-mixer`` AO suboptions (``alsa``, ``oss``) - ``-mouse-movements`` ``--input-cursor`` - ``-msgcolor`` ``--msg-color`` - ``-msglevel`` ``--msg-level`` (changed semantics) - ``-msgmodule`` ``--msg-module`` - ``-name`` ``--x11-name`` - ``-noar`` ``--no-input-appleremote`` - ``-noautosub`` ``--no-sub-auto`` - ``-noconsolecontrols`` ``--no-input-terminal`` - ``-nojoystick`` ``--no-input-joystick`` - ``-nosound`` ``--no-audio`` - ``-osdlevel`` ``--osd-level`` - ``-panscanrange`` ``--video-zoom``, ``--video-pan-x/y`` - ``-playing-msg`` ``--term-playing-msg`` - ``-pp ...`` ``'--vf=lavfi=[pp=...]'`` - ``-pphelp`` (See FFmpeg libavfilter documentation.) - ``-rawaudio ...`` ``--demuxer-rawaudio-...`` - ``-rawvideo ...`` ``--demuxer-rawvideo-...`` - ``-spugauss`` ``--sub-gauss`` - ``-srate`` ``--audio-samplerate`` - ``-ss`` ``--start`` - ``-ssf <sub>`` ``--sws-...`` - ``-stop-xscreensaver`` ``--stop-screensaver`` - ``-sub-fuzziness`` ``--sub-auto`` - ``-sub`` ``--sub-file`` - ``-subcp`` ``--sub-codepage`` - ``-subdelay`` ``--sub-delay`` - ``-subfile`` ``--sub-file`` - ``-subfont-*`` ``--sub-text-*``, ``--osd-*`` - ``-subfont-text-scale`` ``--sub-scale`` - ``-subfont`` ``--sub-text-font`` - ``-subfps`` ``--sub-fps`` - ``-subpos`` ``--sub-pos`` - ``-sws`` ``--sws-scaler`` - ``-tvscan`` ``--tv-scan`` - ``-use-filename-title`` ``--title='${filename}'`` - ``-vc ffh264vdpau`` (etc.) ``--hwdec=vdpau`` - ``-vobsub`` ``--sub-file`` (pass the .idx file) - ``-x W``, ``-y H`` ``--geometry=WxH`` + ``--no-keepaspect`` - ``-xineramascreen`` ``--screen`` (different values) - ``-xy W`` ``--autofit=W`` - ``-zoom`` Inverse available as ``--video-unscaled`` - ``dvdnav://`` ``dvdnav://menu`` - ``dvd://1`` ``dvd://0`` (0-based offset) - =========================== ======================================== - -.. note:: - - ``-opt val`` becomes ``--opt=val``. - -.. note:: - - Quite some video filters, video outputs, audio filters, audio outputs, had - changes in their option parsing. These aren't mentioned in the table above. - - Also, some video and audio filters have been removed, and you have to use - libavfilter (using ``--vf=lavfi=[...]`` or ``--af=lavfi=[...]``) to get - them back. - -input.conf and Slave Commands -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -* Table of renamed input commands: - - This lists only commands that are not always gracefully handled by the - internal legacy translation layer. If an input.conf contains any legacy - commands, a warning will be printed when starting the player. The warnings - also show the replacement commands. - - Properties containing ``_`` to separate words use ``-`` instead. - - +--------------------------------+----------------------------------------+ - | Old | New | - +================================+========================================+ - | ``pt_step 1 [0|1]`` | ``playlist_next [weak|force]`` | - | | (translation layer cannot deal with | - | | whitespace) | - +--------------------------------+----------------------------------------+ - | ``pt_step -1 [0|1]`` | ``playlist_prev [weak|force] (same)`` | - +--------------------------------+----------------------------------------+ - | ``switch_ratio [<ratio>]`` | ``set video-aspect <ratio>`` | - | | | - | | ``set video-aspect 0`` (reset aspect) | - +--------------------------------+----------------------------------------+ - | ``step_property_osd <prop>`` | ``cycle <prop> <step>`` (wraps), | - | ``<step> <dir>`` | ``add <prop> <step>`` (clamps). | - | | ``<dir>`` parameter unsupported. Use | - | | a negative ``<step>`` instead. | - +--------------------------------+----------------------------------------+ - | ``step_property <prop>`` | Prefix ``cycle`` or ``add`` with | - | ``<step> <dir>`` | ``no-osd``: ``no-osd cycle <prop>`` | - | | ``<step>`` | - +--------------------------------+----------------------------------------+ - | ``osd_show_property_text`` | ``show_text <text>`` | - | ``<text>`` | The property expansion format string | - | | syntax slightly changed. | - +--------------------------------+----------------------------------------+ - | ``osd_show_text`` | Now does the same as | - | | ``osd_show_property_text``. Use the | - | | ``raw`` prefix to disable property | - | | expansion. | - +--------------------------------+----------------------------------------+ - | ``show_tracks`` | ``show_text ${track-list}`` | - +--------------------------------+----------------------------------------+ - | ``show_chapters`` | ``show_text ${chapter-list}`` | - +--------------------------------+----------------------------------------+ - | ``af_switch``, ``af_add``, ... | ``af set|add|...`` | - +--------------------------------+----------------------------------------+ - | ``tv_start_scan`` | ``set tv-scan yes`` | - +--------------------------------+----------------------------------------+ - | ``tv_set_channel <val>`` | ``set tv-channel <val>`` | - +--------------------------------+----------------------------------------+ - | ``tv_step_channel`` | ``cycle tv-channel`` | - +--------------------------------+----------------------------------------+ - | ``dvb_set_channel <v1> <v2>`` | ``set dvb-channel <v1>-<v2>`` | - +--------------------------------+----------------------------------------+ - | ``dvb_step_channel`` | ``cycle dvb-channel`` | - +--------------------------------+----------------------------------------+ - | ``tv_set_freq <val>`` | ``set tv-freq <val>`` | - +--------------------------------+----------------------------------------+ - | ``tv_step_freq`` | ``cycle tv-freq`` | - +--------------------------------+----------------------------------------+ - | ``tv_set_norm <norm>`` | ``set tv-norm <norm>`` | - +--------------------------------+----------------------------------------+ - | ``tv_step_norm`` | ``cycle tv-norm`` | - +--------------------------------+----------------------------------------+ - - .. note:: - - Due to lack of hardware and users using the TV/DVB/PVR features, and - due to the need to cleanup the related command code, it's possible - that the new commands are buggy or behave worse. This can be improved - if testers are available. Otherwise, some of the TV code will be - removed at some point. - -Slave mode -~~~~~~~~~~ - -* Slave mode was removed. A proper slave mode application needed tons of code - and hacks to get - it right. The main problem is that slave mode is a bad and incomplete - interface, and to get around that, applications parsed output messages - intended for users. It is hard to know which messages exactly are parsed by - slave mode applications. This makes it virtually impossible to improve - terminal output intended for users without possibly breaking something. - - This is absolutely insane, and since initial improvements to **mpv** quickly - made slave mode incompatible to most applications, it was removed as useless - cruft. The client API (see below) is provided instead. - - ``--identify`` was replaced by the ``TOOLS/mpv_identify.sh`` wrapper script. - -* For some time (until including release 0.4.x), mpv supported a - ``--slave-broken`` option. The following options are equivalent: - - :: - - --input-file=/dev/stdin --input-terminal=no - - - Assuming the system supports ``/dev/stdin``. - - (The option was readded in 0.5.1 and sets exactly these options.) - -* A JSON RPC protocol giving access to the client API is also supported. See - `JSON IPC`_ for more information. - -* **mpv** also provides a client API, which can be used to embed the player - by loading it as shared library. (See ``libmpv/client.h`` in the sources.) - It might also be possible to implement a custom slave mode-like protocol - using Lua scripting. - -Policy for Removed Features ---------------------------- - -**mpv** is in active development. If something is in the way of more important -development (such as fixing bugs or implementing new features), we sometimes -remove features. Usually this happens only with old features that either seem -to be useless, or are not used by anyone. Often these are obscure, or -"inherited", or were marked experimental, but never received any particular -praise by any users. - -Sometimes, features are replaced by something new. The new code will be either -simpler or more powerful, but doesn't necessarily provide everything the old -feature did. - -We can not exclude that we accidentally remove features that are actually -popular. Generally, we do not know how much a specific functionality is used. -If you miss a feature and think it should be re-added, please open an issue -on the mpv bug tracker. Hopefully, a solution can be found. Often, it turns -out that re-adding something is not much of a problem, or that there are -better alternatives. - -Why this Fork? --------------- - -mplayer2 is practically dead, and mpv started out as a branch containing -new/experimental development. (Some of it was merged right *after* the fork -was made public, seemingly as an acknowledgment that development, or at -least merging, should have been more active.) - -MPlayer is focused on not breaking anything, but is stuck with a horrible -codebase resistant to cleanup. (Unless you do what mpv did - merciless and -consequent pruning of bad, old code.) Cleanup and keeping broken things -conflict, so the kind of development mpv strives for can't be done within -MPlayer due to clashing development policies. - -Additionally, mplayer2 already had lots of changes over MPlayer, which would -have needed to be backported to the MPlayer codebase. This would not only -have been hard (several years of diverging development), but also would have -been impossible due to the aforementioned MPlayer development policy. + https://github.com/mpv-player/mpv/releases +* The git log, which is the "real" changelog +* The file ``mplayer-changes.rst`` in the ``DOCS`` sub directory on the git + repository, which used to be in place of this section. It documents some + changes that happened since mplayer2 forked off MPlayer. |