summaryrefslogtreecommitdiffstats
path: root/DOCS/man/vo.rst
Commit message (Collapse)AuthorAgeFilesLines
* 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 between two frames we interpolated them (depending on their position relative to the vsync). We actually interpolate as few frames as possible to avoid a blur effect as much as possible. For example, if we were to play back a 1fps video on a 60hz monitor, we would blend at most on 1 vsync for each frame (while the other 59 vsyncs would be rendered as is). Frame interpolation is always done before scaling and in linear light when possible (an ICC profile is used, or :srgb is used).
* manpage: vo_opengl: describe how to get lanczos2/lanczos3wm42015-01-221-0/+3
| | | | | | | These aliases were removed in commit 1ec77214. Add a notice to the manpage how to get these back. Apparently, "lanczos2" and "lanczos3" were the only interesting aliases possibly used by someone, so the description is limited to these two.
* vo_opengl: remove scale-sep and indirect optionsNiklas Haas2015-01-221-23/+1
| | | | | | | | | | | | These are now auto-detected sanely; and enabled whenever it would be a performance or quality gain (which is pretty much everything except bilinear/bilinear scaling). Perhaps notably, with the absence of scale_sep, there's no more way to use convolution filters on hardware without FBOs, but I don't think there's hardware in existence that doesn't have FBOs but is still fast enough to run the fallback (slow) 2D convolution filters, so I don't think it's a net loss.
* vo_opengl: rename all scale options to make more senseNiklas Haas2015-01-221-31/+24
| | | | | This emphasizes the fact that scale is used for *all* image upscaling, with cscale only serving a minor role for subsampled material.
* vo_opengl: always prefer indirect scalingNiklas Haas2015-01-221-9/+14
| | | | | | This is better even for non-separable. The only exception is when using bilinear for both lscale and cscale. I've fixed the documentation/comments to make more sense.
* vo_opengl: implement naive anti-ringingNiklas Haas2015-01-221-4/+13
| | | | | | | | This is not quite the same thing as madVR's antiringing algorithm, but it essentially does something similar. Porting madVR's approach to elliptic coordinates will take some amount of thought.
* vo_opengl: make the default radius 3.0 and simplify scaler documentationNiklas Haas2015-01-211-12/+14
| | | | | | | This also fixes the maximum range to 16.0, which was previously set to 32.0 and incorrectly documented as 8.0. 16 taps should be more than anybody will ever need, but it's the highest radius that's supported by all affected filters.
* manpage: vo_opengl: change scaler descriptions and recommendationswm42015-01-211-37/+13
| | | | Based on suggestions by lachs0r.
* vo_opengl_old: remove this VOwm42015-01-201-180/+1
| | | | | At this point, there is probably no hardware left that doesn't do OpenGL 2.1, and at the same time is fast enough to handle video.
* README: extend dependecy list, link Windows compilation docswm42015-01-201-1/+1
| | | | Also, fix vo.rst, don't want to waste a separate commit on this.
* vo_opengl: remove cscale-down suboptionwm42015-01-201-3/+9
| | | | For an explanation see the additions to the manpage.
* vo_opengl: get rid of approx-gamma and make it the default as per BT.1886Niklas Haas2015-01-161-10/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | After finding out more about how video mastering is done in the real world it dawned upon me why the "hack" we figured out in #534 looks so much better. Since mastering studios have historically been using only CRTs, the practice adopted for backwards compatibility was to simulate CRT responses even on modern digital monitors, a practice so ubiquitous that the ITU-R formalized it in R-Rec BT.1886 to be precisely gamma 2.40. As such, we finally have enough proof to get rid of the option altogether and just always do that. The value 1.961 is a rounded version of my experimentally obtained approximation of the BT.709 curve, which resulted in a value of around 1.9610336. This is the closest average match to the source brightness while preserving the nonlinear response of the BT.1886 ideal monitor. For playback in dark environments, it's expected that the gamma shift should be reproduced by a user controlled setting, up to a maximum of 1.224 (2.4/1.961) for a pitch black environment. More information: https://developer.apple.com/library/mac/technotes/tn2257/_index.html
* vo_opengl: add ewa_lanczos upscaler (aka jinc)Niklas Haas2015-01-151-1/+7
| | | | | This is the polar (elliptic weighted average) version of lanczos. This introduces a general new form of polar filters.
* video: Add sigmoidal upscaling to avoid ringing artifactsNiklas Haas2015-01-091-1/+13
| | | | | | | | | This avoids issues when upscaling directly in linear light, and is the recommended way to upscale images according to imagemagick. The default slope of 6.5 offers a reasonable compromise between ringing artifacts eliminated and ringing artifacts introduced by sigmoid-upscaling. Same goes for the default center of 0.75.
* vo_opengl_cb: introduce frame queuexylosper2015-01-081-1/+20
| | | | | | | | | | | | | | | | | | | | | | | | | The previous implementation of opengl-cb kept only latest flipped frame. This can cause massive frame drops because rendering is done asynchronously and only the latest frame can be rendered. This commit introduces frame queue and releated options to opengl-cb. frame-queue-size: the maximum size of frame queue (1-100, default: 1) frame-drop-mode: behavior when frame queue is full (pop, clear, default: pop) The frame queue holds delayed frames and drops frames if the frame queue is overflowed with next method: 'pop' mode: drops all the oldest frames overflown. 'clear' mode: drops all frames in queue and clear it. With default options(frame-queue-size=1:frame-drop-mode=pop), opengl-cb behaves in the same way as previous implementation effectively. For frame-queue-size > 1, opengl-cb tries to calls update() without waiting next flip_page() in order to consume queued frames. Signed-off-by: wm4 <wm4@nowhere>
* vo_opengl_cb: support changing options at runtimewm42015-01-051-0/+5
| | | | | Like vo_opengl, but way messier, because the already messy config handling meets threading.
* vo_opengl_old: remove ancient ATI-specific YUV conversionswm42015-01-021-5/+1
| | | | | | | | | | While there's no actual need to get rid of these, I want to make sure nobody actually needs this stuff, and removing it is the best way to get to know this. We still can revert this commit if it turns out there is a significant need for this stuff. The final goal is removing vo_opengl_old entirely. Add a warning, which basically announces this intention.
* vo_opengl: switch default FBO format to rgba, use GL_RGBAwm42014-12-171-1/+1
| | | | | | | | | | I'm hoping this is generally more compatible, and it works with GLES. This probably has not much of an effect on desktop GL. It also switches only the default format for --vo=opengl, not --vo=opengl-hq. "-hq" already uses GL_RGBA16, though since it's a sized format, the story is a bit different, and it won't work on GLES either.
* vo_opengl: remove quadbuffer/anaglyph stereo 3D renderingwm42014-12-151-15/+0
| | | | | | | | Obscure feature, and I've never heard of anyone using it. The anaglyph effects can be reproduced with vf_stereo3d. The only thing that can't be reproduced with it is "quadbuffer", which requires special and expensive hardware.
* vo_opengl_cb: simplify reconfigure, render transparent if unconfiguredwm42014-12-091-0/+3
| | | | | | | I think that's expected; mpv shouldn't draw anything while no video is active. This doesn't blend transparently, though. Also document the vo_opengl_cb thing.
* vo_opengl: make background color configurablewm42014-12-091-0/+4
| | | | | This mainly affects the black bars that are drawn if the window and video aspect ratios mismatch.
* vo_opengl: enable fancy-downscaling by default for opengl-hqwm42014-11-291-1/+1
|
* vo_opengl: disable fancy-downscaling for anamorphic videowm42014-11-291-0/+3
| | | | Includes some arbitrary minor refactoring.
* vo_direct3d: fix texture-memory sub-option, extend itwm42014-11-181-11/+22
| | | | | | | | | | This sub-option was turned into a flag when the sub-option parser was changed to the generic one (probably accidentally). Turn it into a proper choice-option. Also, adjust what the options do. Though none of this probably makes much sense; the default should work, and if it doesn't, the GPU/driver is probably beyond help.
* vo_opengl: allow setting different filters for downscalingwm42014-11-141-1/+6
|
* vo_corevideo: remove this VOStefano Pigozzi2014-09-061-7/+0
| | | | | | | This was kept in the codebase because it is slightly faster than --vo=opengl on really old Intel cards (from the GMA era). Time to kill it, and let it rest. Fixes #1061
* man: fix a whole bunch of typosMartin Herkt2014-09-011-23/+23
|
* vo_opengl: add parameter to gaussian filterBin Jin2014-08-261-1/+9
| | | | | | | | | | Add a new parameter 'p' to gaussian filter. The new formula used a different base taken from fmtconv plugin, so that the new parameter is exactly same as the one used in Avisynth and Vapoursynth. The new default value is 2 / log(2) * 10, with the default value it conforms to the original kernel taken from vector-agg.
* vo_opengl: add radius options for filtersBin Jin2014-08-261-5/+16
| | | | | | | Add two new options, make it possible for user to set the radius for some of the filters with no fixed radius. Also add three new filters with the new radius parameter supported.
* vo_opengl: add cparam1 and cparam2 optionsBin Jin2014-08-261-0/+7
| | | | | | Although cscale is rarely used, it's possible that params of cscale are accidentally set to lparam1 and lparam2, which might cause unexpected results.
* manpage: fix opengl-hq defaultswm42014-08-181-1/+1
| | | | | | The FBO format was changed some time ago. CC: @mpv-player/stable
* vo_opengl: optional support for using GLX_SGI_video_syncwm42014-08-151-0/+7
| | | | | | | | | I'm not sure about the merit, though it does print nice numbers if debug output is enabled. Basically, this tries to achieve similar results as the glFinish() business, but again it entirely depends on the drivers whether this does anything meaningful, or whether it's actively harmful.
* vo_opengl: if glfinish is used, also call it after swapppingwm42014-08-151-1/+3
| | | | | | It seems that at least on nvidia systems with composting disabled, we can get it to block deterministically on the actual vsync event, which should improve framedropping.
* manpage: eliminate the word "movie"wm42014-07-261-1/+1
| | | | | | | It's evil and sounds outdated. Use the words "media" and "video" instead. Closes #935.
* video: Refactor rendering intent for DCP XYZ and :srgbNiklas Haas2014-06-221-0/+4
| | | | | | Notably, we now conform to SMPTE 428-1-2006 when decoding XYZ12 input, and we can support rendering intents other than colorimetric when converting between BT.709 and BT.2020, like with :srgb or :icc-profile.
* video: Add support for non-BT.709 primariesNiklas Haas2014-06-221-1/+7
| | | | | | | This add support for reading primary information from lavc, categorized into BT.601-525, BT.601-625, BT.709 and BT.2020; and passes it on to the vo. In vo_opengl, we always generate the 3dlut against the wider BT.2020 and transform our source into this colorspace in the shader.
* video: Add BT.2020-NCL colorspace and transfer functionNiklas Haas2014-06-221-2/+2
| | | | Source: http://www.itu.int/dms_pubrec/itu-r/rec/bt/R-REC-BT.2020-0-201208-I!!PDF-E.pdf
* DOCS: remove en/ sub-directorywm42014-06-201-0/+872
This additional sub-directory doesn't serve any purpose anymore. Get rid of it.