0
0
mirror of https://github.com/mpv-player/mpv.git synced 2024-09-20 12:02:23 +02:00
mpv/video
wm4 227d087db6 video: display last frame, drain frames on video reconfig
Until now, the player didn't care to drain frames on video reconfig.
Instead, the VO was reconfigured (i.e. resized) before the queued frames
finished displaying. This can for example be observed by passing
multiple images with different size as mf:// filename. Then the window
would resize one frame before image with the new size is displayed. With
--vo=vdpau, the effect is worse, because this VO queues more than 1
frame internally.

Fix this by explicitly draining buffered frames before video reconfig.

Raise the display time of the last frame. Otherwise, the last frame
would be shown for a very short time only. This usually doesn't matter,
but helps when playing image files. This is a byproduct of frame
draining, because normally, video timing is based on the frames queued
to the VO, and we can't do that with frames of different size or format.
So we pretend that the frame before the change is the last frame in
order to time it. This code is incorrect though: it tries to use the
framerate, which often doesn't make sense. But it's good enough to test
this code with mf://.
2013-12-10 20:07:39 +01:00
..
decode video: display last frame, drain frames on video reconfig 2013-12-10 20:07:39 +01:00
filter video: move VO reinit from filter chain to player 2013-12-10 20:07:39 +01:00
out vo: reset some fields properly 2013-12-10 20:07:39 +01: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 Take care of some libavutil deprecations, drop support for FFmpeg 1.0 2013-11-29 17:39:57 +01:00
fmt-conversion.h Take care of some libavutil deprecations, drop support for FFmpeg 1.0 2013-11-29 17:39:57 +01:00
hwdec.h video: move struct mp_hwdec_info into its own header file 2013-11-23 21:26:31 +01:00
image_writer.c configure: uniform the defines to #define HAVE_xxx (0|1) 2013-11-03 21:59:54 +01:00
image_writer.h image_writer: Add PNG filter option (default "mixed") 2013-06-15 15:48:52 +02:00
img_format.c compat: add compatibility kludge for Libav 9 2013-12-08 23:51:39 +01:00
img_format.h mp_image: deal with FFmpeg PSEUDOPAL braindeath 2013-12-01 20:51:38 +01:00
img_fourcc.h core: redo how codecs are mapped, remove codecs.conf 2013-02-10 17:25:56 +01:00
memcpy_pic.h memcpy_pic: reformat 2013-11-06 20:27:13 +01:00
mp_image_pool.c build: make pthreads mandatory 2013-11-28 19:28:38 +01:00
mp_image_pool.h mp_image_pool: make reference counting thread-safe 2013-07-28 19:25:07 +02:00
mp_image.c mp_image: deal with FFmpeg PSEUDOPAL braindeath 2013-12-01 20:51:38 +01:00
mp_image.h mp_image: add helper for copying image attributes 2013-11-03 23:55:16 +01:00
sws_utils.c Take care of some libavutil deprecations, drop support for FFmpeg 1.0 2013-11-29 17:39:57 +01:00
sws_utils.h Fix some more -Wshadow warnings 2013-11-01 17:35:38 +01:00
vaapi.c vaapi: remove unused hw image formats, simplify 2013-11-29 14:19:29 +01:00
vaapi.h vaapi: check image format in va_surface_upload() 2013-09-27 18:00:03 +02:00
vdpau_functions.inc video: check profiles with hardware decoding 2013-11-01 17:33:33 +01:00
vdpau.c vdpau: move device and video surface management from vo_vdpau.c to vdpau.c 2013-11-05 22:13:05 +01:00
vdpau.h vdpau: move device and video surface management from vo_vdpau.c to vdpau.c 2013-11-05 22:13:05 +01:00
vfcap.h video: remove --flip 2013-12-05 22:58:54 +01:00