1
0
mirror of https://github.com/mpv-player/mpv synced 2025-02-24 17:06:58 +00:00
mpv/video/out
xylosper 5b4d587ede vo_opengl_cb: introduce frame queue
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>
2015-01-08 18:50:25 +01:00
..
cocoa cocoa: fix build on 10.9 2015-01-02 20:54:09 +01:00
wayland wayland/buffer: use buffer macros consistently 2014-09-16 15:48:07 +02:00
aspect.c vo: add some general support code for VOs that allow rotation 2014-04-21 02:57:16 +02:00
aspect.h vo: add some general support code for VOs that allow rotation 2014-04-21 02:57:16 +02:00
bitmap_packer.c bitmap_packer: use printf() for fatal message 2013-12-21 20:50:11 +01:00
bitmap_packer.h
cocoa_common.h cocoa: move the gl function loader to gl_cocoa.c 2014-12-28 19:10:44 +01:00
cocoa_common.m vo_opengl: add support for in memory icc profiles 2015-01-07 18:47:27 +01:00
d3d_shader_yuv.h
d3d_shader_yuv.hlsl vo_direct3d: remove 2ch hack for 10 bit playback 2013-01-13 20:04:14 +01:00
dither.c malloc+memset(0) to calloc 2014-09-05 01:59:11 +02:00
dither.h gl_video: improve dithering 2013-05-26 16:44:20 +02:00
filter_kernels.c vo_opengl: clamp filters to their size 2014-12-06 23:59:54 +01:00
filter_kernels.h vo_opengl: add radius options for filters 2014-08-26 22:19:30 +02:00
gl_cocoa.c cocoa: move the gl function loader to gl_cocoa.c 2014-12-28 19:10:44 +01:00
gl_common.c vo_opengl_old: remove ancient ATI-specific YUV conversions 2015-01-02 00:59:27 +01:00
gl_common.h vo_opengl_old: remove ancient ATI-specific YUV conversions 2015-01-02 00:59:27 +01:00
gl_header_fixes.h vo_opengl_old: remove ancient ATI-specific YUV conversions 2015-01-02 00:59:27 +01:00
gl_hwdec_vaglx.c client API: expose OpenGL renderer 2014-12-09 17:59:04 +01:00
gl_hwdec_vda.c gl_hwdec_vda: refuse to work with old OpenGL versions 2014-12-31 21:04:52 +01:00
gl_hwdec_vdpau.c client API: expose OpenGL renderer 2014-12-09 17:59:04 +01:00
gl_hwdec.c client API: expose OpenGL renderer 2014-12-09 17:59:04 +01:00
gl_hwdec.h client API: expose OpenGL renderer 2014-12-09 17:59:04 +01:00
gl_lcms.c vo_opengl: gl_lcms: implement change detection for memory profiles 2015-01-08 01:03:09 +01:00
gl_lcms.h vo_opengl: gl_lcms: implement change detection for memory profiles 2015-01-08 01:03:09 +01:00
gl_osd.c vo_opengl: GLES does not support GL_BGRA 2014-12-20 19:23:17 +01:00
gl_osd.h vo_opengl_old: fix OSD regression 2014-12-20 18:43:11 +01:00
gl_video_shaders.glsl video: Remove some stale CMS code, minor cosmetics 2015-01-07 14:22:17 +01:00
gl_video.c gl_video.c: invalidate image_params in uninit_video() 2015-01-07 19:22:54 +01:00
gl_video.h vo_opengl_cb: implement equalizer controls 2015-01-06 17:34:29 +01:00
gl_w32.c win32: request UTF-16 API variants, Vista+ APIs, and COM C macros 2015-01-07 21:42:44 +01:00
gl_wayland.c vo_opengl: remove pointless glFinish calls 2014-12-19 23:50:12 +01:00
gl_x11.c x11: always use glXGetProcAddressARB() 2015-01-07 21:13:26 +01:00
gl_x11egl.c vo_opengl: add GLES 2 support 2014-12-19 01:21:19 +01:00
pnm_loader.c Audit and replace all ctype.h uses 2014-07-01 23:11:08 +02:00
pnm_loader.h
vo_caca.c vo: remove vo_mouse_movement() wrapper 2014-07-27 21:53:29 +02:00
vo_direct3d.c vo_direct3d: fix shader colormatrix generation 2015-01-07 22:08:20 +01:00
vo_image.c Do not call strerror() 2014-11-26 21:21:56 +01:00
vo_lavc.c ao_lavc, vo_lavc: Fix crashes in case of multiple init attempts. 2014-11-12 12:16:07 +01:00
vo_null.c vo: make draw_image and vo_queue_image transfer image ownership 2014-06-17 23:05:50 +02:00
vo_opengl_cb.c vo_opengl_cb: introduce frame queue 2015-01-08 18:50:25 +01:00
vo_opengl_old.c csputils: replace float[3][4] with a struct 2015-01-06 16:51:06 +01:00
vo_opengl.c vo_opengl: don't crash win32 backend with NULL events 2015-01-08 18:30:19 +01:00
vo_sdl.c command: make window-scale property observable 2014-11-02 20:53:56 +01:00
vo_vaapi.c vo_vaapi: fix broken error checks 2014-11-07 09:28:47 +01:00
vo_vdpau.c vo: fix some nonsense 2014-12-10 17:00:18 +01:00
vo_wayland.c vo_wayland: drop redundant "const" 2014-11-07 09:28:58 +01:00
vo_x11.c vo_x11: don't attempt to resize when unconfigured 2014-12-14 22:01:30 +01:00
vo_xv.c command: make window-scale property observable 2014-11-02 20:53:56 +01:00
vo.c video: batch query_format calls 2015-01-03 17:23:01 +01:00
vo.h vo_opengl: add support for in memory icc profiles 2015-01-07 18:47:27 +01:00
w32_common.c win32: minor simplification 2015-01-08 18:32:23 +01:00
w32_common.h win32: create OpenGL context on the GUI thread 2014-08-05 20:02:23 +02:00
wayland_common.c vo_wayland: Add "multimedia" keyboard key bindings. 2014-11-29 19:13:47 +01:00
wayland_common.h wayland_common: fix changing videos when fullscreen 2014-09-10 19:21:52 +02:00
win_state.c video/out/win_state.c: fix --monitoraspect 2015-01-05 17:28:26 +01:00
win_state.h video/out: separate out code to compute window size 2014-05-06 20:22:32 +02:00
x11_common.c x11: make display-names property stricter 2015-01-04 03:57:50 +01:00
x11_common.h x11: copy WinID option 2014-12-09 21:55:18 +01:00
x11_icon.bin x11: add window icon 2013-09-01 23:27:33 +02:00