406 Commits

Author SHA1 Message Date
yair
bc12e0ea13 Fix property getters to query hardware state instead of cached values
- PROP_AUTO_EXPOSURE now queries hardware using IS_GET_ENABLE_AUTO_SHUTTER
- PROP_AUTO_GAIN now queries hardware using IS_GET_ENABLE_AUTO_GAIN
- PROP_GAIN_BOOST now queries hardware using IS_GET_GAINBOOST

This ensures each camera reports its actual hardware state rather than
a shared cached value when properties are queried via camera_control.py
2025-11-16 05:21:09 +02:00
yair
b62451d80f Add IS_GET_GAINBOOST support to IDS uEye plugin
- Add gain-boost property to gstidsueyesrc (boolean)
- Implement is_SetGainBoost() API call in property setter and framerate/exposure function
- Add UDP control commands SET_GAIN_BOOST and GET_GAIN_BOOST
- Add --gain-boost command-line flag to launch-ids.py
- Update camera_control.py with get-gain-boost and set-gain-boost commands
- Change parameter defaults to None (exposure, framerate, gain) to respect INI file defaults
- Only set properties when explicitly provided by user - INI file is source of truth
2025-11-16 04:58:17 +02:00
yair
48f669f5c8 feat(idsueye): Add exposure range validation and query support
- Query camera's actual exposure range before setting exposure time
- Validate and clamp exposure values to supported min/max limits
- Log detailed information about range, requested vs actual values
- Add GET_EXPOSURE_RANGE command to UDP control interface
- Update Python control scripts with exposure range query support

This prevents IS_INVALID_EXPOSURE_TIME errors and ensures values are
always within the camera's capabilities. The exposure range varies by
framerate and sensor configuration.
2025-11-16 04:37:09 +02:00
yair
43878b36e2 add auto gain 2025-11-16 04:05:26 +02:00
yair
6654b99eab added auto exposure 2025-11-16 04:00:14 +02:00
yair
acbd8ec416 Add gain control support to IDS uEye camera driver
- Added 'gain' property to gstidsueyesrc element (0-100, 0=auto)
- Implemented hardware gain control using is_SetHardwareGain() API
- Added --gain/-g command-line argument to launch-ids.py
- Added SET_GAIN and GET_GAIN UDP control commands
- Updated STATUS command to include gain value
- Added get-gain and set-gain commands to camera_control.py test client
- Gain can be set at startup or adjusted dynamically during runtime
2025-11-16 03:54:29 +02:00
yair
00df62c305 Improve IDS uEye error handling with comprehensive error code mapping
- Replaced garbled is_GetError() output with human-readable error messages
- Added error code mapping for 25+ common IDS errors from uEye.h
- Enhanced camera initialization with detailed logging and context
- Error messages now include error code, name, description, and troubleshooting hints
- Added information about device/camera ID attempted and available camera count
- Example: Error 3 now shows 'IS_CANT_OPEN_DEVICE (3): Cannot open device - check if camera is connected and not in use. Camera/Device ID used: 99, Available cameras: 2'

Fixes issue where camera initialization failures showed cryptic characters instead of useful error information.
2025-11-16 03:25:33 +02:00
yair
cf0d7e14f1 ueye includes from 49.3.0 2025-11-16 03:24:41 +02:00
yair
8880dbf3cf Add display option and device-id support to launch-ids.py
- Added --display option for 1/4 sized preview window using autovideosink
- Added --camera-id and --device-id options for camera selection
- Added UDP control commands: SET_CAMERA_ID, GET_CAMERA_ID, SET_DEVICE_ID, GET_DEVICE_ID
- Updated GStreamer idsueyesrc element to support device-id property
- device-id uses IS_USE_DEVICE_ID flag for system enumeration
- camera-id continues to use user-definable ID (0 for first found)
- Updated STATUS command to include camera_id and device_id
2025-11-16 03:19:42 +02:00
yair
3349050849 Fix IDS uEye AOI issue with non-zero Y offset
- Re-validate AOI configuration before starting video capture
- Fixes 'Invalid buffer size' error when using Start Y > 0
- Query current AOI and re-set it to force SDK internal state update
- Tested with Start Y=0 and Start Y=500 - both work correctly
2025-11-14 19:11:55 +02:00
Joshua M. Doe
8a5478b344 niimaqdxsrc: show more verbose errors to applications 2022-02-25 10:55:00 -05:00
Joshua M. Doe
4836d595ce idsueyesrc: properly close camera handle if there's an error during opening and configuring 2022-02-25 10:55:00 -05:00
Joshua M. Doe
619ce5f132 niimaqdxsrc: add some non standard pixel format names 2022-02-25 10:55:00 -05:00
Joshua M. Doe
fec3ce5308 kayasrc: sync clock every second and use better clock
g_get_real_time() on Windows sometimes gives millisecond resolution.
Also grabbing framegrabber timestamp takes a non-insignificant amount of time,
so do it every second.
2022-02-25 10:55:00 -05:00
Joshua M. Doe
ac4a7b29e3 gentlsrc: add device-user-id property
This will search across all interfaces.
2022-02-25 10:55:00 -05:00
Joshua M. Doe
f3020dbf82 matroxsrc: show MIL error when failing to allocate digitizer 2022-02-25 10:55:00 -05:00
Joshua M. Doe
1bab9b907b gentlsrc: fix bug where two devices wouldn't be found on the same interface 2022-02-25 10:55:00 -05:00
Joshua M. Doe
260c09b1be gentlsrc: only send valid image data in case payload size has padding 2022-02-25 10:55:00 -05:00
Joshua M. Doe
ddae5b5105 gentlsrc: add Mono16, BayerGR16, BayerRG16 2022-02-25 10:55:00 -05:00
Joshua M. Doe
6c5cbad0ad gentlsrc: add support for FLIR Spinnaker cameras
This also required changing how we read values, as FLIR uses little
endian. Timestamps are handled differently as well.

We're even more overdue for moving to properly parse the XML, just a
matter of if we'll use the GenApi reference implementation or something
else like Aravis.
2022-02-25 10:55:00 -05:00
Joshua M. Doe
ddf2f6857e gentlsrc: check first for timestamp in nanoseconds
Then fallback to timestamp in ticks if needed.
2022-02-25 10:54:59 -05:00
Thor Tomasarson
6f84e34a1f pylonsrc: reduce repeated parameter writes 2022-02-25 10:14:28 -05:00
Thor Tomasarson
c64f9dda31 pylonsrc: the testimagesource should only be set if explicitly configured 2022-02-25 10:14:28 -05:00
Thor Tomasarson
ee440aa927 pylonsrc: add in the testimagesource parameter to allow for custom image source 2022-02-25 10:14:28 -05:00
Thor Tomasarson
8900eeb73c pylonsrc: the emulator does not have a DeviceSerialNumber 2022-02-25 10:14:28 -05:00
Thor Tomasarson
07f8711774 pylonsrc: log error codes as hexadecimal for clarity 2022-02-25 10:14:28 -05:00
AASanchezA
ba36bf6a38 bugfix: fix linux compilation for method g_utf8_to_ucs4 for gstidsueyesrc 2022-02-25 10:08:20 -05:00
Thies Möller
1417f0d330 gst-pylonsrc: add MaxTransferSize for USB3Vison devices
increasing MaxTransferSize allows to lower the system overhead
to receive video data in case of larger images
2022-01-25 09:14:51 -05:00
Joshua M. Doe
9e91e8afc9 gentlsrc: fix compiling on Linux
This plugin still needs a major refactor, and currently requires
modifications to support any Linux GenTL producers, at least the CTI
path.
2021-11-19 13:11:55 -05:00
Joshua M. Doe
81d806417d pleora: fix build for UNIX platforms
Tested on Jetson Nano.
2021-11-19 13:11:55 -05:00
Joshua M. Doe
f4511c042a gentl: Fix zlib path for Linux systems 2021-11-19 13:11:55 -05:00
Joshua M. Doe
02dd4126ac pleorasink: use async queues and improve debug messages 2021-11-19 13:11:55 -05:00
Joshua M. Doe
63295f7290 kayasrc: for Unix time metadata, sync against system clock every frame due to drift
Otherwise, over time, the framegrabber clock drifts from the system clock.
2021-11-19 13:11:55 -05:00
Joshua M. Doe
b705e93cb3 gentlsrc: don't throw error if we can't latch timestamp 2021-11-19 13:11:54 -05:00
Joshua M. Doe
de15005b2d gentlsrc: set attributes on every create function if the property was modified 2021-11-19 13:11:54 -05:00
Joshua M. Doe
32661673ab gentlsrc: set buffer offset from frame ID 2021-11-19 13:11:54 -05:00
Joshua M. Doe
8520bf83c9 gentlsrc: allow interface to be reopened in same process 2021-11-19 13:11:49 -05:00
Joshua M. Doe
872988255e gentlsrc: allow local or Local url, and show ZIP/XML file location in debug output 2021-09-21 15:55:14 -04:00
Joshua M. Doe
63731a3b6f gentlsrc: allow two interfaces of the same producer to be opened in one process
Need to make it producer specific, and allow for multiple devices on the same interface
2021-09-21 15:55:13 -04:00
Joshua M. Doe
766d2de7e5 gentlsrc: add attributes property for setting camera parameters
Right now it only works on register addresses and integer values
2021-09-21 15:55:13 -04:00
Joshua M. Doe
0068a0f4b0 gentlsrc: try again if we get a non-image payload type 2021-09-21 15:55:13 -04:00
Joshua M. Doe
92b43c3e0a gentlsrc: if GEV timestamp latch fails use previous value
This has been encountered with multiple instances using the same producer
2021-09-21 15:55:13 -04:00
Joshua M. Doe
dac5fe9232 gentlsrc: add several Basler-specific pixel formats 2021-09-21 15:55:13 -04:00
Joshua M. Doe
8e34238034 gentlsrc: add producer property to select between EVT and Basler
This is still a bandaid fix until we properly parse the XML files
2021-09-21 15:55:13 -04:00
Joshua M. Doe
765662aa82 gentlsrc: use GEV buffer timestamps if available for unix reference time 2021-09-21 15:55:13 -04:00
Joshua M. Doe
6c4eedde70 gentlsrc: show warning if buffer is incomplete
Should this be an ELEMENT_WARNING?
2021-09-21 15:55:13 -04:00
Joshua M. Doe
f38c3a4d1f gentlsrc: check for valid payload type earlier 2021-09-21 15:55:13 -04:00
mrstecklo
8ac5739f97 pylonsrc: added handlers for coloradjustment property 2021-05-12 15:24:49 -04:00
Joshua M. Doe
bba2fecd56 gentlsrc: run gst-indent 2021-05-03 13:38:43 -04:00
Joshua M. Doe
380ff91eb2 phoenixsrc: allow for logging FPGA temp if env var GST_PHOENIX_FPGA_TEMP_LOG is set 2021-04-15 08:46:04 -04:00