void print_video_mode_info( dc1394camera_t *camera, dc1394video_mode_t mode) { int j; dc1394error_t err; printf("Mode: "); print_video_mode(mode); printf("\n"); if((mode == DC1394_VIDEO_MODE_FORMAT7_0) || (mode == DC1394_VIDEO_MODE_FORMAT7_1) || (mode == DC1394_VIDEO_MODE_FORMAT7_2) || (mode == DC1394_VIDEO_MODE_FORMAT7_3) || (mode == DC1394_VIDEO_MODE_FORMAT7_4) || (mode == DC1394_VIDEO_MODE_FORMAT7_5) || (mode == DC1394_VIDEO_MODE_FORMAT7_6) || (mode == DC1394_VIDEO_MODE_FORMAT7_7)) { dc1394format7mode_t f7mode; err=dc1394_format7_get_mode_info(camera, mode, &f7mode); if(err) { DC1394_ERR(err,"Could not format 7 information"); } else { printf( "Image Sizes:\n" " size = %ix%i\n" " max = %ix%i\n" " pixels = %i\n", f7mode.size_x, f7mode.size_y, f7mode.max_size_x, f7mode.max_size_y, f7mode.pixnum); printf( "Color:\n"); for(j=0; j<f7mode.color_codings.num; j++) { printf(" [%d] coding = ", j); print_color_coding(f7mode.color_codings.codings[j]); printf("\n"); } printf(" filter = "); print_color_filter(f7mode.color_filter); printf("\n"); } } else { dc1394framerates_t framerates; err=dc1394_video_get_supported_framerates(camera,mode,&framerates); if(err) { DC1394_ERR(err,"Could not get frame rates"); } else { printf("Frame Rates:\n"); for(j = 0; j < framerates.num; j++) { uint32_t rate = framerates.framerates[j]; float f_rate; dc1394_framerate_as_float(rate,&f_rate); printf(" [%d] rate = %f\n",j,f_rate ); } } } }
static void s_copy_frame(dc1394video_frame_t *vframe, capture_frame_t *frame) { dc1394error_t err; switch (frame->format) { case CAPTURE_FRAME_FORMAT_GRAY: err = dc1394_convert_to_MONO8(vframe->image, (uint8_t *)frame->raw_data, vframe->size[0], vframe->size[1], vframe->yuv_byte_order, vframe->color_coding, vframe->data_depth); DC1394_ERR(err, "conversion failed"); break; case CAPTURE_FRAME_FORMAT_RGB: err = dc1394_convert_to_RGB8(vframe->image, (uint8_t *)frame->raw_data, vframe->size[0], vframe->size[1], vframe->yuv_byte_order, vframe->color_coding, vframe->data_depth); DC1394_ERR(err, "conversion failed"); default: ; } frame->timestamp = vframe->timestamp; }
static void s_flush_buffer(capture_t *cap, const int index) { dc1394camera_t *cam = cap->cameras[index]; dc1394switch_t pwr = DC1394_OFF; dc1394video_frame_t *frame = NULL; dc1394_video_get_transmission(cam, &pwr); if (pwr == DC1394_ON) { dc1394_video_set_transmission(cam, DC1394_OFF); } while (dc1394_capture_dequeue(cam, DC1394_CAPTURE_POLICY_POLL, &frame), frame != NULL) { dc1394error_t err; err = dc1394_capture_enqueue(cam, frame); DC1394_ERR(err, "could not enqueue"); } }
/*----------------------------------------------------------------------- * Prints various information about the mode the camera is in *-----------------------------------------------------------------------*/ void of1394VideoGrabber::print_mode_info(dc1394video_mode_t mode ) { int j; printf("Mode: "); print_format(mode); printf("\n"); dc1394framerates_t framerates; dc1394error_t err; err=dc1394_video_get_supported_framerates(camera,mode,&framerates); DC1394_ERR(err,"Could not get frame rates"); printf("Frame Rates:\n"); for( j = 0; j < framerates.num; j++ ) { dc1394framerate_t rate = framerates.framerates[j]; float f_rate; dc1394_framerate_as_float(rate,&f_rate); printf(" [%d] rate = %f\n",j,f_rate ); } }