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

}
Example #2
0
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;
}
Example #3
0
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");
  }
}
Example #4
0
/*-----------------------------------------------------------------------
 *  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 );
    }
	
}