summaryrefslogtreecommitdiffstats
path: root/DOCS
Commit message (Collapse)AuthorAgeFilesLines
* video: un-discourage "vaapi-copy" hwdec modewm42015-02-201-1/+2
| | | | | Maybe I don't know what I'm doing. I'm fairly certain though that Intel does not know what they're doing.
* vo_opengl: add ginseng upscalerNiklas Haas2015-02-201-1/+1
| | | | | | | | | This is a variation of ewa_lanczos that is sinc-windowed instead of jinc-windowed. Results are pretty similar, but the logic is simpler. This could potentially replace the ugly ewa_lanczos code. It's hard to tell, but from comparing stills I think this one has slightly less ringing than regular ewa_lanczos.
* manpage: fix vf_scale arnd parameterwm42015-02-191-2/+2
| | | | | | | It probably was always a flag, so the documentation became invalid as soon as mpv stopped accepting 0/1 for flags. Fixes #1608.
* DOCS/client-api-changes: mark 0.8.0 releasewm42015-02-171-2/+3
| | | | | (There was a missing version bump for the msg-level change; just move it under 1.14.)
* command: add rescan_external_fileswm42015-02-161-0/+15
| | | | | | | | | Requested. Hopefully will be useful for things that download and add external subtitles on demand. Or something. Closes #1586.
* sub: mess with styling defaults, change --ass-use-margins behaviorwm42015-02-163-7/+32
| | | | | | | | | | | | | | | | | | | Now --ass-use-margins doesn't apply to normal subtitles anymore. This is probably the inverse from the mpv behavior users expected so far, and thus a breaking change, so rename the option, that the user at least has a chance to lookup the option and decide whether the new behavior is wanted or not. The basic idea here is: - plain text subtitles should have a certain useful defalt behavior, like actually using margins - ASS subtitles should never be broken by default - ASS subtitles should look and behave like plaintext subtitles if the --ass-style-override=force option is used This also subtly changes --sub-scale-with-window and adds the --ass- scale-with-window option. Since this one isn't so important, don't bother with compatibility.
* osd: customizable subtitle and OSD positionwm42015-02-161-0/+11
| | | | | | You can set in which "corner" the OSD and subtitles are shown. I'd prefer it a bit more general (so you could set the alignment using a factor), but the libass API does not provide this.
* vf_vapoursynth: add display refresh rate propertyJulian2015-02-131-0/+3
| | | | | This value is not necessarily trustworthy (it might change) and can be 0.
* command: mark get_property as deprecatedwm42015-02-131-3/+2
| | | | | Using it just makes no sense. But we're really being nice about this and don't remove it immediately.
* player: add a --loop=force modewm42015-02-121-1/+6
| | | | | | | Requested. See manpage additions. This also makes the magical loop_times constants slightly saner, but shouldn't change the semantics of any existing --loop option values.
* audio: add device change notification for hotpluggingwm42015-02-121-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | Not very important for the command line player; but GUI applications will want to know about this. This only adds the internal API; support for specific audio outputs comes later. This reuses the ao struct as context for the hotplug event listener, similar to how the "old" device listing API did. This is probably a bit unclean and confusing. One argument got reusing it is that otherwise rewriting parts of ao_pulse would be required (because the PulseAudio API requires so damn much boilerplate). Another is that --ao-defaults is applied to the hotplug dummy ao struct, which automatically applies such defaults even to the hotplug context. Notification works through the property observation mechanism in the client API. The notification chain is a bit complicated: the AO notifies the player, which in turn notifies the clients, which in turn will actually retrieve the device list. (It still has the advantage that it's slightly cleaner, since the AO stuff doesn't need to know about client API issues.) The weird handling of atomic flags in ao.c is because we still don't require real atomics from the compiler. Otherwise we'd just use atomic bitwise operations.
* player: use af_scaletempo when slowing down audio toowm42015-02-121-1/+1
| | | | | | In my opinion the artifacts created by af_scaletempo on extreme slowdown (50% or so) are too bothersome - but users disagree. So use af_scaletempo on any speed changes, not just on speedup.
* vf_noise: remove internal implementationwm42015-02-111-4/+0
| | | | | It requires libavfilter now, just like many other filters. Not sure if it even makes sense to keep this wrapper.
* af_rubberband: make all librubberband options configurablewm42015-02-111-0/+9
| | | | | | | librubberband exports a big load of options. Normally, the default settings (whether they're librubberband defaults or our defaults) should be sufficient, but since I'm not so sure about this, making it configurable allows others to figure it out for me.
* af_rubberband: pitch correction with librubberbandwm42015-02-111-0/+5
| | | | | | | | | If "--af=rubberband" is used, librubberband will be used to speed up or slow down audio with pitch correction. This still has some problems: the audio delay is not calculated correctly, so the audio position jitters around by a few milliseconds. This will probably ruin video timing.
* manpage: fix af_scaletempo suggested commandswm42015-02-101-3/+3
|
* manpage: ipc: suggest --idlewm42015-02-091-1/+2
|
* Revert "vo_opengl: disable alpha by default"wm42015-02-061-1/+1
| | | | | | | | | | This reverts commit a33b46194c3525cb585cc78b449ec275dbfd7f83. It turns out FFmpeg really considers this a bug, and fixed it by making the decoder output the correct pixel format. Fixes #1565. Reverts the fix #1528, though it should work fine with a recent git master FFmpeg.
* options: add --network-timeoutwm42015-02-061-0/+5
| | | | | | Not quite sure if this actually works as intended. Fixes #1566.
* options: change --msg-level optionwm42015-02-062-1/+3
| | | | | | | | | | | | | | Make it accept "," as separator, instead of only ":". Do this by using the key-value-list parser. Before this, the option was stored as a string, with the option parser verifying that the option value as correct. Now it's stored pre-parsed, although the log levels still require separate verification and parsing-on-use to some degree (which is why the msg-level option type doesn't go away). Because the internal type changes, the client API "native" type also changes. This could be prevented with some more effort, but I don't think it's worth it - if MPV_FORMAT_STRING is used, it still works the same, just with a different separator on read accesses.
* vo_opengl: add support for linear scaling without CMSNiklas Haas2015-02-061-5/+10
| | | | | | | | | | This introduces a new option linear-scaling, which is now implied by srgb, icc-profile and sigmoid-upscaling. Notably, this means (sigmoidized) linear upscaling is now enabled by default in opengl-hq mode. The impact should be negligible, and there has been no observation of negative side effects of sigmoidized scaling, so it feels safe to do so.
* player: do not autoload audio with audio files, enable autoloadingwm42015-02-051-3/+3
| | | | | | | | | | | | | | Autoload external audio files only if there's at least a video track (which is not coverart pseudo-video). Enable external audio file autoloading by default. Now that we actively avoid doing stupid things like loading an external audio file for an audio-only file, this should be fine. Additionally, don't autoload subtitles if a subtitle is played. Although you currently can't play subtitles without audio or video, it's disturbing and stupid that the player might load subtitle files with different extension and then fail.
* manpage: move out the MPlayer comparison pagewm42015-02-052-440/+453
| | | | | | | | | | Giving this such a prominent place is not really appropriate anymore. Most people seeing this would probably expect a release changelog, not something about MPlayer. Since the page still could be useful for former MPlayer users (in particular to avoid confusion with renamed options etc.), still keep it in the DOCS directory.
* manpage: document hook APIwm42015-02-042-14/+64
| | | | | | | This shouldn't exist and for the most part is meant to be used by the ytdl Lua script, but let's document it anyway. Since the Lua API handles all the details, it's considered much more "stable" than the raw API, which is why the raw API wasn't documented.
* command: add on_unload hookwm42015-02-041-0/+4
| | | | Fixes #1552.
* player: remove --fixed-vowm42015-02-031-1/+2
| | | | | | | In ancient times, this was needed because it was not default, and many VOs had problems with it. But it was always default in mpv, and all VOs are required to deal with it. Also, running --fixed-vo=no is not useful and just creates weird corner cases. Get rid of it.
* cocoa: automatically fetch display-fps from the monitorStefano Pigozzi2015-02-031-2/+2
| | | | | | | | | | | | Comment explains why I have been so doubtful at adding this. The Apple docs say CGDisplayModeGetRefreshRate is supposed to work only for CRTs, but it doesn't, and actually works for LCD TVs connected over HDMI and external displays (at least that's what I'm told, I don't have the hardware to test). Maybe Apple docs are incorrect. Since AFAIK Apple doesn't want to give us a better API – maybe in the fear we might be able to actually write some useful software instead of "apps" – I decided not to care as well and commit this.
* vo_opengl: disable alpha by defaultwm42015-02-031-1/+1
| | | | | | | | | | | | | This reverts the default behavior introduced in commit 93feffad. Way too often libavcodec will return RGB data that has an alpha channel as per pixel format, but actually contains garbage. On the other hand, this will actually render garbage color values in e.g. PNG files (for pixels with alpha==0, the color value should be essentially ignored, which is what the old alpha blend mode did). This "fixes" #1528, which is probably a decoder bug (or far less likely, a broken file).
* vo_opengl: change initialization of gamma optionwm42015-02-031-7/+5
| | | | | | | | | | Make the lazy gamma initialization less weird, and make the default value of the "gamma" sub-option 1.0. This means --vo=opengl:help will list the actual default value. Also change the lower bound to 0.1 - avoids a division by zero (I don't know how shaders handle NaN, but it's probably not a good idea to give them this value).
* command: new commands audio_add/audio_remove/audio_reloadxylosper2015-02-031-0/+9
| | | | | | | | These commands are counterparts of sub_add/sub_remove/sub_reload which work for external audio file. Signed-off-by: wm4 <wm4@nowhere> (minor simplification)
* vo_opengl: change upper bound of :gamma to 2.0Niklas Haas2015-02-031-1/+1
| | | | | This allows a spread of 1.0 in either direction, which is already close to absurd. Anything higher than that is pretty pointless.
* manpage: add recommended values to :gamma suboptionNiklas Haas2015-02-031-4/+12
| | | | | | | | These were derived from dividing our assumed video gamut (1.961) by some typical screen values (2.2 for dimly lit and 2.4 for pitch black): 1.961/2.4 = 0.8170833333333334 ~= 0.8 1.961/2.2 = 0.8913636363636364 ~= 0.9
* command: add property returning detected audio deviceStefano Pigozzi2015-02-031-0/+4
| | | | | This can be useful to adjust some other audio related properties at runtime depending on the audio device being used.
* command: add property returning detected hwdec APIwm42015-02-021-0/+11
| | | | | | | | | This is somewhat imperfect, because detection of hw decoding APIs is mostly done on demand, and often avoided if not necessary. (For example, we know very well that there are no hw decoders for certain codecs.) This also requires every hwdec backend to identify itself (see hwdec.h changes).
* player: add external audio file auto-loadingwm42015-02-021-0/+10
| | | | | | Apparently some people want this. Not enabled by default. Fixes #967.
* command: add properties returning the current VO and AO driverwm42015-02-021-0/+6
| | | | This wasn't possible before.
* client API: add mpv_wait_async_requests()wm42015-02-021-0/+1
| | | | | | | | | | | | | | | | | | | | This does what it's documented to do. The implementation reuses the code in mpv_detach_destroy(). Due to the way async requests currently work, just sending a synchronous dummy request (like a "ignore" command) would be enough to ensure synchronization, but this code will continue to work even if this changes. The line "ctx->event_mask = 0;" is removed, but it shouldn't be needed. (If a client is somehow very slow to terminate, this could silence an annoying queue overflow message, but all in all it does nothing.) Calling mpv_wait_async_requests() and mpv_wait_event() concurrently is in theory allowed, so change pthread_cond_signal() to pthread_cond_broadcast() to avoid missed wakeups. As requested in issue #1542.
* ao_null: add emulation for certain broken behaviorwm42015-01-301-0/+3
| | | | | I'm not sure how common this behavior possibly is; well whatever. This option will allow reproducing such behavior, and help debugging it.
* man: expand on the smoothmotion documentationStefano Pigozzi2015-01-281-4/+13
| | | | | Hopefully this will clear up how the thing is supposed to work (and that it's not SVP, nor MVTools).
* vf_ilpack: remove this filterwm42015-01-271-13/+0
| | | | | | | | This was apparently useful for correct interlaced scaling (although I don't know anyone who used this). It was rarely used (if at all), had an inconvenient output format (packed YUV), and now has a better solution in libavfilter (using the libavfilter "scale" filter via vf_lavfi). There is no reason to keep this filter any longer.
* vf_divtc: remove this filterwm42015-01-271-62/+0
| | | | | Better solutions are available in vf_vapoursynth and vf_lavfi. The only user I know who used this is now using vf_vapoursynth.
* vf_phase: remove this filterwm42015-01-271-52/+0
| | | | If you really want it, it's in libavfilter and can be used via vf_lavfi.
* vf_swapuv: remove this filterwm42015-01-271-3/+0
| | | | | | It's entirely useless. I left it in for a while, because the analog TV code had a transitional bug that could switch chroma planes, but it was fixed long ago. It's also available in libavfilter.
* manpage: fix rst2pdf buildMartin Herkt2015-01-271-5/+5
| | | | Uhhh… What???
* command: export more details about file seekabilitywm42015-01-261-0/+8
| | | | | | | | | | If a file is unseekable (consider e.g. a http server without resume functionality), but the stream cache is active, the player will enable seeking anyway. Until know, client API user couldn't know that this happens, and it has implications on how well seeking will work. So add a property which exports whether this situation applies. Fixes #1522.
* msg: add --log-file optionwm42015-01-261-0/+5
| | | | | | | | | This allows getting the log at all with --no-terminal and without having to retrieve log messages manually with the client API. The log level is hardcoded to -v. A higher log level would lead to too much log output (huge file sizes and latency issues due to waiting on the disk), and isn't too useful in general anyway. For debugging, the terminal can be used instead.
* manpage: document 'A' keywm42015-01-261-0/+3
| | | | Of course this was forgotten in commit 189087c.
* manpage: fix typoDiogo Franco (Kovensky)2015-01-261-1/+1
|
* manpage: fix smoothmotion-threshold value rangewm42015-01-261-1/+1
|
* options: make --hls-bitrate=max the defaultwm42015-01-261-2/+2
| | | | | | | The previous default ("no") seemed to be equivalent to "min" in practice (though it might depend on the website, which is even worse). Better just select the best stream by default.
* manpage: describe some more config directory artifactswm42015-01-261-9/+27
|
* vo_opengl, x11: implement icc-profile-autowm42015-01-261-1/+1
| | | | | | | | | | | | | | | | | This queries the _ICC_PROFILE property on the root window. It also tries to reload the ICC when it changes, or if the mpv window changes the monitor. (If multiple monitors are covered, mpv will randomly select one of them.) The official spec is a dead link on freedesktop.org, so don't blame me for any bugs. Note that this assumes that Xinerama screen numbers match the way mpv enumerates the xrandr monitors. Although there is some chance that this matches, it most likely doesn't, and we actually have to do complicated things to map the screen numbers. If it turns out that this is required, I will fix it as soon as someone with a suitable setup for testing the fix reports it.
* vo_opengl: make "mitchell" the hq default filter for downscalingwm42015-01-261-1/+1
| | | | | | | | | | | | | Seems like several people agree that it's a good filter for downscaling. Setting this option by default may also prevent people from accidentally using an unsuitable filter for downscaling by setting "scale" and without being aware of the impliciations (maybe). On the other hand, this change is not strictly backwards compatible for the same reasons. Also, allow disabling this option with scale-down="" (before this, not setting it was the only way to do this - not possible anymore if it's set by default). This is what the change in handle_scaler_opt() does.
* input, player: new command for mouse eventxylosper2015-01-231-0/+17
| | | | | | | New command `mouse <x> <y> [<button> [single|double]]` is introduced. This will update mouse position with given coordinate (`<x>`, `<y>`), and additionally, send single-click or double-click event if `<button>` is given.
* vo: fix disabling/enabling smoothmotion at runtimewm42015-01-231-0/+3
| | | | | | | | | | | | | vo.c queried the VO at initialization whether it wants to be updated on every display frame, or every video frame. If the smoothmotion option was changed at runtime, the rendering mode in vo.c wasn't updated. Just let vo_opengl set the mode directly. Abuse the existing vo_set_flip_queue_offset() function for this. Also add a comment suggesting the use of --display-fps to the manpage, which doesn't have anything to do with the rest of this commit, but is important to make smoothmotion run well.
* manpage: minor changeswm42015-01-235-20/+28
| | | | | | Mostly related to vo_opengl. Fix the opengl lscale option in the qml example too.
* command: export file format as propertywm42015-01-231-0/+5
| | | | | | | | | | | | Repurpose demuxer->filetype for this. It used to be used to print a human readable format description; change it to a symbolic format name and export it as property. Unfortunately, libavformat has its own weird conventions, which are reflected through the new property, e.g. the .mp4 case mentioned in the manpage. Fixes #1504.
* build: remove bogus client API examples buildwm42015-01-233-5/+9
| | | | | | | | | | | The symlink trick made waf go crazy (deleting source files, getting tangled up in infinite recursion... I wish I was joking). This means we still can't build the client API examples in a reasonable way using the include files of the local repository (instead of globally installed headers). Not building them at all is better than deleting source files. Instead, provide some manual instructions how to build each example (except for the Qt examples, which provide qmake project files).
* vf_vavpp: add more deinterlacing algorithmswm42015-01-231-0/+4
| | | | | | These are untested due to lack of hardware. From what I've heard, the drivers are pretty buggy, so it's not clear how well this works, if at all.
* vo_opengl: add smoothmotion frame blendingStefano Pigozzi2015-01-231-0/+9
| | | | | | | | | | | | | | | | | | | SmoothMotion is a way to time and blend frames made popular by MadVR. It's intended behaviour is to remove stuttering caused by mismatches between the display refresh rate and the video fps, while preserving the video's original artistic qualities (no soap opera effect). It's supposed to make 24fps video playback on 60hz monitors as close as possible to a 24hz monitor. Instead of drawing a frame once once it's pts has passed the vsync time, we redraw at the display refresh rate, and if we detect the vsync is b