summaryrefslogtreecommitdiffstats
path: root/options
Commit message (Collapse)AuthorAgeFilesLines
* vo_opengl: refactor performance data propertiesNiklas Haas2016-06-081-0/+2
| | | | | | | | | | | | | | | Instead of having 9 different properties, requiring 18 different VOCTRLs to read them all, they are now exposed as a single property. This is not only cleaner (since they're all together) but also allows querying all 9 of them with only a single VOCTRL (by using mp.get_property_native). (The extra factor of 2 was due to an extra query being needed to get the type, which is now also unnecessary) This makes it much easier to access performance metrics from within a lua script, and also makes it easier to just show a readable, formatted version via show-text.
* vo_opengl: somewhat simplify suboption handling messwm42016-06-041-14/+37
| | | | | | | | | | | | | | | Enable m_sub_options_copy() to copy nested sub-options, and also enable it to create an option struct from defaults. We can get rid of most of the crap in assign_options() now. Calling handle_scaler_opt() to get a static allocation for scaler name is still needed. It's moved to reinit_scaler(), which seems to be a better place for it. Without it, dangling pointers could be created when options are changed. (And in fact, this fixes possible dangling pointers for window.name.) In theory we could create a dynamic copy, but that seemed even more messy. Chance of regressions.
* options: --geometry: center window position after applying sizemaniak13492016-05-221-0/+4
| | | | | | | Center window position after applying W and H parameters of the --geometry option. Passing valid X and Y values will still override the position. Fixes #2397.
* video: add --hwdec=auto-copy modewm42016-05-111-0/+1
| | | | | | | | This uses the normal autoprobing rules like "auto", but rejects anything that isn't flagged as copying data back to system memory. The chunk in command.c was dead code, so remove it instead of updating it.
* win32: make taskbar progress indication optionalmaniak13492016-05-082-0/+3
| | | | | | | | | | | Add --taskbar-progress command line option and property which controls taskbar progress indication rendering in Windows 7+. This option is on by default and can be toggled during playback. This option does not affect the creation process of ITaskbarList3. When the option is turned off the progress bar is just hidden with TBPF_NOPROGRESS. Closes #2535
* x11: rename inappropriate --x11-bypass-compositor=never optionwm42016-05-071-1/+1
| | | | This obviously made no sense.
* x11: add --x11-bypass-compositor=alwayswm42016-05-061-1/+1
| | | | Also add missing documentation for fs-only, and correct the default.
* client API: access choices as flags if appropriatewm42016-05-041-2/+15
| | | | | | | | | | | | Options/properties that are choices, and which include "yes" or "no" values (or both) can now be read and written as MPV_FORMAT_FLAG. For write access, rejecting flags in these cases was obnoxiously unintuitive and inconvenient. For read access, the value of this is less convincing, and actually it's a major API change. At this point I probably have to admit that the finer details of the client API are very unstable.
* x11: extend --x11-bypass-compositor with fs-only optionwm42016-05-021-2/+3
| | | | | | | | | | The "fs-only" choice sets the _NET_WM_BYPASS_COMPOSITOR to 1 if the window is fullscreened, and 0 otherwise. (0 is specified to be the implicit default - i.e. no change is requested in windowed mode.) In particular, change the default to "fs-only". Fixes #2582.
* options: add --fit-border video optionmaniak13492016-04-302-0/+3
| | | | | | | Flag that is set by default. Reseting it will result in mpv trying to fit client area with video instead of the whole window with border and decorations on the screen. Marked as (Windows only) for now until it's implemented on other platforms.
* sd_add: replace --sub-ass=no with --ass-style-override=stripwm42016-04-301-1/+1
| | | | | | --sub-ass=no / --ass=no still work, but --ass-style-override=strip is preferred now. With this change, --ass-style-override can control all the types of style overriding.
* vo_opengl: D3D11VA + ANGLE interopwm42016-04-271-0/+1
| | | | | | | | | | | | | | | | | | | This uses ID3D11VideoProcessor to convert the video to a RGBA surface, which is then bound to ANGLE. Currently ANGLE does not provide any way to bind nv12 surfaces directly, so this will have to do. ID3D11VideoContext1 would give us slightly more control about the colorspace conversion, though it's still not good, and not available in MinGW headers yet. The video processor is created lazily, because we need to have the coded frame size, of which AVFrame and mp_image have no concept of. Doing the creation lazily is less of a pain than somehow hacking the coded frame size into mp_image. I'm not really sure how ID3D11VideoProcessorInputView is supposed to work. We recreate it on every frame, which is simple and hopefully doesn't affect performance.
* command: fix cycling certain propertieswm42016-04-151-1/+1
| | | | | | | Commit a9bd4535 generally changed properties are set to string values. This actually broke the fallback for non-string properties, because the set string action was redirected directly to the property, instead of the generic handler and its fallback code.
* client API: improve mpv_set_property() handling of MPV_FORMAT_NODEwm42016-04-153-12/+24
| | | | | | | | | If a mpv_node wrapped a string, the behavior was different from calling mpv_set_property() with MPV_FORMAT_STRING directly. Change this. The original intention was to be strict about types if MPV_FORMAT_NODE is used. But I think the result was less than ideal, and the same change towards less strict behavior was made to mpv_set_option() ages ago.
* m_option: slightly improve --msg-level=help outputwm42016-04-131-1/+1
| | | | In particular get rid of the semi-deprecated ":" separator.
* m_option: add string conversion for --audio-channelswm42016-04-131-0/+8
| | | | Requested in #3040.
* x11: do not set _NET_WM_BYPASS_COMPOSITOR by defaultwm42016-04-031-1/+1
| | | | | | | | | | | It's pretty "unfriendly" and causes too many issues. (Probably. At least they're more obvious to a user than e.g. broken frame timing.) Potentially we could apply heuristics like applying this only on fullscreen, but let's not. It's up to the user to configure this to get best results. Fixes #2997.
* vd_lavc: add d3d11va hwdecKevin Mitchell2016-03-301-0/+1
| | | | | | This commit adds the d3d11va-copy hwdec mode using the ffmpeg d3d11va api. Functions in common with dxva2 are handled in a separate decode/d3d.c file. A future commit will rewrite decode/dxva2.c to share this code.
* Add a mediacodec decoder hwdec wrapperJan Ekström2016-03-251-0/+1
| | | | | Does the same thing as the rpi one - makes fallback possible by pretending that h264_mediacodec is a hwdec.
* ipc: rename --input-unix-socket to --input-ipc-serverJames Ross-Gowan2016-03-231-1/+2
| | | | | | | | | | | JSON IPC works on Windows now, and although the transports for each plaform have similar characteristics, they unfortunately have different names (Unix domain sockets on Linux/Unix vs. named pipes on Windows.) Hopefully this change better reflects the purpose of the option too, since with --input-ipc-server, mpv acts as an IPC server that can service many simultaneous clients (as opposed to --input-file, which can only do one-to-one IPC.)
* dxva2: add interop (non-copyback) hwdec_typeKevin Mitchell2016-02-171-0/+1
| | | | | This always falls back to software decoding right now. VO support will be added in future commits.
* player: add --external-file optionwm42016-02-082-0/+2
| | | | Mostly intended for use with --lavfi-complex.
* player: add complex filter graph supportwm42016-02-052-0/+3
| | | | | | | | | | | | | | | | See --lavfi-complex option. This is still quite rough. There's no support for dynamic configuration of any kind. There are probably corner cases where playback might freeze or burn 100% CPU (due to dataflow problems when interaction with libavfilter). Future possible plans might include: - freely switch tracks by providing some sort of default track graph label - automatically enabling audio visualization - automatically mix audio or stack video when multiple tracks are selected at once (similar to how multiple sub tracks can be selected)
* options: set fs=yes by default on RPI, and change RPI defaults handlingwm42016-02-051-4/+0
| | | | | The main reason for changing the fullscreen default is that not doing it would change the vo_rpi default behavior with the previous commit.
* audio: remove default preference for libdcadecwm42016-02-011-1/+1
| | | | Not needed anymore, because the decoder was merged with FFmpeg.
* audio: change downmix behavior, add --audio-normalize-downmixwm42016-01-202-0/+2
| | | | | | This is probably the 3rd time the user-visible behavior changes. This time, switch back because not normalizing seems to be the more expected behavior from users.
* audio: change --audio-channels default back to stereowm42016-01-201-1/+1
| | | | | | | | Too many problems. Well, actually it's just Linux audio systems which cause problems, and exclusive audio access on other platforms. In any case, it seems you have to do some manual configuration if you want multichannel audio output.
* options: add "service_name" as display tag.Oliver Freyermuth2016-01-141-1/+1
| | | | | | This is labeled as "name of the service in broadcasting (channel name)" and exported as a generic tag by avformat-demuxers, notably lavf when handling mpegts-streams from DVB.
* mpv_talloc.h: rename from talloc.hDmitrij D. Czarkoff2016-01-114-4/+4
| | | | This change helps avoiding conflict with talloc.h from libtalloc.
* player: make watch later/resume work when "playing" directorieswm42016-01-062-0/+17
| | | | | | | | | | | | | | If you do "mpv /bla/", and then branch out into sub-directories using playlist navigation, and then used quit and watch later, then playing the same directory did not resume from the previous point. This was because resuming is based on the path hash, so a path prefix can't be detected when resuming the parent directory. Solve this by writing each path prefix when playing directories is involved. (This includes all parent paths, so interestingly, "mpv /" would also resume in the above example.) Something like this was requested multiple times, and I want it too.
* options: raise maximum value for --audio-sampleratewm42016-01-051-1/+1
| | | | Helps with testing.
* options: exclude 360 from --video-rotate rangewm42016-01-021-1/+1
| | | | It's indeed completely useless. Pointed out in #2647.
* options: add --audio-file-pathswm42015-12-252-0/+2
| | | | | | | | Requested. It works like --sub-paths. This will also load audio files from a "audio" sub directory in the config file (because the same code as for subtitles is used, and it also had such a feature). Fixes #2632.
* stream: drop PVR supportwm42015-12-101-4/+0
| | | | | | | | | This is only for specific Hauppage cards. According to the comments in who is actively using this feature. Get it out of the way. Anyone who still wants to use this should complain. Keeping this code would not cause terribly much additional work, and it could be restored again. (But not if the request comes months later.)
* win32: add option to set VO MMCSS profilewm42015-12-062-0/+7
| | | | This was requested.
* path: cosmeticslzmths2015-12-021-3/+5
| | | | | | Avoiding conditional directives that split up parts of statements. Signed-off-by: wm4 <wm4@nowhere>
* x11: request bypassing compositorwm42015-11-182-0/+3
| | | | | | | Maybe this is a good idea. Also add an option to disable it again, for the sake of testing. Fixes #2502.
* videotoolbox: make decoder format customizablewm42015-11-172-0/+5
| | | | | | | | | | Because apparently there's no ideal universally working format. The weird OpenGL texture format for kCVPixelFormatType_32BGRA is from: http://stackoverflow.com/questions/22077544/draw-an-iosurface-to-an-opengl-context (Which apparently got it from the linked Apple example code.)
* player: handle rebasing start time differentlywm42015-11-162-0/+4
| | | | | | | | | | | | | | | | Most of this is explained in the DOCS additions. This gives us slightly more sanity, because there is less interaction between the various parts. The goal is getting rid of the video_offset entirely. The simplification extends to the user API. In particular, we don't need to fix missing parts in the API, such as the lack for a seek command that seeks relatively to the start time. All these things are now transparent. (If someone really wants to know the real timestamps/start time, new properties would have to be added.)
* Remove some VLAswm42015-11-062-18/+8
| | | | | | | | They are evil and should be eradicated. Some of these were pretty dumb anyway. There are probably some more around in platform specific code or other code not enabled by default on Linux.
* options: enable mpeg2 hw decoding by default if hw decoding is requestedwm42015-11-051-1/+1
| | | | | We didn't include this codec in the whitelist because of past problems with vdpau and interlacing. (I can't reproduce any problems anymore.)
* options: handle terminal/logging settings eagerlywm42015-11-044-19/+28
| | | | | | | | | | | Update msg.c state immediately if a terminal or logging setting is set. Until now, this was delayed until mp[v]_initialize() was called. When using the client API, you could easily miss logged error messages, even when logging was initialized early on by calling mpv_request_log_messages(). (Properties can't be used for this either, because properties do not work before mpv_initialize().)
* player: add audio drop/duplicate modewm42015-10-272-0/+5
| | | | Not very robust in the moment.
* options: remove --use-text-osdwm42015-10-242-3/+0
|
* options: add support for client certificate authenticationJoschka Tillmanns2015-10-202-0/+4
| | | | | | | | Client certificates are supported by ffmpeg as documented here: > https://www.ffmpeg.org/ffmpeg-protocols.html#tls Signed-off-by: wm4 <wm4@nowhere>
* ytdl: Remove DASH hacks, use DASH by defaultChrisK22015-10-111-1/+1
| | | | | | | | | | | Thanks to rcombs, ffmpeg now properly supports DASH and we can remove our hacks for it and use it by default whenever available. If you don't like this for whatever reason, you can get the "normal" streams back with --ytdl-format=best . Closes #579 Closes #1321 Closes #2359
* video: remove user-controllable PTS sorting (--pts-association-mode)wm42015-10-062-4/+0
| | | | | | | | | Useless. Sometimes it might be useful to make some extremely broken files work, but on the other hand --no-correct-pts is sufficient for these cases. While we still need some of the code for AVI, the "auto" mode in particular inflated the size of the code.
* audio: add option for falling back to ao_nullwm42015-10-052-0/+2
| | | | | | | | | The manpage entry explains this. (Maybe this option could be always enabled and removed. I don't quite remember what valid use-cases there are for just disabling audio entirely, other than that this is also needed for audio decoder init failure.)
* video: replace vf_format outputlevels option with global optionwm42015-09-292-0/+3
| | | | | | | | | | | The vf_format suboption is replaced with --video-output-levels (a global option and property). In particular, the parameter is removed from mp_image_params. The mechanism is moved to the "video equalizer", which also handles common video output customization like brightness and contrast controls. The new code is slightly cleaner, and the top-level option is slightly more user-friendly than as vf_format sub-option.
* video: remove VDA supportwm42015-09-281-1/+0
| | | | | | | | | VideoToolbox is preferred. Now that FFmpeg released 2.8, there's no reason to support VDA anymore. In fact, we had a bug that made VDA not useable with older FFmpeg versions in some newer mpv releases. VideoToolbox is supported even on slightly older OSX versions, and if not, you still can run mpv without hw decoding.
* player: prefer logical current directory pathwm42015-09-111-0/+4
| | | | | | | The "PWD" enviornment variable is described by POSIX. We don't go to length to verify its contents, but just trust it. This affects the logic for resuming playback.
* options: fix --no-configwm42015-09-052-2/+4
| | | | | | | | | | | | | | | | | | This was completely broken. It was checked manually in some config loading paths, so it appeared to work. But the intention was always to completely disable reading from the normal config dir. This logic was broken in commit 2263f37d. The manual checks are actually redundant, and are not needed if --no-config is implemented properly - remove them. Additionally, the change to load the libmpv defaults from an embedded profile also failed to set "config=no". The option is marked as not being settable by a config file, and the libmpv default profile is parsed as a config file, so this option was rejected. Fix it by removing the CONF_NOCFG flag. (Alternatively, m_config_set_profile() could be changed not to set the "config file" flag by default, but I'm not bothering with this.)
* video: make container vs. bitstream aspect ratio configurablewm42015-08-302-0/+3
| | | | | | Utterly idiotic bullshit. Fixes #2259.
* player: add --playlist-pos optionwm42015-08-222-0/+4
| | | | Oddly often requested.
* options: sub-file replaces subfile, instead of subStian Eikeland2015-08-211-1/+1
|
* player: add display sync modewm42015-08-102-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | If this mode is enabled, the player tries to strictly synchronize video to display refresh. It will adjust playback speed to match the display, so if you play 23.976 fps video on a 24 Hz screen, playback speed is increased by approximately 1/1000. Audio wll be resampled to keep up with playback. This is different from the default sync mode, which will sync video to audio, with the consequence that video might skip or repeat a frame once in a while to make video keep up with audio. This is still unpolished. There are some major problems as well; in particular, mkv VFR files won't work well. The reason is that Matroska is terrible and rounds timestamps to milliseconds. This makes it rather hard to guess the framerate of a section of video that is playing. We could probably fix this by just accepting jittery timestamps (instead of explicitly disabling the sync code in this case), but I'm not ready to accept such a solution yet. Another issue is that we are extremely reliant on OS video and audio APIs working in an expected manner, which of course is not too often the case. Consequently, the new sync mode is a bit fragile.
* options: remove the period at the end of "No file."Niklas Haas2015-08-091-1/+1
| | | | | | Since we're on the topic of consistency, I've seen multiple users complain about the presence of this period, which does not really match other programs' behavior.
* options: move program name to end of window titleMartin Herkt2015-08-091-1/+1
| | | | Fixes #2188
* demux: add options to control maximum queue sizewm42015-08-052-0/+6
| | | | | | | | | | | | | | Add --demuxer-max-packets and --demuxer-max-bytes, which control the maximum size of the packet queue. These can be helpful to avoid excessive memory usage. Memory usage is the reason why there's a limit in the first place. If a file is more or less broken, and audio and video don't line up, the decoders will fill up the packet queue trying to read more audio or video, and the maximum sizes are required to avoid unbounded memory allocation. Being able to override the maximum sizes is useful; either for restricting memory usage further, or enlarging the sizes when attempting to play various broken files.
* demux: remove options to control minimum packet queue sizewm42015-08-052-6/+0
| | | | | | | | Remove --demuxer-readahead-packets and --demuxer-readahead-bytes. These were a bit useless. They could force a minimum packet queue size, but controlling the queue size with --demuxer-readahead-secs is much nicer. It's fairly certain nobody ever used these options.
* hwdec: add VideoToolbox supportSebastien Zwickert2015-08-051-0/+1
| | | | | | | | VDA is being deprecated in OS X 10.11 so this is needed to keep hwdec working. The code needs