bool CvCaptureCAM_Aravis::open( int index ) { if(create(index)) { // fetch properties bounds pixelFormats = arv_camera_get_available_pixel_formats(camera, &pixelFormatsCnt); arv_camera_get_width_bounds(camera, &widthMin, &widthMax); arv_camera_get_height_bounds(camera, &heightMin, &heightMax); arv_camera_set_region(camera, 0, 0, widthMax, heightMax); if( (fpsAvailable = arv_camera_is_frame_rate_available(camera)) ) arv_camera_get_frame_rate_bounds(camera, &fpsMin, &fpsMax); if( (gainAvailable = arv_camera_is_gain_available(camera)) ) arv_camera_get_gain_bounds (camera, &gainMin, &gainMax); if( (exposureAvailable = arv_camera_is_exposure_time_available(camera)) ) arv_camera_get_exposure_time_bounds (camera, &exposureMin, &exposureMax); // get initial values pixelFormat = arv_camera_get_pixel_format(camera); exposure = exposureAvailable ? arv_camera_get_exposure_time(camera) : 0; gain = gainAvailable ? arv_camera_get_gain(camera) : 0; fps = arv_camera_get_frame_rate(camera); return startCapture(); } return false; }
void gst_aravis_init_camera (GstAravis *gst_aravis) { if (gst_aravis->camera != NULL) g_object_unref (gst_aravis->camera); gst_aravis->camera = arv_camera_new (gst_aravis->camera_name); gst_aravis->gain = arv_camera_get_gain(gst_aravis->camera); gst_aravis->gain_auto = arv_camera_is_gain_available(gst_aravis->camera); gst_aravis->exposure_time_us = arv_camera_get_exposure_time(gst_aravis->camera); if (arv_camera_get_exposure_time_auto(gst_aravis->camera) == ARV_AUTO_OFF) gst_aravis->exposure_auto = FALSE; else gst_aravis->exposure_auto = TRUE; arv_camera_get_region (gst_aravis->camera, &gst_aravis->offset_x, &gst_aravis->offset_y, NULL, NULL); arv_camera_get_binning (gst_aravis->camera, &gst_aravis->h_binning, &gst_aravis->v_binning); gst_aravis->payload = 0; }