summaryrefslogtreecommitdiffstats
path: root/libmpv/render.h
diff options
context:
space:
mode:
Diffstat (limited to 'libmpv/render.h')
-rw-r--r--libmpv/render.h22
1 files changed, 12 insertions, 10 deletions
diff --git a/libmpv/render.h b/libmpv/render.h
index 6d594e0c06..afea7c2e10 100644
--- a/libmpv/render.h
+++ b/libmpv/render.h
@@ -79,16 +79,6 @@ extern "C" {
* is logged. If you set MPV_RENDER_PARAM_ADVANCED_CONTROL, you promise that
* this won't happen, and must absolutely guarantee it, or a real deadlock
* will freeze the mpv core thread forever.
- * - if MPV_RENDER_PARAM_ADVANCED_CONTROL is used, you currently must call all
- * mpv_render*() API functions from the same thread on which the
- * mpv_render_context was returned by mpv_render_context_create(). This
- * requirement always existed. Not honoring it will lead to UB (deadlocks,
- * use of invalid pthread_t handles). This requirement might be removed in
- * the future, but will require some considerable work internal to libmpv.
- * You can avoid this issue by setting "vd-lavc-dr" to "no".
- * - MPV_RENDER_PARAM_ADVANCED_CONTROL has some other libmpv-internal problems,
- * which may result in random deadlocks (see top of vo_libmpv.c).
- * You can probably avoid this issue by setting "vd-lavc-dr" to "no".
*
* libmpv functions which are safe to call from a render thread are:
* - functions marked with "Safe to be called from mpv render API threads."
@@ -104,6 +94,18 @@ extern "C" {
* - if the mpv_handle parameter refers to a different mpv core than the one
* you're rendering for (very obscure, but allowed)
*
+ * Note about old libmpv version:
+ *
+ * Before API version 1.105 (basically in mpv 0.29.x), simply enabling
+ * MPV_RENDER_PARAM_ADVANCED_CONTROL could cause deadlock issues. This can
+ * be worked around by setting the "vd-lavc-dr" option to "no".
+ * In addition, you were required to call all mpv_render*() API functions
+ * from the same thread on which mpv_render_context_create() was originally
+ * run (for the same the mpv_render_context). Not honoring it led to UB
+ * (deadlocks, use of invalid pthread_t handles), even if you moved your GL
+ * context to a different thread correctly.
+ * These problems were addressed in API version 1.105 (mpv 0.30.0).
+ *
* Context and handle lifecycle
* ----------------------------
*