+From 581e530bf98f253fea39ec9bfd9f3287acb1a8c6 Mon Sep 17 00:00:00 2001
+From: Timo Rothenpieler <timo@rothenpieler.org>
+Date: Sun, 20 Jan 2013 15:49:23 +0000
+Subject: [PATCH] Make vaapi decoder compatible with latest libva changes
+
+Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
+(cherry picked from commit dc4b64c97b82d4d590ccf7fa1c938435cc26d98e)
+Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
+---
+ modules/codec/avcodec/vaapi.c | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/modules/codec/avcodec/vaapi.c b/modules/codec/avcodec/vaapi.c
+index 893ea15..d8703a0 100644
+--- a/modules/codec/avcodec/vaapi.c
++++ b/modules/codec/avcodec/vaapi.c
+@@ -41,6 +41,11 @@
+ #include "va.h"
+ #include "copy.h"
+
++#ifndef VA_SURFACE_ATTRIB_SETTABLE
++#define vaCreateSurfaces(d, f, w, h, s, ns, a, na) \
++ vaCreateSurfaces(d, w, h, f, ns, s)
++#endif
++
+ #ifdef HAVE_AVCODEC_VAAPI
+
+ #include <vlc_xlib.h>
+@@ -258,8 +263,8 @@ static int CreateSurfaces( vlc_va_sys_t *p_va, void **pp_hw_ctx, vlc_fourcc_t *p
+
+ /* Create surfaces */
+ VASurfaceID pi_surface_id[p_va->i_surface_count];
+- if( vaCreateSurfaces( p_va->p_display, i_width, i_height, VA_RT_FORMAT_YUV420,
+- p_va->i_surface_count, pi_surface_id ) )
++ if( vaCreateSurfaces( p_va->p_display, VA_RT_FORMAT_YUV420, i_width, i_height,
++ pi_surface_id, p_va->i_surface_count, NULL, 0 ) )
+ {
+ for( int i = 0; i < p_va->i_surface_count; i++ )
+ p_va->p_surface[i].i_id = VA_INVALID_SURFACE;
+--
+1.7.10.4
+