From 481d56ba042881aa165cd904e25afc32bf170e3f Mon Sep 17 00:00:00 2001 From: Jakub Bogusz Date: Wed, 27 Mar 2013 19:57:37 +0100 Subject: [PATCH] - updated to 1.1.1 - removed obsolete am,wayland patch --- libva-am.patch | 11 -- libva-wayland.patch | 382 -------------------------------------------- libva.spec | 8 +- 3 files changed, 2 insertions(+), 399 deletions(-) delete mode 100644 libva-am.patch delete mode 100644 libva-wayland.patch diff --git a/libva-am.patch b/libva-am.patch deleted file mode 100644 index 134ce30..0000000 --- a/libva-am.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- libva-1.1.0/configure.ac.orig 2012-10-04 15:30:51.000000000 +0200 -+++ libva-1.1.0/configure.ac 2013-02-17 08:40:38.856133006 +0100 -@@ -86,7 +86,7 @@ - AC_CONFIG_MACRO_DIR([m4]) - AM_INIT_AUTOMAKE([dist-bzip2]) - --AM_CONFIG_HEADER([config.h]) -+AC_CONFIG_HEADERS([config.h]) - m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) - - TODAY="`LC_ALL=C date +'%a, %d %b %Y %X %z'`" diff --git a/libva-wayland.patch b/libva-wayland.patch deleted file mode 100644 index 4a42083..0000000 --- a/libva-wayland.patch +++ /dev/null @@ -1,382 +0,0 @@ -From eb2ba290f679c6cefe621ee6d9fa4302acbadc51 Mon Sep 17 00:00:00 2001 -From: Rob Bradford -Date: Fri, 02 Nov 2012 11:39:33 +0000 -Subject: tests: fix printf in putsurface_wayland test - -Signed-off-by: Rob Bradford ---- -diff --git a/test/putsurface/putsurface_common.c b/test/putsurface/putsurface_common.c -index 06f394f..2116ce4 100644 ---- a/test/putsurface/putsurface_common.c -+++ b/test/putsurface/putsurface_common.c -@@ -190,7 +190,7 @@ static void* putsurface_thread(void *data) - while (surface_id == VA_INVALID_SURFACE) - surface_id = get_next_free_surface(&index); - -- if (verbose) printf("Thread %x Display surface 0x%p,\n", (unsigned int)drawable, (void *)surface_id); -+ if (verbose) printf("Thread: %p Display surface 0x%x,\n", drawable, surface_id); - - if (multi_thread) - upload_surface(va_dpy, surface_id, box_width, row_shift, display_field); --- -cgit v0.9.0.2-2-gbebe -From b1cf861a087234eb797c402040403a538adbe0cc Mon Sep 17 00:00:00 2001 -From: Rob Bradford -Date: Fri, 02 Nov 2012 10:57:47 +0000 -Subject: wayland: port to 1.0 protocol. - -With the change in protocol the hash of globals maintained by the client was -dropped. Instead we must setup a listener on the registry and get the globals -in a stream from that. - -Signed-off-by: Rob Bradford -Signed-off-by: Gwenole Beauchesne ---- -diff --git a/configure.ac b/configure.ac -index de83e35..257964d 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -78,7 +78,7 @@ m4_define([libva_lt_age], - m4_define([libdrm_version], [2.4]) - - # Wayland minimum version number --m4_define([wayland_api_version], [0.95.0]) -+m4_define([wayland_api_version], [1.0.0]) - - AC_PREREQ(2.57) - AC_INIT([libva], [libva_version], [waldo.bastian@intel.com], libva) -diff --git a/test/common/va_display_wayland.c b/test/common/va_display_wayland.c -index 332d16d..abcb2b6 100644 ---- a/test/common/va_display_wayland.c -+++ b/test/common/va_display_wayland.c -@@ -33,42 +33,39 @@ - - struct display { - struct wl_display *display; -+ struct wl_registry *registry; - struct wl_compositor *compositor; - struct wl_shell *shell; - struct wl_shell_surface *shell_surface; - struct wl_surface *surface; - unsigned int ref_count; - int event_fd; -- unsigned int event_mask; - }; - - static struct display *g_display; - - static void --display_handle_global( -- struct wl_display *display, -- uint32_t id, -- const char *interface, -- uint32_t version, -- void *data -+registry_handle_global( -+ void *data, -+ struct wl_registry *registry, -+ uint32_t id, -+ const char *interface, -+ uint32_t version - ) - { - struct display * const d = data; - - if (strcmp(interface, "wl_compositor") == 0) -- d->compositor = wl_display_bind(display, id, &wl_compositor_interface); -+ d->compositor = -+ wl_registry_bind(registry, id, &wl_compositor_interface, 1); - else if (strcmp(interface, "wl_shell") == 0) -- d->shell = wl_display_bind(display, id, &wl_shell_interface); -+ d->shell = wl_registry_bind(registry, id, &wl_shell_interface, 1); - } - --static int --event_mask_update(uint32_t mask, void *data) --{ -- struct display * const d = data; -- -- d->event_mask = mask; -- return 0; --} -+static const struct wl_registry_listener registry_listener = { -+ registry_handle_global, -+ NULL, -+}; - - static VADisplay - va_open_display_wayland(void) -@@ -91,9 +88,10 @@ va_open_display_wayland(void) - return NULL; - } - wl_display_set_user_data(d->display, d); -- wl_display_add_global_listener(d->display, display_handle_global, d); -- d->event_fd = wl_display_get_fd(d->display, event_mask_update, d); -- wl_display_iterate(d->display, d->event_mask); -+ d->registry = wl_display_get_registry(d->display); -+ wl_registry_add_listener(d->registry, ®istry_listener, d); -+ d->event_fd = wl_display_get_fd(d->display); -+ wl_display_dispatch(d->display); - - d->ref_count = 1; - g_display = d; -@@ -182,6 +180,7 @@ va_put_surface_wayland( - dst_rect->x, dst_rect->y, dst_rect->width, dst_rect->height - ); - -+ wl_surface_commit(d->surface); - wl_display_flush(d->display); - return VA_STATUS_SUCCESS; - } -diff --git a/test/putsurface/putsurface_wayland.c b/test/putsurface/putsurface_wayland.c -index 3e1d495..b93334d 100644 ---- a/test/putsurface/putsurface_wayland.c -+++ b/test/putsurface/putsurface_wayland.c -@@ -102,7 +102,7 @@ struct display { - struct wl_display *display; - struct wl_compositor *compositor; - struct wl_shell *shell; -- uint32_t mask; -+ struct wl_registry *registry; - int event_fd; - }; - -@@ -153,7 +153,7 @@ va_put_surface( - if (wl_drawable->redraw_pending) { - wl_display_flush(d->display); - while (wl_drawable->redraw_pending) -- wl_display_iterate(wl_drawable->display, WL_DISPLAY_READABLE); -+ wl_display_dispatch(wl_drawable->display); - } - - va_status = vaGetSurfaceBufferWl(va_dpy, va_surface, VA_FRAME_PICTURE, &buffer); -@@ -169,35 +169,33 @@ va_put_surface( - wl_display_flush(d->display); - wl_drawable->redraw_pending = 1; - callback = wl_surface_frame(wl_drawable->surface); -+ wl_surface_commit(wl_drawable->surface); - wl_callback_add_listener(callback, &frame_callback_listener, wl_drawable); - return VA_STATUS_SUCCESS; - } - - static void --display_handle_global( -- struct wl_display *display, -- uint32_t id, -- const char *interface, -- uint32_t version, -- void *data -+registry_handle_global( -+ void *data, -+ struct wl_registry *registry, -+ uint32_t id, -+ const char *interface, -+ uint32_t version - ) - { - struct display * const d = data; - - if (strcmp(interface, "wl_compositor") == 0) -- d->compositor = wl_display_bind(display, id, &wl_compositor_interface); -+ d->compositor = -+ wl_registry_bind(registry, id, &wl_compositor_interface, 1); - else if (strcmp(interface, "wl_shell") == 0) -- d->shell = wl_display_bind(display, id, &wl_shell_interface); -+ d->shell = wl_registry_bind(registry, id, &wl_shell_interface, 1); - } - --static int --event_mask_update(uint32_t mask, void *data) --{ -- struct display * const d = data; -- -- d->mask = mask; -- return 0; --} -+static const struct wl_registry_listener registry_listener = { -+ registry_handle_global, -+ NULL, -+}; - - static void * - open_display(void) -@@ -213,9 +211,10 @@ open_display(void) - return NULL; - - wl_display_set_user_data(d->display, d); -- wl_display_add_global_listener(d->display, display_handle_global, d); -- d->event_fd = wl_display_get_fd(d->display, event_mask_update, d); -- wl_display_iterate(d->display, d->mask); -+ d->registry = wl_display_get_registry(d->display); -+ wl_registry_add_listener(d->registry, ®istry_listener, d); -+ d->event_fd = wl_display_get_fd(d->display); -+ wl_display_dispatch(d->display); - return d->display; - } - -@@ -298,9 +297,6 @@ check_window_event( - if (check_event == 0) - return 0; - -- if (!(d->mask & WL_DISPLAY_READABLE)) -- return 0; -- - tv.tv_sec = 0; - tv.tv_usec = 0; - do { -@@ -313,7 +309,7 @@ check_window_event( - break; - } - if (retval == 1) -- wl_display_iterate(d->display, WL_DISPLAY_READABLE); -+ wl_display_dispatch(d->display); - } while (retval > 0); - - #if 0 -diff --git a/va/wayland/va_wayland_drm.c b/va/wayland/va_wayland_drm.c -index 30c3953..d292316 100644 ---- a/va/wayland/va_wayland_drm.c -+++ b/va/wayland/va_wayland_drm.c -@@ -44,6 +44,7 @@ typedef struct va_wayland_drm_context { - struct va_wayland_context base; - void *handle; - struct wl_drm *drm; -+ struct wl_registry *registry; - void *drm_interface; - unsigned int is_authenticated : 1; - } VADisplayContextWaylandDRM; -@@ -142,6 +143,28 @@ va_wayland_drm_destroy(VADisplayContextP pDisplayContext) - } - } - -+static void -+registry_handle_global( -+ void *data, -+ struct wl_registry *registry, -+ uint32_t id, -+ const char *interface, -+ uint32_t version -+) -+{ -+ struct va_wayland_drm_context *wl_drm_ctx = data; -+ -+ if (strcmp(interface, "wl_drm") == 0) { -+ wl_drm_ctx->drm = -+ wl_registry_bind(wl_drm_ctx->registry, id, wl_drm_ctx->drm_interface, 1); -+ } -+} -+ -+static const struct wl_registry_listener registry_listener = { -+ registry_handle_global, -+ NULL, -+}; -+ - bool - va_wayland_drm_create(VADisplayContextP pDisplayContext) - { -@@ -168,14 +191,6 @@ va_wayland_drm_create(VADisplayContextP pDisplayContext) - drm_state->auth_type = 0; - ctx->drm_state = drm_state; - -- id = wl_display_get_global(ctx->native_dpy, "wl_drm", 1); -- if (!id) { -- wl_display_roundtrip(ctx->native_dpy); -- id = wl_display_get_global(ctx->native_dpy, "wl_drm", 1); -- if (!id) -- return false; -- } -- - wl_drm_ctx->handle = dlopen(LIBWAYLAND_DRM_NAME, RTLD_LAZY|RTLD_LOCAL); - if (!wl_drm_ctx->handle) - return false; -@@ -185,8 +200,14 @@ va_wayland_drm_create(VADisplayContextP pDisplayContext) - if (!wl_drm_ctx->drm_interface) - return false; - -- wl_drm_ctx->drm = -- wl_display_bind(ctx->native_dpy, id, wl_drm_ctx->drm_interface); -+ wl_drm_ctx->registry = wl_display_get_registry(ctx->native_dpy); -+ wl_registry_add_listener(wl_drm_ctx->registry, ®istry_listener, wl_drm_ctx); -+ wl_display_roundtrip(ctx->native_dpy); -+ -+ /* registry_handle_global should have been called by the -+ * wl_display_roundtrip above -+ */ -+ - if (!wl_drm_ctx->drm) - return false; - -diff --git a/va/wayland/va_wayland_emgd.c b/va/wayland/va_wayland_emgd.c -index 73e6802..cb885d1 100644 ---- a/va/wayland/va_wayland_emgd.c -+++ b/va/wayland/va_wayland_emgd.c -@@ -40,6 +40,7 @@ typedef struct va_wayland_emgd_context { - struct wl_emgd *emgd; - void *emgd_interface; - unsigned int is_created : 1; -+ struct wl_registry *registry; - } VADisplayContextWaylandEMGD; - - static inline void -@@ -86,6 +87,28 @@ va_wayland_emgd_destroy(VADisplayContextP pDisplayContext) - } - } - -+static void -+registry_handle_global( -+ void *data, -+ struct wl_registry *registry, -+ uint32_t id, -+ const char *interface, -+ uint32_t version -+) -+{ -+ VADisplayContextWaylandEMGD *wl_emgd_ctx = data; -+ -+ if (strcmp(interface, "wl_emgd") == 0) { -+ wl_emgd_ctx->emgd = -+ wl_registry_bind(registry, id, wl_emgd_ctx->emgd_interface, 1); -+ } -+} -+ -+static const struct wl_registry_listener registry_listener = { -+ registry_handle_global, -+ NULL, -+}; -+ - bool - va_wayland_emgd_create(VADisplayContextP pDisplayContext) - { -@@ -112,14 +135,6 @@ va_wayland_emgd_create(VADisplayContextP pDisplayContext) - drm_state->auth_type = 0; - ctx->drm_state = drm_state; - -- id = wl_display_get_global(ctx->native_dpy, "wl_emgd", 1); -- if (!id) { -- wl_display_roundtrip(ctx->native_dpy); -- id = wl_display_get_global(ctx->native_dpy, "wl_emgd", 1); -- if (!id) -- return false; -- } -- - wl_emgd_ctx->handle = dlopen(LIBWAYLAND_EMGD_NAME, RTLD_LAZY|RTLD_LOCAL); - if (!wl_emgd_ctx->handle) - return false; -@@ -129,8 +144,13 @@ va_wayland_emgd_create(VADisplayContextP pDisplayContext) - if (!wl_emgd_ctx->emgd_interface) - return false; - -- wl_emgd_ctx->emgd = -- wl_display_bind(ctx->native_dpy, id, wl_emgd_ctx->emgd_interface); -+ wl_emgd_ctx->registry = wl_display_get_registry(ctx->native_dpy); -+ wl_registry_add_listener(wl_emgd_ctx->registry, ®istry_listener, wl_emgd_ctx); -+ wl_display_roundtrip(ctx->native_dpy); -+ -+ /* registry_handle_global should have been called by the -+ * wl_display_roundtrip above -+ */ - if (!wl_emgd_ctx->emgd) - return false; - return true; --- -cgit v0.9.0.2-2-gbebe diff --git a/libva.spec b/libva.spec index 16624be..efe386a 100644 --- a/libva.spec +++ b/libva.spec @@ -1,14 +1,12 @@ Summary: VAAPI (Video Acceleration API) Summary(pl.UTF-8): VAAPI (Video Acceleration API) - API akceleracji filmów Name: libva -Version: 1.1.0 +Version: 1.1.1 Release: 1 License: MIT Group: Libraries Source0: http://www.freedesktop.org/software/vaapi/releases/libva/%{name}-%{version}.tar.bz2 -# Source0-md5: 51bb3b8de1de14ea036f68ef5065a932 -Patch0: %{name}-am.patch -Patch1: %{name}-wayland.patch +# Source0-md5: cd5cc1ce37d6fc6f991ef579ac81d891 URL: http://www.freedesktop.org/wiki/Software/vaapi BuildRequires: Mesa-libEGL-devel BuildRequires: Mesa-libGL-devel @@ -273,8 +271,6 @@ Programy testowe i przykładowe do VAAPI. %prep %setup -q -%patch0 -p1 -%patch1 -p1 %build %{__libtoolize} -- 2.44.0