Add vaPutSurfaceBuf for Android
diff --git a/va/android/va_android.c b/va/android/va_android.c
index 687b86d..c7176c9 100644
--- a/va/android/va_android.c
+++ b/va/android/va_android.c
@@ -186,3 +186,31 @@
                                    destx, desty, destw, desth,
                                    cliprects, number_cliprects, flags );
 }
+
+VAStatus vaPutSurfaceBuf (
+    VADisplay dpy,
+    VASurfaceID surface,
+    Drawable draw, /* Android Surface/Window */
+    unsigned char* data,
+    int* data_len,
+    short srcx,
+    short srcy,
+    unsigned short srcw,
+    unsigned short srch,
+    short destx,
+    short desty,
+    unsigned short destw,
+    unsigned short desth,
+    VARectangle *cliprects, /* client supplied clip list */
+    unsigned int number_cliprects, /* number of clip rects in the clip list */
+    unsigned int flags /* de-interlacing flags */
+)
+{
+  VADriverContextP ctx;
+
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  return ctx->vtable.vaPutSurfaceBuf( ctx, surface, draw, data, data_len, srcx, srcy, srcw, srch,
+				      destx, desty, destw, desth, cliprects, number_cliprects, flags );
+}
diff --git a/va/va_android.h b/va/va_android.h
index 176c258..eefe4f4 100644
--- a/va/va_android.h
+++ b/va/va_android.h
@@ -41,6 +41,24 @@
     unsigned int flags /* PutSurface flags */
 );
 
+VAStatus vaPutSurfaceBuf (
+	VADriverContextP ctx,
+               VASurfaceID surface,
+               Drawable draw, /* X Drawable */
+               unsigned char* data,
+                int* data_len,
+                short srcx,
+                short srcy,
+                unsigned short srcw,
+                unsigned short srch,
+                short destx,
+                short desty,
+                unsigned short destw,
+                unsigned short desth,
+                VARectangle *cliprects, /* client supplied clip list */
+                unsigned int number_cliprects, /* number of clip rects in the clip list */
+                unsigned int flags /* de-interlacing flags */
+	);
 #ifdef __cplusplus
 }
 #endif
diff --git a/va/va_backend.h b/va/va_backend.h
index 25dfeed..a857857 100644
--- a/va/va_backend.h
+++ b/va/va_backend.h
@@ -193,6 +193,25 @@
 		unsigned int flags /* de-interlacing flags */
 	);
 
+	VAStatus (*vaPutSurfaceBuf) (
+		VADriverContextP ctx,
+                VASurfaceID surface,
+                Drawable draw, /* X Drawable */
+                unsigned char* data,
+                int* data_len,
+                short srcx,
+                short srcy,
+                unsigned short srcw,
+                unsigned short srch,
+                short destx,
+                short desty,
+                unsigned short destw,
+                unsigned short desth,
+		VARectangle *cliprects, /* client supplied clip list */
+		unsigned int number_cliprects, /* number of clip rects in the clip list */
+                unsigned int flags /* de-interlacing flags */
+	);
+
 	VAStatus (*vaQueryImageFormats) (
 		VADriverContextP ctx,
 		VAImageFormat *format_list,        /* out */