package/mpv: fix build with libva 2.0
PATCH 1/4 package/mpv: fix build with libva 2.0
--- package/mpv/0003-libva20.patch | 93 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 package/mpv/0003-libva20.patch
package/mpv/0003-libva20.patch new file +93 -0
@@ -0,0 +1,93 @@ +From 2ecf240b1cd20875991a5b18efafbe799864ff7f Mon Sep 17 00:00:00 2001 +From: Mark Thompson <[email protected]> +Date: Mon, 9 Oct 2017 20:10:26 +0100 +Subject: [PATCH] vaapi: Use libva2 message callbacks + +They are no longer global, so they work vaguely sensibly. + +Downloaded from upstream commit: +https://github.com/mpv-player/mpv/commit/2ecf240b1cd20875991a5b18efafbe799864ff7f + +Signed-off-by: Bernd Kuhls <[email protected]> +--- + 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 +--- a/video/vaapi.c ++++ b/video/vaapi.c +@@ -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. ++#if VA_CHECK_VERSION(1, 0, 0) ++static void va_message_callback(void *context, const char *msg, int mp_level) ++{ ++ struct mp_vaapi_ctx *res = context; ++ mp_msg(res->log, mp_level, "libva: %s", msg); ++} ++ ++static void va_error_callback(void *context, const char *msg) ++{ ++ va_message_callback(context, msg, MSGL_ERR); ++} ++ ++static void va_info_callback(void *context, const char *msg) ++{ ++ va_message_callback(context, msg, MSGL_V); ++} ++#else ++// Pre-libva2 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. + static pthread_mutex_t va_log_mutex = PTHREAD_MUTEX_INITIALIZER; + static struct mp_vaapi_ctx **va_mpv_clients; + static int num_va_mpv_clients; +@@ -77,6 +95,7 @@ static void va_info_callback(const char *msg) + { + 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); ++#else + pthread_mutex_lock(&va_log_mutex); + MP_TARRAY_APPEND(NULL, va_mpv_clients, num_va_mpv_clients, res); + pthread_mutex_unlock(&va_log_mutex); +@@ -118,6 +141,7 @@ struct mp_vaapi_ctx *va_initialize(VADisplay *display, struct mp_log *plog, + vaSetErrorCallback(va_error_callback); + vaSetInfoCallback(va_info_callback); + #endif ++#endif + + int major, minor; + int status = vaInitialize(display, &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++) { + if (va_mpv_clients[n] == ctx) { +@@ -164,6 +189,7 @@ void va_destroy(struct mp_vaapi_ctx *ctx) + if (num_va_mpv_clients == 0) + TA_FREEP(&va_mpv_clients); // avoid triggering leak detectors + pthread_mutex_unlock(&va_log_mutex); ++#endif + + talloc_free(ctx); + }
Signature · 1 line
2.11.0
PATCH 2/4 package/gstreamer1/gst1-vaapi: bump version to 1.12.4
Added license hash, this bump will fix build with libva 2.0.
--- package/gstreamer1/gst1-vaapi/gst1-vaapi.hash | 6 ++++-- package/gstreamer1/gst1-vaapi/gst1-vaapi.mk | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-)
package/gstreamer1/gst1-vaapi/gst1-vaapi.hash +4 -2
@@ -1,2 +1,4 @@ -# From https://gstreamer.freedesktop.org/src/gstreamer-vaapi/gstreamer-vaapi-1.12.3.tar.xz.sha256sum -sha256 f4cdafd8fd9606a490917c8b67336e835df1219580d55421c70480fd0913744d gstreamer-vaapi-1.12.3.tar.xz +# From https://gstreamer.freedesktop.org/src/gstreamer-vaapi/gstreamer-vaapi-1.12.4.tar.xz.sha256sum +sha256 1c2d77242e1f30c4d1394636cae9f6877228a017960fca96881e0080d8b6e9c9 gstreamer-vaapi-1.12.4.tar.xz +# Locally computed +sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LIB
package/gstreamer1/gst1-vaapi/gst1-vaapi.mk +1 -1
@@ -4,7 +4,7 @@ # ################################################################################ -GST1_VAAPI_VERSION = 1.12.3 +GST1_VAAPI_VERSION = 1.12.4 GST1_VAAPI_SITE = https://gstreamer.freedesktop.org/src/gstreamer-vaapi GST1_VAAPI_SOURCE = gstreamer-vaapi-$(GST1_VAAPI_VERSION).tar.xz GST1_VAAPI_LICENSE = LGPL-2.1+
Signature · 1 line
2.11.0
PATCH 3/4 package/tvheadend: bump version
In reply to Bernd KuhlsThis version adds support for libva 2.0, added license hash.
--- .../0002-sbuf-fix-uclibc-compilation-error.patch | 33 ++++++++++++++++++++++ package/tvheadend/tvheadend.hash | 3 +- package/tvheadend/tvheadend.mk | 2 +- 3 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 package/tvheadend/0002-sbuf-fix-uclibc-compilation-error.patch
package/tvheadend/0002-sbuf-fix-uclibc-compilation-error.patch new file +33 -0
@@ -0,0 +1,33 @@ +From b16ad4d258409fbd6acf843d62a7a84f621e3b70 Mon Sep 17 00:00:00 2001 +From: Bernd Kuhls <[email protected]> +Date: Mon, 18 Dec 2017 20:52:06 +0100 +Subject: [PATCH] sbuf: fix uclibc compilation error + +Fixes build error + +tvheadend-e06ffd87beff16103c47d6fa542df2374fca6fd3/src/sbuf.h:77:1: + error: unknown type name 'ssize_t'; did you mean 'size_t'? + ssize_t sbuf_read(sbuf_t *sb, int fd); + +Patch sent upstream: https://github.com/tvheadend/tvheadend/pull/1062 + +Signed-off-by: Bernd Kuhls <[email protected]> +--- + src/sbuf.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/sbuf.h b/src/sbuf.h +index 78aa546b3..d5aa53042 100644 +--- a/src/sbuf.h ++++ b/src/sbuf.h +@@ -23,6 +23,7 @@ + #include <stddef.h> + #include <stdio.h> + #include <stdint.h> ++#include <unistd.h> + + /** + * Simple dynamically growing buffer +-- +2.11.0 +
package/tvheadend/tvheadend.hash +2 -1
@@ -1,2 +1,3 @@ # Locally computed -sha256 7ff9f6a583d7e288c69eb8bfbd628e630e85252e04a8394666cc3c9f9b785df3 tvheadend-a234e2ff6d140e6ffceb7057bf18a8fdd927a5ac.tar.gz +sha256 32f96937a3ffa72b5bdbfde9a5f9f9535f88e94e44864d4c8c6a152985c16569 tvheadend-e06ffd87beff16103c47d6fa542df2374fca6fd3.tar.gz +sha256 54dc3cbc00bf126bcba43e2af7f3ad1dc00f335985da1409fa943c7b7256d942 LICENSE.md
package/tvheadend/tvheadend.mk +1 -1
@@ -4,7 +4,7 @@ # ################################################################################ -TVHEADEND_VERSION = a234e2ff6d140e6ffceb7057bf18a8fdd927a5ac +TVHEADEND_VERSION = e06ffd87beff16103c47d6fa542df2374fca6fd3 TVHEADEND_SITE = $(call github,tvheadend,tvheadend,$(TVHEADEND_VERSION)) TVHEADEND_LICENSE = GPL-3.0+ TVHEADEND_LICENSE_FILES = LICENSE.md
Signature · 1 line
2.11.0
PATCH 3/4 package/tvheadend: bump version
Quoted 4 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Bernd" == Bernd Kuhls <[email protected]> writes:
This version adds support for libva 2.0, added license hash.
Signed-off-by Bernd Kuhls <[email protected]>
Committed, thanks.
Signature · 1 line
Bye, Peter Korsgaard
PATCH 4/4 package/lib{va, va-intel-driver, va-utils}: bump version to 2.0.0
In reply to Bernd KuhlsEGL API support was removed upstream:
https://github.com/01org/libva/commit/fc277b8f5eb92a94b4a9112eba591f87072786ce#diff-67e997bcfdac55191033d57a16d1408a
GLX support now depends on X11:
https://github.com/01org/libva/commit/b9a72b9d8ca14e159a67c368d966ed6276f49bc9#diff-67e997bcfdac55191033d57a16d1408aR247
Added license hashes.
--- package/libva-intel-driver/libva-intel-driver.hash | 5 +++-- package/libva-intel-driver/libva-intel-driver.mk | 2 +- package/libva-utils/libva-utils.hash | 5 +++-- package/libva-utils/libva-utils.mk | 2 +- package/libva/libva.hash | 5 +++-- package/libva/libva.mk | 21 ++++++--------------- 6 files changed, 17 insertions(+), 23 deletions(-)
package/libva-intel-driver/libva-intel-driver.hash +3 -2
@@ -1,4 +1,5 @@ # From https://github.com/01org/intel-vaapi-driver/releases -sha1 b0cfc0807993aafe78e209dd28cdceb4dfa57e78 intel-vaapi-driver-1.8.3.tar.bz2 +sha1 19e83c084a404817263c04371c42345b617900ff intel-vaapi-driver-2.0.0.tar.bz2 # Locally computed -sha256 54411d9e579300ed63f8b9b06152a1a9ec95b7699507d7ffa014cd7b2aeaff6f intel-vaapi-driver-1.8.3.tar.bz2 +sha256 10f6b0a91f34715d8d4d9a9e0fb3cc0afe5fcf85355db1272bd5fff31522f469 intel-vaapi-driver-2.0.0.tar.bz2 +sha256 c86a782ee845b52472dae9b9d79fb915d333628ac0efe49cdce63644814931de COPYING
package/libva-intel-driver/libva-intel-driver.mk +1 -1
@@ -4,7 +4,7 @@ # ################################################################################ -LIBVA_INTEL_DRIVER_VERSION = 1.8.3 +LIBVA_INTEL_DRIVER_VERSION = 2.0.0 LIBVA_INTEL_DRIVER_SOURCE = intel-vaapi-driver-$(LIBVA_INTEL_DRIVER_VERSION).tar.bz2 LIBVA_INTEL_DRIVER_SITE = \ https://github.com/01org/intel-vaapi-driver/releases/download/$(LIBVA_INTEL_DRIVER_VERSION)
package/libva-utils/libva-utils.hash +3 -2
@@ -1,4 +1,5 @@ # From https://github.com/01org/libva-utils/releases -sha1 8684aa2b28fc08bf62b1fa5acf95d23fab5faf9a libva-utils-1.8.3.tar.bz2 +sha1 b4dc39459f8539c1ea16e7ca957a853fb7735ec4 libva-utils-2.0.0.tar.bz2 # Locally computed -sha256 c59de4fb6f1021c435b3f49e2410760692324ee5bb464c716d674fcb626a7e03 libva-utils-1.8.3.tar.bz2 +sha256 a921df31311d8f49d2e392a5fc2a068d79f89aeb588309fbff24365310dbc5f6 libva-utils-2.0.0.tar.bz2 +sha256 c6220c9f87832c27abcb8a32eafdd2823e13ce146b3ea63d5deae2a76798ef50 COPYING
package/libva-utils/libva-utils.mk +1 -1
@@ -4,7 +4,7 @@ # ################################################################################ -LIBVA_UTILS_VERSION = 1.8.3 +LIBVA_UTILS_VERSION = 2.0.0 LIBVA_UTILS_SOURCE = libva-utils-$(LIBVA_UTILS_VERSION).tar.bz2 LIBVA_UTILS_SITE = https://github.com/01org/libva-utils/releases/download/$(LIBVA_UTILS_VERSION) LIBVA_UTILS_LICENSE = MIT
package/libva/libva.hash +3 -2
@@ -1,4 +1,5 @@ # From https://github.com/01org/libva/releases -sha1 8eee9e28b0ae3bfbe8cd44a91396207714967204 libva-1.8.3.tar.bz2 +sha1 762a49f8925ca1d0531c5071afbd629ffea93b90 libva-2.0.0.tar.bz2 # Locally computed -sha256 56ee129deba99b06eb4a8d4f746b117c5d1dc2ec5b7a0bfc06971fca1598ab9b libva-1.8.3.tar.bz2 +sha256 bb0601f9a209e60d8d0b867067323661a7816ff429021441b775452b8589e533 libva-2.0.0.tar.bz2 +sha256 c86a782ee845b52472dae9b9d79fb915d333628ac0efe49cdce63644814931de COPYING
package/libva/libva.mk +6 -15
@@ -4,7 +4,7 @@ # ################################################################################ -LIBVA_VERSION = 1.8.3 +LIBVA_VERSION = 2.0.0 LIBVA_SOURCE = libva-$(LIBVA_VERSION).tar.bz2 LIBVA_SITE = https://github.com/01org/libva/releases/download/$(LIBVA_VERSION) LIBVA_LICENSE = MIT
@@ -17,18 +17,16 @@ LIBVA_CONF_OPTS = \ --enable-drm \ --with-drivers-path="/usr/lib/va" -ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),y) -LIBVA_DEPENDENCIES += mesa3d -LIBVA_CONF_OPTS += --enable-glx -else -LIBVA_CONF_OPTS += --disable-glx -endif ifeq ($(BR2_PACKAGE_XORG7),y) LIBVA_DEPENDENCIES += xlib_libX11 xlib_libXext xlib_libXfixes LIBVA_CONF_OPTS += --enable-x11 +ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),y) +LIBVA_DEPENDENCIES += mesa3d +LIBVA_CONF_OPTS += --enable-glx +endif else -LIBVA_CONF_OPTS += --disable-x11 +LIBVA_CONF_OPTS += --disable-glx --disable-x11 endif ifeq ($(BR2_PACKAGE_WAYLAND),y)
@@ -38,11 +36,4 @@ else LIBVA_CONF_OPTS += --disable-wayland endif -ifeq ($(BR2_PACKAGE_HAS_LIBEGL),y) -LIBVA_DEPENDENCIES += libegl -LIBVA_CONF_OPTS += --enable-egl -else -LIBVA_CONF_OPTS += --disable-egl -endif - $(eval $(autotools-package))
Signature · 1 line
2.11.0
PATCH 4/4 package/lib{va, va-intel-driver, va-utils}: bump version to 2.0.0
Quoted 11 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Bernd" == Bernd Kuhls <[email protected]> writes:
EGL API support was removed upstream:
https://github.com/01org/libva/commit/fc277b8f5eb92a94b4a9112eba591f87072786ce#diff-67e997bcfdac55191033d57a16d1408aGLX support now depends on X11:
https://github.com/01org/libva/commit/b9a72b9d8ca14e159a67c368d966ed6276f49bc9#diff-67e997bcfdac55191033d57a16d1408aR247Added license hashes.
Signed-off-by Bernd Kuhls <[email protected]>
Committed, thanks.
Signature · 1 line
Bye, Peter Korsgaard
PATCH 1/4 package/mpv: fix build with libva 2.0
In reply to Bernd Kuhlspackage/mpv/0003-libva20.patch
Quoted 13 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Bernd" == Bernd Kuhls <[email protected]> writes:
Signed-off-by Bernd Kuhls <[email protected]>--- package/mpv/0003-libva20.patch | 93 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 package/mpv/0003-libva20.patchpackage/mpv/0003-libva20.patch new file +0
-0
We already have 0003-rpi-fix-linking-errors.patch, so I've renamed to 0004-libva20.patch and applied, thanks.
I see that mpv-0.28 (which includes this change) has been released, so it might be worth bumping the version.
Signature · 1 line
Bye, Peter Korsgaard
PATCH 1/4 package/mpv: fix build with libva 2.0
Hi Peter,
Am Mon, 15 Jan 2018 23:20:57 +0100 schrieb Peter Korsgaard:
Quoted 2 lines
I see that mpv-0.28 (which includes this change) has been released, so it might be worth bumping the version.
this bump is not possible atm, quoting https://github.com/mpv-player/mpv/
releases:
"This release needs recent FFmpeg (newer than 3.4) due to major refactoring."
Such a ffmpeg version was not released yet, mpv depends on the master branch of ffmpeg.
Regards, Bernd
PATCH 1/4 package/mpv: fix build with libva 2.0
Quoted 8 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Bernd" == Bernd Kuhls <[email protected]> writes:
Hi Peter,
Am Mon, 15 Jan 2018 23:20:57 +0100 schrieb Peter Korsgaard:Quoted 2 lines
I see that mpv-0.28 (which includes this change) has been released, so it might be worth bumping the version.
Quoted 8 lines
this bump is not possible atm, quoting https://github.com/mpv-player/mpv/
releases:"This release needs recent FFmpeg (newer than 3.4) due to major refactoring."
Such a ffmpeg version was not released yet, mpv depends on the master branch of ffmpeg.
Ahh, correct. Thanks.
Signature · 1 line
Bye, Peter Korsgaard