summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAustin Yuan <shengquan.yuan@intel.com>2009-06-19 03:30:16 +0800
committerAustin Yuan <shengquan.yuan@intel.com>2009-06-19 03:30:16 +0800
commit71b5fec133c15cf4b2af641f3b1c387e17aadc56 (patch)
tree88db22d981c69cfa51b120fbd1ffbd7786f29ab4
parent0068a944932eeb5c7757b124854c6fdbaf2918c9 (diff)
downloadlibva-71b5fec133c15cf4b2af641f3b1c387e17aadc56.tar.gz
refine vaCreateSurfaceFromMrstV4L2Buf to vaCreateSurfaceFromV4L2Buf to make it more generic
Signed-off-by: Austin Yuan <shengquan.yuan@intel.com>
-rw-r--r--src/va.c25
-rwxr-xr-xsrc/va_backend.h20
2 files changed, 17 insertions, 28 deletions
diff --git a/src/va.c b/src/va.c
index 1473f38..7b172fe 100644
--- a/src/va.c
+++ b/src/va.c
@@ -34,6 +34,8 @@
#include <dlfcn.h>
#include <unistd.h>
+#include <linux/videodev2.h>
+
#define VA_STR_VERSION VA_BUILD_DATE VA_BUILD_GIT
#define VA_MAJOR_VERSION 0
@@ -1242,29 +1244,22 @@ VAStatus vaCreateSurfaceFromCIFrame (
}
-VAStatus vaCreateSurfaceFromMrstV4L2Buf(
+VAStatus vaCreateSurfaceFromV4L2Buf(
VADisplay dpy,
- unsigned int width,
- unsigned int height,
- unsigned int size,
- unsigned int fourcc,
- unsigned int luma_stride,
- unsigned int chroma_u_stride,
- unsigned int chroma_v_stride,
- unsigned int luma_offset,
- unsigned int chroma_u_offset,
- unsigned int chroma_v_offset,
- VASurfaceID *surface /* out */
+ int v4l2_fd, /* file descriptor of V4L2 device */
+ struct v4l2_format *v4l2_fmt, /* format of V4L2 */
+ struct v4l2_buffer *v4l2_buf, /* V4L2 buffer */
+ VASurfaceID *surface /* out */
)
{
VADriverContextP ctx;
CHECK_DISPLAY(dpy);
ctx = CTX(dpy);
- TRACE(vtable.vaCreateSurfaceFromMrstV4L2Buf);
+ TRACE(vtable.vaCreateSurfaceFromV4L2Buf);
- if (ctx->vtable.vaCreateSurfaceFromMrstV4L2Buf)
- return ctx->vtable.vaCreateSurfaceFromMrstV4L2Buf( ctx, width, height, size, fourcc, luma_stride, chroma_u_stride, chroma_v_stride, luma_offset, chroma_u_offset, chroma_v_offset, surface );
+ if (ctx->vtable.vaCreateSurfaceFromV4L2Buf)
+ return ctx->vtable.vaCreateSurfaceFromV4L2Buf( ctx, v4l2_fd, v4l2_fmt, v4l2_buf, surface );
else
return VA_STATUS_ERROR_UNKNOWN;
}
diff --git a/src/va_backend.h b/src/va_backend.h
index fee5181..f8456ad 100755
--- a/src/va_backend.h
+++ b/src/va_backend.h
@@ -38,6 +38,7 @@
#endif
#include <stdlib.h>
+#include <linux/videodev2.h>
typedef struct VADriverContext *VADriverContextP;
@@ -382,19 +383,12 @@ struct VADriverVTable
);
- VAStatus (*vaCreateSurfaceFromMrstV4L2Buf) (
- VADriverContextP ctx,
- unsigned int width,
- unsigned int height,
- unsigned int size,
- unsigned int fourcc,
- unsigned int luma_stride,
- unsigned int chroma_u_stride,
- unsigned int chroma_v_stride,
- unsigned int luma_offset,
- unsigned int chroma_u_offset,
- unsigned int chroma_v_offset,
- VASurfaceID *surface /* out */
+ VAStatus (*vaCreateSurfaceFromV4L2Buf) (
+ VADriverContextP ctx,
+ int v4l2_fd, /* file descriptor of V4L2 device */
+ struct v4l2_format *v4l2_fmt, /* format of V4L2 */
+ struct v4l2_buffer *v4l2_buf, /* V4L2 buffer */
+ VASurfaceID *surface /* out */
);
VAStatus (*vaCopySurfaceToBuffer) (