mpv/libvo
Uoti Urpala c9553ce82f vo: do final frame draw only near page flip
Separate passing a new frame to VOs using the new API into two steps.
The first, vo_draw_image(), happens after a new frame is available
from the filter chain. In constrast to old behavior, now the frame is
not actually rendered yet at this point (though possible slice draw
calls can already reach the VO before). The second step,
vo_new_frame_imminent(), happens when we're close enough to the
display time of the new frame that we'll commit to flipping it as the
next action and will not change the OSD over the previous frame any
more.

This new behavior fixes a previous problem with vo_vdpau and vo_gl in
the situation where the player is paused after decoding a new frame
but before flipping it; previously changing OSD in that state would
switch to the new frame as a side effect. It would also allow an easy
way to fix extra output files produced with something like "--vo=png
--frames=1" with precise seeking, but this is not done yet.

The code now relies on a new mp_image from the filter chain staying
valid even after the vf_vo put_image() call providing it returns. In
other words decoders/filters must not deallocate or otherwise
invalidate their output frame between passing it forward and returning
from the decode/filter call.
2011-12-06 02:55:13 +02:00
..
aclib.c
aclib_template.c
aspect.c VO: silence "[ASPECT] Warning: No suitable new res found!" 2011-07-05 00:38:34 +03:00
aspect.h
cocoa_common.h vo_gl: add native mac osx Cocoa backend for vo_gl 2011-11-26 20:04:16 +02:00
cocoa_common.m vo_gl: add native mac osx Cocoa backend for vo_gl 2011-11-26 20:04:16 +02:00
csputils.c video, options: implement better YUV->RGB conversion control 2011-10-16 21:11:11 +03:00
csputils.h video, options: implement better YUV->RGB conversion control 2011-10-16 21:11:11 +03:00
fastmemcpy.h Fix compilation with --disable-fastmemcpy on x86 2010-05-11 09:23:31 +00:00
geometry.c Add support for -geometry x syntax since the documentation claims 2010-06-05 06:28:58 +00:00
geometry.h
gl_common.c vo_gl: add native mac osx Cocoa backend for vo_gl 2011-11-26 20:04:16 +02:00
gl_common.h vo_gl: add native mac osx Cocoa backend for vo_gl 2011-11-26 20:04:16 +02:00
gtf.c
gtf.h
matrixview_font.h
mga_template.c cleanup: silence some clang warnings 2011-07-06 13:01:08 +03:00
old_vo_defines.h
old_vo_wrapper.c sub/OSD: move some related files to sub/ 2011-01-26 20:39:05 +02:00
old_vo_wrapper.h
osd.c Add missing RGB12 version of the fast OSD table. 2010-05-26 00:47:22 +00:00
osd.h Add support for 12-bit color mode on framebuffer devices. 2010-05-06 10:18:25 +00:00
osd_template.c
osx_common.c input: move all key code lists to input/keycodes.h 2011-05-02 00:43:31 +03:00
osx_common.h
sdl_common.c vo: sdl: handle key modifiers 2011-10-24 07:21:32 +03:00
sdl_common.h vo_gl/sdl: use desktop resolution for fullscreen mode 2011-10-24 06:18:29 +03:00
spuenc.c
spuenc.h
vdpau_template.c vo_vdpau: implement screenshots 2011-11-25 23:56:28 +02:00
vesa_lvo.c sub/OSD: move some related files to sub/ 2011-01-26 20:39:05 +02:00
vesa_lvo.h vesa_lvo.c: make functions static 2010-11-02 04:16:56 +02:00
video_out.c vo: do final frame draw only near page flip 2011-12-06 02:55:13 +02:00
video_out.h vo: do final frame draw only near page flip 2011-12-06 02:55:13 +02:00
video_out_internal.h cleanup: remove more warnings 2011-05-02 00:46:48 +03:00
videodev_mjpeg.h
vo_3dfx.c vo_dga: replace xf86dga.h with Xxf86dga.h 2011-04-20 04:22:53 +03:00
vo_aa.c cleanup: shut up more warnings 2011-05-06 18:33:16 +03:00
vo_bl.c
vo_caca.c input: move all key code lists to input/keycodes.h 2011-05-02 00:43:31 +03:00
vo_corevideo.h vo_corevideo.h: Add standard multiple inclusion guards 2010-11-02 04:16:46 +02:00
vo_corevideo.m vo_corevideo: fix key interpretation with modifiers 2011-11-26 20:04:16 +02:00
vo_dfbmga.c cleanup: some warning fixes and minor cleanups 2011-06-29 09:17:19 +03:00
vo_dga.c vo_dga: replace xf86dga.h with Xxf86dga.h 2011-04-20 04:22:53 +03:00
vo_direct3d.c cleanup: vo_direct3d: Mark a function static 2011-07-06 07:24:52 +03:00
vo_directfb2.c cleanup: mark some vo_directfb2.c and vo_s3fb.c functions static 2011-06-29 11:43:19 +03:00
vo_directx.c vo_directx: include <libavutil/common.h> for FFMIN 2011-07-07 22:58:34 +03:00
vo_dxr3.c sub/OSD: move some related files to sub/ 2011-01-26 20:39:05 +02:00
vo_fbdev.c Merge branch 'mplayer1_changes' 2011-05-02 00:46:03 +03:00
vo_fbdev2.c cleanup: vo_fbdev: simplify some code 2011-05-02 00:36:20 +03:00
vo_ggi.c input: move all key code lists to input/keycodes.h 2011-05-02 00:43:31 +03:00
vo_gif89a.c cleanup: remove NULL checks before free() all over the code 2010-11-14 13:11:20 +02:00
vo_gl.c vo_gl: fix 10 bit with Mesa drivers (Intel/Nouveau on Linux) 2011-11-25 23:59:49 +02:00
vo_ivtv.c ao_ivtv: Add header for ivtv_write() instead of forward declaring it 2010-11-02 04:09:18 +02:00
vo_ivtv.h vo_ivtv; Move ivtv_fd extern variable declaration to vo_ivtv.h 2010-11-02 04:16:46 +02:00
vo_jpeg.c cleanup: silence some clang warnings 2011-07-06 13:01:08 +03:00
vo_kva.c input: move all key code lists to input/keycodes.h 2011-05-02 00:43:31 +03:00
vo_md5sum.c cleanup: vo_md5sum: Remove unused define/undef 2011-01-31 16:03:10 +02:00
vo_mga.c sub/OSD: move some related files to sub/ 2011-01-26 20:39:05 +02:00
vo_mpegpes.c cleanup: silence some clang warnings 2011-07-06 13:01:08 +03:00
vo_null.c
vo_png.c cleanup: do libav* initialization on startup 2011-07-18 00:57:05 +03:00
vo_pnm.c cleanup: remove NULL checks before free() all over the code 2010-11-14 13:11:20 +02:00
vo_quartz.c input: move all key code lists to input/keycodes.h 2011-05-02 00:43:31 +03:00
vo_s3fb.c cleanup: mark some vo_directfb2.c and vo_s3fb.c functions static 2011-06-29 11:43:19 +03:00
vo_sdl.c cleanup: remove more warnings 2011-05-02 00:46:48 +03:00
vo_svga.c vo_svga: fix build after previous commit 6506d4ad 2011-05-03 12:21:59 +03:00
vo_tdfx_vid.c
vo_tdfxfb.c sub/OSD: move some related files to sub/ 2011-01-26 20:39:05 +02:00
vo_tga.c vo_tga: specify 15 bpp tga format endianness 2010-11-02 04:14:44 +02:00
vo_v4l2.c
vo_v4l2.h vo_v4l2: Move v4l2_fd extern declaration to vo_v4l2.h 2010-11-02 04:16:46 +02:00
vo_vdpau.c vo: do final frame draw only near page flip 2011-12-06 02:55:13 +02:00
vo_vesa.c vidix: drop VIDIX support 2011-01-31 16:03:10 +02:00
vo_wii.c sub/OSD: move some related files to sub/ 2011-01-26 20:39:05 +02:00
vo_x11.c vo_xv: avoid clearing too much on resize 2011-07-06 08:36:46 +03:00
vo_xmga.c sub/OSD: move some related files to sub/ 2011-01-26 20:39:05 +02:00
vo_xover.c libvo: remove UNUSED() macros 2010-11-02 04:18:08 +02:00
vo_xv.c vo_xv: implement screenshots 2011-11-25 23:56:28 +02:00
vo_xvr100.c sub/OSD: move some related files to sub/ 2011-01-26 20:39:05 +02:00
vo_yuv4mpeg.c sub/OSD: move some related files to sub/ 2011-01-26 20:39:05 +02:00
w32_common.c VO: w32_common: also generate VO_EVENT_MOVE 2011-07-06 13:01:07 +03:00
w32_common.h
wskeys.h vo: X key input: remove ambiguous KeySym remapping 2011-07-29 08:46:50 +03:00
x11_common.c vo: X key input: remove ambiguous KeySym remapping 2011-07-29 08:46:50 +03:00
x11_common.h vo_xv: avoid clearing too much on resize 2011-07-06 08:36:46 +03:00