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); }
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; } }