summaryrefslogtreecommitdiff
path: root/extra/libva
diff options
context:
space:
mode:
authorNicolás Reynolds <fauno@endefensadelsl.org>2013-05-07 22:31:25 -0300
committerNicolás Reynolds <fauno@endefensadelsl.org>2013-05-07 22:31:25 -0300
commit9f7fb9c12e84f20cd108b933f1a51e216f76cd98 (patch)
tree06520d9024b40745b94f02d0d3419386e6496863 /extra/libva
parent6cc893589a6bd208f2b7711f985e17df7a6df816 (diff)
parenta86ff663185661ee304bb1f6d00d982102dd706d (diff)
Merge branch 'master' of gparabola:abslibre-mips64el
Diffstat (limited to 'extra/libva')
-rw-r--r--extra/libva/PKGBUILD8
-rw-r--r--extra/libva/libva-1.1.0-wayland1.patch336
-rw-r--r--extra/libva/libva.install5
3 files changed, 340 insertions, 9 deletions
diff --git a/extra/libva/PKGBUILD b/extra/libva/PKGBUILD
index 2922dc84a..7781d7219 100644
--- a/extra/libva/PKGBUILD
+++ b/extra/libva/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 168381 2012-10-09 16:30:41Z ibiru $
+# $Id: PKGBUILD 182375 2013-04-09 18:35:29Z ioni $
# Maintainer : Ionut Biru <ibiru@archlinux.org>
pkgname=libva
-pkgver=1.1.0
-pkgrel=2
+pkgver=1.1.1
+pkgrel=1
pkgdesc="Video Acceleration (VA) API for Linux"
arch=('i686' 'x86_64')
url="http://freedesktop.org/wiki/Software/vaapi"
@@ -14,7 +14,7 @@ optdepends=('libva-vdpau-driver: vdpau back-end for nvidia'
'libva-intel-driver: back-end for intel cards')
options=('!libtool')
source=(http://www.freedesktop.org/software/vaapi/releases/$pkgname/$pkgname-$pkgver.tar.bz2)
-sha1sums=('af6e912ea86a6378992f5783390ab9cb8e5cadf9')
+sha1sums=('755e488677a196c9ac18b8c0d11aa2a56e050306')
build() {
cd "$pkgname-$pkgver"
diff --git a/extra/libva/libva-1.1.0-wayland1.patch b/extra/libva/libva-1.1.0-wayland1.patch
new file mode 100644
index 000000000..020981276
--- /dev/null
+++ b/extra/libva/libva-1.1.0-wayland1.patch
@@ -0,0 +1,336 @@
+--- libva-1.1.0.orig/configure.ac 2012-10-04 08:30:51.000000000 -0500
++++ libva-1.1.0/configure.ac 2013-03-05 14:20:21.109767813 -0500
+@@ -78,7 +78,7 @@
+ 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)
+--- libva-1.1.0.orig/test/common/va_display_wayland.c 2012-09-28 09:04:28.000000000 -0500
++++ libva-1.1.0/test/common/va_display_wayland.c 2013-03-05 15:06:59.082134052 -0500
+@@ -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 @@
+ 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, &registry_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 @@
+ 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;
+ }
+--- libva-1.1.0.orig/test/putsurface/putsurface_wayland.c 2012-09-28 09:04:28.000000000 -0500
++++ libva-1.1.0/test/putsurface/putsurface_wayland.c 2013-03-05 14:45:49.783865254 -0500
+@@ -102,7 +102,7 @@
+ 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 @@
+ 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 @@
+ 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 @@
+ 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, &registry_listener, d);
++ d->event_fd = wl_display_get_fd(d->display);
++ wl_display_dispatch(d->display);
+ return d->display;
+ }
+
+@@ -298,9 +297,6 @@
+ 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 @@
+ break;
+ }
+ if (retval == 1)
+- wl_display_iterate(d->display, WL_DISPLAY_READABLE);
++ wl_display_dispatch(d->display);
+ } while (retval > 0);
+
+ #if 0
+--- libva-1.1.0.orig/va/wayland/va_wayland_drm.c 2012-09-28 09:04:28.000000000 -0500
++++ libva-1.1.0/va/wayland/va_wayland_drm.c 2013-03-05 14:52:34.952330711 -0500
+@@ -44,6 +44,7 @@
+ 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 @@
+ }
+ }
+
++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 @@
+ 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 @@
+ 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, &registry_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;
+
+--- libva-1.1.0.orig/va/wayland/va_wayland_emgd.c 2012-09-28 09:04:28.000000000 -0500
++++ libva-1.1.0/va/wayland/va_wayland_emgd.c 2013-03-05 14:55:57.359895989 -0500
+@@ -40,6 +40,7 @@
+ struct wl_emgd *emgd;
+ void *emgd_interface;
+ unsigned int is_created : 1;
++ struct wl_registry *registry;
+ } VADisplayContextWaylandEMGD;
+
+ static inline void
+@@ -86,6 +87,28 @@
+ }
+ }
+
++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 @@
+ 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 @@
+ 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, &registry_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;
diff --git a/extra/libva/libva.install b/extra/libva/libva.install
deleted file mode 100644
index 4d8b8e24a..000000000
--- a/extra/libva/libva.install
+++ /dev/null
@@ -1,5 +0,0 @@
-post_upgrade() {
- if [ "$(vercmp $2 1.0.15-1)" -lt 0 ]; then
- echo 'Starting with libva version 1.0.15, the intel back-end is now in libva-driver-intel.'
- fi
-}