summaryrefslogtreecommitdiffstats
path: root/etc
Commit message (Collapse)AuthorAgeFilesLines
* screenshot: change async behavior to be in line with new semanticswm42018-05-241-3/+3
| | | | | | | | | | | | | | | | | | | | | | Basically reimplement the async behavior on top of the async command code. With this, all screenshot commands are async, and the "async" prefix basically does nothing. The prefix now behaves exactly like with other commands that use spawn_thread. This also means using the prefix in the preset input.conf is pointless (without effect) and misleading, so remove that. The each_frame mode was actually particularly painful in making this change, since the player wants to block for it when writing a screenshot, and generally doesn't fit into the new infrastructure. It was still relatively easy to reimplement by copying the original command and then repeating it on each frame. The waiting is reentrant now, so move the call in video.c to a "safer" spot. One way to observe how the new semantics interact with everything is using the mpv repl script and sending a screenshot command through it. Without async flag, the script will freeze while writing the screenshot (while playback continues), while with async flag it continues.
* encode: remove removed encode options from presetsTheAMM2018-05-031-13/+4
|
* encode: rewrite half of itwm42018-04-291-3/+3
| | | | | | | | | | | | | The main change is that we wait with opening the muxer ("writing headers") until we have data from all streams. This fixes race conditions at init due to broken assumptions in the old code. This also changes a lot of other stuff. I found and fixed a few API violations (often things for which better mechanisms were invented, and the old ones are not valid anymore). I try to get away from the public mutex and shared fields in encode_lavc_context. For now it's still needed for some timestamp-related fields, but most are gone. It also removes some bad code duplication between audio and video paths.
* encoding: deprecate a bunch of obscure optionswm42018-04-201-2/+0
| | | | | --audio-delay does not work correctly yet, but hopefully this can be fixed later.
* mpv.desktop: fix French translation consistencyemersion2018-03-181-1/+3
| | | | This makes the French version consistent with the English one.
* input: minor additions to default key bindingswm42018-03-041-7/+23
| | | | | | | | | This adds key bindings for some semi-popular features. It also tries to cleanup some old bindings. For example w/e for panscan is now changed to w/W. In all cases, the old bindings are still kept and work, though. Part of an ongoing attempt to cleanup the default key bindings. See #973 for some context.
* video: add option to reduce latency by 1 or 2 frameswm42018-03-031-0/+1
| | | | | | | | | | | | | | | | | | | | The playback start logic explicitly waits until the first frame has been displayed. Usually this will introduce a wait of 1 vsync. For normal playback this doesn't matter, but with respect to low latency needs, this only leads to additional data getting queued up in the demuxer or network buffers. Another thing is that the timing logic decodes 1 frame ahead (= 1 frame extra latency) to determine the exact duration of a frame. To be fair, there doesn't really seem to be a hard reason why this is needed. With the current code, enabling the option does lead to A/V desync sometimes (if the demuxer FPS is too inaccurate), and also frame drops at playback start in some situations. But this all seems to be avoidable, if the timing logic were to be rewritten completely, which should probably happen in the future. Thus the new option comes with the warning that it can be removed any time. This is also why the option has "hack" in the name.
* options: add a builtin low-latency profilewm42018-03-031-0/+10
| | | | | | | | | | Well I guess it doesn't help that much. Also add some stuff that might help to the manpage. The fundamental problem with some "live" sources (e.g. x11grab) is actually that the player gets behind initially, and never thinks it has to catch up. This is also why --untimed can help.
* input: add a keybinding to toggle hardware decodingwm42018-02-131-0/+1
| | | | | We sure as hell won't enable hardware decoding by default, but we can make it more accessible with a key binding.
* input.conf: use exact value for [ bindingwm42018-01-301-1/+1
| | | | | | This is supposed to undo the ] binding. This uses a value closer to the inverse. (Although it's not fully exact since the values are still stored as floating point instead as fractions.)
* mpv.desktop: update mime type listsfan52018-01-221-1/+1
| | | | see https://wiki.debian.org/DebianMultimedia/PlayerSupport
* client API: remove ytdl=no defaultwm42018-01-131-1/+0
| | | | | | | | | | | | | | With the recent changes to the script it does not incur a startup delay by default due to starting youtube-dl and waiting for it. This was the main reason for making libmpv have a different default. Starting sub processes from a library can still be a bit fishy, but I think it's ok. Still mention it in the libmpv header. There were already other cases where libmpv would start its own processes, such as the X11 backend calling xdg-screensaver. (The reason why this is fishy is because UNIX process management sucks: SIGCHLD and the wait() syscall make sub processes non-transparent and could potentially introduce conflicts with code trying to use them.)
* client API: change --stop-playback-on-init-failure defaultwm42017-12-171-1/+0
| | | | | | | | | | | | | | | | This was off for mpv CLI, but on for libmpv. The motivation behind this was that it would be confusing for applications if libmpv continued playback in a severely "degraded" way (without either audio or video), and that it would be better to fail early. In reality the behavior was just a confusing difference to mpv CLI, and has confused actual users as well. Get rid of it. Not bothering with a version bump, since this is so minor, and it's easy to ensure compatibility in affected applications by just setting the option explicitly. (Also adding the missing next-release-marker in client-api-changes.rst.)
* osc: make cycling visibility an input.conf key bindingwm42017-11-031-0/+1
| | | | | As builtin script, it should not register global key bindings, and add them to input.conf instead. This is similar to what stats.lua does.
* restore-old-bindings.conf: add old macOS/Wayland AXIS bindingsJames Ross-Gowan2017-10-161-0/+7
| | | | These were changed in 7897f79217af to match X11 and Windows.
* input.conf: explicit bindings for stats overlayJulian2017-10-131-0/+2
|
* vo_opengl: refactor into vo_gpuNiklas Haas2017-09-212-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is done in several steps: 1. refactor MPGLContext -> struct ra_ctx 2. move GL-specific stuff in vo_opengl into opengl/context.c 3. generalize context creation to support other APIs, and add --gpu-api 4. rename all of the --opengl- options that are no longer opengl-specific 5. move all of the stuff from opengl/* that isn't GL-specific into gpu/ (note: opengl/gl_utils.h became opengl/utils.h) 6. rename vo_opengl to vo_gpu 7. to handle window screenshots, the short-term approach was to just add it to ra_swchain_fns. Long term (and for vulkan) this has to be moved to ra itself (and vo_gpu altered to compensate), but this was a stop-gap measure to prevent this commit from getting too big 8. move ra->fns->flush to ra_gl_ctx instead 9. some other minor changes that I've probably already forgotten Note: This is one half of a major refactor, the other half of which is provided by rossy's following commit. This commit enables support for all linux platforms, while his version enables support for all non-linux platforms. Note 2: vo_opengl_cb.c also re-uses ra_gl_ctx so it benefits from the --opengl- options like --opengl-early-flush, --opengl-finish etc. Should be a strict superset of the old functionality. Disclaimer: Since I have no way of compiling mpv on all platforms, some of these ports were done blindly. Specifically, the blind ports included context_mali_fbdev.c and context_rpi.c. Since they're both based on egl_helpers, the port should have gone smoothly without any major changes required. But if somebody complains about a compile error on those platforms (assuming anybody actually uses them), you know where to complain.
* input: merge mouse wheel and axis keycodesJames Ross-Gowan2017-09-031-8/+4
| | | | | | | | | | | | | | | | | | | | | | Mouse wheel bindings have always been a cause of user confusion. Previously, on Wayland and macOS, precise touchpads would generate AXIS keycodes and notched mouse wheels would generate mouse button keycodes. On Windows, both types of device would generate AXIS keycodes and on X11, both types of device would generate mouse button keycodes. This made it pretty difficult for users to modify their mouse-wheel bindings, since it differed between platforms and in some cases, between devices. To make it more confusing, the keycodes used on Windows were changed in 18a45a42d524 without a deprecation period or adequate communication to users. This change aims to make mouse wheel binds less confusing. Both the mouse button and AXIS keycodes are now deprecated aliases of the new WHEEL keycodes. This will technically break input configs on Wayland and macOS that assign different commands to precise and non-precise scroll events, but this is probably uncommon (if anyone does it at all) and I think it's a fair tradeoff for finally fixing mouse wheel-related confusion on other platforms.
* input: use mnemonic names for mouse buttonsJames Ross-Gowan2017-09-031-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | mpv's mouse button numbering is based on X11 button numbering, which allows for an arbitrary number of buttons and includes mouse wheel input as buttons 3-6. This button numbering was used throughout the codebase and exposed in input.conf, and it was difficult to remember which physical button each number actually referred to and which referred to the scroll wheel. In practice, PC mice only have between two and five buttons and one or two scroll wheel axes, which are more or less in the same location and have more or less the same function. This allows us to use names to refer to the buttons instead of numbers, which makes input.conf syntax a lot easier to remember. It also makes the syntax robust to changes in mpv's underlying numbering. The old MOUSE_BTNx names are still understood as deprecated aliases of the named buttons. This changes both the input.conf syntax and the MP_MOUSE_BTNx symbols in the codebase, since I think both would benefit from using names over numbers, especially since some platforms don't use X11 button numbering and handle different mouse buttons in different windowing system events. This also makes the names shorter, since otherwise they would be pretty long, and it removes the high-numbered MOUSE_BTNx_DBL names, since they weren't used. Names are the same as used in Qt: https://doc.qt.io/qt-5/qt.html#MouseButton-enum
* etc/encoding_profiles: remove deprecated usage of *-addRicardo Constantino2017-07-031-6/+12
|
* x11: add 128x128 sized icon supportXu Zhao2017-07-021-0/+0
|
* input.conf: drop TV/DVB bindingswm42017-06-272-9/+6
| | | | Is anyone still using them? Well, I'm removing them anyway.
* etc/encoding-profiles.conf: use new option syntaxwm42017-06-251-5/+5
| | | | | | This is only for the comments, but since the old syntax is "discouraged" (and might change semantics one day), we should use the new syntax in all documentation-like things.
* encoding-profiles: remove useless noformat vf from enc-v-h264Ricardo Constantino2017-06-251-1/+4
| | | | | Instead, add instructions on how to properly restrict output video to a relatively compatible profile/level.
* etc/encoding-profiles: use correct formats for noformatRicardo Constantino2017-06-211-1/+1
| | | | These alias were removed in 937dcc25a.
* input: change license to LGPLwm42017-06-192-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cehoyos adds the step_property command in 7a71da01d, and it could be argued that copyright of this still applies to the later add/cycle commands (a668ae0ff90c4). While I'm not sure if this is really the case, stay conservative for now and mark these commands as GPL-only. Mark the command.c code too, although that is not being relicensed yet. I'm leaving the MP_CMD_* enum items, as they are obviously different. In commit 116ca0c7682, "veal" (essentially an anonymous author) adds an "osd_show_property_text" command (well, the commit message says "based on" that person's code, so it's not clear how much is from him or from albeu, who agreed to LGPL). This was later merged again with the "osd_show_text" command, and then all original code was removed in commit 58cc0f637f, so I claim that no copyright applies anymore. (Though technically the input.conf addition still might be copyrighted, so I'm just dropping it to get rid of the thought.) "kiriuja" added 2f376d1b39 (sub_load etc.) and be54f4813 (switch_audio). The latter is gone. I would argue that the former is fully rewritten with commits b7052b431c9 and 0f155921b0. But like in the step_property case, I will be overly conservative for now, and mark them as GPL-only, as this is potentially shaky and should be thought through first. (Not bothering with the command define/enum in the header, as it will be unused in LGPL mode anyway.) keycodes.c/h can be GPL, except for commit 2b1f95dcc2f8, which is a patch by someone who wasn't asked yet. Before doing something radical, I will wait for a reply.
* options: fix some missing --sub-ass-style-override renameswm42017-06-071-1/+1
| | | | | The option was renamed not to include "-style", but not all uses were updated.
* encoding-profiles.conf: add faststart to enc-f-mp4Ricardo Constantino2017-06-061-1/+3
| | | | | | | | | Usually a good idea to do this when encoding to mp4, but it's commented since usefulness is arguable nowadays. Equivalent to running qt-faststart tool on the resulting mp4. Adds a bit of delay at the end of encoding.
* encoding_profiles.conf: update and remove deprecated stuffRicardo Constantino2017-04-071-59/+21
| | | | | | | | | - libfaac and libvo_aacenc were removed from FFmpeg - add libopus profile - modify vp8's ovcopts and add vp9 - switch enc-f-webm to vp9 + opus - remove obsolete devices profiles using deprecated filters
* etc/mpv.conf: remove deprecated optionswm42017-04-051-16/+9
| | | | | | This hasn't been updated for a while. Some options are deprecated (--softvol), semi-deprecated or virtually useless (e.g. --vo and --ao), or use old-syntax (--sub-codepage).
* player: make screenshot commands honor the async flagwm42017-04-011-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | And also change input.conf to make all screenshots async. (Except the every-frame mode, which always uses synchronous mode and ignores the flag.) By default, the "screenshot" command is still asynchronous, because scripts etc. might depend on this behavior. This is only partially async. The code for determining the filename is still always run synchronously. Only encoding the screenshot and writing it to disk is asynchronous. We explicitly document the exact behavior as undefined, so it can be changed any time. Some of this is a bit messy, because I wanted to avoid duplicating the message display code between sync and async mode. In async mode, this is called from a worker thread, which is not safe because showing a message accesses the thread-unsafe OSD code. So the core has to be locked during this, which implies accessing the core and all that. So the code has weird locking calls, and we need to do core destruction in a more "controlled" manner (thus the outstanding_async field). (What I'd really want would be the OSD simply showing log messages instead.) This is pretty untested, so expect bugs. Fixes #4250.
* osx: fix key input in certain circumstancesAkemi2017-03-261-1/+0
| | | | | | | | | | | | | for a reason i can just assume some key events can vanish from the event chain and mpv seems unresponsive. after quite some testing i could confirm that the events are present at the first entry point of the event chain, the sendEvent method of the Application, and that they vanish at a point afterwards. now we use that entry point to grab keyDown and keyUp events. we also stop propagating those key events to prevent the no key input' error sound. if we ever need the key events somewhere down the event chain we need to start propagating them again. though this is not necessary currently.
* mpv.desktop: fix some mistakes in mpv.desktopgiwhub2017-03-231-6/+6
| | | | Signed-off-by: wm4 <wm4@nowhere>
* mpv.desktop: add translation for [da]scootergrisen2017-02-131-0/+3
|
* input.conf: change "L" to change loop-file by defaultwm42017-01-312-1/+5
|
* player: fix previous commitwm42016-10-031-2/+2
| | | | ...
* player: allow opts in pseudo-gui set by the user to override user's defaultRicardo Constantino2016-09-261-0/+3
| | | | | | | | | | | | | | | | | | | | | This should still allow user-set default options to override built-in pseudo-gui while respecting user-set pseudo-gui options. Pros: - user option in default profile overrides built-in pseudo-gui's options Ex: screenshot-directory overrides built-in pseudo-gui's - user can "fix" pseudo-gui if some option like "force-window=no" is set in default by setting "force-window=yes" in [pseudo-gui] - `mpv --profile=pseudo-gui` will work as before Cons: - --show-profile=pseudo-gui won't display the built-in's options Original idea from wm4. Documentation edits mostly by wm4. Signed-off-by: wm4 <wm4@nowhere>
* player: do not let pseudo-gui override user config settingswm42016-09-231-1/+1
| | | | | | | | Seems like this confused users quite often. Instead of --profile=pseudo-gui, --player-operation-mode=pseudo-gui now has to be used to invoke pseudo GUI mode. The old way still works, and still behaves in the old way.
* etc/builtin.conf: minor editswm42016-09-151-2/+6
| | | | | | | | The previous commit merely copied the profile string to a file (plus changing how RPI-specific defaults are initialized), now make some changes on top of it. In particular, remove the --input-lirc option, which was removed a long time ago, but forgotten from the libmpv profile.
* player: move builtin profiles to a separate filewm42016-09-151-0/+40
| | | | | | | | | Move the embedded string with the builtin profiles to a separate builtin.conf file. This makes it easier to read and edit, and you can also check it for errors with --include=etc/builtin.conf. (Normally errors are hidden intentionally, because there's no way to output error messages this early, and because some options might not be present on all platforms or with all configurations.)
* manpage: remove more references to deprecated sub-option syntaxwm42016-09-071-3/+5
| | | | Fixes #3497.
* Use - as command-name separator everywhereTimotej Lazar2016-07-143-11/+11
| | | | | | | Old-style commands using _ as separator (e.g. show_progress) were still used in some places, including documentation and configuration files. This commit updates all such instances to the new style (show-progress) so that commands are easier to find in the manual.
* etc/mpv.conf: add missing commentwm42016-05-231-1/+1
| | | | | The config file is an example, and is not supposed to actually define anything by default.
* command: if only ab-loop-b is set, loop from start of filewm42016-04-211-1/+1
| | | | | | | | | | Commit 382bafcb changed the behavior for ab-loop-a. This commit changes ab-loop-b so that the behavior is symmetric. Adjust the OSD rendering accordingly to the two changes. Also fix mentions of the "ab_loop" command to the now preferred "ab-loop".
* mplayer-input.conf: fix input.conf location in commentBen Boeckel2016-03-311-1/+1
|
* mpv.conf: add some more optionswm42016-02-131-0/+8
| | | | | Seems like questions related to functionality covered by them are quite often asked.
* mpv.conf: adjustmentswm42016-02-081-23/+32
| | | | | In particular, get rid of the "vdpau" example profile, as it's pretty useless and misleading.
* player: implement SWITCH for dvb-channel-name property, add binding.Oliver Freyermuth2016-01-141-0/+4
| | | | | | | | The binding is similar to the tv-binding, just with capital letters. Switching the dvb-channel-name property compared to dvb-channel means the channel-name is shown on-screen when switching instead of "dvb-channel (error)" otherwise, and switching anyways happens without changing the card.
* etc: rename "example.conf" to "mpv.conf"Dmitrij D. Czarkoff2016-01-111-0/+0
|
* mpv.desktop: add audio/mp4 mime typewm42016-01-071-1/+1
| | | | Who thought mime types were a good idea?
* example.conf: minor changeswm42015-12-291-12/+10
| | | | | | In particular, the player inserts af_scaletempo by default now when changing speed, so the suggestion to add this was missleading and counter-productive.
* input.conf: remove a redundant and a broken examplewm42015-12-221-2/+0
| | | | | | | window-scale is now mapped to Alt+0 etc. by default (although these bindings just use "set", not "cycle-values"). colormatrix can't be cycled anymore (would require using vf_format).
* input.conf: erase `audio-delay` from `Not assigned by default`openingnow2015-12-221-2/+0
| | | | | | | `ctrl+ +`is assigned as `add audio-delay` by default. Tested by running `mpv --input-test --force-window --idle` Signed-off-by: wm4 <wm4@nowhere>
* input.conf: add default bindings for changing window scalewm42015-11-171-0/+3
| | | | | | These are very much inspired by the hardcoded Cocoa bindings on OSX. Fixes #2500.
* SVG version of the icon (with symbolic counterpart)Evgeny Kolesnikov2015-10-303-0/+352
|
* input.conf: remap d/D keyswm42015