summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRen Zhaohan <zhaohan.ren@intel.com>2010-05-04 15:56:25 +0800
committerRen Zhaohan <zhaohan.ren@intel.com>2010-05-04 15:56:25 +0800
commit01d2fa69930aae3a1b63acf4657843395cf1c095 (patch)
tree61e83c1b900a6cee3dddc98219f9f2a925cbc693
parent94b49e9a8880f7f00e7996d2c13096a775482808 (diff)
downloadlibva-01d2fa69930aae3a1b63acf4657843395cf1c095.tar.gz
remove udev
-rw-r--r--va/Android.mk3
-rw-r--r--va/android/va_android.c58
-rw-r--r--va/va.c2
-rw-r--r--va/va_android.h6
4 files changed, 40 insertions, 29 deletions
diff --git a/va/Android.mk b/va/Android.mk
index 1c49aa9..eb9967d 100644
--- a/va/Android.mk
+++ b/va/Android.mk
@@ -8,8 +8,7 @@ include $(CLEAR_VARS)
LOCAL_SRC_FILES := \
va.c \
va_trace.c \
- android/va_android.c \
- android/drmtest.c \
+ android/va_android.c
LOCAL_CFLAGS += -DHAVE_CONFIG_H \
diff --git a/va/android/va_android.c b/va/android/va_android.c
index 8c0a75e..5ccf998 100644
--- a/va/android/va_android.c
+++ b/va/android/va_android.c
@@ -26,7 +26,7 @@
#include "va.h"
#include "va_backend.h"
#include "va_android.h"
-#include "va_dricommon.h" /* needs some helper functions from this file */
+#include "x11/va_dricommon.h" /* needs some helper functions from this file */
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
@@ -43,6 +43,35 @@
static VADisplayContextP pDisplayContexts = NULL;
+static int open_device (char *dev_name)
+{
+ struct stat st;
+ int fd;
+
+ if (-1 == stat (dev_name, &st))
+ {
+ printf ("Cannot identify '%s': %d, %s\n",
+ dev_name, errno, strerror (errno));
+ return -1;
+ }
+
+ if (!S_ISCHR (st.st_mode))
+ {
+ printf ("%s is no device\n", dev_name);
+ return -1;
+ }
+
+ fd = open (dev_name, O_RDWR /* required */ | O_NONBLOCK, 0);
+
+ if (-1 == fd)
+ {
+ fprintf (stderr, "Cannot open '%s': %d, %s\n",
+ dev_name, errno, strerror (errno));
+ return -1;
+ }
+
+ return fd;
+}
static int va_DisplayContextIsValid (
VADisplayContextP pDisplayContext
@@ -103,41 +132,24 @@ static VAStatus va_DisplayContextGetDriverName (
};
memset(dri_state, 0, sizeof(*dri_state));
- dri_state->fd = drm_open_any(&vendor_id, &device_id);
+ dri_state->fd = open_device(DEVICE_NAME);
if (dri_state->fd < 0) {
fprintf(stderr,"can't open DRM devices\n");
return VA_STATUS_ERROR_UNKNOWN;
}
-
+
if ((driver_name_env = getenv("LIBVA_DRIVER_NAME")) != NULL
&& geteuid() == getuid()) {
/* don't allow setuid apps to use LIBVA_DRIVER_NAME */
*driver_name = strdup(driver_name_env);
return VA_STATUS_SUCCESS;
} else { /* TBD: other vendor driver names */
- int i = 0;
-
- while (devices[i].device_id != 0) {
- if ((devices[i].vendor_id == vendor_id) &&
- (devices[i].device_id == device_id))
- break;
- i++;
- }
-
- if (devices[i].device_id != 0)
- *driver_name = strdup(devices[i].driver_name);
- else {
- fprintf(stderr,"device (0x%04x:0x%04x) is not supported\n",
- vendor_id, device_id);
-
- return VA_STATUS_ERROR_UNKNOWN;
- }
+ vendor_id = devices[0].vendor_id;
+ device_id = devices[0].device_id;
+ *driver_name = strdup(devices[0].driver_name);
}
- printf("DRM device is opened, loading driver %s for device 0x%04x:0x%04x\n",
- driver_name, vendor_id, device_id);
-
dri_state->driConnectedFlag = VA_DUMMY;
return VA_STATUS_SUCCESS;
diff --git a/va/va.c b/va/va.c
index b91c588..c97b6cc 100644
--- a/va/va.c
+++ b/va/va.c
@@ -350,7 +350,7 @@ VAStatus vaInitialize (
{
vaStatus = va_openDriver(dpy, driver_name);
va_infoMessage("va_openDriver() returns %d\n", vaStatus);
-
+
*major_version = VA_MAJOR_VERSION;
*minor_version = VA_MINOR_VERSION;
}
diff --git a/va/va_android.h b/va/va_android.h
index bba85f7..3e050b8 100644
--- a/va/va_android.h
+++ b/va/va_android.h
@@ -14,8 +14,8 @@ VADisplay vaGetDisplay (
);
#if ANDROID
-#include <ui/Surface.h>
-class Surface;
+//#include <ui/Surface.h>
+//class Surface;
/*
* Output rendering
@@ -28,7 +28,7 @@ class Surface;
VAStatus vaPutSurface (
VADisplay dpy,
VASurfaceID surface,
- Surface *draw, /* Android Window/Surface */
+ void *draw, /* Android Window/Surface */
short srcx,
short srcy,
unsigned short srcw,