1
0
mirror of https://github.com/mpv-player/mpv synced 2025-01-19 22:01:10 +00:00
mpv/video
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
..
decode win32: request UTF-16 API variants, Vista+ APIs, and COM C macros 2015-01-07 21:42:44 +01:00
filter win32: request UTF-16 API variants, Vista+ APIs, and COM C macros 2015-01-07 21:42:44 +01:00
out vo_opengl_cb: introduce frame queue 2015-01-08 18:50:25 +01:00
csputils.c video: Remove some stale CMS code, minor cosmetics 2015-01-07 14:22:17 +01:00
csputils.h csputils: replace float[3][4] with a struct 2015-01-06 16:51:06 +01:00
fmt-conversion.c video: remove swapped-endian image format aliases 2014-11-05 01:52:20 +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 display and timing to a separate thread 2014-08-12 23:24:08 +02:00
image_writer.c screenshots: set AVFrame parameters 2014-12-28 14:06:56 +01:00
image_writer.h image_writer: mp_msg conversions 2013-12-21 20:50:10 +01:00
img_format.c video: remove swapped-endian image format aliases 2014-11-05 01:52:20 +01:00
img_format.h video: remove swapped-endian image format aliases 2014-11-05 01:52:20 +01:00
img_fourcc.h build: deal with endian mess 2014-07-10 00:58:56 +02:00
memcpy_pic.h memcpy_pic: reformat 2013-11-06 20:27:13 +01:00
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 mp_image: copy missing attributes 2015-01-07 22:59:21 +11:00
mp_image.h video: remove things forgotten in previous commit 2014-12-03 23:12:22 +01: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 csputils: get rid of mp_csp_details 2015-01-06 16:50:58 +01:00
vaapi.c vaapi: try dealing with Intel's braindamaged shit drivers 2014-08-21 22:45:58 +02:00
vaapi.h vaapi: try dealing with Intel's braindamaged shit drivers 2014-08-21 22:45:58 +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 csputils: replace float[3][4] with a struct 2015-01-06 16:51:06 +01:00
vdpau_mixer.h vdpau_mixer: allow overriding frame opts 2014-05-02 01:08:04 +02:00
vdpau.c vdpau/GLX: don't access VO backend 2014-12-03 21:13:59 +01:00
vdpau.h vdpau/GLX: don't access VO backend 2014-12-03 21:13:59 +01:00
vfcap.h video: remove --flip 2013-12-05 22:58:54 +01:00