Commit 01d2fa69 authored by Ren Zhaohan's avatar Ren Zhaohan

remove udev

parent 94b49e9a
...@@ -8,8 +8,7 @@ include $(CLEAR_VARS) ...@@ -8,8 +8,7 @@ include $(CLEAR_VARS)
LOCAL_SRC_FILES := \ LOCAL_SRC_FILES := \
va.c \ va.c \
va_trace.c \ va_trace.c \
android/va_android.c \ android/va_android.c
android/drmtest.c \
LOCAL_CFLAGS += -DHAVE_CONFIG_H \ LOCAL_CFLAGS += -DHAVE_CONFIG_H \
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
#include "va.h" #include "va.h"
#include "va_backend.h" #include "va_backend.h"
#include "va_android.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 <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdarg.h> #include <stdarg.h>
...@@ -43,6 +43,35 @@ ...@@ -43,6 +43,35 @@
static VADisplayContextP pDisplayContexts = NULL; 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 ( static int va_DisplayContextIsValid (
VADisplayContextP pDisplayContext VADisplayContextP pDisplayContext
...@@ -103,41 +132,24 @@ static VAStatus va_DisplayContextGetDriverName ( ...@@ -103,41 +132,24 @@ static VAStatus va_DisplayContextGetDriverName (
}; };
memset(dri_state, 0, sizeof(*dri_state)); 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) { if (dri_state->fd < 0) {
fprintf(stderr,"can't open DRM devices\n"); fprintf(stderr,"can't open DRM devices\n");
return VA_STATUS_ERROR_UNKNOWN; return VA_STATUS_ERROR_UNKNOWN;
} }
if ((driver_name_env = getenv("LIBVA_DRIVER_NAME")) != NULL if ((driver_name_env = getenv("LIBVA_DRIVER_NAME")) != NULL
&& geteuid() == getuid()) { && geteuid() == getuid()) {
/* don't allow setuid apps to use LIBVA_DRIVER_NAME */ /* don't allow setuid apps to use LIBVA_DRIVER_NAME */
*driver_name = strdup(driver_name_env); *driver_name = strdup(driver_name_env);
return VA_STATUS_SUCCESS; return VA_STATUS_SUCCESS;
} else { /* TBD: other vendor driver names */ } else { /* TBD: other vendor driver names */
int i = 0; vendor_id = devices[0].vendor_id;
device_id = devices[0].device_id;
while (devices[i].device_id != 0) { *driver_name = strdup(devices[0].driver_name);
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;
}
} }
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; dri_state->driConnectedFlag = VA_DUMMY;
return VA_STATUS_SUCCESS; return VA_STATUS_SUCCESS;
......
...@@ -350,7 +350,7 @@ VAStatus vaInitialize ( ...@@ -350,7 +350,7 @@ VAStatus vaInitialize (
{ {
vaStatus = va_openDriver(dpy, driver_name); vaStatus = va_openDriver(dpy, driver_name);
va_infoMessage("va_openDriver() returns %d\n", vaStatus); va_infoMessage("va_openDriver() returns %d\n", vaStatus);
*major_version = VA_MAJOR_VERSION; *major_version = VA_MAJOR_VERSION;
*minor_version = VA_MINOR_VERSION; *minor_version = VA_MINOR_VERSION;
} }
......
...@@ -14,8 +14,8 @@ VADisplay vaGetDisplay ( ...@@ -14,8 +14,8 @@ VADisplay vaGetDisplay (
); );
#if ANDROID #if ANDROID
#include <ui/Surface.h> //#include <ui/Surface.h>
class Surface; //class Surface;
/* /*
* Output rendering * Output rendering
...@@ -28,7 +28,7 @@ class Surface; ...@@ -28,7 +28,7 @@ class Surface;
VAStatus vaPutSurface ( VAStatus vaPutSurface (
VADisplay dpy, VADisplay dpy,
VASurfaceID surface, VASurfaceID surface,
Surface *draw, /* Android Window/Surface */ void *draw, /* Android Window/Surface */
short srcx, short srcx,
short srcy, short srcy,
unsigned short srcw, unsigned short srcw,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment