aboutsummaryrefslogtreecommitdiffhomepage
path: root/DOCS
Commit message (Collapse)AuthorAge
...
* codecs: remove unused family fieldGravatar wm42018-02-01
| | | | | | | | | | MPlayer used this to distinguish multiple decoder wrappers (such as libavcodec vs. binary codec loader vs. builtin decoders). It lost meaning in mpv as non-libavcodec things were dropped. Now it doesn't serve any purpose anymore. Parsing was removed quite a while ago, and the recent filter change removed any use of the internal family field. Get rid of it.
* manpage: clarify some --vf optionsGravatar wm42018-01-31
| | | | In particular, mention deprecated things.
* ytdl_hook: pass http proxy to ffmpegGravatar Ricardo Constantino2018-01-30
| | | | | | | | | | | | | | FFmpeg only suppports http proxies and ignores it if the resulting url is https. Also, no SOCKS. Use it like `--ytdl-raw-options=proxy=[http://127.0.0.1:3128]` so it doesn't confuse mpv because of the colons. You need to pass it as an option because youtube-dl doesn't give us the proxy. Or just set `http_proxy` environment variable as recommended before. Added example using -append, which doesn't need escaping.
* ao_null: add --ao-null-format option for debuggingGravatar wm42018-01-30
| | | | Helpful especially to test spdif fallback and so on.
* player: replace old lavfi wrapper with new filter codeGravatar wm42018-01-30
| | | | | lavfi.c is not necessary anymore, because f_lavfi.c (which was actually converted from it) can be used now.
* audio: rewrite filtering glue codeGravatar wm42018-01-30
| | | | Use the new filtering code for audio too.
* video: rewrite filtering glue codeGravatar wm42018-01-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Get rid of the old vf.c code. Replace it with a generic filtering framework, which can potentially handle more than just --vf. At least reimplementing --af with this code is planned. This changes some --vf semantics (including runtime behavior and the "vf" command). The most important ones are listed in interface-changes. vf_convert.c is renamed to f_swscale.c. It is now an internal filter that can not be inserted by the user manually. f_lavfi.c is a refactor of player/lavfi.c. The latter will be removed once --lavfi-complex is reimplemented on top of f_lavfi.c. (which is conceptually easy, but a big mess due to the data flow changes). The existing filters are all changed heavily. The data flow of the new filter framework is different. Especially EOF handling changes - EOF is now a "frame" rather than a state, and must be passed through exactly once. Another major thing is that all filters must support dynamic format changes. The filter reconfig() function goes away. (This sounds complex, but since all filters need to handle EOF draining anyway, they can use the same code, and it removes the mess with reconfig() having to predict the output format, which completely breaks with libavfilter anyway.) In addition, there is no automatic format negotiation or conversion. libavfilter's primitive and insufficient API simply doesn't allow us to do this in a reasonable way. Instead, filters can use f_autoconvert as sub-filter, and tell it which formats they support. This filter will in turn add actual conversion filters, such as f_swscale, to perform necessary format changes. vf_vapoursynth.c uses the same basic principle of operation as before, but with worryingly different details in data flow. Still appears to work. The hardware deint filters (vf_vavpp.c, vf_d3d11vpp.c, vf_vdpaupp.c) are heavily changed. Fortunately, they all used refqueue.c, which is for sharing the data flow logic (especially for managing future/past surfaces and such). It turns out it can be used to factor out most of the data flow. Some of these filters accepted software input. Instead of having ad-hoc upload code in each filter, surface upload is now delegated to f_autoconvert, which can use f_hwupload to perform this. Exporting VO capabilities is still a big mess (mp_stream_info stuff). The D3D11 code drops the redundant image formats, and all code uses the hw_subfmt (sw_format in FFmpeg) instead. Although that too seems to be a big mess for now. f_async_queue is unused.
* command: add --osd-on-seek option defaulting to barGravatar Kevin Mitchell2018-01-26
| | | | | | | | | | | | | Restores behaviour prior to aef2ed5dc13e37dec0670c451b4369b151d5c65f. That change was apparently unpopular. However, given the amount of complaining over how hard it is to change the defaults by rebinding every key, I think the extra option introduced by this commit is justified. Technically not all behaviour is restored, because now --no-osd-bar will not instead display the msg text on seek. I think that feature was a little weird and is now easy enough to remedy with the --osd-on-seek option.
* Revert "command: make pause display the same osd-msg-bar as seek"Gravatar Kevin Mitchell2018-01-26
| | | | | | | | | | | | | | This reverts commit 9812e276aa1bb0bddeb73677aa9e9f87e73cd930. This was apparently unpopular. I still think the pause OSD should be the same as seek even if it's not visible by default, but it seems that whether to display a given property change is currently conflated with what to display. The reverted behaviour can be restored by adding something like the following to input.conf: SPACE cycle pause; show_progress
* manpage: mention --network-timeout is broken with RTSPGravatar wm42018-01-25
| | | | | | Not much we can do, too hard to work around. Fixes #3361.
* options: add string list -toggle actionGravatar wm42018-01-25
|
* command: add a change-list commandGravatar wm42018-01-25
| | | | | | | | | | | | | Requested. See manpage additions. The main reason why this goes through the trouble to keep the action/operation parameter separate is so that we don't expose some option parser implementation details to the command (although that is a relatively weak reason), and also to make it more different from the "set" command, which can't support this type of option as it goes through the property layer. Fixes #5435.
* options: add an option type for byte sizesGravatar wm42018-01-25
| | | | | | And use it for 2 demuxer options. It could be used for more options later. (Though the --cache options can not use this, because they use KB as base unit.)
* manpage: remove obsolete information on bd://Gravatar Ricardo Constantino2018-01-25
| | | | ISO files have been supported by bd:// for a while.
* manpage: document using sub-shadow-offset for background sizingGravatar Ricardo Constantino2018-01-24
|
* stream_bluray: always show list of available titlesGravatar Ricardo Constantino2018-01-23
|
* video: change some remaining vo_opengl mentions to vo_gpuGravatar Akemi2018-01-20
|
* manpage: reword some vf command examplesGravatar wm42018-01-18
| | | | Hopefully this is easier to read.
* af_rubberband: add af-command to multiply current pitchGravatar Vobe2018-01-15
| | | | | | | | | | | | | This commit introduces the multiply-pitch af-command. Users may bind keys to this command in order to incrementally adjust the pitch of a track. This will probably mostly be useful for musicians trying to transpose up and down by semi tones without having to calculate the correct ratio beforehand. As an example, here is an input.conf to test this feature: { af-command all multiply-pitch 0.9438743126816935 } af-command all multiply-pitch 1.059463094352953
* af_lavrresample: deprecate this filterGravatar wm42018-01-13
| | | | | | The future direction might be not having such a user-visible filter at all, similar to how vf_scale went away (or actually, redirects to libavfilter's vf_scale).
* options: deprecate --vf-defaults and --af-defaultsGravatar wm42018-01-13
|
* audio: add global options for resampler defaultsGravatar wm42018-01-13
| | | | | | | | This is part of trying to get rid of --af-defaults, and the af resample filter. It requires a complicated mechanism to set the defaults on the resample filter for backwards compatibility.
* client API: remove ytdl=no defaultGravatar wm42018-01-13
| | | | | | | | | | | | | | 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.)
* manpage: remove stale vo_wayland entryGravatar wm42018-01-13
|
* manpage: update references to gpu VOGravatar daschiller2018-01-10
|
* command: make pause display the same osd-msg-bar as seekGravatar Kevin Mitchell2018-01-07
| | | | | | Previously, toggling pause would generate no osd response, and changing that wasn't even configurable. This was surprising to users who generally expect to see *where* pause / unpause is taking place (#3028).
* command: default to osd-msg-bar for seeksGravatar Kevin Mitchell2018-01-07
| | | | | | | | The previous default was osd-bar (unless the user specified --no-osd-bar, in which case case it was osd-msg). Aside from requiring some twisted logic to implement, this surprised users since osd-msg3 wasn't displayed when seeking with the keyboard (#3028), so the time seeked to was never displayed.
* manpage: fix typos in osd level descriptionsGravatar Kevin Mitchell2018-01-07
|
* ytdl_hook: add script option to revert to trying youtube-dl firstGravatar Ricardo Constantino2018-01-07
| | | | | Should only make a difference if most of the URLs you open need youtube-dl parsing.
* player: strictly never autoselect tracks from --external-filesGravatar wm42018-01-06
| | | | | | | | | | | | | | | | Before this commit, some autoselection of tracks coming from files loaded with --external-files was still done. This commit removes all of it, and the only way to select a track is via the explicit stream selection options like --vid/--sid/--aid. I think this was always the original intention. The change could in theory still unintentionally surprise some users, so add a changelog entry. This does not affect --audio-file/--sub-file, even if these contain mismatching track types. E.g. if audio files passed to --audio-file contain subtitles, these should still be selected. Past feature requests indicate that users want this.
* vo_gpu: hwdec_dxva2dxgi: initial implementationGravatar James Ross-Gowan2018-01-06
| | | | | | | | | | | | | This enables DXVA2 hardware decoding with ra_d3d11. It should be useful for Windows 7, where D3D11VA is not available. Images are transfered from D3D9 to D3D11 using D3D9Ex surface sharing[1]. Following Microsoft's recommendations, it uses a queue of shared surfaces, similar to Microsoft's ISurfaceQueue. This will hopefully prevent surface sharing from impacting parallelism and allow multiple D3D11 frames to be in-flight at once. [1]: https://msdn.microsoft.com/en-us/library/windows/desktop/ee913554.aspx
* player: add --cache-pause-initial option to start in buffering stateGravatar wm42018-01-03
| | | | | | Reasons why you'd want this see manpage additions. Disabled by default, because it would increase latency of live streams by default. (Or well, at least it would be another problem when trying getting lower latency.)
* player: use fixed timeout for cache pausing (buffering) durationGravatar wm42018-01-03
| | | | | | | | | | | | | | | This tried to be clever by waiting for a longer time each time the buffer was underrunning, or shorter if it was getting better. I think this was pretty weird behavior and makes no sense. If the user really wants the stream to buffer longer, he/she/it can just pause the player (the network caches will continue to be filled until they're full). Every time I actually noticed this code triggering in my own use, I didn't find it helpful. Apart from that it was pretty hard to test. Some waiting is needed to avoid that the player just plays the available data as fast as possible (to compensate for late frames and underrunning audio). Just use a fixed wait time, which can now be controlled by the new --cache-pause-wait option.
* manpage: slightly improve description of --cache-pause optionGravatar wm42018-01-03
|
* osc: add seekbarkeyframes as a user optionGravatar dudemanguy2018-01-03
|
* player: remove internal `vo-resize` command againGravatar sfan52018-01-02
| | | | Its only usecase was automated in the previous commit.
* vo_gpu/context_android: replace both options with android-surface-sizeGravatar sfan52018-01-02
| | | | This allows us to automatically trigger a VOCTRL_RESIZE (also contained).
* command: add demuxer-lavf-list propertyGravatar Ricardo Constantino2018-01-02
| | | | | | | | | Was only available with --demuxer-lavf-format=help and the demuxer needed to be used for it to actually print the list. This can be used in the future to check if 'dash' support was compiled with FFmpeg so ytdl_hook can use it instead. For now, dashdec is too rudimentary to be used right away.
* player: add on_load_fail hookGravatar Ricardo Constantino2018-01-02
|
* vo_gpu/android: fallback to EGL_WIDTH/HEIGHTGravatar Aman Gupta2018-01-01
| | | | | | | | | | Uses the EGL width/height by default when the user fails to set the android-surface-width/android-surface-height options. This means the vo-resize command is optional, and does not need to be implemented on android devices which do not support rotation. Signed-off-by: Aman Gupta <aman@tmm1.net>
* manpage: put android surface options on one lineGravatar Kevin Mitchell2017-12-28
| | | | This is required by rst2man.
* vd_lavc: add an option to explicitly workaround x264 4:4:4 bugGravatar wm42017-12-28
| | | | | | Technically, the user could just use --vd-lavc-o with the same result. But I find it better to make this an explicit option, so we can document the ups and downs, and also avoid setting it for non-h264.
* player: add internal `vo-resize` commandGravatar sfan52017-12-27
| | | | Intended to be used with the properties from previous commit.
* vo_gpu/context: Let embedding application handle surface resizesGravatar sfan52017-12-27
| | | | | The callbacks for this are Java-only and EGL does not reliably return the correct values.
* manpage: fix typo in warningGravatar Bisaloo2017-12-27
|
* encode: implement --oset-metadata, and --oremove-metadataGravatar TheAMM2017-12-26
| | | | | | | | | | | | This commit introduces a new --oset-metadata key-value-list option, allowing the user to specify output metadata when encoding (eg. --oset-metadata=title="Hello",comment="World"). A second option --oremove-metadata is added to exclude existing metadata from the output file (assuming --ocopy-metadata is enabled). Not all output formats support all tags, but luckily libavcodec simply discards unsupported keys.
* encode: rename option --ometadata to --ocopy-metadataGravatar TheAMM2017-12-26
| | | | | | --copy-metadata describes the result of the option better, (copying metadata from the source file to the output file). Marks the old --no-ometadata OPT_REMOVED with a suggestion for the new --no-ocopy-metadata.
* options: add -add/-append actions to key/value listsGravatar wm42017-12-26
| | | | Requested.
* DOCS/interface-changes.rst: fix minor typosGravatar wm42017-12-25
|
* osc: make seek ranges rendering optionalGravatar pavelxdd2017-12-26
| | | | | This commit adds a new osc setting `seekranges` to control the seek ranges visibility.