summaryrefslogtreecommitdiffstats
path: root/DOCS
Commit message (Collapse)AuthorAgeFilesLines
* test: integrate unittests with mesonDudemanguy2023-03-021-0/+1
| | | | | | | | | | | | This reworks all of mpv's unit tests so they are compiled as separate executables (optional) and run via meson test. Because most of the tests are dependant on mpv's internals, existing compiled objects are leveraged to create static libs and used when necessary. As an aside, a function was moved into video/out/gpu/utils for sanity's sake (otherwise most of vo would have been needed). As a plus, meson multithreads running tests automatically and also the output no longer pollutes the source directory. There are tests that can break due to ffmpeg changes, so they require a specific minimum libavutil version to be built.
* player: remove unittest optionDudemanguy2023-03-021-18/+0
| | | | | | | | | Since meson has its own unit testing system, let's rework mpv's tests so they integrate nicely with this. To prepare for this, start off by dropping the unittest option. Of course, this means that tests will no longer be supported in the waf build at all but it will be dropped anyway. Note that the tests option is preserved for the meson build. We will still make use of this in the future commits.
* DOCS/options: mention default value of cursor-autohideDudemanguy2023-03-011-3/+3
| | | | Closes #11358.
* DOCS/options: clarify hidpi-window-scale descriptionDudemanguy2023-03-011-2/+1
| | | | | | It's enabled by default everywhere. The sentences about macOS is misleading and may imply it's disabled by default on the other platforms.
* player: add --auto-window-resize optionDudemanguy2023-03-022-0/+8
| | | | | | | | | | | mpv's window resizing logic always automatically resized the window whenever the video resolution changed (i.e. advancing forward in a playlist). This simply introduces the option to make this behavior configurable. Every windowing backend would need to implement this behavior in their code since a reconfigure event must always be a resize. The params of the frame changed so you either have to resize the window to the new size of the params or make the params the same size as the window. This commit implements it for wayland, win32, and x11.
* sub: add --sub-fonts-dir and --osd-fonts-dir optionsFrédéric Brière2023-03-012-5/+14
| | | | | | | | These options make it possible to specify the directory that will be passed to ass_set_fonts_dir(), akin to VLC's `--ssa-fontsdir` and FFmpeg's `fontsdir`. Fixes #8338
* command: add platform propertyDudemanguy2023-02-272-0/+7
| | | | | | | | | | | | | | | | | | | | | | | This returns the value of the target OS that mpv was built on as reported by the build system. It is quite conceivable that script writers and API users would need to make OS-dependent choices in some cases. Such people end up writing boilerplate/hacks to guess what OS they are on. Assuming you trust the build system (if you don't, we're in really deep trouble), then mpv actually knows exactly what OS it was built on. Simply take this information at configuration time, make it a define, and let mp_property_platform return the value. Note that mpv has two build systems (waf and meson), so the names of the detected OSes may not be exactly the same. Since meson is the newer build system, the value of this property follows meson's naming conventions*. In the waf build, there is a small function to map known naming deviations to match meson (i.e. changing "win32" to "windows"). waf's documentation is a nightmare to follow, but it seems to simply take the output of sys.platform in python and strip away any trailing numbers if they exist (exception being win32 and os2)*. *: https://mesonbuild.com/Reference-tables.html#operating-system-names *: https://waf.io/apidocs/Utils.html#waflib.Utils.unversioned_sys_platform
* player: set playlist title to media title if not set alreadyChristoph Heinrich2023-02-261-3/+4
| | | | | | | | | The playlist title only got set when it was specified in the playlist file. If there is a title after opening a file, that should also be reflected in the playlist. ref. #4780
* video: make csp equalizer params floatThomas Weißschuh2023-02-241-0/+2
| | | | | | This allows more precise adjustments. Fixes #11316
* DOCS: clarify that GLX is deprecatedsfan52023-02-221-1/+1
|
* DOCS/client-api-changes.rst: move mpv_del_property to 0.36.0llyyr2023-02-211-1/+2
| | | | incorrectly placed under 0.35.0 by 2cfaa820e54b12de437bb4da97d894ad610abcdd
* vo_gpu_next: add --tone-mapping-visualizeNiklas Haas2023-02-192-0/+11
|
* DOCS: document JPEG XL default effort changeLeo Izen2023-02-182-1/+2
| | | | Document the change in 7607432127d5aa4e2a6e8cc05ea112c19aa9ff7f.
* 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 o