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

Reply via email to