Fix intervalometer flickering: implement proper ramping + IDS SDK exposure query

- Fixed instant exposure jumps causing visible flickering
- Implemented proper gradual ramping using ramp_step variable
- Added IDS uEye SDK integration for accurate exposure range query
- Added hcam property to idsueyesrc to expose camera handle
- Updated intervalometer to query on first frame when camera is ready
- Added comprehensive debug documentation with tuning guide

For dawn/dusk time-lapse, use:
  ramp-rate=vslow update-interval=1000
This commit is contained in:
yair
2025-11-17 13:48:02 +02:00
parent 448e9bc5b4
commit 9330477e16
5 changed files with 599 additions and 37 deletions

View File

@@ -77,7 +77,8 @@ enum
PROP_GAIN,
PROP_AUTO_EXPOSURE,
PROP_AUTO_GAIN,
PROP_GAIN_BOOST
PROP_GAIN_BOOST,
PROP_HCAM
};
#define DEFAULT_PROP_CAMERA_ID 0
@@ -187,6 +188,10 @@ gst_idsueyesrc_class_init (GstIdsueyeSrcClass * klass)
g_param_spec_boolean ("gain-boost", "Gain Boost",
"Enable hardware gain boost", DEFAULT_PROP_GAIN_BOOST,
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
g_object_class_install_property (gobject_class, PROP_HCAM,
g_param_spec_pointer ("hcam", "Camera Handle",
"IDS uEye camera handle (HIDS) - read-only, available after start",
(GParamFlags) (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)));
}
static void
@@ -426,6 +431,10 @@ gst_idsueyesrc_get_property (GObject * object, guint property_id,
g_value_set_boolean (value, src->gain_boost);
}
break;
case PROP_HCAM:
/* Return the camera handle as a pointer */
g_value_set_pointer (value, (gpointer)(uintptr_t)src->hCam);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;