diff options
Diffstat (limited to 'DOCS')
-rw-r--r-- | DOCS/client-api-changes.rst | 9 | ||||
-rw-r--r-- | DOCS/edl-mpv.rst | 18 | ||||
-rw-r--r-- | DOCS/interface-changes.rst | 66 | ||||
-rw-r--r-- | DOCS/man/input.rst | 2 | ||||
-rw-r--r-- | DOCS/man/mpv.rst | 9 | ||||
-rw-r--r-- | DOCS/man/options.rst | 110 | ||||
-rw-r--r-- | DOCS/man/vf.rst | 2 | ||||
-rw-r--r-- | DOCS/man/vo.rst | 56 |
8 files changed, 186 insertions, 86 deletions
diff --git a/DOCS/client-api-changes.rst b/DOCS/client-api-changes.rst index 73e3048498..b9b264d220 100644 --- a/DOCS/client-api-changes.rst +++ b/DOCS/client-api-changes.rst @@ -31,12 +31,15 @@ API changes =========== :: - - --- mpv 0.29.0 --- - 1.102 - redo handling of async commands + --- mpv 0.30.0 --- + 1.103 - redo handling of async commands - add mpv_event_command and make it possible to return values from commands issued with mpv_command_async() or mpv_command_node_async() - add mpv_abort_async_command() + 1.102 - rename struct mpv_opengl_drm_osd_size to mpv_opengl_drm_draw_surface_size + - rename MPV_RENDER_PARAM_DRM_OSD_SIZE to MPV_RENDER_PARAM_DRM_DRAW_SURFACE_SIZE + + --- mpv 0.29.0 --- 1.101 - add MPV_RENDER_PARAM_ADVANCED_CONTROL and related API - add MPV_RENDER_PARAM_NEXT_FRAME_INFO and related symbols - add MPV_RENDER_PARAM_BLOCK_FOR_TARGET_TIME diff --git a/DOCS/edl-mpv.rst b/DOCS/edl-mpv.rst index 7c9f64e160..2d451926cb 100644 --- a/DOCS/edl-mpv.rst +++ b/DOCS/edl-mpv.rst @@ -147,6 +147,24 @@ Example:: Plays chapter 3 and ends with the start of chapter 7 (4 chapters later). +Implicit chapters +================= + +mpv will add one chapter per segment entry to the virtual timeline. + +By default, the chapter's titles will match the entries' filenames. +You can override set the ``title`` option to override the chapter title for +that segment. + +Example:: + + # mpv EDL v0 + cap.ts,5,240 + OP.mkv,0,90,title=Show Opening + +The virtual timeline will have two chapters, one called "cap.ts" from 0-240s +and a second one called "Show Opening" from 240-330s. + Syntax of EDL URIs ================== diff --git a/DOCS/interface-changes.rst b/DOCS/interface-changes.rst index b6dead571f..82a5d1a875 100644 --- a/DOCS/interface-changes.rst +++ b/DOCS/interface-changes.rst @@ -19,6 +19,53 @@ Interface changes :: + --- mpv 0.30.0 --- + - rename `--drm-osd-plane-id` to `--drm-draw-plane`, `--drm-video-plane-id` to + `--drm-drmprime-video-plane` and `--drm-osd-size` to `--drm-draw-surface-size` + to better reflect what the options actually control, that the values they + accept aren't actually internal DRM ID's (like with similar options in + ffmpeg's KMS support), and that the video plane is only used when the drmprime + overlay hwdec interop is active, with the video being drawn to the draw plane + otherwise. + - in addition to the above, the `--drm-draw-plane` and `--drm-drmprime-video-plane` + options now accept either an integer index, or the values primary or overlay. + `--drm-draw-plane` now defaults to primary and `--drm-drmprime-video-plane` + defaults to overlay. This should be similar to previous behavior on most drivers + due to how planes are usually sorted. + - rename --opensles-frames-per-buffer to --opensles-frames-per-enqueue to + better reflect its purpose. In the past it overrides the buffer size the AO + requests (but not the default/value of the generic --audio-buffer option). + Now it only guarantees that the soft buffer size will not be smaller than + itself while setting the size per Enqueue. + - add --opensles-buffer-size-in-ms, allowing user to tune the soft buffer size. + It overrides the --audio-buffer option unless it's set to 0 (with the default + being 250). + - remove `--linear-scaling`, replaced by `--linear-upscaling` and + `--linear-downscaling`. This means that `--sigmoid-upscaling` no longer + implies linear light downscaling as well, which was confusing. + - the built-in `gpu-hq` profile now includes` --linear-downscaling`. + - support for `--spirv-compiler=nvidia` has been removed, leaving `shaderc` + as the only option. The `--spirv-compiler` option itself has been marked + as deprecated, and may be removed in the future. + - ipc: require that "request_id" fields are integers. Other types are still + accepted for compatibility, but this will stop in the future. Also, if no + request_id is provided, 0 will be assumed. + - mpv_command_node() and mp.command_native() now support named arguments + (see manpage). If you want to use them, use a new version of the manpage + as reference, which lists the definitive names. + - edition and disc title switching will now fully reload playback (may have + consequences for scripts, client API, or when using file-local options) + - remove async playback abort hack. This breaks aborting playback in the + following cases, iff the current stream is a network stream that + completely stopped responding: + - setting "program" property + - setting "cache-size" property + In earlier versions of mpv, the player core froze as well in these cases, + but could still be aborted with the quit, stop, playlist-prev, + playlist-next commands. If these properties are not accessed, frozen + network streams should not freeze the player core (only playback in + uncached regions), and differing behavior should be reported as a bug. + If --demuxer-thread=no is used, there are no guarantees. --- mpv 0.29.0 --- - drop --opensles-sample-rate, as --audio-samplerate should be used if desired - drop deprecated --videotoolbox-format, --ff-aid, --ff-vid, --ff-sid, @@ -103,25 +150,6 @@ Interface changes of 3D content doesn't justify such an option anyway. - change cycle-values command to use the current value, instead of an internal counter that remembered the current position. - - ipc: require that "request_id" fields are integers. Other types are still - accepted for compatibility, but this will stop in the future. Also, if no - request_id is provided, 0 will be assumed. - - mpv_command_node() and mp.command_native() now support named arguments - (see manpage). If you want to use them, use a new version of the manpage - as reference, which lists the definitive names. - - edition and disc title switching will now fully reload playback (may have - consequences for scripts, client API, or when using file-local options) - - remove async playback abort hack. This breaks aborting playback in the - following cases, iff the current stream is a network stream that - completely stopped responding: - - setting "program" property - - setting "cache-size" property - In earlier versions of mpv, the player core froze as well in these cases, - but could still be aborted with the quit, stop, playlist-prev, - playlist-next commands. If these properties are not accessed, frozen - network streams should not freeze the player core (only playback in - uncached regions), and differing behavior should be reported as a bug. - If --demuxer-thread=no is used, there are no guarantees. - remove deprecated ao/vo auto profiles. Consider using scripts like auto-profiles.lua instead. --- mpv 0.28.0 --- diff --git a/DOCS/man/input.rst b/DOCS/man/input.rst index 5413ad79be..7c95965773 100644 --- a/DOCS/man/input.rst +++ b/DOCS/man/input.rst @@ -511,7 +511,7 @@ Remember to quote string arguments in input.conf (see `Flat command syntax`_). Print text to stdout. The string can contain properties (see `Property Expansion`_). Take care to put the argument in quotes. -``show-text <text> [<duration> [<level>]]`` +``show-text <text> [<duration>|-1 [<level>]]`` Show text on the OSD. The string can contain properties, which are expanded as described in `Property Expansion`_. This can be used to show playback time, filename, and so on. diff --git a/DOCS/man/mpv.rst b/DOCS/man/mpv.rst index c99a30e11f..8c19906d62 100644 --- a/DOCS/man/mpv.rst +++ b/DOCS/man/mpv.rst @@ -210,14 +210,19 @@ Alt + and Alt - Alt+BACKSPACE Reset the pan/zoom settings. -F9 +F8 Show the playlist and the current position in it (useful only if a UI window is used, broken on the terminal). -F10 +F9 Show the list of audio and subtitle streams (useful only if a UI window is used, broken on the terminal). +i and I + Show/toggle an overlay displaying statistics about the currently playing + file such as codec, framerate, number of dropped frames and so on. See + `STATS`_ for more information. + (The following keys are valid only when using a video output that supports the corresponding adjustment.) diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst index c8e75556c0..9ebbdd797b 100644 --- a/DOCS/man/options.rst +++ b/DOCS/man/options.rst @@ -427,7 +427,6 @@ Program Behavior the player with Shift+Q. ``--watch-later-directory=<path>`` - The directory in which to store the "watch later" temporary files. The default is a subdirectory named "watch_later" underneath the @@ -540,19 +539,15 @@ Program Behavior If the script can't do anything with an URL, it will do nothing. - The `try_ytdl_first` script option accepts a boolean 'yes' or 'no', and if + The ``try_ytdl_first`` script option accepts a boolean 'yes' or 'no', and if 'yes' will try parsing the URL with youtube-dl first, instead of the default where it's only after mpv failed to open it. This mostly depends on whether most of your URLs need youtube-dl parsing. - The `exclude` script option accepts a ``|``-separated list of URL patterns + The ``exclude`` script option accepts a ``|``-separated list of URL patterns which mpv should not use with youtube-dl. The patterns are matched after the ``http(s)://`` part of the URL. - The `use_manifests` script option makes mpv use the master manifest URL for - formats like HLS and DASH, if available, allowing for video/audio selection - in runtime. It's disabled ("no") by default for performance reasons. - ``^`` matches the beginning of the URL, ``$`` matches its end, and you should use ``%`` before any of the characters ``^$()%|,.[]*+-?`` to match that character. @@ -567,6 +562,9 @@ Program Behavior See more lua patterns here: https://www.lua.org/manual/5.1/manual.html#5.4.1 + The ``use_manifests`` script option makes mpv use the master manifest URL for + formats like HLS and DASH, if available, allowing for video/audio selection + in runtime. It's disabled ("no") by default for performance reasons. ``--ytdl-format=<best|worst|mp4|webm|...>`` Video format/quality that is directly passed to youtube-dl. The possible @@ -751,7 +749,7 @@ Video likely works with Intel GPUs only. It also requires the opengl EGL backend. The ``cuda`` and ``cuda-copy`` modes provides deinterlacing in the decoder - which is useful as there is no other deinterlacing mechanism in the opengl + which is useful as there is no other deinterlacing mechanism in the gpu output path. To use this deinterlacing you must pass the option: ``vd-lavc-o=deint=[weave|bob|adaptive]``. Pass ``weave`` (or leave the option unset) to not attempt any @@ -780,6 +778,11 @@ Video codecs. See ``--hwdec-codecs`` to enable hardware decoding for more codecs. + .. note:: + + Most non-copy methods only work with the OpenGL GPU backend. Currently, + only the ``nvdec`` and ``cuda`` methods work with Vulkan. + .. admonition:: Quality reduction with hardware decoding In theory, hardware decoding does not reduce video quality (at least @@ -889,14 +892,18 @@ Video format, with likely no advantages. ``--cuda-decode-device=<auto|0..>`` - Choose the GPU device used for decoding when using the ``cuda`` hwdec. + Choose the GPU device used for decoding when using the ``cuda`` or + ``nvdec`` hwdecs with the OpenGL GPU backend. - By default, the device that is being used to provide OpenGL output will + By default, the device that is being used to provide ``gpu`` output will also be used for decoding (and in the vast majority of cases, only one GPU will be present). - Note that when using the ``cuda-copy`` hwdec, a different option must be - passed: ``--vd-lavc-o=gpu=<0..>``. + Note that when using the ``cuda-copy`` or ``nvdec-copy`` hwdec, a + different option must be passed: ``--vd-lavc-o=gpu=<0..>``. + + Note that this option is not available with the Vulkan GPU backend. With + Vulkan, decoding must always happen on the display device. ``--vaapi-device=<device file>`` Choose the DRM device for ``vaapi-copy``. This should be the path to a @@ -4246,11 +4253,6 @@ The following video options are currently all specific to ``--vo=gpu`` 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 - ``--fbo-format`` that has at least 16 bit precision. This option - has no effect on HDR content. - ``--correct-downscaling`` When using convolution based filters, extend the filter size when downscaling. Increases quality, but reduces performance while downscaling. @@ -4259,6 +4261,32 @@ The following video options are currently all specific to ``--vo=gpu`` and better than without it) since it will extend the size to match only the milder of the scale factors between the axes. +``--linear-downscaling`` + Scale in linear light when downscaling. It should only be used with a + ``--fbo-format`` that has at least 16 bit precision. This option + has no effect on HDR content. + +``--linear-upscaling`` + Scale in linear light when upscaling. Like ``--linear-downscaling``, it + should only be used with a ``--fbo-format`` that has at least 16 bits + precisions. This is not usually recommended except for testing/specific + purposes. Users are advised to either enable ``--sigmoid-upscaling`` or + keep both options disabled (i.e. scaling in gamma light). + +``--sigmoid-upscaling`` + When upscaling, use a sigmoidal color transform to avoid emphasizing + ringing artifacts. This is incompatible with and replaces + ``--linear-upscaling``. (Note that sigmoidization also requires + linearization, so the ``LINEAR`` rendering step fires in both cases) + +``--sigmoid-center`` + The center of the sigmoid curve used for ``--sigmoid-upscaling``, must be a + float between 0.0 and 1.0. Defaults to 0.75 if not specified. + +``--sigmoid-slope`` + The slope of the sigmoid curve used for ``--sigmoid-upscaling``, must be a + float between 1.0 and 20.0. Defaults to 6.5 if not specified. + ``--interpolation`` Reduce stuttering caused by mismatches in the video fps and display refresh rate (also known as judder). @@ -4425,18 +4453,19 @@ The following video options are currently all specific to ``--vo=gpu`` and ``--spirv-compiler=<compiler>`` Controls which compiler is used to translate GLSL to SPIR-V. This is - (currently) only relevant for ``--gpu-api=vulkan``. The possible choices - are: + (currently) only relevant for ``--gpu-api=vulkan`` and `--gpu-api=d3d11`. + The possible choices are currently only: auto Use the first available compiler. (Default) shaderc Use libshaderc, which is an API wrapper around glslang. This is generally the most preferred, if available. - nvidia - Use nvidia's built-in compiler. Only works for nvidia GPUs. Can be - buggy, but also supports some features glslang does not. Only works - with vulkan. + + .. note:: + + This option is deprecated, since there is only one reasonable value. + It may be removed in the future. ``--glsl-shaders=<file-list>`` Custom GLSL hooks. These are a flexible way to add custom fragment shaders, @@ -4647,7 +4676,8 @@ The following video options are currently all specific to ``--vo=gpu`` and LINEAR (fixed) Linear light image, before scaling. This only fires when - ``--linear-scaling`` is in effect. + ``--linear-upscaling``, ``--linear-downscaling`` or + ``--sigmoid-upscaling`` is in effect. SIGMOID (fixed) Sigmoidized light, before scaling. This only fires when @@ -4704,18 +4734,6 @@ The following video options are currently all specific to ``--vo=gpu`` and remaining quantization artifacts. Higher numbers add more noise. (Default 48) -``--sigmoid-upscaling`` - When upscaling, use a sigmoidal color transform to avoid emphasizing - ringing artifacts. This also implies ``--linear-scaling``. - -``--sigmoid-center`` - The center of the sigmoid curve used for ``--sigmoid-upscaling``, must be a - float between 0.0 and 1.0. Defaults to 0.75 if not specified. - -``--sigmoid-slope`` - The slope of the sigmoid curve used for ``--sigmoid-upscaling``, must be a - float between 1.0 and 20.0. Defaults to 6.5 if not specified. - ``--sharpen=<value>`` If set to a value other than 0, enable an unsharp masking filter. Positive values will sharpen the image (but add more ringing and aliasing). Negative @@ -4813,6 +4831,15 @@ The following video options are currently all specific to ``--vo=gpu`` and OS X only. +``--cocoa-cb-sw-renderer=<yes|no|auto>`` + Use the Apple Software Renderer when using cocoa-cb (default: auto). If set + to ``no`` the software renderer is never used and instead fails when a the + usual pixel format could not be created, ``yes`` will always only use the + software renderer, and ``auto`` only falls back to the software renderer + when the usual pixel format couldn't be created. + + OS X only. + ``--macos-title-bar-style=<dark|ultradark|light|mediumlight|auto>`` Sets the styling of the title bar (default: dark). OS X and cocoa-cb only @@ -4936,9 +4963,12 @@ The following video options are currently all specific to ``--vo=gpu`` and Selects the internal format of textures used for FBOs. The format can influence performance and quality of the video output. ``fmt`` can be one of: rgb8, rgb10, rgb10_a2, rgb16, rgb16f, rgb32f, rgba12, rgba16, rgba16f, - rgba16hf, rgba32f. Default: ``auto``, which maps to rgba16 on desktop GL, - and rgba16f or rgb10_a2 on GLES (e.g. ANGLE), unless GL_EXT_texture_norm16 - is available. + rgba16hf, rgba32f. + + Default: ``auto``, which first attempts to utilize 16bit float + (rgba16f, rgba16hf), and falls back to rgba16 if those are not available. + Finally, attempts to utilize rgb10_a2 or rgba8 if all of the previous formats + are not available. ``--gamma-factor=<0.1..2.0>`` Set an additional raw gamma factor (default: 1.0). If gamma is adjusted in @@ -5103,7 +5133,7 @@ The following video options are currently all specific to ``--vo=gpu`` and desaturating everything. Developed by John Hable for use in video games. Use this when you care about detail preservation more than color/brightness accuracy. This is roughly equivalent to - ``--hdr-tone-mapping=reinhard --tone-mapping-param=0.24``. If possible, + ``--tone-mapping=reinhard --tone-mapping-param=0.24``. If possible, you should also enable ``--hdr-compute-peak`` for the best results. (Default) gamma diff --git a/DOCS/man/vf.rst b/DOCS/man/vf.rst index d979337e42..92c642c24b 100644 --- a/DOCS/man/vf.rst +++ b/DOCS/man/vf.rst @@ -16,7 +16,7 @@ The exact syntax is: name is an arbitrary user-given name, which identifies the filter. This is only needed if you want to toggle the filter at runtime. - A ``!`` before the filter name means the filter is enabled by default. It + A ``!`` before the filter name means the filter is disabled by default. It will be skipped on filter creation. This is also useful for runtime filter toggling. diff --git a/DOCS/man/vo.rst b/DOCS/man/vo.rst index 6772fa31bf..69e4341b44 100644 --- a/DOCS/man/vo.rst +++ b/DOCS/man/vo.rst @@ -488,21 +488,30 @@ Available video output drivers are: Mode ID to use (resolution and frame rate). (default: 0) - ``--drm-osd-plane-id=<number>`` - Select the DRM plane index to use for OSD (or OSD and video). - Index is zero based, and related to crtc. - When using this option with the drm_prime renderer, it will only affect - the OSD contents. Otherwise it will set OSD & video plane. - (default: primary plane) - - ``--drm-video-plane-id=<number>`` - Select the DRM plane index to use for video layer. - Index is zero based, and related to crtc. - This option only has effect when using the drm_prime renderer (which - supports several layers) together with ``vo=gpu`` and ``gpu-context=drm``. - (default: first overlay plane) - - ``--drm-format=<xrgb8888,xrgb2101010>`` + ``--drm-draw-plane=<primary|overlay|N>`` + Select the DRM plane to which video and OSD is drawn to, under normal + circumstances. The plane can be specified as ``primary``, which will + pick the first applicable primary plane; ``overlay``, which will pick + the first applicable overlay plane; or by index. The index is zero + based, and related to the CRTC. + (default: primary) + + When using this option with the drmprime-drm hwdec interop, only the OSD + is rendered to this plane. + + ``--drm-drmprime-video-plane=<primary|overlay|N>`` + Select the DRM plane to use for video with the drmprime-drm hwdec + interop (used by e.g. the rkmpp hwdec on RockChip SoCs, and v4l2 hwdec:s + on various other SoC:s). The plane is unused otherwise. This option + accepts the same values as ``--drm-draw-plane``. (default: overlay) + + To be able to successfully play 4K video on various SoCs you might need + to set ``--drm-draw-plane=overlay --drm-drmprime-video-plane=primary`` + and setting ``--drm-draw-surface-size=1920x1080``, to render the OSD at a + lower resolution (the video when handled by the hwdec will be on the + drmprime-video plane and at full 4K resolution) + + ``--drm-format=<xrgb8888|xrgb2101010>`` Select the DRM format to use (default: xrgb8888). This allows you to choose the bit depth of the DRM mode. xrgb8888 is your usual 24 bit per pixel/8 bits per channel packed RGB format with 8 bits of padding. @@ -515,11 +524,18 @@ Available video output drivers are: This currently only has an effect when used together with the ``drm`` backend for the ``gpu`` VO. The ``drm`` VO always uses xrgb8888. - ``--drm-osd-size=<[WxH]>`` - Sets the OSD OpenGL size to the specified size. OSD will then be upscaled - to the current screen resolution. This option can be useful when using - several layers in high resolutions with a GPU which cannot handle it. - Note : this option is only available with DRM atomic support. + ``--drm-draw-surface-size=<[WxH]>`` + Sets the size of the surface used on the draw plane. The surface will + then be upscaled to the current screen resolution. This option can be + useful when used together with the drmprime-drm hwdec interop at high + resolutions, as it allows scaling the draw plane (which in this case + only handles the OSD) down to a size the GPU can handle. + + When used without the drmprime-drm hwdec interop this option will just + cause the video to get rendered at a different resolution and then + scaled to screen size. + + Note: this option is only available with DRM atomic support. (default: display resolution) ``mediacodec_embed`` (Android) |