summaryrefslogtreecommitdiffstats
path: root/options/options.c
<
Commit message (Collapse)AuthorAgeFilesLines
* options: flag geometry/autofit options with force_updateDudemanguy15 hours1-4/+4
| | | | | Same reasoning as window-scale. This still requires that the windowing backend correctly reacts to the notification.
* player: always notify when writing window-scale optionDudemanguy15 hours1-1/+1
| | | | | | As described in the previous commit, update_window_scale will always execute whenever window-scale is written even if the value doesn't change.
* sd_ass: add `sub-vsfilter-bidi-compat` to enable vsfilter bidi compatllyyr34 hours1-0/+1
| | | | | | | | | | | | | | | | Enable ASS_FEATURE_{WHOLE_TEXT_LAYOUT, BIDI_BRACKETS} and auto base detection by default, and add an option to disable this if needed. This is strictly an improvement for webvtt files as they always use auto base detection. This _fixes_ right-to-left text rendering for webvtt files which correctly mark rtl/ltr. Webvtt files obtained from sources which sideload the RTL information through css also see an improvement due to the auto detection. Generally SRT files also want this, but some are also written to workaround VSFilter quirks. See also: https://github.com/mpv-player/mpv/pull/12985#issuecomment-1839565138
* x11_common: implement --show-in-taskbar optionnanahi34 hours1-0/+2
| | | | | | | | | This adds a new option --show-in-taskbar, which controls whether mpv appears in taskbars. This is useful for picture-in-picture setups where the video window should not appear in taskbars. On X11, this can be controled by setting the _NET_WM_STATE_SKIP_TASKBAR window state.
* options: fix runtime update of teletext-pageKacper Michajłow35 hours1-1/+1
|
* options: add --input-commands optionDudemanguy2024-03-211-0/+1
| | | | | | | Basically a simple way to perform any command/property action from the command line. This takes the exact same syntax as input.conf but not including the key naturally. Potentially useful for weird properties that don't map well to options (like ao-volume). Fixes #12353.
* options: remove trailing whitespacesder richter2024-03-101-3/+3
|
* options: remove --focus-on-open and add --focus-onder richter2024-03-101-2/+3
| | | | | | | | | replaces the old focus-on-open option with a more generic focus-on options that can be extended. adjust the only platform that uses that option. Fixes #8337
* options: add --deinterlace-field-parity option1nsane0002024-03-041-0/+8
| | | | | | | | Previously there was no way to specify the field order of interlaced videos when deinterlacing with inbuilt filters. Lavfi deinterlacers seemed to prefer top field order while inbuilt ones (vdpaupp, vavpp, d3d11vpp) seemed to prefer bottom field order. The default "auto" option should work exactly as before while specifying either "tff" or "bff" should force the specified field order
* Revert "player: add ao-volume option, to set the system volume at startup"Dudemanguy2024-03-011-2/+0
| | | | | | | | Ended up being a bad idea. As a property, this inherently has more functionality and the tradeoff of being able to do --ao-volume wasn't worth it. This reverts commit 58ed620c064971535e60778612777750aa5e2f4d.
* osd_libass: update the OSD bar's dent and border sizeGuido Cella2024-02-261-1/+1
| | | | | Make the OSD bar markers bigger so we can default to a smaller, better-looking border size, without sacrificing markers' visibility.
* input: add insert-next support for drag-and-dropDavid Vaughan2024-02-261-1/+3
| | | | | | | This commit adds a DND_INSERT_NEXT action option for drag-and-drop, allows for selecting it through the --drag-and-drop=insert-next option, and adds the necessary plumbing to make that happen when something is dragged onto the player.
* player: add ao-volume option, to set the system volume at startupLeonardo Boss2024-02-251-0/+2
| | | | closes #12353
* player: set hidpi-window-scale to no by defaultDudemanguy2024-02-241-1/+0
| | | | | | | | | | | | | | | | | | This has defaulted to yes for a very long time, but evidentally it annoys a lot of people (including myself). My argument is that this makes no sense. mpv is for videos; not text. A 1920x1080 video should open as 1920x1080 regardless of whatever the DPI settings of the OS is. This can get very silly when you consider watching a 4k video which will get this additional scale factor which is virtually never desirable. Whether or not the OS and/or WM prevents it from getting larger than the screen depends on a lot of things. Previously some windowing backends required that this option be set to yes in order to report a dpi scale value other than 1, but this should be fixed with the previous commits. The only difference is whether or not to scale the window by the additional factor. Fixes #13465.
* vo_gpu_next: move gpu-next opts to specific sub optionDudemanguy2024-02-171-0/+2
| | | | | | | This matches the general workflow in the codebase. We keep a cache of these new options and update them if needed. Fixes #13481 and fixes #11518.
* sub: allow setting lavc txt_page special values via teletext_pageMohammad AlSaleh2024-02-131-2/+2
| | | | | | | | * Range of accepted values for teletext_page now include 0 and -1. * 0 means "subtitle" and -1 means "*". * Make 0 the default. Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
* player: add an auto option to deinterlaceDudemanguy2024-02-071-1/+2
| | | | | | | | | | Deinterlacing required that the user set it on/off themselves, but we actually have handy flags for detecting if a frame is interlaced. So it's pretty simple to make an auto option using that. Unfortunately, life is not quite that simple and there are known cases of false positives from the ffmpeg flags so we can't make auto the default value. However, it still may have some utility for some people, and the detection could potentially be improved upon later. Closes #10358.
* sub: add `--sub-lavc-o` optionMohammad AlSaleh2024-01-211-0/+1
| | | | | | | We have `--vd-lavc-o` and `--ad-lavc-o`, but no equivalent option for subtitles. Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
* player: remove --term-remaining-playtime optionDudemanguy2024-01-201-2/+0
| | | | | This wasn't useful and didn't even really do what it said anyway. Closes #12167.
* audio: add --volume-gain options to control volume in decibelsnanahi2024-01-201-0/+7
| | | | | | This adds volume-gain, volume-gain-max, volume-gain-min options, which can be used to control audio volume and target dynamic range in decibels. The gain is applied on top of the existing volume setting.
* player: add forced choice to subs-with-matching-audioDudemanguy2024-01-131-2/+3
| | | | | | | | | | fe875083b3d30b06ef77745f40570e8f63afec2 confused things a bit and made --no-subs-with-matching-audio actually mean what it says: no subtitles if the languages match. However, the option actually meant no non-forced subtitles not no subtitles at all. This isn't really intuitive so instead of changing the behavior back to the old way (we already have a release since then), add a third option "forced" which is equivalent to the old meaning of --no-subs-with-matching audio. Fixes #13151.
* options: add --secondary-sub-ass-overridedyphire2023-12-181-4/+9
| | | | Default: strip. preserve the old behavior
* player: refactor secondary subtitle options and propertiesDudemanguy2023-12-161-10/+23
| | | | | | | | | | | | Over the years, we've accumulated several secondary subtitle related options and properties, but the implementation was not really consistent and it wasn't clear what the right process for adding more should be. So to make things nicer, let's refactor all of the subtitle options with secondary variants (sub-delay, sub-pos, and sub-visibility) and split them off to a new, separate struct. All of the underlying values are stored in an array instead for simplicity. Additionally, the implementation of some secondary-sub-* properties were slightly changed so there would be less redundancy.
* options: add --secondary-sub-poskarelrooted2023-12-131-0/+3
| | | | The default value is 0 (on the top of the screen)
* filter_sdh: add full width parentheses to the enclosures stringDudemanguy2023-12-081-1/+1
| | | | | Since these are technically parentheses, we'll treat them the same way as normal parenthesis. Fixes #11155.
* filter_sdh: add --sub-filter-sdh-enclosures optionDudemanguy2023-12-081-0/+2
| | | | | | | | | | | This filter is a bit complicated, but one of the essential parts of it is removing text enclosed by particular set of characters (e.g. text inbetween []). This was previously hardcoded to only take into account parenthesis and brackets, but people may want to filter more things so make this customizable. The option only takes "left hand characters" so the right pair is mapped internally if applicable. If not, then we just use the same character. Fixes #8268 since the unicode character in question can just be passed to this option.
* options: add --osd-bar-border-sizeGuido Cella2023-11-271-0/+2
| | | | | Closes #1484. The default size is smaller than the previous --osd-border-size default value of 3 with the default --osd-bar-h.
* options: add secondary-sub-delayRipose2023-11-261-1/+2
| | | | | | | | | | | | | Add --secondary-sub-delay option and decouple --sub-delay from secondary subtitles. This produces desirable behavior in most cases as secondary and primary subtitles tracks tend to be timed independently of one another. This feature is implemented by turning the sub_delay field in mp_subtitle_opts into an array of 2 floats. From here the track index is either passed around or derived when sub_delay is needed. There are some cases in dec_sub.c where it is possible for dec_sub.order (equivalent to track index) to be -1. In these cases, sub_delay is inferred as 0.
* options: add more properties to default watch-later-optionsKacper Michajłow2023-11-121-0/+12
| | | | | | | | | | | | | | | | | | | Adds: --secondary-sub-visibility --video-aspect-method --video-unscaled --video-pan-x --video-pan-y --video-rotate --video-crop --video-zoom --video-scale-x --video-scale-y --video-align-x --video-align-y Those properties are related to playback state and are likely expected to be restored when resuming playback.
* options: remove not relevant props from default watch-later-optionsKacper Michajłow2023-11-121-5/+0
| | | | | | | | | | | | Removes: --border --fullscreen --ontop --osd-level --pause Those options are not really content related. I don't see much gain to save them per each watch later entry.
* sub: add --sub-stretch-durations optionMohammad AlSaleh2023-11-071-0/+1
| | | | | | | | | Stretch a subtitle duration so it ends when the next one starts. Should help with subtitles which erroneously have zero durations. I found such a subrip substitles stream in the wild. Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
* vo: replace max swapchain depth magic numberDudemanguy2023-11-071-1/+1
|
* options: add UPDATE_SUB_HARD flag to sub-ass-overrideDudemanguy2023-11-051-1/+2
| | | | | | | | The other options that have to do with ass styles also uses this flag. It's needed since we have to destroy the ass objects and reinit them. It's a bit incomplete since it will technically only properly work when paused (while playing, the current subtitle gets discarded). That fix is in the next commit.
* options: make --screenshot-directory/--watch-later-directory aliasesDudemanguy2023-10-301-2/+2
| | | | By popular demand I guess.
* javascript: use --js-memory-report option instead of MPV_LEAK_REPORTDudemanguy2023-10-261-0/+3
| | | | | | | | The MPV_LEAK_REPORT environment variable was previously read in order to determine whether or not to enable memory reporting for javascript scripts. This is kind of weird and deviates from the norm of exposing an option to the user. So let's just add --js-memory-report and disable it by default instead.
* options: rename --play-dir to --play-directionDudemanguy2023-10-251-1/+2
| | | | | | --play-dir sounds like it has something to do with directories so change it. The play_dir variable is used a bunch everywhere internally so whatever just leave it alone instead of renaming that.
* options: rename --watch-later-directory to --watch-later-dirDudemanguy2023-10-251-1/+2
| | | | Same logic as the previous commit.
* options: rename --screenshot-directory to --screenshot-dirDudemanguy2023-10-251-1/+2
| | | | | Less characters is better? Other options use -dir for directory so consistency I guess.
* options: rename --sub-ass-force-style to --sub-ass-style-overridesDudemanguy2023-10-251-1/+2
| | | | | | | This option has exactly the same semantics are other mpv options that override a particular thing with something from the user. So instead of the "force-style" name, use "-overrides" which is more consistent. The plural form is used since it's a list option.
* options: rename --override-display-fps to --display-fps-overrideDudemanguy2023-10-251-1/+2
| | | | | | Other similar options are in the form of --foo-override not --override-foo. The display-fps one was backwards so flip it around the other way for consistency reasons.
* win32: add option to change backdrop styleDeadSix2023-09-271-3/+12
|
* cuda: move --cuda-device to cuda_opts groupDudemanguy2023-09-221-2/+16
| | | | Also change a ta_free to talloc_free for consistency reasons.
* opengl/context_win: move opengl-dwmflush to wingl_opts groupDudemanguy2023-09-221-2/+2
| | | | Gets rid of yet another mp_read_option_raw call.
* stream_bluray: move --bluray-device to stream_bluray_optsDudemanguy2023-09-221-1/+2
| | | | | | Similar to the previous commit. There's no reason for --bluray-device to be in MPOpts. Make a specific subopt for stream_bluray and use that instead so we can remove the mp_read_option_raw call.
* stream_cdda: move cdrom-device to cdda_paramsDudemanguy2023-09-221-1/+1
| | | | | | 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.
* options: move some demux-specific opts to demux optsDudemanguy2023-09-221-8/+0
| | | | | These options are only ever accessed by the demuxer and have no need to be in MPOpts. Move them to demux.c instead.
* win32: add --window-cornersKacper Michajłow2023-09-211-0/+11
| | | | 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/+2
| | | | Fixes: #11432
* win32: add an option to change window affinityDeadSix2023-09-211-0/+2
|
* options: remove --vf-defaults and --af-defaultsDudemanguy2023-09-211-4/+0
| | | | | | | These were deprecated a long time ago and apparently didn't even work with lavfi filters. Go ahead and remove them and additionally clean up some code related to them. m_config_from_obj_desc_and_args becomes much simpler now and a couple of arguments can be completely removed.
* options: remove deprecated --record-file optionDudemanguy2023-09-211-3/+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-3/+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-120/+0
| | | | | | | | | | | | | 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.
* Revert "sub: add auto option to --sub-fix-timing"Kacper Michajłow2023-09-111-3/+1
| | | | This reverts commit b47a58516af2c36e66c3987748b5b4a1275ed9e7.
* sub: add auto option to --sub-fix-timingDudemanguy2023-09-071-1/+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.
* options: remove unnecessary clamping on video-pan-x/yllyyr2023-09-021-2/+2
| | | | | This makes panning impossible at zoom level below 0, because it scales with 2^zoom. Allow using bigger values instead
* vo: add --video-cropKacper Michajłow2023-08-311-0/+1
| | | | | | Just cropping by VO that works with hwdec. Fixes: #12222
* player: rename --sub-forced-only to --sub-forced-events-onlyDudemanguy2023-08-291-1/+2
| | | | | | | | 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-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-2/+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.
*