Hi.
I'm trying run application that depends on Xv, it runs on eMenlow Pulsbo
HW. I
tried to run the XV testcode from attached file zvmon.c, but it returns an
error.
Is there another driver that needs to be installed to get XvPutVideo
support?
I used XvPutVideo in ati graphic drivers.
Best Regards.
Steven.
############################################################################
##########################
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
#include <X11/extensions/Xv.h>
#include <X11/extensions/Xvlib.h>
#define GUID_YUV12_PLANAR 0x32315659
int main (int argc, char* argv[])
{
Display *dpy;
int screen;
XVisualInfo vinfo;
XSetWindowAttributes xswa;
unsigned long mask;
unsigned int p_version, p_release, p_request_base, p_event_base,
p_error_base;
int p_num_adaptors;
XvAdaptorInfo *ai;
int xv_port = -1;
int ret, x, y, w, h, b, d;
Window window, root;
GC gc;
XEvent event;
if ((dpy = XOpenDisplay(NULL)) == NULL){
fprintf(stderr, "Cannot open Display.\n");
exit(-1);
}
screen = DefaultScreen(dpy);
#if 1 //kscho
if (!XMatchVisualInfo(dpy, screen, 24, TrueColor, &vinfo)) {
#else
if (!XMatchVisualInfo(dpy, screen, 16, TrueColor, &vinfo)
&& !XMatchVisualInfo(dpy, screen, 15, TrueColor, &vinfo)){
#endif
fprintf(stderr, "Cannot find the visual (15bpp or 16bpp).\n");
exit(-1);
}
xswa.colormap = XCreateColormap(dpy, DefaultRootWindow(dpy),
vinfo.visual, AllocNone);
xswa.event_mask = StructureNotifyMask | ExposureMask;
xswa.background_pixel = 0;
xswa.border_pixel = 0;
mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask;
window = XCreateWindow(dpy, DefaultRootWindow(dpy),
0, 0, 640, 480, 0, vinfo.depth,
InputOutput, vinfo.visual, mask, &xswa);
gc = XCreateGC(dpy, window, 0, 0);
XStoreName(dpy, window, "ZV");
XSetIconName(dpy, window, "ZV");
XSelectInput(dpy, window, StructureNotifyMask);
XMapWindow(dpy, window);
XSync(dpy, 1);
if ((ret = XvQueryExtension(dpy, &p_version, &p_release, &p_request_base,
&p_event_base, &p_error_base)) != Success){
fprintf(stderr, "Cannot find XV Extention.\n");
exit(-1);
}
if ((ret = XvQueryAdaptors(dpy, DefaultRootWindow(dpy), &p_num_adaptors,
&ai)) != Success){
fprintf(stderr, "Cannot find XV adaptor.\n");
exit(-1);
}
if (p_num_adaptors == 0){
fprintf(stderr, "Cannot find XV adaptor.\n");
exit(-1);
}
xv_port = ai[0].base_id;
XGetGeometry(dpy, window, &root, &x, &y, &w, &h, &b, &d);
if (XvPutVideo(dpy, xv_port, window, gc, 0, 0, 720, 480, x, y, w, h) !=
Success){
printf("XvPutVideo failed.\n");
exit(-1);
}
XFlush(dpy);
getchar();
}
---------------------------------------------------------------------
6F Lotte IT Castle II 550-1 Gasan-dong,
Geumcheon-gu, Seoul, 153-768, Korea
Research Engineer/R&D software Team
Tel: 82-2-890-1657(Direct)
FAX:02-890-1639
_______________________________________________
Moblin dev Mailing List
[email protected]
To manage or unsubscribe from this mailing list visit:
https://lists.moblin.org/mailman/listinfo/dev or your user account on
http://moblin.org once logged in.
For more information on the Moblin Developer Mailing lists visit:
http://moblin.org/community/mailing-lists