-From 2ecf240b1cd20875991a5b18efafbe799864ff7f Mon Sep 17 00:00:00 2001
-From: Mark Thompson <sw@jkqxz.net>
-Date: Mon, 9 Oct 2017 20:10:26 +0100
-Subject: [PATCH] vaapi: Use libva2 message callbacks
+commit 2ecf240b1cd20875991a5b18efafbe799864ff7f
+Author: Mark Thompson <sw@jkqxz.net>
+Date: Mon Oct 9 20:10:26 2017 +0100
+
+vaapi: Use libva2 message callbacks
They are no longer global, so they work vaguely sensibly.
----
- video/vaapi.c | 32 +++++++++++++++++++++++++++++---
- 1 file changed, 29 insertions(+), 3 deletions(-)
diff --git a/video/vaapi.c b/video/vaapi.c
index 6bedbbaa18..3b1cb9cc41 100644
@@ -40,9 +40,27 @@ int va_get_colorspace_flag(enum mp_csp csp)
return 0;
}
-
+
-// VA message callbacks are global and do not have a context parameter, so it's
-// impossible to know from which VADisplay they originate. Try to route them
-// to existing mpv/libmpv instances within this process.
va_message_callback(msg, MSGL_V);
}
+#endif
-
+
static void open_lavu_vaapi_device(struct mp_vaapi_ctx *ctx)
{
@@ -108,6 +127,10 @@ struct mp_vaapi_ctx *va_initialize(VADisplay *display, struct mp_log *plog,
},
};
-
+
+#if VA_CHECK_VERSION(1, 0, 0)
+ vaSetErrorCallback(display, va_error_callback, res);
+ vaSetInfoCallback(display, va_info_callback, res);
vaSetInfoCallback(va_info_callback);
+#endif
#endif
-
+
int major, minor;
@@ -154,6 +178,7 @@ void va_destroy(struct mp_vaapi_ctx *ctx)
if (ctx->destroy_native_ctx)
ctx->destroy_native_ctx(ctx->native_ctx);
-
+
+#if !VA_CHECK_VERSION(1, 0, 0)
pthread_mutex_lock(&va_log_mutex);
for (int n = 0; n < num_va_mpv_clients; n++) {
TA_FREEP(&va_mpv_clients); // avoid triggering leak detectors
pthread_mutex_unlock(&va_log_mutex);
+#endif
-
+
talloc_free(ctx);
}
vaapi? (
!libav? ( >=media-video/ffmpeg-3.3:0 )
libav? ( >=media-video/libav-13:0 )
- x11-libs/libva[drm?,X?,wayland?]
+ x11-libs/libva:=[drm?,X?,wayland?]
)
vdpau? (
!libav? ( >=media-video/ffmpeg-3.3:0 )
PATCHES=(
"${FILESDIR}/${PN}-0.19.0-make-ffmpeg-version-check-non-fatal.patch"
"${FILESDIR}/${PN}-0.23.0-make-libavdevice-check-accept-libav.patch"
- "${FILESDIR}/${PN}-libva2.patch" #641384
)
pkg_setup() {
cp "${DISTDIR}/waf-${WAF_PV}" "${S}"/waf || die
chmod +x "${S}"/waf || die
eapply "${FILESDIR}/${PV}"
- default
+ default_src_prepare
}
src_configure() {