summaryrefslogtreecommitdiffstats
path: root/options
Commit message (Collapse)AuthorAgeFilesLines
* options: add --secondary-sub-ass-overridedyphire2023-12-182-5/+10
| | | | Default: strip. preserve the old behavior
* player: refactor secondary subtitle options and propertiesDudemanguy2023-12-162-15/+32
| | | | | | | | | | | | 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-132-0/+4
| | | | The default value is 0 (on the top of the screen)
* playlist: correctly populate playlist-path with the --playlist optionDudemanguy2023-12-131-1/+0
| | | | | | | | | | When using the --playlist option on the commandline, it would mark all entries on the command as having the playlist-path of the value of that passed option, not just the ones that were expanded from it. Fix this by moving the playlist_populate_playlist_path to the same place where the playlist file gets expanded. Ref https://github.com/mpv-player/mpv/issues/13075#issuecomment-1852179164
* 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-082-0/+3
| | | | | | | | | | | 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.
* m_option: respect pathlist seperator when printingllyyr2023-12-041-1/+2
| | | | Apparently we never did this
* options: add --osd-bar-border-sizeGuido Cella2023-11-272-0/+3
| | | | | 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-262-2/+3
| | | | | | | | | | | | | 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.
* m_option: remove leftovers of del actionGuido Cella2023-11-121-8/+2
| | | | | | | | | | b56e63e2a9 removed -del for list options but it is still listed in the list structs, which means that it is still tab completed on the CLI like the other actions, and seems to behave like -set. Remove it so it is no longer tab completed. Also remove the description of -del from the help output of object settings lists --(ao|vo|af|vf)-help, and update a comment.
* sub: add --sub-stretch-durations optionMohammad AlSaleh2023-11-072-0/+2
| | | | | | | | | 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
|
* ALL: use new mp_thread abstractionKacper Michajłow2023-11-052-22/+22
|
* 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.
* m_option: don't try to remove all filter matchesDudemanguy2023-11-011-8/+6
| | | | | | | | | | | | Probably should have actually tested the filter changes but I didn't. This was the wrong spot anyway since labels are unique. Something like this should have been done further down when finding it by content. On second thought, having multiple filters with the same content does have a usecase (e.g. stacking multiple rotations) so removing all of them at once probably isn't great. There's no practical usecase for having duplicates in a string list, so we'll leave that change alone. Fixes #12791.
* m_option: drop support for -del for list optionsDudemanguy2023-10-301-101/+11
| | | | | | 5f74ed58286a1339412554932f31844ec1b64280 deprecated this many years ago. The utility is questionable at best given that -remove exists and is more natural to use. Free up some code and drop it.
* m_option: remove all matches when using -removeDudemanguy2023-10-301-13/+22
| | | | | | | | When using -remove with list options, it previously only removed the first match. Technically, it is possible for there to be more than entry with the same name. They should all be removed. key/value lists specifically only allow unique keys so we don't need to do anything there.
* 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-262-0/+4
| | | | | | | | 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-252-2/+3
| | | | Same logic as the previous commit.
* options: rename --screenshot-directory to --screenshot-dirDudemanguy2023-10-252-2/+3
| | | | | 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-252-2/+3
| | | | | | | 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-252-2/+3
| | | | | | 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.
* m_option: initialize m_option_value union properlyKacper Michajłow2023-10-234-10/+12
| | | | | | | | | C standard says that `= {0}` activates and initializes first member of union. We expect whole union to be zeroed, it is used as default value. Initialize union with one zeroed default instance to ensure proper init. Fixes: #12711
* path: don't treat "hidden" files as extensionNRK2023-10-221-1/+2
| | | | | | currently for a filename such as ".file" mpv incorrectly thinks of the entire filename as being an extension. skip leading dots to avoid treating "hidden/dot" files as extension.
* various: sort some standard headersNRK2023-10-203-14/+14
| | | | | | | | | | | | since i was going to fix the include order of stdatomic, might as well sort the surrouding includes in accordance with the project's coding style. some headers can sometime require specific include order. standard library headers usually don't. but mpv might "hack into" the standard headers (e.g pthreads) so that complicates things a bit more. hopefully nothing breaks. if it does, the style guide is to blame.
* osdep: remove atomic.hNRK2023-10-203-4/+4
| | | | | | | replace it with <stdatomic.h> and replace the mp_atomic_* typedefs with explicit _Atomic qualified types. also add missing config.h includes on some files.
* player/command: truncate anything < 1e-4 in pretty printerKacper Michajłow2023-10-181-1/+6
| | | | | | | | To avoid switching to scientific notation. Apparently it is "jarring" for some users. This preserves status quo from before 9dddfc4f where pretty printer were truncated to 3 decimal places.
* player/command: change how floating point number are printedKacper Michajłow2023-10-141-5/+5
| | | | | | | | Use "%.7g" to show 7 significant digits. Removes the trailing zeros, and in general makes it more readable, than fixed 3 decimal digits. For avsync use "%+.2g" to add plus sign, similar to display-sync values.
* m_property: add read_sub_validate to check if should be processedKacper Michajłow2023-10-142-0/+22
| | | | | In many cases it makes sense to early exit instead of preparing all the data only to return type or not implemented.
* path: don't override "cache" and "state" paths with configdirsfan52023-10-021-10/+0
| | | | | | | | | | This reverts commit 576e86bfa18a0a79e591988ad93ed009edc40849 (functionally). Right now, the --config-dir option silently causes all watch_later and cache files to be written in the --config-dir as well. This is pretty uninitutive and also not desirable in most cases so get rid of this. libmpv users will have to set the corresponding options or env vars if they want to keep the old behaviour.
* win32: add option to change backdrop styleDeadSix2023-09-272-3/+13
|
* m_config_core: remove mp_read_option_rawDudemanguy2023-09-222-39/+0
| | | | | With the previous series of commits, all usage of this bad function has been eliminated in mpv so we can just nuke it for good.
* cuda: move --cuda-device to cuda_opts groupDudemanguy2023-09-222-2/+22
| | | | Also change a ta_free to talloc_free for consistency reasons.
* opengl/context_win: move opengl-dwmflush to wingl_opts groupDudemanguy2023-09-222-4/+3
| | | | Gets rid of yet another mp_read_option_raw call.
* options: rename some opt structs to *_opts instead of *_paramsDudemanguy2023-09-221-3/+3
| | | | | | Purely cosmetic, but this weird inconsistency bothered me. There's techincally vd_lacv_params and ad_lavc_params too, but encode is special and maybe shouldn't exist so we'll just leave that alone.
* stream_bluray: move --bluray-device to stream_bluray_optsDudemanguy2023-09-222-1/+3
| | | | | | 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-222-2/+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-222-13/+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-212-0/+12
| | | | Allows to set preference for window corners rounding for DWM.
* win32: add an option to control window title bar stateKacper Michajłow2023-09-212-0/+3
| | | | Fixes: #11432
* win32: add an option to change window affinityDeadSix2023-09-212-0/+3
|
* options: remove --vf-defaults and --af-defaultsDudemanguy2023-09-214-18/+4
| | | | | | | 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-212-4/+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-212-4/+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-212-121/+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.
* options: make video-crop validation more strictKacper Michajłow2023-09-201-7/+9
|
* Revert "sub: add auto option to --sub-fix-timing"Kacper Michajłow2023-09-112-4/+2
| | | | This reverts commit b47a58516af2c36e66c3987748b5b4a1275ed9e7.
* m_option: return empty rect when no width/height is availableKacper Michajłow2023-09-081-0/+2
|
* m_option: make m_rect_apply center basedKacper Michajłow2023-09-082-10/+6
| | | | | | | | | 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-072-2/+4
| | | | | | | | | 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-312-0/+3
| | | | | | Just cropping by VO that works with hwdec. Fixes: #12222
* m_option: add OPT_RECTKacper Michajłow2023-08-312-0/+64
| | | | Parsed as WxH+X+Y to mp_rect. Allows also WxH without the offset.
* player: rename --sub-forced-only to --sub-forced-events-onlyDudemanguy2023-08-292-2/+3
| | | | | | | | 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-292-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-282-3/+4
| | | | | | 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-282-0/+3
| | | | | | | 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-3/+0
| | | | | | | |