summaryrefslogtreecommitdiffstats
path: root/DOCS
Commit message (Collapse)AuthorAgeFilesLines
* wayland: add wp-fractional-scale-v1 supportDudemanguy2023-01-241-0/+4
| | | | | | | | | | | | | This protocol is pretty important since it finally lets us solve the longstanding issue of fractional scaling in wayland (no more mpv doing rendering over the target resolution and then being scaled down). This protocol also can completely replace the buffer_scale usage that we are currently using for integer scaling so hopefully this can be removed sometime in the future. Note that vo_dmabuf_wayland is omitted from the fractional scale handling because we want the compositor to handle all the scaling for that VO. Fixes #9443.
* vd_lavc: add "auto" choice for vd-lavc-drsfan52023-01-232-2/+7
| | | | | | | | | | | | --vd-lavc-dr defaulted to "yes", which caused issues on certain hardware. Instead of disabling it, add a new "auto" value and make it the default. The "auto" choice will enable DR only when we can request host-cached buffers (as signalled by the new VO_DR_FLAG_HOST_CACHED). Co-authored-by: Nicolas F. <ovdev@fratti.ch> Co-authored-by: Niklas Haas <git@haasn.dev>
* DOCS/compile-windows.md: update with meson instructionsLaserEyess2023-01-151-33/+34
| | | | | | No need to encourage waf here. Note: minor edits by Dudemanguy to update some dead links and such.
* DOCS: clarify wid casting on Windowssfan52023-01-121-2/+3
| | | | | | | | | | The situation here is that HWND is always a 32-bit value but the win32 API also accepts sign-extended values as valid. The trouble starts when the numeric value is negative, as mpv ignores those. Apparently this only happens after a while (related to uptime or number of handles created), which meant this problem was rare. addresses #10189
* player: don't force saving start in watch-later-optionsDudemanguy2023-01-092-4/+7
| | | | | | | | | | | | The watch-later mechanism has always unconditionally wrote start to files to save the playback position. When this was later expanded to watch-later-options, this logic was kept in place. But we don't actually have to unconditionally write this and can allow users to remove the option from the list if they want to. The start value still requires some special handling; it should always be written if possible regardless of the value changing. However, we can just place it within the default set of options for watch-later-options so it can be removed like any other.
* player: add video-sync=display-tempoChristoph Heinrich2023-01-092-2/+15
| | | | | | | | So far there was no way to sync video to display and have audio sync to video without changes in pitch. With this option the audio does not get resampled (pitch change) and instead the corrected audio speed is applied to audio filters.
* demux: add --demuxer-hysteresis-secs option to save power with cachingSultan Alsawaf2022-12-302-0/+28
| | | | | | | | | | | | | | | | | | | | | | Buffering ahead nonstop into the cache results in nonstop disk or network activity to read stream data from wherever it may originate. Currently, there's no way to configure the demuxer to back off once it's buffered ahead enough data, since the cache limit will be perpetually not-reached as a stream continues to play, until the entire stream is eventually buffered. On a laptop with an i9-12900H with decoding performed by the iGPU, watching a locally-saved 1080p video which hasn't been buffered into the page cache consumes approximately 15 W even with caching enabled. When configuring a hysteresis to make the demuxer back off, power consumption drops to 9 W when watching the same video, resulting in a whopping 6 W of power savings. To make it possible to attain significant power savings via caching, add a --demuxer-hysteresis-secs option to configure a hysteresis to make the demuxer back off until there's only the configured number of seconds remaining in the cache from the current playback position. This feature is disabled by default.
* vo_kitty: Introduce modern sixel alternativeMia Herkt2022-12-212-0/+44
| | | | | | | | | | | | | See https://sw.kovidgoyal.net/kitty/graphics-protocol/ This makes no attempt at querying terminal features or handling terminal errors, as it would require mpv to pass the response codes from the terminal to the vo instead of interpreting them as keystrokes made by the user and acting very unpredictably. Tested with kitty and konsole. Fixes #9605
* man/vo: TypoMia Herkt2022-12-201-1/+1
|
* man/vo: Correct --vo-sixel-bufferedMia Herkt2022-12-201-2/+3
|
* vo_sixel: Rename draw-clear -> config-clearMia Herkt2022-12-202-3/+4
|
* vo_sixel: Alias/deprecate exit-clear -> alt-screenMia Herkt2022-12-202-5/+11
| | | | Also update documentation to reflect actual behavior.
* vo_sixel: Make buffering optionalMia Herkt2022-12-202-6/+15
| | | | It can be slower than unbuffered.
* man/vo: Fix rendering error due to non-printablesMia Herkt2022-12-201-1/+1
|
* DOCS/interface-changes: Add --vo-sixel-draw-clearMia Herkt2022-12-201-0/+1
|
* vo_sixel: Add option to skip clear while drawingMia Herkt2022-12-191-0/+3
|
* player: add window-id propertyNRK2022-12-051-0/+4
| | | | | | | | | | | | | | | | | | | | | currently only supported on x11. one practical use-case of this is wanting to embed something (such as dmenu) into the mpv window to use as a menu/selection. there might be other use-cases as well (e.g doing some shenanigans with `xdotool` or whatnot). it's currently possible to: * listen for 'current-window-scale' change (to check if the window has been created or not) * call an external tool like `xdo` or `xdotool` and grab the xid from mpv's pid. however it adds unnecessary dependency on external tools when mpv is fully capable of easily providing this information. closes: #10918
* drm: remove legacy APILaserEyess2022-11-162-11/+1
| | | | | | | | | | | | | The legacy DRM API adds some complexity to the DRM code. There are only 4 drivers that do not support the DRM Atomic API: 1. radeon (early GCN amd cards) 2. gma500 (ancient intel GPUs) 3. ast (ASPEED SoCs) 4. nouveau Going forward, new DRM drivers will be guaranteed to support the atomic API so this is a safe removal.
* wayland: add support for content-type protocolDudemanguy2022-11-152-0/+7
| | | | | | | | | | | | | | | | | | | | The content-type protocol allows mpv to send compositor a hint about the type of content being displayed on its surface so it could potentially make some sort of optimization. Fundamentally, this is pretty simple but since this requires a very new wayland-protocols version (1.27), we have to mess with the build to add a new define and add a bunch of if's in here. The protocol itself exposes 4 different types of content: none, photo, video, and game. To do that, let's add a new option (wayland-content-type) that lets users control what hint to send to the compossitor. Since the previous commit adds a VOCTRL that notifies us about the content being displayed, we can also add an auto value to this option. As you'd expect, the compositor hint would be set to photo if mpv's core detects an image, video for other things, and it is set to none for the special case of forcing a window when there is not a video track. For completion's sake, game is also allowed as a value for this option, but in practice there shouldn't be a reason to use that.
* player: add --force-render optionDudemanguy2022-11-152-0/+8
| | | | | | | | mpv has an internal optimization on a couple of platforms where it will not render any frames if the window is minimized or hidden. There's at least once possible use case for wanting to force a render anyway (screensharing with pipeware) so let's just add a simple switch for this that always forces mpv to render. Closes #10846.
* DOCS: update release policy to match realitysfan52022-11-131-18/+23
|
* vo_gpu_next: add tunable shader parametersNiklas Haas2022-11-112-0/+8
| | | | | | | | | | | This is a very simple but easy way of doing it. Ideally, it would be nice if we could also add some sort of introspection about shader parameters at runtime, ideally exposing the entire list of parameters as a custom property dict. But that is a lot of effort for dubious gain. It's worth noting that, as currently implemented, re-setting `glsl-shader-opts` to a new value doesn't reset back previously mutated values to their defaults.
* console: add history deduplicationChristoph Heinrich2022-11-031-1/+6
| | | | | | | | | | | | | Deduplicate history like the fish shell. So for example entering "cmd 1" then "cmd 2" then "cmd 3" then "cmd 1" would result in a history of [cmd 2][cmd 3][cmd 1] instead of [cmd 1][cmd 2][cmd 3][cmd 1] Adds a function `history_add` to replace directly adding to history. Adds an option `history_dedup` to activate the deduplication. Defaults to on.
* vo_dmabuf_wayland: use special ra_ctx_create_by_nameDudemanguy2022-10-281-5/+0
| | | | | | | | | | | | | | | | | | | vo_dmabuf_wayland has its own ra and context so it can handle all the different hwdec correctly. Unfortunately, this API was pretty clearly designed with vo_gpu/vo_gpu_next in mind and has a lot of concepts that don't make sense for vo_dmabuf_wayland. We still want to bolt on a ra_ctx, but instead let's rework the ra_ctx logic a little bit. First, this introduces a hidden bool within the ra_ctx_fns that is used to hide the wldmabuf context from users as an option (unlike the other usual contexts). We also want to make sure that hidden contexts wouldn't be autoprobed in the usual ra_ctx_create, so we be sure to skip those in that function. Additionally, let's create a new ra_ctx_create_by_name function which does exactly what says. It specifically selects a context based on a passed string. This function has no probing or option logic is simplified just for what vo_dmabuf_wayland needs. The api/context validations functions are modified just a little bit to make sure hidden contexts are skipped and the documentation is updated to remove this entries. Fixes #10793.
* vo_vaapi_wayland: remove, as it is superceded by vo_dmabuf_waylandAaron Boxer2022-10-263-8/+9
|
* vo_dmabuf_wayland: wayland VO displaying dmabuf buffersAaron Boxer2022-10-261-0/+5
| | | | | | | | | | | | | Wayland VO that can display images from either vaapi or drm hwdec The PR adds the following changes: 1. a context_wldmabuf context with no gl dependencies 2. no-op ra_wldmabuf and dmabuf_interop_wldmabuf objects no-op because there is no need to map/unmap the drmprime buffer, and there is no need to manage any textures. Tested on both x86_64 and rk3399 AArch64
* DOCS: document E to cycle through EditionsLeo Izen2022-10-241-0/+3
| | | | | | Pushing E (aka Shift+e) cycles through Editions for containers that support editions, such as Matroska, although this feature was not documented before this commit.
* DOCS: fix minor typo with keep-open descriptionLeo Izen2022-10-121-1/+1
| | | | | Fix a minor typo in the description of --keep-open in DOCS/man/options.rst
* vo_gpu/hwdec: rename and introduce legacy names for some interopsPhilip Langdale2022-10-111-8/+8
| | | | | | | | | | | | We've had some annoying names for interops, which we can't simply rename because that would break config files and command lines. So we need to put a little more effort in and add a concept of legacy names that allow us to continue loading them, but with a warning. The two I'm renaming here are: * vaapi-egl -> vaapi (vaapi works with Vulkan too) * drmprime-drm -> drmprime-overlay (actually describes what it does) * cuda-nvdec -> cuda (cuda interop is not nvdec specific)
* ao_pipewire: allow specification of remote nameThomas Weißschuh2022-10-061-0/+5
|
* vulkan: remove --vulkan-disable-eventsNiklas Haas2022-10-052-5/+1
| | | | | | This has had no effect since libplacebo v4.192.0, and was deprecated upstream a year ago. No deprecation period in mpv is justified by this being a debug / work-around option.
* vo_gpu: hwdec: add Android hwdec utilizing AImageReadersfan52022-10-022-4/+10
|
* DOCS: deprecate --gamma-factor and --gamma-autoLeo Izen2022-10-012-14/+4
| | | | | | | | Removed the outdated information about environmental brightness with respect to --gamma-factor, and mention that the option is deprecated and subject to future removal. Also deprecated the --gamma-auto option as it relies on the same outdated way of doing things.
* manpage: document bt.2390 parameterNiklas Haas2022-09-281-0/+4
| | | | Closes #9788
* DOCS/man/vf.rst : replace the outdated syntaxhooke0072022-09-271-1/+1
| | | | | `get_core()` had been deprecated for several years and totally removed since vapoursynth R55 API4.
* DOCS/man/options.rst: replace some legacy single-hyphen syntaxLeo Izen2022-09-201-3/+3
| | | | | Replace some occurrences of ``-option`` with ``--option`` to coincide with the current option sytnax.
* DOCS: Mention "mono" audio channels optionCairn2022-09-091-3/+3
|
* DOCS/libmpv: fix typo in linkage section257924312022-09-031-1/+1
|
* DOCS/options: update vd-lavc-skiploopfilter, skipidct and related descriptionssfan52022-08-311-5/+7
| | | | Cross-checked the current functionality of these with the FFmpeg source.
* DOCS/mpv: remove spaces at EOL, ensure 80 colsAvi Halachmi (:avih)2022-08-291-4/+5
| | | | These are fixes for the previous commit.
* DOCS/mpv: added COMMAND INTERFACE refs to INTERACTIVE CONTROLenly12022-08-291-3/+5
| | | | Added COMMAND INTERFACE references to make it easier for new users.
* wayland: add support for configure boundsDudemanguy2022-08-142-0/+9
| | | | | | | | | | | | | | | In wayland-protocols 1.25, xdg-shell got a version bump which added the configure_bounds event. The compositor can send this to clients to indicate that they should not resize past a certain size. For mpv, we'll choose to only listen to this on reconfig events (i.e. when the window first appears and if the video resolution changes later in the playlist). However, this behavior is still exposed as a user option (default on) because it will neccesarily conflict with a user setting a specific geometry size and/or window scale. Presumably, if someone is setting a really large size that goes beyond the bounds of their monitor, they actually want it like that. The wayland-protocols version is newer-ish, but we can get around having to poke the build system by just using a define that exists in the generated xdg-shell header.
* DOCS/options: correct wayland-disable-vsync optionDudemanguy2022-08-121-4/+3
| | | | | This is actually dated. It works on all wayland outputs/VOs and has for some time now.
* hwdec/drmprime: add drmprime hwdec-interopPhilip Langdale2022-08-091-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the confusing landscape of hardware video decoding APIs, we have had a long standing support gap for the v4l2 based APIs implemented for the various SoCs from Rockship, Amlogic, Allwinner, etc. While VAAPI is the defacto default for desktop GPUs, the developers who work on these SoCs (who are not the vendors!) have preferred to implement kernel APIs rather than maintain a userspace driver as VAAPI would require. While there are two v4l2 APIs (m2m and requests), and multiple forks of ffmpeg where support for those APIs languishes without reaching upstream, we can at least say that these APIs export frames as DRMPrime dmabufs, and that they use the ffmpeg drm hwcontext. With those two constants, it is possible for us to write a hwdec-interop without worrying about the mess underneath - for the most part. Accordingly, this change implements a hwdec-interop for any decoder that produces frames as DRMPrime dmabufs. The bulk of the heavy lifting is done by the dmabuf interop code we already had from supporting vaapi, and which I refactored for reusability in a previous set of changes. When we combine that with the fact that we can't probe for supported formats, the new code in this change is pretty simple. This change also includes the hwcontext_fns that are required for us to be able to configure the hwcontext used by `hwdec=drm-copy`. This is technically unrelated, but it seemed a good time to fill this gap. From a testing perspective, I have directly tested on a RockPRO64, while others have tested with different flavours of Rockchip and on Amlogic, providing m2m coverage. I have some other SoCs that I need to spin up to test with, but I don't expect big surprises, and when we inevitably need to account for new special cases down the line, we can do so - we won't be able to support every possible configuration blindly.
* man: remove unhelpful languageMia Herkt2022-08-071-28/+8
| | | | | | | | Whether or not the GNOME project has a tendency to make life difficult for anyone outside their ecosystem, the user manual is no place for childish rants such as this. Keep it to what is relevant for users.
* af_rubberband: add new engine option in rubberband 3.0.0Christoph Heinrich2022-08-031-0/+2
|
* osc.lua: add osc-tcspace script optionRyan Hendrickson2022-07-191-0/+8
| | | | | | | | | | Generally, the hard-coded sizes used for the OSC elements are comfortable regardless of the font used, but the timecode fields have relatively many characters, and so are affected to a greater degree by fonts with a wider or narrower average character width than expected. This allow users to adjust the space reserved for the timecode fields to compensate.
* osc.lua: add osc-unicodeminus script optionRyan Hendrickson2022-07-191-0/+6
| | | | | | This option enables the use of the Unicode U+2212 Minus Sign character when displaying the time remaining, instead of "-" (U+002D Hyphen-Minus).
* DOCS/encoding: remove the legacy option syntaxhooke0072022-07-071-37/+37
|
* DOCS: fix typo257924312022-07-011-1/+1
|
* DOCS/osc: fix option "showidlescreen" -> "idlescreen"dyphire2022-07-011-1/+1
| | | | This option was added in mpv-player@ec236f7, but its name in the document description is incorrect
* lua: command_native_async: always callback a-syncCogentRedTester2022-06-222-1/+3
| | | | | | | | | | | | | | | | | Previously if the raw command_native_async returned an error then the callback function was run directly. This meant that script writers potentially had to account for both synchronous and asynchronous logic in the callback, which can happen even with seemingly 'safe' commands if the mpv event queue is full. This was at odds with the Javascript implementation of the function, which always runs the callback asynchronously. Now the mp.add_timeout function is used to run the callback asynchronously on error, replicating the Javascript implementation. This provides consistency for developers in how the callback is handled in Lua, and increases consistency between the Lua and Javascript APIs.
* x11: add --x11-present optionDudemanguy2022-06-222-0/+18
| | | | | | | | | | | With the recent addition of the libxpresent, it should improve frame timings for most users. However, there were known cases of bad behavior (Nvidia) which lead to a construction of a whitelist instead of just enabling this all the time. Since there's no way to predict whatever combination of hardware/drivers/etc. may work correctly, just give users an option to switch the usage of xorg's presentation statistics on/off. The default value, auto, works like before (basically, Mesa drivers and no Nvidia are allowed), but now one can force it on/off if needed.
* DOCS/options: fix incorrect labelling of hr-seek defaultSagnac2022-06-101-2/+2
| | | | | | | The `absolute` value was incorrectly labelled as the default instead of the value named `default`, which was somewhat confusing. When the newer default option was added in 679e410 it seems like wm4 forgot to remove the label in the manual on the previous default.
* osc.lua: add idlescreen and osc-idlescreenDudemanguy2022-06-041-0/+9
| | | | | | | | | | | | | | | This is mainly for other user scripts that may conflict with the osc logo in some way. Although it is possible to listen for shared-script-properties, this has many edge cases that could easily pop up. A user could want other OSC things to happen at the same time (say osc-message). They just don't want the logo. The idlescreen option disables all idlescreen related things (including the santa hat) if it is set to "no". A new script message (osc-idlescreen) is also added so users can easily toggle the value (passing "cycle" or just explictly setting "yes" or "no"). Some more discussion on this is found in the below github issues. https://github.com/mpv-player/mpv/issues/10201 https://github.com/CogentRedTester/mpv-file-browser/issues/55
* DOCS/interface-changes: mention vaapi-wayland voDudemanguy2022-05-301-0/+1
|
* vo: add new vaapi-wayland driverAaron Boxer2022-05-242-1/+9
| | | | | | | This driver makes use of dmabuffer and viewporter interfaces to enable efficient display of vaapi surfaces, avoiding any unnecessary colour space conversion, and avoiding scaling or colour conversion using GPU shader resources.
* various: remove trailing whitespaceGuido Cella2022-05-141-4/+4
|
* DOCS/input: fix typo "NANME" -> "NAME"Emanuele Torre2022-05-021-1/+1
|
* DOCS/ao: remove only usage of git.io link shortening serviceJakub Wilk2022-04-281-1/+2
| | | | | | | | | This link was originally shortened in bf0cb27489b0e0e00190c4ea2e08290fb3817626 to improve manpage formatting, but unfortunately Github is now taking down this service on the 29th. Thus, the full link is being reinstated. ref: https://github.blog/changelog/2022-04-25-git-io-deprecation/
* DOCS/options: properly capitalize JPEG XLLeo Izen2022-04-261-3/+3
| | | | | The appropriate style for jxl images is JPEG XL, not Jpeg XL. Update the docs to reflect this.
*