1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-24 07:42:17 +00:00
mpv/video
wm4 5ed7bc6321 video: fix and simplify video format changes and last frame display
The previous commit broke these things, and fixing them is separate in
this commit in order to reduce the volume of changes.

Move the image queue from the VO to the playback core. The image queue
is a remnant of the old way how vdpau was implemented, and increasingly
became more and more an artifact. In the end, it did only one thing:
computing the duration of the current frame. This was done by taking the
PTS difference between the current and the future frame. We keep this,
but by moving it out of the VO, we don't have to special-case format
changes anymore. This simplifies the code a lot.

Since we need the queue to compute the duration only, a queue size
larger than 2 makes no sense, and we can hardcode that.

Also change how the last frame is handled. The last frame is a bit of a
problem, because video timing works by showing one frame after another,
which makes it a special case. Make the VO provide a function to notify
us when the frame is done, instead. The frame duration is used for that.

This is not perfect. For example, changing playback speed during the
last frame doesn't update the end time. Pausing will not stop the clock
that times the last frame. But I don't think this matters for such a
corner case.
2014-08-12 23:24:08 +02:00
..
decode video: move display and timing to a separate thread 2014-08-12 23:24:08 +02:00
filter vf_vapoursynth: print more diagnostics on error 2014-08-11 21:57:15 +02:00
out video: fix and simplify video format changes and last frame display 2014-08-12 23:24:08 +02:00
csputils.c video: add a default color space for files with no video 2014-07-28 21:24:44 +02:00
csputils.h video: Include better heuristics for guessing primaries 2014-06-22 19:05:43 +02:00
fmt-conversion.c vda: only support the new hwaccel 1.2 API (remove old code) 2014-08-01 10:38:18 +02:00
fmt-conversion.h
hwdec.h video: move display and timing to a separate thread 2014-08-12 23:24:08 +02:00
image_writer.c video: introduce failure path for image allocations 2014-06-17 22:43:43 +02:00
image_writer.h
img_format.c video: cosmetics: reformat image format names table 2014-06-14 10:06:23 +02:00
img_format.h build: deal with endian mess 2014-07-10 00:58:56 +02:00
img_fourcc.h build: deal with endian mess 2014-07-10 00:58:56 +02:00
memcpy_pic.h
mp_image_pool.c video: introduce failure path for image allocations 2014-06-17 22:43:43 +02:00
mp_image_pool.h video: introduce failure path for image allocations 2014-06-17 22:43:43 +02:00
mp_image.c video: Include better heuristics for guessing primaries 2014-06-22 19:05:43 +02:00
mp_image.h video: Add support for non-BT.709 primaries 2014-06-22 19:00:38 +02:00
sws_utils.c video: correct spelling: mp_image_params_equals -> mp_image_params_equal 2014-06-17 23:30:27 +02:00
sws_utils.h options: remove global variables for swscale options; rename them 2014-06-11 00:39:13 +02:00
vaapi.c video: introduce failure path for image allocations 2014-06-17 22:43:43 +02:00
vaapi.h video: warn if an emulated hwdec API is used 2014-05-28 02:08:45 +02:00
vdpau_functions.inc video: warn if an emulated hwdec API is used 2014-05-28 02:08:45 +02:00
vdpau_mixer.c video: correct spelling: mp_image_params_equals -> mp_image_params_equal 2014-06-17 23:30:27 +02:00
vdpau_mixer.h
vdpau.c vdpau: allocate surfaces by age 2014-08-11 14:03:53 +02:00
vdpau.h vdpau: allocate surfaces by age 2014-08-11 14:03:53 +02:00
vfcap.h