mpv/video
Niklas Haas 010cf183fe
vo_opengl: greatly increase smoothmotion performance
Instead of rendering and upscaling each video frame on every vsync, this
version of the algorithm only draws them once and caches the result,
so the only operation that has to run on every vsync is a cheap linear
interpolation, plus CMS/dithering.

On my machine, this is a huge speedup for 24 Hz content (on a 60 Hz
monitor), up to 120% faster. (The speedup is not quite 250% because of
the overhead that the larger FBOs and CMS provides)

In terms of the implementation, this commit basically swaps
interpolation and upscaling - upscaling is moved to inter_program, and
interpolation is moved to the final_program.

Furthermore, the main bulk of the frame rendering logic (upscaling etc.)
was moved to a separete function, which is called from
gl_video_interpolate_frame only if it's actually necessarily, and
skipped otherwise.
2015-02-24 21:52:14 +01:00
..
decode video: remove redundant codec parameters 2015-02-24 11:56:48 +01:00
filter vf: fix indentation level of verbose output 2015-02-23 16:12:03 +01:00
out vo_opengl: greatly increase smoothmotion performance 2015-02-24 21:52:14 +01:00
csputils.c csputils, vo_opengl: remove per-component gamma 2015-02-03 16:52:44 +01:00
csputils.h csputils, vo_opengl: remove per-component gamma 2015-02-03 16:52:44 +01:00
fmt-conversion.c video: work around libswscale for PNG pixel formats 2015-02-06 23:22:16 +01:00
fmt-conversion.h
hwdec.h command: add property returning detected hwdec API 2015-02-02 22:43:13 +01:00
image_writer.c image_writer: check for conversion errors 2015-01-15 20:10:08 +01:00
image_writer.h
img_format.c video: try to keep implied alpha when using conversion filters 2015-01-21 21:49:15 +01:00
img_format.h vo_opengl: handle grayscale input better, add YA16 support 2015-01-21 19:29:18 +01:00
img_fourcc.h
memcpy_pic.h
mp_image.c vo_opengl: change the way unaligned chroma size is handled 2015-01-27 18:09:03 +01:00
mp_image.h vo_opengl: change the way unaligned chroma size is handled 2015-01-27 18:09:03 +01:00
mp_image_pool.c mp_image_pool: allow passing pool=NULL in more places 2015-01-22 17:37:40 +01:00
mp_image_pool.h
sws_utils.c video: work around libswscale for PNG pixel formats 2015-02-06 23:22:16 +01:00
sws_utils.h video: work around libswscale for PNG pixel formats 2015-02-06 23:22:16 +01:00
vaapi.c command: add property returning detected hwdec API 2015-02-02 22:43:13 +01:00
vaapi.h video: have a generic context struct for hwdec backends 2015-01-22 15:32:23 +01:00
vdpau.c command: add property returning detected hwdec API 2015-02-02 22:43:13 +01:00
vdpau.h video: handle hwdec screenshots differently 2015-01-22 18:18:23 +01:00
vdpau_functions.inc video: handle hwdec screenshots differently 2015-01-22 18:18:23 +01:00
vdpau_mixer.c video: handle hwdec screenshots differently 2015-01-22 18:18:23 +01:00
vdpau_mixer.h