summaryrefslogtreecommitdiffstats
path: root/DOCS/man/options.rst
Commit message (Collapse)AuthorAgeFilesLines
* win32: add option to change backdrop styleDeadSix2023-09-271-0/+10
|
* DOCS/options: update libplacebo-opts documentation URLNiklas Haas2023-09-261-1/+1
|
* vo_gpu: remove --scaler-lut-sizeNiklas Haas2023-09-251-8/+0
| | | | | | | Pointless bloat option, hard-coded as 256 now in libplacebo and no reason not to also hard-code in mpv. See-Also: haasn/libplacebo@64d7c5aab06766a9492d3cfffd35333792052cd9
* vo_gpu: remove --scale-cutoff etcNiklas Haas2023-09-251-8/+0
| | | | | | | Pointless bloat option, hard-coded as 1e-3 now in libplacebo and no reason not to also hard-code in mpv. See-Also: haasn/libplacebo@64d7c5aab06766a9492d3cfffd35333792052cd9
* stream_cdda: move cdrom-device to cdda_paramsDudemanguy2023-09-221-2/+2
| | | | | | There is zero reason for this to be an MPOpt. Because of how the OPT_SUBSTRACT works, the option gets renamed to cdda-device instead, but probably not a big deal since the old alias is still in place.
* DOCS/options: remove some stray tabsDudemanguy2023-09-211-2/+2
| | | | | Accidentally added in 2c738ca54b16cdd1982473672bd39068fcf8d948 on a couple of lines. This is what I get for only looking at git webui diff.
* win32: add --window-cornersKacper Michajłow2023-09-211-0/+9
| | | | Allows to set preference for window corners rounding for DWM.
* win32: add an option to control window title bar stateKacper Michajłow2023-09-211-0/+6
| | | | Fixes: #11432
* win32: add an option to change window affinityDeadSix2023-09-211-4/+11
|
* vo_gpu: allow deband-iterations to be 0llyyr2023-09-211-1/+1
| | | | | THis allows adding grain without debanding. libplacebo already supported this, so no changes are required there.
* options: remove deprecated --record-file optionDudemanguy2023-09-211-10/+0
| | | | | | No wonder wm4 wanted to get rid of this. This option requires touching a bunch of crap in the core player code. --stream-record works perfectly fine and is a lot nicer so there's no need for this to exist anymore.
* options: remove a few options marked with .deprecation_messageDudemanguy2023-09-211-10/+0
| | | | | | | | | | | A bit different from the OPT_REPLACED/OPT_REMOVED ones in that the options still possibly do something but they have a deprecation message. Most of these are old and have no real usage. The only potentially controversial ones are the removal of --oaffset and --ovoffset which were deprecated years ago and seemingly have no real replacement. There's a cryptic message about --audio-delay but who knows. The less encoding mode code we have, the better so just chuck it.
* options: remove ancient option fallbacks/deprecationDudemanguy2023-09-211-37/+3
| | | | | | | | | | | | | We've got an ungodly amount of OPT_REPLACED and OPT_REMOVED sitting around in the code. This is harmless, but the vast majority of these are ancient. 26f4f18c0629998a9b91e94722d166866d8b80a3 is the last commit that touched the majority of these and of course that only changed how options were declared so all of this stuff was deprecated even before that. No use in keeping these, so just delete them all. As an aside, there was actually a cocoa_opts but it had only a single option which was replaced by something else and empty otherwise. So that entire thing was just simply removed. OPT_REPLACED/OPT_REMOVED declarations that were added in 0.35 or later were kept as is.
* demux_playlist: add --directory-mode=autoGuido Cella2023-09-211-2/+3
| | | | This is a more useful default with --shuffle.
* options: make video-crop validation more strictKacper Michajłow2023-09-201-1/+1
|
* vo_gpu: match libplacebo debanding defaultsNiklas Haas2023-09-201-2/+2
| | | | | | | | | The defaults were awful and horribly regressed many files while also not fixing banding on files that actually needed it, sometimes even *increasing* banding due to the low threshold. Fixes: 12ffce0f224056f91a20c9f0b197f4973931efbe See-Also: haasn/libplacebo@e1e43376d16d5112ee1254534664b0b85110139b
* vo_gpu: match libplacebo peak detection defaultsNiklas Haas2023-09-201-2/+2
| | | | | | | | | This probably makes `vo_gpu` tone mapping worse, or something, but who cares. The status quo for a while now has been to use `vo_gpu_next` if you care about HDR rendering at all. See-Also: haasn/libplacebo@ec60dd156b82753a2e2d8a399899244605f4d1bf See-Also: haasn/libplacebo@0903cbd05d7fc0391cbd99954924a39b855c8a1b
* vo_gpu: default to dscale=hermiteNiklas Haas2023-09-201-3/+3
| | | | | | | | | | This new filter is slightly sharper, and significantly faster, than mitchell. It also tends to preserve detail better. All in all, there is no reason not to use it by default, especially from a performance PoV. (In vo_gpu_next, hermite is implemented efficiently using hardware accelerated bilinear interpolation) See-Also: https://code.videolan.org/videolan/libplacebo/-/commit/75b3947b2c07803456483ec6976c037bad91b5dd
* DOCS/options: document hermite scalerNiklas Haas2023-09-201-0/+5
| | | | Since I want to make it more prominent.
* DOCS/options: remove potentially offensive languageNiklas Haas2023-09-201-7/+6
| | | | | | | | | | It can hurt people's feelings to refer to scalers as "high quality" and "low quality", when it is so subjective. I decided to preserve the lanczos sections at least because it's mostly talking about the difference between EWA Lanczos and Lanczos, which is less controversial than the difference between, say, Lanczos and Catmull.
* DOCS/options: remove spline36 sectionNiklas Haas2023-09-201-3/+0
| | | | | What a pointless section. We don't use it by default anymore so might as well just remove it.
* DOCS/options: change wording to be less inflammatoryAlex Mitzsch2023-09-201-1/+1
| | | | | Change wording from "Disable idiotic nonsense" to just say "Disable functions like."
* builtin.conf: modernize internal profilesKacper Michajłow2023-09-191-14/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The goal is to provide simple to understand quality/performance level profiles for the users. Instead of default and gpu-hq profile. There main profiles were added: - fast: can run on any hardware - default: balanced profile between quality and performance - high-quality: out of the box high quality experience. Intended mostly for dGPU. Summary of three profiles, including default one: [fast] scale=bilinear cscale=bilinear (implicit) dscale=bilinear dither=no correct-downscaling=no linear-downscaling=no sigmoid-upscaling=no hdr-compute-peak=no [default] (implicit mpv defaults) scale=lanczos cscale=lanczos dscale=mitchell dither-depth=auto correct-downscaling=yes linear-downscaling=yes sigmoid-upscaling=yes hdr-compute-peak=yes [high-quality] (inherits default options) scale=ewa_lanczossharp cscale=ewa_lanczossharp (implicit) hdr-peak-percentile=99.995 hdr-contrast-recovery=0.30 allow-delayed-peak-detect=no deband=yes scaler-lut-size=8
* vo: change tscale to oversample by defaultKacper Michajłow2023-09-191-1/+1
| | | | Keep it sharp, let users opt-in more blurry result.
* vo: make cscale follow scale by defaultKacper Michajłow2023-09-191-1/+2
|
* vo: enable correct-downscaling, linear-downscaling, sigmoid-upscalingKacper Michajłow2023-09-191-3/+4
|
* demux: prepend some cache options with demuxerDudemanguy2023-09-181-2/+2
| | | | | | --cache-dir is an awful name that leads to confusion (see #12418). Change the name to --demuxer-cache-dir and --demuxer-cache-unlink-files instead.
* filter_kernels: remove bcspline filterllyyr2023-09-181-2/+2
| | | | | | After fixing the B and C params for bcspline, it ended up being the same thing as bicubic. There's no reason to have two names for the same filter, so remove bcspline and keep bicubic to match libplacebo.
* vo_gpu: remove --scale-wblur etcNiklas Haas2023-09-161-6/+6
| | | | | | | | | | No need for this since it's entirely redundant with just changing the filter radius directly. In fact, that's the whole *point* of the filter radius - it does not modify the filter, it modifies the scaling of the window. Of course, this does not work for non-resizable kernels. But, really, who cares?
* filter_kernels: add ewa_lanczos4sharpestNiklas Haas2023-09-161-0/+6
| | | | Mainly for vo_gpu_next.
* filter_kernels: use true jinc radiusNiklas Haas2023-09-161-3/+2
| | | | | For all filters. For consistency between vo_gpu and vo_gpu_next. Also makes ewa_lanczossharp less special.
* vo_gpu: vo_gpu_next: support --icc-3dlut-size=autoNiklas Haas2023-09-151-3/+4
| | | | | | | | | | | | And make it the default. In libplacebo, this uses internal heuristics to pick a good size based on the actual ICC characteristics. This is significantly less wasteful than always generating a 64x64x64 3DLUT (the old status quo). In vo_gpu, for simplicity, just default to 65x65x65. Note that this provides slightly better accuracy than the old default of 64x64x64 for technical reasons, and matches what libplacebo defaults to for typical display profiles.
* DOCS/options: add catmull_rom as an example for --scaledokur0chan2023-09-111-0/+7
| | | | | | | | | | | Adds catmull_rom as an example for --scale in the user manual, alongside a brief description of the filter. catmull_rom was only exposed to users as an available filter through --scale=help. However, catmull_rom is very often aliased as "Bicubic" in other applications such as GIMP and VapourSynth, and is a relatively popular resizing filter. The documentation lacked any description of catmull_rom, outside of a brief mention of it in the --tscale section.
* Revert "sub: add auto option to --sub-fix-timing"Kacper Michajłow2023-09-111-3/+2
| | | | This reverts commit b47a58516af2c36e66c3987748b5b4a1275ed9e7.
* vd_lavc: by default enable cropping by decoderKacper Michajłow2023-09-101-2/+1
| | | | | | | | | | | | | | | | | | | | | While this resolves limitations of lavc decoder crop, it also introduces artifacts with some of the source files or hwdec. Depending on chroma sampler it is possible to sample outside the decoder crop area, pulling dirty pixels into the image. Some decoders left them zeroed, not black. To fix that we would need specifc solution during mapping of avframes. As most of the files require the crop only in bottom/right area, the AVCodecContext::apply_cropping works ok for those. For all other cases that require more fancy cropping like 1440x1080+240+0 user can manually set `--vd-apply-cropping=no`. Limitations of the lavc crop are explained here: https://ffmpeg.org/doxygen/trunk/structAVCodecContext.html#a4745c7455c317272c4e139d6f369936c Fixes: 826ce82cad315f7a48f9c971d3a5fa005a9eab46
* player: redo --subs-fallback-forcedDudemanguy2023-09-091-4/+5
| | | | | | | | | | | | | In the never ending quest of trying to satisfy every possible user request for subtitle autoselection, I ended up redoing how --subs-fallback-forced works. The old behavior had it as strictly a fallback-type option when there were no lang matches, but now we can make it an active part of compare_track and it works along with slang to select the desired track. Since it's a three state option, the no option still works to avoid selecting any forced subtitle tracks. The meaning of always slightly changes to mean "only select forced subtitle tracks" and yes remains essentially the same (no special priority given besides the audio matching subtitle language case).
* vd_lavc: disable cropping by decoderKacper Michajłow2023-09-081-0/+8
| | | | | | | | | Cropping by decoder has limitations with regards to aligment and hwdec. It doesn't work to offset top left corner with hwdec and even with software decoding it don't crop fully when resulting data would not be aligned. VO cropping is way more robust.
* video: allow overriding container crop if it is presentKacper Michajłow2023-09-081-2/+5
| | | | | | Setting `--video-crop=0x0+0+0` applies full frame crop, ignoring the container one. Setting --video-crop=0 disables manual crop and restores container one if it is available.
* m_option: make m_rect_apply center basedKacper Michajłow2023-09-081-1/+1
| | | | | | | | | This makes it easier to apply crops without need to manually calc the offset. I wanted for it to be top-left corner based, but maybe it was not that good idea in retrospect. Also rename scrw/scrh, since they don't refer to screen. It was copied form m_geometry apply.
* sub: add auto option to --sub-fix-timingDudemanguy2023-09-071-2/+3
| | | | | | | | | Third try is the charm? I stupidly missed that this option already existed in my previous commits. Instead, add an auto value to it and enable it by default for sd_lavc but not sd_ass. On my limited samples, it seems to fix the gaps issue that can occur but without regressing some duration timings for sub_lavc subtitles. Well hopefully anyway. Fixes #12327.
* vo: vulkan: allow picking devices by UUIDPhilip Langdale2023-09-041-4/+4
| | | | | | | | | | | | | | | We currently only allow specifying the Vulkan device to use by name. We did this to avoid confusion around devices being enumerated in an unpredictable order. However, there is a valid edge case where a system may contain multiple devices of the same type - which means they will have the same name, and so you can't control which one is used. This change implements picking devices by UUID so that if names don't work, you have some option available. As Vulkan 1.1 is a hard requirement for libplacebo, we can just use UUIDs without conditional checks. Fixes #10898
* stream/dvbin: recommend to use specific channels.conf file namesOliver Freyermuth2023-09-031-0/+3
| | | | | | The old mplayer / zap style format is not fully standardized across channel scanners, so autodetection may fail if the file name does not indicate the delivery system.
* stream/dvbin: add support for delivery system ISDB-TOliver Freyermuth2023-09-031-2/+2
| | | | | | This is similar to DVB-T, but requires slightly different treatment as there is no T/T2 differentiation. Use a new channels.conf.isdbt file as channels config file.
* Revert "aspect: change --video-pan-x/y to be relative to the destination rect"llyyr2023-09-021-1/+3
| | | | | | | | | | | | | There are way too many preexisting scripts that rely on this behavior for video panning, like for example scripts that allow you to use mpv as an image viewer. If this behavior is desired then it may be better to add a new option for panning relative to the destination instead. The restriction of video-pan-x/y being clamped to {-3, 3} also results in the video being impossible to pan if it was zoomed in beyond a certain degree. This reverts commit 7d6f9e37397ed57be0f1375afe8fddfc451aa152.
* vo_gpu: remove --tone-mapping-modeNiklas Haas2023-09-011-22/+0
| | | | | | | | | `--vo=gpu-next` no longer uses this option, being replaced entirely by a luminance-based approach internally. And even for `--vo=gpu`, the values other than 'hybrid' are universally inferior in quality. In the interest of gradually reducing the amount of option bloat here, remove this mostly-pointless option.
* vo: add --video-cropKacper Michajłow2023-08-311-0/+7
| | | | | | Just cropping by VO that works with hwdec. Fixes: #12222
* demux_playlist: default to --directory-mode=lazyGuido Cella2023-08-301-6/+3
| | | | | | 64959c450d solved the problems with resuming playback, so default to --directory-mode=lazy because it's faster, especially on slow drives, and results in smaller playlists.
* loadfile: fix --no-subs-with-matching-audio with --slangDudemanguy2023-08-291-1/+3
| | | | | | | | | If --slang was set to some language and it matched the subtitle track, then --no-subs-with-matching-audio would do nothing. Fix the logic by doing the --no-subs-with-matching-audio step at the end to ensure that it always "wins" over whatever --slang or --subs-fallback has set. Clarify the docs a bit to make it clearer that this is the intended behavior. Fixes fbe8f9919428a7ed24a61899bfd85bbb7680e389.
* player: rename --sub-forced-only to --sub-forced-events-onlyDudemanguy2023-08-291-1/+1
| | | | | | | | The old name is pretty bad and users mistakenly think it has something to do with selecting forced subtitles (that would be --subs-fallback-forced). Instead of giving it such a generic name, make it clearer that this has to do specifically with forced sub events which is only relevant for a small minority of subtitles.
* player: remove auto choice from sub-forced-onlyDudemanguy2023-08-291-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | First of all, this never worked. Or if it ever did, it was in some select few scenarios. c9474dc9ed6172a5f17f66f4b7d367da6b077909 is what originally added support for the auto choice. However, that commit worked by propagating a value to a fake option used internally. This shouldn't have ever worked because the underlying m_config_cache was never updated so the value shouldn't have been preserved when accessed in sd_lavc. And indeed with some testing, the value there is always 0 unsurprisingly. This was later rewritten in ba7cc071068f4f57ae354e77f64552712fda6855 along with a lot of other sub changes, but with that, it was still mostly broken. The reason is because one of the key parts of having to hit this logic (prefer_forced) required `--no-subs-with-matching-audio` to be set. If the audio language matches the subtitle language (the requirement also excludes forced subs), the option makes no subtitle selection in the first place so pick->forced_only_def is not set to true and nothing even happens. Another way around this would be to attempt to change your OS language (like with the LANG environment variable) so that the subtitle track gets selected but then audio_matches mistakenly becomes false because it compares the OS language to the audio language which then make preferred_forced 0, so nothing happens. I don't think there's a scenario where pick->forced_only_def is actually set to true (thus meaning `auto` is useless), but maybe someone could contrive something very strange. Regardless, it's definitely not something even remotely common. fbe8f9919428a7ed24a61899bfd85bbb7680e389 changed track selection again but didn't consider this particular case. The net result is that DVD/PGS subs become equivalent to --sub-forced-only being yes, so this a change in behavior and probably not a good one. Note that I wasn't able to actually observe any difference in a PGS sample. It still displayed subtitles fine but that sample probably didn't have the right flags to hit the sub-forced-only logic. Anyways, the auto feature is extremely questionable at best and in my view, not actually worth it. It is meant to be used with `--no-subs-with-matching-audio` to display forced pictures in subtitle tracks that are not marked as forced, but that contradicts that particular option's purpose and description in the manual (secretly selecting a track under certain conditions even though it says not to). Instead of trying to shove all this logic into select_default_track which is already insanely complicated as it is, recognize that this is a trivial lua script. If you absolutely want to turn --sub-forced-only on under these certain conditions (DVD/PGS subtitles, matching audio and subtitle languages, etc.), just look at the current-tracks property and do your thing. The very, very niche behavior that this option tried to accomplish basically never worked, no user even knows what this option does, and well it's just not worth supporting in core mpv code. Drop all this code for sanity's sake and change --sub-forced-only back to a bool.
* player: add always to --subs-fallback-forcedDudemanguy2023-08-281-1/+3
| | | | | | In general, forced tracks should only be shown if they match the language of the audio. However some people do want them no matter what, so add an always option to this so such tracks are always selected.
* player: add --subs-match-os-language optionDudemanguy2023-08-281-0/+6
| | | | | | | This is the replacement for the previous auto option for slang. It behaves similar however it never overrides slang if that is set and will instead try to pick the subtitle that matches the user's language if appropriately flagged by the file.
* player: remove special auto option from alang/slang/vlangDudemanguy2023-08-281-4/+1
| | | | | | | | | | | | This proved to be too problematic. Depending on the value of --subs-with-matching-audio, you could either end up with cases where --slang wasn't respected and users didn't get subtitles or alternatively cases where subtitles were given and the user didn't ask for them. Fundamentally, the OS language functionality doesn't really map well to slang (and for alang/vlang it makes zero sense; not that anyone actually used it). Instead of trying to shove it in an option where it doesn't belong, we should split this off into something else. So for now, just remove the special handling of "auto" and flip slang back to NULL.
* player: make all autoload extensions configurableDudemanguy2023-08-261-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | --audio-file-auto, --cover-art-auto, and --sub-auto all work by using an internally hardcoded list that determine what file extensions get recognized. This is fine and people periodically update it, but we can actually expose this as a stringlist option instead. This way users can add or remove any file extension for any type. For the most part, this is pretty pretty easy and involves making sub_exts, etc. the defaults for the new options (--audio-file-auto-exts, --cover-art-auto-exts, and --sub-auto-exts). There's actually one slight complication however. The input code uses mp_might_be_subtitle_file which guesses if the file drag and dropped file is a subtitle. The input ctx has no access to mpctx so we have to be clever here. For this, the trick is to recognize that we can leverage the m_option_change_callback. We add a new flag, UPDATE_SUB_EXTS, which fires when the player starts up. Then in the callback, we can set the value of sub_exts in external_files to opts->sub_auto_exts. Whenever the option updates, the callback is fired again and sub_exts updates. That way mp_might_be_subtitle_file can just operate off of this global variable instead of trying to mess with the core mpv state directly. Fixes #12000.
* DOCS/options: clarify the video-pan-x/y exampleDudemanguy2023-08-201-3/+3
| |