35 Commits

Author SHA1 Message Date
Joshua M. Doe
8e702a802b pleorasrc: fix support for Bayer formats
Closes #44
2021-02-25 09:36:34 -05: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
26e05b7058 build: allow overriding installation directories
More sensible defaults and allow for overriding. Also make PDB installation
optional on Windows if RelWithDebInfo isn't the build type being used.

CMAKE_INSTALL_PREFIX defaults to GStreamer install location on Windows and
/usr/lib on other platforms.

PLUGIN_INSTALL_DIR defaults to CMAKE_INSTALL_PREFIX/gstreamer-1.0

LIBRARY_INSTALL_DIR defaults to CMAKE_INSTALL_PREFIX/

PDB_INSTALL_DIR defaults to CMAKE_INSTALL_PREFIX/
2020-04-15 09:26:40 -04:00
Joshua M. Doe
59715529c7 build: only install PDBs on Windows 2020-04-14 16:17:45 -04:00
Joshua M. Doe
4ebc6b8c77 build: consistently have libgst prefix on all plugins
Before this, on Linux there'd be a liblibgst prefix
2020-04-14 16:17:45 -04:00
Joshua M. Doe
552fae8538 pleora: run gst-indent
Excluding the true C++ file
2020-03-19 11:56:43 -04:00
Joshua M. Doe
fa07ad8263 pleorasink: check all IP addresses on each interface 2020-03-19 11:56:43 -04:00
Joshua M. Doe
fc4c7887a3 pleora: avoid compiler warning messages 2020-02-06 13:36:47 -05: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
1502c7fa9c pleorasink: add auto-multicast property
This will set the multicast-group, multicast-port, and packet-size
properties, and begin streaming via AcquisitionStart. Currently any
client can connect as controller and change these properties, but these
removes the requirement to have such a client.
2019-11-25 07:57:04 -05:00
Joshua M. Doe
a92281c965 pleora: add support for sending/receiving KLV metadata as chunk data
This attemps to partially implement MISB ST1608.1, "Transport of Motion
Imagery and Metadata over GigE Vision". This relies on GstKLVMeta, which
is currently a merge request 124 for gst-plugins-base. For now we
include it here. Currently all KLVMeta is packed into one chunk, no
special handling of timestamps is done. Testing has only been done
between pleorasink and pleorasrc, no other MISB-compliant stream.
2019-11-25 07:57:04 -05:00
Joshua M. Doe
f6509a1b4d pleorasink: fix debug level, add more interface debug output 2019-11-20 15:39:38 -05:00
Joshua M. Doe
7292eaf353 pleora: build for various versions of eBUS, and append version to plugin name
Not the prettiest way to handle this, but we have a need for supporting
multiple versions of eBUS, and this way we can distribute multiple
versions. This also tries to modernize the FindPleora.cmake file.
2019-11-07 09:17:49 -05:00
Joshua M. Doe
995bcca23b pleorasink: add GigE Vision sink for eBUS GEV Tx API
Most basic working implementation
2019-11-07 09:17:49 -05:00
Joshua M. Doe
79a5e67de0 pleorasrc: lock streaming related parameters during acquisition 2019-11-07 09:17:49 -05:00
Joshua M. Doe
91e060dcbd pleorasrc: read GEV packet size after negotiation
For debug and set to property
2019-11-07 09:17:49 -05:00
Joshua M. Doe
6084edb3f7 pleorasrc: refactor device/stream opening 2019-11-07 09:17:49 -05:00
Joshua M. Doe
4b03de07fe pleorasrc: allow config file to specify only one of stream or device 2019-11-07 09:17:49 -05:00
Joshua M. Doe
76e67ee5fc pleorasrc: set caps before _create to avoid bad negotiation
Caps must be fixated before _create, otherwise initial caps is
width=1,height=1 which cause some sinks to create incorrect window
sizes.
2019-11-07 09:17:49 -05:00
Joshua M. Doe
88f7a82818 pleorasrc: cache caps if width, height, and pixel type don't change 2019-11-07 09:17:49 -05:00
Joshua M. Doe
19ce118c96 pleorasrc: add config-file and config-file-connect properties
If config-file is set to the filepath of a XML file, such as is
generated by eBUS Player, it will be used to restore configuration
to the device and stream. By default, the device and stream will be
connected using the information from the config-file. Set
config-file-connect=false to connect to the camera using other element
properties, and then apply the configuration changes from the
config-file.
2019-11-07 09:17:49 -05:00
Joshua M. Doe
e4ae64b44b pleorasrc: add packet-size property
Also, if auto-negotiate (packet-size=0) is used (the default), and
negotiation fails, use the safe packet size of 1476 bytes.
2019-11-07 09:17:49 -05:00
Joshua M. Doe
351aab12d8 pleorasrc: add more and better useful error feedback to user
Try to return most useful error message to user via GST_ELEMENT_ERROR
instead of using GST_WARNING_OBJECT.
2019-11-07 09:17:49 -05:00
Joshua M. Doe
8b7b405381 pleorasrc: add support for IYU1 and IYU2 pixel formats
This also needed a change to calculating the strides, as IYU1 is 12bpp,
and GstVideoInfo defines pixel stride in bytes, so for IYU2 the stride
was calculated as zero. Instead use Pleora's own definition of pixel
stride to calculate Pleora's row stride.
2019-10-10 07:38:52 -04:00
Joshua M. Doe
ef1242fd81 pleorasrc: run gst-indent 2019-10-02 10:58:17 -04:00
Joshua M. Doe
e1d0574ecf pleorasrc: more useful error messages 2019-10-02 10:58:01 -04:00
Joshua M. Doe
a7f4657547 pleorasrc: add support for compiling against eBUS SDK 5
Unfortunately eBUS SDK 5 breaks API, but only in a few minor ways.
2019-10-02 10:55:24 -04:00
Joshua M. Doe
e364cfe4d5 pleorasrc: fix handling of strides that aren't 32-bit aligned
For example, a Mono8 642x482 would have failed to work, as GStreamer
expects the stride to be a multiple of 4-bytes, that is 644 bytes in
this example, while Pleora doesn't do this alignment. This incurs a copy
unfortunately, and there might be a way with memory meta to avoid this,
however eventually most elements will need to have the data 4-byte
aligned.
2019-08-29 14:56:18 -04:00
Joshua M. Doe
64866758a2 "pleorasrc: open devices by default in unicast mode
When multicast was added, it was always used. Set default
multicast-group to "0.0.0.0" now, which implies unicast.
2019-08-29 12:26:36 -04:00
Joshua M. Doe
bcb80f3b87 pleorasrc: run gst-indent 2018-10-04 13:05:17 -04:00
Joshua M. Doe
5546ea432a pleorasrc: avoid releasing buffer if pipeline is destroyed 2018-10-04 13:02:47 -04:00
Joshua M. Doe
5e6a0eea99 pleorasrc: add RGBa8 support as RGBx 2018-07-10 14:56:10 -04:00
Joshua M. Doe
2588c7b836 pleorasrc: fix detection-timeout property 2018-07-10 14:56:09 -04:00
Joshua M. Doe
c5ee1a5706 pleorasrc: add multicast and receiver-only support 2018-07-10 14:56:08 -04:00
Joshua M. Doe
1bc0829d81 pleorasrc: initial working plugin for Pleora eBUS SDK U3V and GEV cameras 2018-05-21 06:50:57 -04:00