summaryrefslogtreecommitdiffstats
path: root/DOCS
Commit message (Collapse)AuthorAgeFilesLines
* vo_gpu_next: expose --tone-mapping=st2094-40 and st2094-10Niklas Haas2023-02-132-0/+12
|
* ao_pipewire: allow usage of global volume controlThomas Weißschuh2023-02-111-0/+5
| | | | | | | | | | | | | PipeWire supports a global volume control for streams that works on top of the per-channel volumes. As mpv only supports a single volume with ao-volume it can make sense to use the single global volume from PipeWire for it. This allows the user to also specify per-channel volumes and not have mpv trample over them. This mode is not the default as pulseaudio does not support this global volume control and all tooling controlling PipeWire via pipewire-pulse (like pavucontrol) will not be able to see this channel.
* DOCS/options: remove testing note in video-sync-max-factorDudemanguy2023-02-111-3/+0
| | | | | | | This option is a bit obscure, but some people do use it and it can be useful. The actual code that implements this is very simple, so there's really no need to have a scary note in the docs about it possibly changing or being removed.
* vf_sub: undeprecateDudemanguy2023-02-111-0/+1
| | | | | | | | | | 3a9e661e929c34d25810fa903abbd9961f73ecef officially made this video filter deprecated roughly 6 years ago. Every other video filter in that commit has actually been removed since then except for vf_sub. ffmpeg does have its own subtitles filter, but it doesn't have the same control over scale like vf_sub does. That's probably why wm4 never actually removed it. Let's stop scaring users with a warning since this filter probably won't ever get removed. Closes #9254.
* video/image_writer: change screenshot-tag-colorspace default to yesLeo Izen2023-02-092-1/+2
| | | | | | With significant improvements to the color tagging support in various screenshot formats, e.g. cICP in FFmpeg, and JPEG XL's generally robust color support, it's safe to default this to yes.
* DOCS/input: remove experimental note from sub-textMax Dunbar2023-02-051-4/+0
|
* ao_pipewire: add support for exclusive modeThomas Weißschuh2023-02-031-4/+4
|
* wayland: add auto choice to wayland-configure-boundsDudemanguy2023-01-301-4/+4
| | | | | | | | | | | Previously, this defaulted to yes and configure-bounds from the compositor would always apply. In the case where the user explicitly set autofit or geometry, this could be confusing because configure-bounds would take precedence over it. Instead, let's add an auto choice and make that the default. If we detect that the option is on auto and that there is autofit/geometry being set, then ignore the event. This should be more intuitive since someone who bothers to explicitly set mpv's geometry would naturally expect that geometry to actually apply.
* lua/js: remove user-data helpersAvi Halachmi (:avih)2023-01-293-38/+0
| | | | | | | | | | | | | | | This reverts: 3fb4140c lua/defaults: add user_data helpers 68a20e7a javascript/defaults: add user_data helpers 00510379 lua/js: fix user_data_del util function As well as the lua/js parts of: 3ec2a098 docs: document new user-data property user-data and its sub-properties can be set/get/observed/deleted via the standard properties interface, so there's no need for additional helpers specific to user-data, which only added maintenance burden.
* doc: correct spelling of user-data/user_data JS/lua helpersrcombs2023-01-282-16/+16
|
* docs: document new user-data propertyrcombs2023-01-283-0/+56
|
* javascript: add mp.del_property()rcombs2023-01-281-0/+2
|
* lua: add mp.del_property()rcombs2023-01-281-0/+6
|
* libmpv: add mpv_del_property() convenience functionrcombs2023-01-281-0/+1
|
* player/command: add "del" commandrcombs2023-01-281-0/+3
|
* DOCS: Add missing 'not'Oxan van Leeuwen2023-01-281-2/+2
|
* DOCS/compile-windows.md: update MSYS2 packagesKacper Michajłow2023-01-281-2/+2
|
* 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 regardle