16 Commits

Author SHA1 Message Date
yair
ddb30e00e1 deprcat rollingsum filter 2025-11-22 12:08:49 +02:00
yair
b19babd038 Add linescan plugin for line scan camera simulation
- New plugin extracts single row/column from frames and builds line scan image
- Supports horizontal mode (extract row, stack vertically)
- Supports vertical mode (extract column, stack horizontally)
- Configurable line index and output size
- Proper caps negotiation with fixate_caps implementation
- Updated build system to include linescan plugin
- Added comprehensive README with usage examples
2025-11-18 01:10:47 +02:00
yair
b11cd27d14 Add intervalometer filter for automatic exposure control
Implements YASS-inspired automatic exposure control for IDS uEye cameras.
The intervalometer filter analyzes video brightness in real-time and
smoothly ramps camera exposure and gain settings during changing light
conditions - ideal for sunset/sunrise time-lapse photography.

Key features:
- Automatic exposure ramping (0.85-1.24ms configurable range)
- Automatic gain control (0-52 configurable range)
- Real-time brightness analysis (GRAY8, GRAY16, RGB, BGR, BGRA)
- YASS-inspired ramping algorithm (exposure priority, then gain)
- Configurable ramp rates (VSlow/Slow/Medium/Fast/VFast)
- Exposure compensation (±4 stops)
- CSV logging of exposure parameters
- Direct GObject property control (no message bus overhead)

Technical implementation:
- GstBaseTransform filter for in-place processing
- Discovers upstream camera element by name
- Controls camera via g_object_set() for synchronous updates
- Frame-by-frame brightness calculation with format support

Files added:
- gst/intervalometer/gstintervalometer.c: Main implementation (734 lines)
- gst/intervalometer/gstintervalometer.h: Header with structure definitions
- gst/intervalometer/CMakeLists.txt: Build configuration
- gst/intervalometer/README.md: Comprehensive documentation

Files modified:
- gst/CMakeLists.txt: Added intervalometer subdirectory
- build.ps1: Added intervalometer to build and deployment pipeline

Usage example:
  gst-launch-1.0 idsueyesrc name=cam ! \\
    intervalometer enabled=true camera-element=cam \\
      exposure-min=0.85 exposure-max=1.24 \\
      gain-min=0 gain-max=52 ramp-rate=medium ! \\
    autovideosink

Inspired by YASS (Yet Another Sunset Script) for CHDK cameras by
waterwingz, based on work by Fbonomi and soulf2.
2025-11-17 01:05:16 +02:00
yair
69dcea025e Add rollingsum filter for frame analysis based on column mean deviation
- Implements GStreamer element that analyzes pixel columns
- Drops frames when column mean deviates from rolling baseline
- Configurable window size, column index, stride, and threshold
- Includes design documentation and build script
- Tested successfully with IDS uEye camera source
2025-11-14 03:44:54 +02:00
Joshua M. Doe
a6e97d08df klv: make KLV support optional via ENABLE_KLV, disabled by default
This prevents the building of the klv library and plugin, and disables KLV
support and dependency in the Pleora plugin.
2020-04-15 12:34:07 -04:00
Joshua M. Doe
8ff872e634 bayerutils: add new plugin with bayer2gray, to do caps conversion
This is a convenience function to avoid using a capssetter when we want to treat
Bayer as gray. In the future we can add properties to balance each element of the
CFA.

Note there's a bug with the in-place transform, so currently a memcpy is being used.
2020-03-17 10:56:50 -04:00
Joshua M. Doe
ec20592591 klv: add klv library, klvinject and klvinspect elements
Create as a separate library until gst-plugins-base MR124 is merged into tag
2020-02-06 13:33:56 -05:00
Joshua M. Doe
685b202541 select: new filter to drop frames based on offset and skip
Motivation was to select only odd or even frames.
2019-10-10 07:49:56 -04:00
Joshua M. Doe
e45f85fc95 misb: add new plugin with elements to pack/unpack MISB IR over SDI data 2018-01-10 09:34:47 -05:00
Joshua M. Doe
5edb975b36 extractcolor: created new element to extract a single color from RGB as gray 2015-06-25 09:05:17 -04:00
Joshua M. Doe
35b06f1217 build: only build plugins if dependencies are available 2014-01-24 10:00:28 -05:00
Joshua M. Doe
44b78f5175 sensorfx: Add element sfx3dnoise which adds 3D gaussian noise to video 2014-01-24 10:00:25 -05:00
Joshua M. Doe
8a2badb718 Reorganized videolevels into separate plugin 2014-01-24 09:58:49 -05:00
Joshua M. Doe
cfa14e8d60 * Improve CMake lists and modules 2014-01-24 08:32:31 -05:00
Joshua M. Doe
140ecc0107 * Moved plugin_init code into main.c 2014-01-24 08:30:41 -05:00
Joshua M. Doe
7fff476758 Initial commit of two preliminary plugins, videolevels and niimaqsrc 2014-01-24 08:29:14 -05:00