summaryrefslogtreecommitdiffstats
path: root/options/options.c
Commit message (Collapse)AuthorAgeFilesLines
* options: change --sub-file behaviorwm42014-06-081-1/+1
| | | | | | | | | | | | | | | | | | | --sub-file is actually a string list, so you can add multipel external subtitle files. But to be able to set a list, the option value was split on ",". This made it impossible to add filenames. One possible solution would be adding escaping. That's probably a good idea (and some other options already do this), but it's also complicated both to implement and for the user. The simpler solution is making --sub-file appending, and make it take only a single entry. I'm not quite sure about this yet. It breaks the invariant that if a value is printed and parsed, you get the same value back. So for now, just go with the simple solution. Fixes #840.
* sub: remove old style override optionwm42014-06-051-1/+1
| | | | Didn't work too well.
* sub: add --ass-style-override=force optionwm42014-06-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (The old "force" choice of that option is renamed to "force-default".) This allows overriding native ASS script subtitle styles with the style provided by the --sub-text-* options (like --sub-text-font etc.). This is disabled by default, and needs to be explicitly enabled with the --ass-style-override=force option and input property. This uses in fact exactly the same options (--sub-text-*) and semantics as the ones used to configure unstyled text subtitles. It's recommended to combine this with this in the mpv config file: ass-force-style="ScaledBorderAndShadow=1" # work around dumb libass behavior Also, adding a key binding to toggle this behavior should be added, because overriding can easily break: L cycle ass-style-override This would cycle override behavior on Shift+L and allows quickly disabling/enabling style overrides. Note: ASS should be considered a vector format rather than a subtitle format. There is no easy or reliable way to determine whether the style of a given subtitle event can be changed without destroying visuals or not. This patch relies on a simple heuristic, which often works and often breaks.
* player: write file name to the watch later config fileAlessandro Ghedini2014-06-011-0/+1
| | | | | | | | | This simply writes the file name as a comment to the top of the watch later config file. It can be useful to the user for determining whether a watch later config file can be manually removed (e.g. in case the corresponding media file has been deleted) or not.
* video: add --video-rotate option for controlling auto-rotationwm42014-05-241-0/+2
|
* stream: kill start_pos, remove --sb optionwm42014-05-241-2/+0
| | | | | | | | | | | | | | | | | | | | stream.start_pos was needed for optical media only, and (apparently) not for very good reasons. Just get rid of it. For stream_dvd, we don't need to do anything. Byte seeking was already removed from it earlier. For stream_cdda and stream_vcd, emulate the start_pos by offsetting the stream pos as seen by the rest of mpv. The bits in discnav.c and loadfile.c were for dealing with the code seeking back to the start in demux.c. Handle this differently by assuming the demuxer is always initialized with the stream at start position, and instead seek back if initializing the demuxer fails. Remove the --sb option, which worked by modifying stream.start_pos. If someone really wants this option, it could be added back by creating a "slice" stream (actually ffmpeg already has such a thing).
* input: allow disabling window dragging with --no-window-draggingwm42014-05-201-0/+3
| | | | Requested in github issue #608.
* cache: redo options and default settingswm42014-05-201-15/+17
| | | | | | | | | | | | Some options change from percentages to number of kilobytes; there are no cache options using percentages anymore. Raise the default values. The cache is now 25000 kilobytes, although if your connection is slow enough, the maximum is probably never reached. (Although all the memory will still be used as seekback-cache.) Remove the separate --audio-file-cache option, and use the cache default settings for it.
* x11: replace--[x11-]fstype option with --x11-netwmwm42014-05-161-1/+2
| | | | | Simplifies the code a lot. You can still use --x11-netwm=no to disable NetWM for whatever reasons.
* player: reorganize how lua scripts are loadedwm42014-05-131-0/+2
| | | | | | Make loading of scripts independent of Lua. Move some of the loading code from lua.c to scripting.c, and make it easier to add new scripting backends.
* options: add --hr-seek-framedrop optionwm42014-05-071-0/+2
| | | | | | | | This allows disabling of decoder framedrop during hr-seek. It's basically another useless option, but it will help exploring whether this framedropping really makes seeking faster, or whether disabling it helps with precise seeking (especially frame backstepping).
* options: merge ---sub-auto-match with --sub-autowm42014-05-041-4/+3
| | | | There's no reason why these should be separate.
* options: remove deprecated --identifyMartin Herkt2014-05-041-1/+0
| | | | | | | Also remove MSGL_SMODE and friends. Note: The indent in options.rst was added to work around a bug in ReportLab that causes the PDF manual build to fail.
* options: remove obsolete --fsmode-dontuseMartin Herkt2014-05-041-3/+0
|
* options: rename device-specific optionsMartin Herkt2014-05-041-2/+2
| | | | | --dvdangle → --dvd-angle --tvscan → --tv-scan
* options: rename msg-related optionsMartin Herkt2014-05-041-6/+6
| | | | | | | | | --msgcolor → --msg-color --msglevel → --msg-level --msgmodule → --msg-module --msgtime → --msg-time (also document this one) --playing-msg → --term-playing-msg --status-msg → --term-status-msg
* options: rename video-related options/propertiesMartin Herkt2014-05-041-5/+5
| | | | | | | | | | | Renamed options: --aspect → --video-aspect --fstype → --x11-fstype --native-fs → --fs-missioncontrol --name → --x11-name Renamed properties: aspect → video-aspect
* options: rename audio-related options/propertiesMartin Herkt2014-05-041-5/+5
| | | | | | | | | | | | | Renamed options: --audiofile → --audio-file --audiofile-cache → --audio-file-cache --channels → --audio-channels --format → --audio-format --srate → --audio-samplerate Renamed properties: samplerate → audio-samplerate channels → audio-channels
* options: rename subtitle-related optionsMartin Herkt2014-05-041-6/+6
| | | | | | | | | --ass → --sub-ass --autosub → --sub-auto --autosub-match → --sub-auto-match --sub → --sub-file --subcp → --sub-codepage --subfps → --sub-fps
* options: rename input-related optionsMartin Herkt2014-05-041-3/+3
| | | | | | | | | | | --ar → --input-appleremote --consolecontrols → --input-terminal --media-keys → --input-media-keys --joystick → --input-joystick --lirc → --input-lirc --lircconf → --input-lirc-conf --mouse-movements → --input-cursor --right-alt-gr → --input-right-alt-gr
* encode: don't apply default config optionswm42014-04-191-1/+1
| | | | | | | | | | | | Often, user configs set options that are not suitable for encoding. Usually, playback and encoding are pretty different things, so it makes sense to keep them strictly separate. There are several possible solutions. The approach taken by this commit is to basically ignore the default config settings, and switch to an [encoding] config profile section instead. This also makes it impossible to have --o in a config file, because --o enables encode mode. See github issue #727 for discussion.
* player: add a --loop-file optionwm42014-04-171-0/+1
| | | | Unlike --loop, loops a file instead of the playlist.
* player: add a --dump-stats optionwm42014-04-171-0/+1
| | | | | | | | | | | | | | | | | | | | | | | This collects statistics and other things. The option dumps raw data into a file. A script to visualize this data is included too. Litter some of the player code with calls that generate these statistics. In general, this will be helpful to debug timing dependent issues, such as A/V sync problems. Normally, one could argue that this is the task of a real profiler, but then we'd have a hard time to include extra information like audio/video PTS differences. We could also just hardcode all statistics collection and processing in the player code, but then we'd end up with something like mplayer's status line, which was cluttered and required a centralized approach (i.e. getting the data to the status line; so it was all in mplayer.c). Some players can visualize such statistics on OSD, but that sounds even more complicated. So the approach added with this commit sounds sensible. The stats-conv.py script is rather primitive at the moment and its output is semi-ugly. It uses matplotlib, so it could probably be extended to do a lot, so it's not a dead-end.
* New option --no-ometadata to opt out of including metadata when encoding.Rudolf Polzer2014-04-141-0/+4
| | | | | | | This re-allows the previous behaviour of being able to reencode with metadata removed, which is useful when encoding "inconsistently" tagged data for a device/player that shows file names when tags are not present.
* Remove radio://wm42014-04-131-17/+1
| | | | | It was disabled by default, works only for analogue radio, and I bet nobody uses it.
* vd_lavc: by default, do not show corrupt frameswm42014-04-081-1/+1
| | | | This flips the default value. Use --vd-lavc-show-all=yes to revert.
* audio: make --channels option always force the output layoutwm42014-03-101-1/+1
| | | | | | Use the --channels value directly on the AO, instead of doing it only in the --channels=stereo (default) case and if the decoder output is not stereo.
* sd_ass: add a very simple and evil way to override ASS subtitle styleswm42014-03-011-1/+1
| | | | | | --ass-style-override=force now attempts to override the 'Default' style. May or may not work. In some situations it will work, but also mess up seemingly unrelated things like signs typeset with ASS.
* msg: add --msgtime option to add timestamps to each output messagewm42014-02-281-0/+1
| | | | | | | Will be helpful to track down strange wait times and such issues, as well when you have develop something timing related. (Then you may print timestamps in your debug output, and the --msgtime timestamps will help giving context.)
* lua: add option to disable auto-loading of lua scriptswm42014-02-281-0/+2
|
* options: allow changing options at runtimewm42014-02-251-29/+32
| | | | | Allow changing all options at runtime, except some cherry-picked options, which are disabled with M_OPT_FIXED.
* config: add a --config-dir option to force config directorywm42014-02-251-0/+2
| | | | Useful for slave-mode like uses, and not as radical as --no-config.
* options: handle escape sequences in e.g. --playing-msg differentlywm42014-02-201-3/+3
| | | | | | | | | | M_OPT_PARSE_ESCAPES was pretty stupid, and broke the (useful) assumption that string variables contain exactly the same value as set by the option. Simplify it, and move escape handling to the place where it's used. Escape handling itself is not terribly useful, but still allows useful things like multiline custom OSD with "\n".
* options: add --no-terminal switchwm42014-02-101-0/+2
| | | | | Mostly useful for internal reasons. This code will be enabled by default if mpv is started via the client API.
* quvi: disable subtitle fetching by defaultwm42014-01-311-1/+1
| | | | This is slow and unreliable, basically unusable.
* lua: add a --lua-opts option, which can be queried by scriptswm42014-01-161-0/+1
| | | | | | | The values set by this new option can be queried by Lua scripts using the mp.getopt() function. The function takes a string parameter, and returns the value of the first key that matches. If no key matches, nil is returned.
* player: add --term-osd-bar, which shows a status bar on the terminalwm42014-01-151-0/+4
| | | | | Feature request from github issue #451. Disabled by default, will probably stay this way.
* player: redo terminal OSD and status line handlingwm42014-01-131-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The terminal OSD code includes the handling of the terminal status line, showing player OSD messages on the terminal, and showing subtitles on terminal (the latter two only if there is no video window, or if terminal OSD is forced). This didn't handle some corner cases correctly. For example, showing an OSD message on the terminal always cleared the previous line, even if the line was an important message (or even just the command prompt, if most other messages were silenced). Attempt to handle this correctly by keeping track of how many lines the terminal OSD currently consists of. Since there could be race conditions with other messages being printed, implement this in msg.c. Now msg.c expects that MSGL_STATUS messages rewrite the status line, so the caller is forced to use a single mp_msg() call to set the status line. Instead of littering print_status() all over the place, update the status only once per playloop iteration in update_osd_msg(). In audio- only mode, the status line might now be a little bit off, but it's perhaps ok. Print the status line only if it has changed, or if another message was printed. This might help with extremely slow terminals, although in audio+video mode, it'll still be updated very often (A-V sync display changes on every frame). Instead of hardcoding the terminal sequences, use terminfo/termcap to get the sequences. Remove the --term-osd-esc option, which allowed to override the hardcoded escapes - it's useless now. The fallback for terminals with no escape sequences for moving the cursor and clearing a line is removed. This somewhat breaks status line display on these terminals, including the MS Windows console: instead of querying the terminal size and clearing the line manually by padding the output with spaces, the line is simply not cleared. I don't expect this to be a problem on UNIX, and on MS Windows we could emulate escape sequences. Note that terminal OSD (other than the status line) was broken anyway on these terminals. In osd.c, the function get_term_width() is not used anymore, so remove it. To remind us that the MS Windows console apparently adds a line break when writint the last column, adjust screen_width in terminal- win.c accordingly.
* options: remove --screenw and --screenhwm42014-01-111-3/+0
| | | | | | | | | Doesn't make any sense anymore. X11 (which was mentioned in the manpage) autodetects it, and everything else ignored the option values. Since for incomprehensible reasons the backends and vo.c still need to exchange information about the screensize using the option fields, they're not removed yet.
* options: don't reset pause mode when switching to next filewm42014-01-091-1/+0
| | | | | | This basically reverts the default as set by commit 812798c5. This seems to be a matter of taste, but personally I think keeping the pause setting is better.
* quvi: add option to not fetch subtitlesAndre D2014-01-051-0/+2
| | | | Signed-off-by: wm4 <wm4@nowhere>
* vd_lavc: by default, output all frames, even corrupted oneswm42013-12-291-0/+1
| | | | | | | | | | | | | | | | Set the flag CODEC_FLAG_OUTPUT_CORRUPT by default. Note that there is also CODEC_FLAG2_SHOW_ALL, which is older, but this seems to be ffmpeg only. Note that whether you want this enabled depends on the user. Some might prefer that only good frames are output, while others want the decoder to try as hard as possible to output _anything_. Since mplayer/mpv is rather the kind of player that tries hard instead of being "clever", set the new default to override libavcodec's default. A nice way to test this is switching video tracks. Since mpv doesn't wait for the next key frame, it'll start feeding the decoder with a packet from the middle of the stream.
* options: simplify handling of some help optionswm42013-12-261-9/+13
|
* player: fix initial selection with --secondary-sidwm42013-12-251-0/+1
| | | | | | | | Also, make sure that a track can't be selected twice. While this might work in some situations, it certainly won't work with subtitles demuxed from a stream. Fixes #425.
* player: add --secondary-sid for displaying a second subtitle streamwm42013-12-241-0/+1
| | | | | | | This is relatively hacky, but it's Christmas, so it's ok. This does two things: 1. allow selecting two subtitle tracks, and 2. include a hack that renders the second subtitle always as toptitle. See manpage additions how to use this.
* options: disable joystick by defaultwm42013-12-231-1/+0
|
* Don't include version.h from make options.cwm42013-12-221-3/+1
| | | | | | | | | I find this annoying. It's the reason common/version.c exists at all. options.c did this for the user agent, which contains the version number. Because not including version.h means you can't build the user agent and use it in mp_default_opts anymore, do something rather awkward in main.c to initialize the default user agent.
* options: move network related options to MPOptswm42013-12-221-20/+9
|
* msg: remove global statewm42013-12-211-7/+6
|
* m_option, m_config: mp_msg conversionswm42013-12-211-3/+3
| | | | | | | | Always pass around mp_log contexts in the option parser code. This of course affects all users of this API as well. In stream.c, pass a mp_null_log, because we can't do it properly yet. This will be fixed later.
* input: rework how input sources are addedwm42013-12-211-4/+0
| | | | | | | | | | | | | | Until now, there were two functions to add input sources (stuff like stdin input, slave mode, lirc, joystick). Unify them to a single function (mp_input_add_fd()), and make sure the associated callbacks always have a context parameter. Change the lirc and joystick code such that they take store their state in a context struct (probably worthless), and use the new mp_msg replacements (the point of this refactoring). Additionally, get rid of the ugly USE_FD0_CMD_SELECT etc. ifdeffery in the terminal handling code.
* msg: change --msglevel, reduce legacy gluewm42013-12-201-101/+3
| | | | | | | | | | | | Basically, reimplement --msglevel. Instead of making the new msg code use the legacy code, make the legacy code use the reimplemented functionality. The handling of the deprecated --identify switch changes. It temporarily stops working; this will be fixed in later commits. The actual sub-options syntax (like --msglevel-vo=...) goes away, but I bet nobody knew about this or used this anyway.
* options: use M_OPT_EXIT with -Vwm42013-12-191-1/+1
| | | | | Otherwise, output will actually be muted during pre-pase stage, and it will exit before running it again with output enabled.
* Move options/config related files from mpvcore/ to options/wm42013-12-171-0/+886
Since m_option.h and options.h are extremely often included, a lot of files have to be changed. Moving path.c/h to options/ is a bit questionable, but since this is mainly about access to config files (which are also handled in options/), it's probably ok.