1
0
mirror of https://github.com/mpv-player/mpv synced 2025-03-25 04:38:01 +00:00
mpv/video
wm4 ed9295c250 video/out: always support redrawing VO window at any point
Before, a VO could easily refuse to respond to VOCTRL_REDRAW_FRAME,
which means the VO wouldn't redraw OSD and window contents, and the
player would appear frozen to the user. This was a bit stupid, and makes
dealing with some corner cases much harder (think of --keep-open, which
was hard to implement, because the VO gets into this state if there are
no new video frames after a seek reset).

Change this, and require VOs to always react to VOCTRL_REDRAW_FRAME.
There are two aspects of this: First, behavior after a (successful)
vo_reconfig() call, but before any video frame has been displayed.
Second, behavior after a vo_seek_reset().

For the first issue, we define that sending VOCTRL_REDRAW_FRAME after
vo_reconfig() should clear the window with black. This requires minor
changes to some VOs. In particular vaapi makes this horribly
complicated, because OSD rendering is bound to a video surface. We
create a black dummy surface for this purpose.

The second issue is much simpler and works already with most VOs: they
simply redraw whatever has been uploaded previously. The exception is
vdpau, which has a complicated mechanism to track and filter video
frames. The state associated with this mechanism is completely cleared
with vo_seek_reset(), so implementing this to work as expected is not
trivial. For now, we just clear the window with black.
2013-10-02 00:36:26 +02:00
..
decode vaapi: remove non-VLD entrypoints 2013-09-29 13:52:09 +02:00
filter vf_scale: factor out libswscale equalizer control 2013-09-30 00:45:58 +02:00
out video/out: always support redrawing VO window at any point 2013-10-02 00:36:26 +02:00
csputils.c video: support setting libswscale chroma position 2013-07-25 23:03:20 +02:00
csputils.h video: support setting libswscale chroma position 2013-07-25 23:03:20 +02:00
fmt-conversion.c video: add vda decode support (with hwaccel) and direct rendering 2013-08-22 12:13:30 +02:00
fmt-conversion.h
image_writer.c core: move contents to mpvcore (2/2) 2013-08-06 22:52:31 +02:00
image_writer.h image_writer: Add PNG filter option (default "mixed") 2013-06-15 15:48:52 +02:00
img_format.c video: add vda decode support (with hwaccel) and direct rendering 2013-08-22 12:13:30 +02:00
img_format.h video: add vda decode support (with hwaccel) and direct rendering 2013-08-22 12:13:30 +02:00
img_fourcc.h core: redo how codecs are mapped, remove codecs.conf 2013-02-10 17:25:56 +01:00
memcpy_pic.h vf_expand: support more image formats 2013-01-13 20:04:13 +01:00
mp_image_pool.c core: move contents to mpvcore (2/2) 2013-08-06 22:52:31 +02:00
mp_image_pool.h mp_image_pool: make reference counting thread-safe 2013-07-28 19:25:07 +02:00
mp_image.c gl_video: handle non-mod-2 4:2:0 YUV video correctly 2013-08-06 21:46:47 +02:00
mp_image.h Fix previous commit 2013-09-25 22:44:12 +02:00
sws_utils.c vf_scale: factor out libswscale equalizer control 2013-09-30 00:45:58 +02:00
sws_utils.h vf_scale: factor out libswscale equalizer control 2013-09-30 00:45:58 +02:00
vaapi.c video/out: always support redrawing VO window at any point 2013-10-02 00:36:26 +02:00
vaapi.h vaapi: check image format in va_surface_upload() 2013-09-27 18:00:03 +02:00
vdpau_functions.inc vo_vdpau: allow setting colorkey 2013-08-17 20:06:20 +02:00
vdpau.c vdpau: split off decoder parts, use "new" libavcodec vdpau hwaccel API 2013-07-28 19:25:07 +02:00
vdpau.h core: move contents to mpvcore (2/2) 2013-08-06 22:52:31 +02:00
vfcap.h core: simplify OSD capability handling, remove VFCAP_OSD 2013-03-01 11:16:01 +01:00