diff options
author | Martin Herkt <lachs0r@srsfckn.biz> | 2016-11-20 18:15:08 +0100 |
---|---|---|
committer | Martin Herkt <lachs0r@srsfckn.biz> | 2016-11-20 18:15:08 +0100 |
commit | 8700700de8a4103724796077034f7f254ad974bc (patch) | |
tree | 2fce4dee518a202c45c3f16567db36edc92ed914 | |
parent | e6b85c91700bee0ddc92e98a30d5021691bd6f65 (diff) | |
parent | eafc273d2c2ae6d247d741202e58ca23dc938cb2 (diff) | |
download | mpv-8700700de8a4103724796077034f7f254ad974bc.tar.bz2 mpv-8700700de8a4103724796077034f7f254ad974bc.tar.xz |
Merge branch 'master' into release/current
76 files changed, 1616 insertions, 468 deletions
diff --git a/DOCS/client-api-changes.rst b/DOCS/client-api-changes.rst index 87b1c650da..94b39bd58d 100644 --- a/DOCS/client-api-changes.rst +++ b/DOCS/client-api-changes.rst @@ -32,7 +32,7 @@ API changes :: - --- mpv 0.21.0 --- + --- mpv 0.22.0 --- 1.23 - deprecate setting "no-" options via mpv_set_option*(). For example, instead of "no-video=" you should set "video=no". - do not override the SIGPIPE signal handler anymore. This was done as @@ -49,8 +49,8 @@ API changes will be removed, and mpv_set_option() will internally translate API calls to mpv_set_property(). - qthelper.hpp: deprecate get_property_variant, set_property_variant, - mpv_set_option, command_variant, and replace them with get_property, - set_property, command. + set_option_variant, command_variant, and replace them with + get_property, set_property, command. --- mpv 0.19.0 --- 1.22 - add stream_cb API for custom protocols --- mpv 0.18.1 --- diff --git a/DOCS/compile-windows.md b/DOCS/compile-windows.md index e283460674..f0d0dca50d 100644 --- a/DOCS/compile-windows.md +++ b/DOCS/compile-windows.md @@ -166,11 +166,8 @@ Or, compile and install both libmpv and mpv: ./waf configure CC=gcc.exe --check-c-compiler=gcc --enable-libmpv-shared --prefix=/mingw64 ./waf install -# waf installs libmpv to the wrong directory, so fix it up -mv -f /mingw64/bin/pkgconfig/mpv.pc /mingw64/lib/pkgconfig/ -mv -f /mingw64/bin/libmpv.dll.a /mingw64/lib/ -sed -i 's_/mingw64/bin_/mingw64/lib_' /mingw64/lib/pkgconfig/mpv.pc -rmdir /mingw64/bin/pkgconfig +# waf installs libmpv dll to the wrong directory, so fix it up +mv -f /mingw64/lib/mpv-1.dll /mingw64/bin/ ``` Linking libmpv with MSVC programs diff --git a/DOCS/interface-changes.rst b/DOCS/interface-changes.rst index 1e27edfe03..7868f0a8e2 100644 --- a/DOCS/interface-changes.rst +++ b/DOCS/interface-changes.rst @@ -19,9 +19,18 @@ Interface changes :: + --- mpv 0.22.0 --- + - the "audio-device-list" property now sets empty device description to the + device name as a fallback + - add --hidpi-window-scale option for macOS + - add audiounit audio output for iOS + - make --start-time work with --rebase-start-time=no + - add --opengl-early-flush=auto mode + - add --hwdec=vdpau-copy, deprecate vf_vdpaurb + - add tct video output for true-color and 256-color terminals --- mpv 0.21.0 --- - - setting certain options at runtime will now take care of updating them - property (see for example issue #3281). On the other hand, it will also + - unlike in older versions, setting options at runtime will now take effect + immediately (see for example issue #3281). On the other hand, it will also do runtime verification and reject option changes that do not work (example: setting the "vf" option to a filter during playback, which fails to initialize - the option value will remain at its old value). In general, diff --git a/DOCS/man/input.rst b/DOCS/man/input.rst index d15aa41903..508e7dd252 100644 --- a/DOCS/man/input.rst +++ b/DOCS/man/input.rst @@ -1912,8 +1912,9 @@ Property list The ``name`` is what is to be passed to the ``--audio-device`` option (and often a rather cryptic audio API-specific ID), while ``description`` is - human readable free form text. The description is an empty string if none - was received. + human readable free form text. The description is set to the device name + (minus mpv-specific ``<driver>/`` prefix) if no description is available + or the description would have been an empty string. The special entry with the name set to ``auto`` selects the default audio output driver and the default device. diff --git a/DOCS/man/mpv.rst b/DOCS/man/mpv.rst index f4876ac00e..4ceae1ca27 100644 --- a/DOCS/man/mpv.rst +++ b/DOCS/man/mpv.rst @@ -646,6 +646,15 @@ PROTOCOLS either aliases to documented protocols, or are just redirections to protocols implemented and documented in FFmpeg. +``ytdl://...`` + By default, the youtube-dl hook script (enabled by default for mpv CLI) + only looks at http URLs. Prefixing an URL with ``ytdl://`` forces it to + be always processed by the script. This can also be used to invoke special + youtube-dl functionality like playing a video by ID or invoking search. + + Keep in mind that you can't pass youtube-dl command line options by this, + and you have to use ``--ytdl-raw-options`` instead. + ``-`` Play data from stdin. diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst index 374cdaf1a5..bf98370eee 100644 --- a/DOCS/man/options.rst +++ b/DOCS/man/options.rst @@ -610,6 +610,7 @@ Video :yes: exactly the same as ``auto`` :auto-copy: enable best hw decoder with copy-back (see below) :vdpau: requires ``--vo=vdpau`` or ``--vo=opengl`` (Linux only) + :vdpau-copy: copies video back into system RAM (Linux with some GPUs only) :vaapi: requires ``--vo=opengl`` or ``--vo=vaapi`` (Linux only) :vaapi-copy: copies video back into system RAM (Linux with Intel GPUs only) :videotoolbox: requires ``--vo=opengl`` (OS X 10.8 and up only) @@ -651,10 +652,10 @@ Video primarily implemented on the CPU. Some exceptions are ``vdpaupp``, ``vdpaurb`` and ``vavpp``. See `VIDEO FILTERS`_ for more details. - The ``vaapi-copy`` and ``dxva2-copy`` modes allow you to use hardware + The ``...-copy`` modes (e.g. ``dxva2-copy``) allow you to use hardware decoding with any VO, backend or filter. Because these copy the decoded - video back to system RAM, they're likely less efficient than the ``vaapi`` - or ``dxva2`` modes respectively. + video back to system RAM, they're likely less efficient than the direct + modes (like e.g. ``dxva2``). .. note:: @@ -1174,9 +1175,9 @@ Audio to use the volume controls of the audio output driver or the internal mpv volume filter. - The current behavior is as if this option was set to ``yes``. The other - behaviors are not available anymore, although ``auto`` almost matches - current behavior in most cases. + The current behavior is that softvol is always enabled, i.e. as if this + option is set to ``yes``. The other behaviors are not available anymore, + although ``auto`` almost matches current behavior in most cases. The ``no`` behavior is still partially available through the ``ao-volume`` and ``ao-mute`` properties. But there are no options to reset these. @@ -1507,7 +1508,7 @@ Subtitles ``--sub-scale-with-window=<yes|no>`` Make the subtitle font size relative to the window, instead of the video. This is useful if you always want the same font size, even if the video - doesn't covert the window fully, e.g. because screen aspect and window + doesn't cover the window fully, e.g. because screen aspect and window aspect mismatch (and the player adds black bars). Default: yes. @@ -2352,6 +2353,13 @@ Window - ``--monitoraspect=4:3`` or ``--monitoraspect=1.3333`` - ``--monitoraspect=16:9`` or ``--monitoraspect=1.7777`` +``--hidpi-window-scale``, ``--no-hidpi-window-scale`` + (OS X only) + Scale the window size according to the backing scale factor (default: yes). + On regular HiDPI resolutions the window opens with double the size but appears + as having the same size as on none-HiDPI resolutions. This is the default OS X + behavior. + ``--monitorpixelaspect=<ratio>`` Set the aspect of a single pixel of your monitor or TV screen (default: 1). A value of 1 means square pixels (correct for (almost?) all LCDs). See @@ -3856,7 +3864,25 @@ The following video options are currently all specific to ``--vo=opengl`` and mpv --scale=help -``--scale-param1=<value>``, ``--scale-param2=<value>`` +``--cscale=<filter>`` + As ``--scale``, but for interpolating chroma information. If the image is + not subsampled, this option is ignored entirely. + +``--dscale=<filter>`` + Like ``--scale``, but apply these filters on downscaling instead. If this + option is unset, the filter implied by ``--scale`` will be applied. + +``--tscale=<filter>`` + The filter used for interpolating the temporal axis (frames). This is only + used if ``--interpolation`` is enabled. The only valid choices for + ``--tscale`` are separable convolution filters (use ``--tscale=help`` to + get a list). The default is ``mitchell``. + + Note that the maximum supported filter radius is currently 3, due to + limitations in the number of video textures that can be loaded + simultaneously. + +``--scale-param1=<value>``, ``--scale-param2=<value>``, ``--cscale-param1=<value>``, ``--cscale-param2=<value>``, ``--dscale-param1=<value>``, ``--dscale-param2=<value>``, ``--tscale-param1=<value>``, ``--tscale-param2=<value>`` Set filter parameters. Ignored if the filter is not tunable. Currently, this affects the following filter parameters: @@ -3873,14 +3899,28 @@ The following video options are currently all specific to ``--vo=opengl`` and never interpolate, thus behaving as if the regular nearest neighbour algorithm was used. Defaults to 0.0. -``--scale-blur=<value>`` - Kernel scaling factor (also known as a blur factor). Decreasing this makes - the result sharper, increasing it makes it blurrier (default 0). If set to - 0, the kernel's preferred blur factor is used. Note that setting this too - low (eg. 0.5) leads to bad results. It's generally recommended to stick to - values between 0.8 and 1.2. - -``--scale-radius=<value>`` +``--scale-blur=<value>``, ``--scale-wblur=<value>``, ``--cscale-blur=<value>``, ``--cscale-wblur=<value>``, ``--dscale-blur=<value>``, ``--dscale-wblur=<value>``, ``--tscale-blur=<value>``, ``--tscale-wblur=<value>`` + Kernel/window scaling factor (also known as a blur factor). Decreasing this + makes the result sharper, increasing it makes it blurrier (default 0). If + set to 0, the kernel's preferred blur factor is used. Note that setting + this too low (eg. 0.5) leads to bad results. It's generally recommended to + stick to values between 0.8 and 1.2. + +``--scale-clamp``, ``--cscale-clamp``, ``--dscale-clamp``, ``--tscale-clamp`` + Clamp the filter kernel's value range to [0-1]. This is especially useful + for ``--tscale``, where it reduces excessive ringing artifacts in the + temporal domain (which typically manifest themselves as short flashes or + fringes of black, mostly around moving edges) in exchange for potentially + adding more blur. + +``--scale-taper=<value>``, ``--scale-wtaper=<value>``, ``--dscale-taper=<value>``, ``--dscale-wtaper=<value>``, ``--cscale-taper=<value>``, ``--cscale-wtaper=<value>``, ``--tscale-taper=<value>``, ``--tscale-wtaper=<value>`` + Kernel/window taper factor. Increasing this flattens the filter function. + Value range is 0 to 1. A value of 0 (the default) means no flattening, a + value of 1 makes the filter completely flat (equivalent to a box function). + Values in between mean that some portion will be flat and the actual filter + function will be squeezed into the space in between. + +``--scale-radius=<value>``, ``--cscale-radius=<value>``, ``--dscale-radius=<value>``, ``--tscale-radius=<value>`` Set radius for tunable filters, must be a float number between 0.5 and 16.0. Defaults to the filter's preferred radius if not specified. Doesn't work for every scaler and VO combination. @@ -3889,7 +3929,7 @@ The following video options are currently all specific to ``--vo=opengl`` and ratio, the radius that actually being used might be different (most likely being increased a bit). -``--scale-antiring=<value>`` +``--scale-antiring=<value>``, ``--cscale-antiring=<value>``, ``--dscale-antiring=<value>``, ``--tscale-antiring=<value>`` Set the antiringing strength. This tries to eliminate ringing, but can introduce other artifacts in the process. Must be a float number between 0.0 and 1.0. The default value of 0.0 disables antiringing entirely. @@ -3897,14 +3937,14 @@ The following video options are currently all specific to ``--vo=opengl`` and Note that this doesn't affect the special filters ``bilinear`` and ``bicubic_fast``. -``--scale-window=<window>`` +``--scale-window=<window>``, ``--cscale-window=<window>``, ``--dscale-window=<window>``, ``--tscale-window=<window>`` (Advanced users only) Choose a custom windowing function for the kernel. Defaults to the filter's preferred window if unset. Use ``--scale-window=help`` to get a list of supported windowing functions. -``--scale-wparam=<window>`` +``--scale-wparam=<window>``, ``--cscale-wparam=<window>``, ``--cscale-wparam=<window>``, ``--tscale-wparam=<window>`` (Advanced users only) Configure the parameter for the window function given - by ``--scale-window``. Ignored if the window is not tunable. Currently, + by ``--scale-window`` etc. Ignored if the window is not tunable. Currently, this affects the following window parameters: kaiser @@ -3929,6 +3969,50 @@ The following video options are currently all specific to ``--vo=opengl`` and will reproduce the source image perfectly if no scaling is performed. Enabled by default. Note that this option never affects ``--cscale``. +``--linear-scaling`` + Scale in linear light. It should only be used with a + ``--opengl-fbo-format`` that has at least 16 bit precision. + +``--correct-downscaling`` + When using convolution based filters, extend the filter size when + downscaling. Increases quality, but reduces performance while downscaling. + + This will perform slightly sub-optimally for anamorphic video (but still + better than without it) since it will extend the size to match only the + milder of the scale factors between the axes. + +``--interpolation`` + Reduce stuttering caused by mismatches in the video fps and display refresh + rate (also known as judder). + + .. warning:: This requires setting the ``--video-sync`` option to one + of the ``display-`` modes, or it will be silently disabled. + This was not required before mpv 0.14.0. + + This essentially attempts to interpolate the missing frames by convoluting + the video along the temporal axis. The filter used can be controlled using + the ``--tscale`` setting. + + Note that this relies on vsync to work, see ``--opengl-swapinterval`` for + more information. + +``--interpolation-threshold=<0..1,-1>`` + Threshold below which frame ratio interpolation gets disabled (default: + ``0.0001``). This is calculated as ``abs(disphz/vfps - 1) < threshold``, + where ``vfps`` is the speed-adjusted video FPS, and ``disphz`` the + display refresh rate. (The speed-adjusted video FPS is roughly equal to + the normal video FPS, but with slowdown and speedup applied. This matters + if you use ``--video-sync=display-resample`` to make video run synchronously + to the display FPS, or if you change the ``speed`` property.) + + The default is intended to almost always enable interpolation if the + playback rate is even slightly different from the display refresh rate. But + note that if you use e.g. ``--video-sync=display-vdrop``, small deviations + in the rate can disable interpolation and introduce a discontinuity every + other minute. + + Set this to ``-1`` to disable this logic. + ``--opengl-pbo`` Enable use of PBOs. On some drivers this can be faster, especially if the source video size is huge (e.g. so called "4K" video). On other drivers it @@ -3981,21 +4065,6 @@ The following video options are currently all specific to ``--vo=opengl`` and debug OpenGL context (which does nothing with current graphics drivers as of this writing). -``--interpolation`` - Reduce stuttering caused by mismatches in the video fps and display refresh - rate (also known as judder). - - .. warning:: This requires setting the ``--video-sync`` option to one - of the ``display-`` modes, or it will be silently disabled. - This was not required before mpv 0.14.0. - - This essentially attempts to interpolate the missing frames by convoluting - the video along the temporal axis. The filter used can be controlled using - the ``--tscale`` setting. - - Note that this relies on vsync to work, see ``--opengl-swapinterval`` for - more information. - ``--opengl-swapinterval=<n>`` Interval in displayed frames between two buffer swaps. 1 is equivalent to enable VSYNC, 0 to disable VSYNC. Defaults to 1 if not specified. @@ -4007,65 +4076,6 @@ The following video options are currently all specific to ``--vo=opengl`` and results, as can missing or incorrect display FPS information (see ``--display-fps``). -``--dscale=<filter>`` - Like ``--scale``, but apply these filters on downscaling instead. If this - option is unset, the filter implied by ``--scale`` will be applied. - -``--cscale=<filter>`` - As ``--scale``, but for interpolating chroma information. If the image is - not subsampled, this option is ignored entirely. - -``--tscale=<filter>`` - The filter used for interpolating the temporal axis (frames). This is only - used if ``-- |