intervalometer: Remove hardcoded limits and add rate limiting

- Remove hardcoded exposure (0.85/1.24ms) and gain (0/52) limits
- Add automatic querying of camera capabilities on startup
- Query current exposure/gain settings from camera on reset
- Add update-interval property for rate limiting (default 100ms)
- Prevent algorithm from running at full framerate (750fps)
- Expand property ranges to support any camera capabilities
- Algorithm now fully automated and adapts to camera limits
This commit is contained in:
yair
2025-11-17 12:38:56 +02:00
parent 73fbbaa9fd
commit 934de5753b
2 changed files with 137 additions and 16 deletions

View File

@@ -70,6 +70,7 @@ struct _GstIntervalometer
GstIntervalometerRampRate ramp_rate;
gchar *log_file; /* CSV log file path */
gchar *camera_element_name; /* Name of upstream idsueyesrc element */
guint update_interval; /* Update interval in milliseconds */
/* Internal state */
GstElement *camera_src; /* Reference to upstream camera element */
@@ -80,6 +81,7 @@ struct _GstIntervalometer
guint64 frame_count; /* Number of frames processed */
GstClockTime start_time; /* Time when processing started */
GstClockTime last_update_time; /* Time of last algorithm update */
FILE *log_fp; /* Log file handle */
gboolean log_header_written; /* Whether CSV header has been written */