summaryrefslogtreecommitdiffstats
path: root/video/out/vo.h
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2016-09-02 15:50:54 +0200
committerwm4 <wm4@nowhere>2016-09-02 15:50:54 +0200
commit2c917219cffc74fcc64f04113fe260f2b88d5841 (patch)
treeae874a7185fa23e162219c6d9b27fb656f7d7c9f /video/out/vo.h
parent423e53ba0bad034685e5229720d55548afb1efbe (diff)
downloadmpv-2c917219cffc74fcc64f04113fe260f2b88d5841.tar.bz2
mpv-2c917219cffc74fcc64f04113fe260f2b88d5841.tar.xz
vo: use new option update mechanism
This is still rather basic. run_reconfig() and run_control() update the options because it's needed for panscan (and other video scaling options), and fullscreen, border, ontop updates. In the old model, these options could be accessed only while both playback thread and VO threads were locked (i.e. during synchronous calls like vo_control()), so this should be sufficient in order not to miss any updates. In the future, a more fine-grained update mechanism could be added to handle these updates "exactly". x11_common.c contains an evil hack, as I see no reasonable way to handle this properly. The VO thread can't "lock" the main thread, so this is not simple.
Diffstat (limited to 'video/out/vo.h')
-rw-r--r--video/out/vo.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/video/out/vo.h b/video/out/vo.h
index ed2fe94e37..96de569bc1 100644
--- a/video/out/vo.h
+++ b/video/out/vo.h
@@ -312,9 +312,7 @@ struct vo {
struct osd_state *osd;
struct encode_lavc_context *encode_lavc_ctx;
struct vo_internal *in;
- struct mp_vo_opts *opts;
struct vo_extra extra;
- struct m_config *config;
// --- The following fields are generally only changed during initialization.
@@ -329,6 +327,10 @@ struct vo {
// --- The following fields can be accessed only by the VO thread, or from
// anywhere _if_ the VO thread is suspended (use vo->dispatch).
+ struct m_config_cache *opts_cache; // cache for ->opts
+ struct mp_vo_opts *opts;
+ struct m_config *config; // config for ->priv
+
bool want_redraw; // redraw as soon as possible
// current window state