Пример #1
0
void display_frame()
{
  if (!freeze && adaptor >= 0) {
    // copy into frame buffer for display
    for (int i = 0; i < numCameras; i++) {
      if (sync_display && i==0) {
        rgb2yuy2((unsigned char *) async_display_image->imageData,
                 frame_buffer + (i * frame_length),
                 (device_width * device_height));
      } else {
        rgb2yuy2((unsigned char *) iplImages[i]->imageData,
                 frame_buffer + (i * frame_length),
                 (device_width * device_height));
      }
   }

    xv_image =
      XvCreateImage(display, info[adaptor].base_id, format, 
		    (char*) frame_buffer,
                    device_width, device_height * numCameras);
    XvPutImage(display, info[adaptor].base_id, window, gc, xv_image, 0, 0,
               device_width, device_height * numCameras, 0, 0, width, height);

    xv_image = NULL;
  }

  XFlush(display);
}
Пример #2
0
void display_frames()
{
  uint32_t i;

  if(!freeze && adaptor>=0){
    for (i = 0; i < numCameras; i++) {
      if (!frames[i])
	continue;
      switch (res) {
      case DC1394_VIDEO_MODE_640x480_YUV411:
	iyu12yuy2( frames[i]->image,
		   (unsigned char *)(frame_buffer + (i * frame_length)),
		   (device_width*device_height) );
	break;

      case DC1394_VIDEO_MODE_320x240_YUV422:
      case DC1394_VIDEO_MODE_640x480_YUV422:
	memcpy( frame_buffer + (i * frame_length),
		frames[i]->image, device_width*device_height*2);
	break;

      case DC1394_VIDEO_MODE_640x480_RGB8:
	rgb2yuy2( frames[i]->image,
		  (unsigned char *) (frame_buffer + (i * frame_length)),
		  (device_width*device_height) );
	break;
      }
    }


    xv_image=XvCreateImage(display,info[adaptor].base_id,format,frame_buffer,
      device_width,device_height* numCameras);

    //xv_image=XvCreateImage(display,info[adaptor].base_id,format,frame_buffer,
    //			   device_width, device_height* numCameras);

    XvPutImage(display,info[adaptor].base_id,window,gc,xv_image,
	       0,0,device_width ,device_height * numCameras,
	       0,0,width,height);
    
    /*        XvPutImage(display,info[adaptor].base_id,window,gc,xv_image,
    	       0,0,device_width * numCameras, device_height ,
    	       0,0,width, height);*/
    /*XvPutImage(display,info[adaptor].base_id,window,gc,xv_image,
    	       0,0,device_width , device_height * numCameras,
    	       0,0,width, height);*/
	   
    xv_image=NULL;
  }
}