Tags give the ability to mark specific points in history as being important
-
1.4.6
8fb64cb2 · ·Release 1.4.6 - 26.08.2021 BUG FIXES - CMake: fix reference to Boost::system in dv-modules.cmake.
-
1.4.5
def69305 · ·Release 1.4.5 - 23.08.2021 NEW FEATURES - Visualizer (old): fullscreen support, set background and event on/off colors. BUG FIXES - SDK types.hpp: fixed move assignment operator return. - CMake: depend on newer Boost 1.73, provided by 'boost-inivation' package on Ubuntu Bionic and Focal. Remove internal boost-nowide.
-
1.4.4
bfb4417a · ·Release 1.4.4 - 16.07.2021 NEW FEATURES - Native MacOS ARM (M1) builds, Big Sur compatibility. - Ubuntu 21.04 Hirsute support. - Fedora 34 support. - Ubuntu 16.04 Xenial is no longer supported! - Cameras: added support for new DVXplorer Mini camera model. BUG FIXES - SDK types.hpp: fixed move constructor/assignment operator. - Fixed compilation with Boost 1.76.
-
1.4.3
209ad97e · ·Release 1.4.3 - 16.04.2021 NEW FEATURES - SDK API TimeMat: the TimeMat (and thus TimeSurface) have gained a new method getOCVMatScaled(), this returns an OpenCV Mat suitable for displaying in a dv::Frame output (issue #340). - Automated Tests: added more tests for AEDAT2 file conversion. - File Input: support opening AEDAT4 files with no DataTable present. DataTable will be built on-the-fly, we recommend then re-recording the file to ensure it has a DataTable present (issue #397). BUG FIXES - converter: fixed AEDAT2 conversion failing due to stol() exception when long is 32bit instead of 64bit for time conversions (issue #398). - Device Discovery: fix serial number being incorrectly determined on Windows for already open devices (issue libcaer#123).
-
1.4.2
f9241665 · ·Release 1.4.2 - 26.03.2021 NEW FEATURES - Automated Tests: enhanced testing framework, easier to write tests, added performance tests with graphical comparison (issue #387). - Modules: added cycle time (run() function execution time) and per-input throughput statistics (issue #387). - SDK stats.hpp: new statistics class to easily add statistics about execution times and throughputs to code (issue #387). BUG FIXES - export_csv: improved performance of CSV text file output (issue #387). - eDVS: disabled device auto-discovery on Linux/MacOS, unreliable and slow in the presence of other USB serial devices, was already disabled on Windows (issue #392).
-
1.4.1
ee4cbc35 · ·Release 1.4.1 - 17.02.2021 NEW FEATURES - Build: added support for Apple M1 systems with Homebrew (issue #391). - dv-runtime: added CLI option --console to disable logging of messages to console (issue #390). - CI: extended automated testing to ARM32, ARM64 and PPC64 architectures. BUG FIXES - Logging: do not log to console if started from GUI (managed runtime) or started as a system service, correctly set log buffers on every log-file opening (issue #390). - Converter: fixed calculation of initial time offset for AEDAT 3 files, was not correctly using the timezone from the file, but the host's one.
-
1.4.0
099b5f13 · ·Release 1.4.0 - 20.01.2021 INCOMPATIBLE CHANGES - dv-runtime: the runtime does not have a default configuration file anymore that it will load/save the configuration to (issue #253). To load configuration from a file, explicitly pass the '-c <CONFIG_FILE>' command-line option. To save, set the "/system/config/saveFile" attribute to the path where you want to save the current configuration and then set "/system/config/writeSaveFile" to "true" to write the file (issue #295). GUI users won't have to do anything. The SystemD/OpenRC services will take care of resuming from saved configuration automatically as before. - dv-runtime: the command-line options for the dv-runtime binary have changed (issue #386): - removed -b0/1 (--background) option, runtime always executes in the foreground now. - removed -a0/1 (--allinterfaces) option, explicitly use '-i <IP>' option now to specify the interface to listen on, use '-i 0.0.0.0' to get the old behavior of listening on all interfaces. - removed -o configuration override, edit a configuration file and use '-c <CONFIG_FILE>' if you need to start with modified configuration. - added -i <IP> option, use this to specify the IP address where the runtime will listen for new connections (default '127.0.0.1'). - added -p <PORT> option, use this to specify the port where the runtime will listen for new connections (default '4040'). - added -l <LOG_FILE> option, to specify the path where to write the log file (default '$HOME/.dv-runtime.log'). - added -s0/1 (--systemservice), used for SystemD/OpenRC system service mode, should not be needed by normal users. - TCP server output: the default IP address to listen on is now the same as the dv-runtime's IP address, while the default port is now '0', meaning a random free port is chosen and then published in the configuration attribute. The GUI will show the actual port. You can also manually put in the value '7777' to get back the old behavior. NEW FEATURES - ConfigServer: can be started with port value of '0' (CLI '-p 0') to select a random port for listening to new connections, will print this as a log message for retrieval. - Modules: 'modulesSearchPath' is now initialized from the environment variable 'DV_MODULES_PATH'. - Unix Socket Output: added new module 'dv_output_net_socket' for Unix socket-based data output (issue #215). BUG FIXES - Undistort: improved efficiency of out-of-bounds pixels lookup. - DAVIS camera: the 'Exposure' configuration attribute is now read-only and not saved if 'AutoExposure' is enabled. - ConfigTree: report failures in opening configuration files for reading or writing. -
1.3.2
a5495389 · ·Release 1.3.2 - 22.12.2020 INCOMPATIBLE CHANGES - Flip&Rotate: module renamed from 'dv_flip-rotate' to 'dv_flip_rotate' for consistent naming (issue #378). - Crop&Scale: changed cropping configuration attributes to allow easier specification of Region-of-Interest to cut out, set output frames position to 0,0; same as events output. - SDK utils.h: removed dv::findBool() and dv::findIfBool() functions that take two iterators, no significant advantages and no real users. Prefer std::vector variant. - SDK utils.h: dv::findBool() and dv::findIfBool() for std::vector have been renamed to dv::vectorContains() and dv::vectorContainsIf() respectively, to better reflect what they do and align naming with the other vector helper functions present in utils.h. NEW FEATURES - dv-control: command-line utility now supports setting strings that contain spaces ("test str ing"), empty string can also be set using "" (issue #375). - DVS Noise Filter: found hot-pixels are now saved in the string configuration attribute 'hotPixelList', from where they are loaded on module startup and configuration update (issue #341). Manual modification of the list is also possible. This keeps the list alive between restarts, such as when playing back a recording. - SDK event.hpp: new function for event inputs 'colorForEvent(evt)', determines the Bayer filter color for an event based on its address, returns WHITE for no filter/mono (issue #381). Example: auto color = inputs.getEventInput("events").colorForEvent(evt); - std::vector/dv::cvector/dv::cstring: added fmt::format formatter to format/log these types directly (issue #374). - dv::cvector: added convenience methods contains(), containsIf(), sortUnique(), remove() and removeIf() (issue #374). - SDK modules: improve thread safety for 'log' and 'config' module objects access (issue #373). Disabled by default, as it's only needed for modules that start extra threads of their own and access these objects from multiple of them. To enable, add the following define at the start of your modules' includes: #define DV_MODULE_MULTI_THREAD_SAFE 1 BUG FIXES - SDK API frame.hpp: fixed edge-case where size of backing pixels vector could be bigger than actual X*Y*CHAN (issue #370). - Device Discovery: improve log message on failure. - File Input, dv-filestat: fix error message on FileDataTable verification failure, allow FileDataTable with more than 1 million entries (issue #380). - dv-filestat: stricter verification of IOHeader/FileDataTable, print number of elements in FileDataTable (issue #380). - Windows: fix invalid UTF-8 strings being sent by runtime to clients/GUI (issue #385). - Crop&Scale: correctly support cropping frames with ROI information present (issue #378). - Flip&Rotate: correctly support rotating frames with ROI information present (issue #378). - Converter: better calculation of frame pixel values, based on libcaer, for conversion of AEDAT 2.0 files. -
1.3.1
1fe9296b · ·Release 1.3.1 - 27.11.2020 INCOMPATIBLE CHANGES - SDK API: libcaer is no longer included and linked by default for modules, nor does any part of the DV SDK API require it anymore. The two projects are now more separate, with libcaer being used mainly for iniVation device access in the appropriate modules. NEW FEATURES - MVCamera: added support for machine vision frame cameras from a variety of vendors such as FLIR, Basler, ... using libaravis (issue #328). - Stereo Rectification: added new module to perform stereo rectification using stereo calibration results on events and frames (issue #367). - VideoOutput: new, updated video output module with support for multiple codecs and encoders, custom encoding parameters, ROI support (issue #337). - SDK Module API: added new function dvModuleGetHooks() to allow modules to provide optional hooks into the core system to add functionality, for now only 'DV_HOOK_DEVICE_DISCOVERY' is supported. - Device Discovery: device discovery was moved to the modules providing the actual device support (issue #213). BUG FIXES - Visualizer: remove snprintf() calls, use fmt::format. - ConfigTree: use fmt::format to format configuration attributes. - dv-control: use fmt::format for auto-completion generation. - LiveStream: fix ROI and color output support. - Crop-Scale: fix ROI information not being added to output frames. - Calibration: show message in image while "check images" mode is active to ensure users know of the mode change; show better CPU usage statistics while in "check images" mode (issue #360).
-
1.3.0
9a2fa888 · ·Release 1.3.0 - 28.10.2020 INCOMPATIBLE CHANGES - SDK Logging API: the log-levels EMERGENCY, ALERT, CRITICAL and NOTICE have been removed, leaving only ERROR, WARNING, INFO and DEBUG, to offer a simpler and more understandable user experience. Simply substitute all mentions of 'log.emergency', 'log.alert', 'log.critical' with 'log.error', and all mentions of 'log.notice' with 'log.info' in your code. The same procedure should be followed for the dv::logLevels in case you use the dv::Log() API (issue #354). - SDK Logging API: the formatted logging API has been changed to use the fmt library (fmt::format) which uses compatible syntax with C++20's std::format; see https://fmt.dev/latest/syntax.html for details. The log.level.format(...) API as well as the dv::Log(level, ...) one are affected. A new dv:Log() API with no format string has also been added, allowing the direct printing of messages (issue #358). - Cross API: portable_clock_localtime() has been removed. Use fmt::localtime. NEW FEATURES - Packaging: support for Ubuntu 20.10 (Groovy) added. - Calibration: introduced new configuration option "useDefaultFilename" (defaults to false), to use a simpler file name for calibration results with no ID or date (issue #364). BUG FIXES - Core: verify all uses of malloc/free to ensure correct object initialization and destruction, move ConfigTree to use new/delete (issue #356). - Systemd service: use absolute paths for all binaries, fixes service on older systemd versions that require this. - TCP Output: first data packet was not sent out to clients (issue #361).
-
1.2.5
e7ac37ec · ·Release 1.2.5 - 28.08.2020 BUG FIXES - Config: fix configuration file being wiped on restart (issue #352).
-
1.2.4
a97639d9 · ·Release 1.2.4 - 28.08.2020 NEW FEATURES - Windows: support Unicode file paths in core and I/O (issue #335). This allows dv-runtime to run, save and load files on Windows when non-ASCII characters are present in file paths. Some modules are currently not able to handle Unicode file paths, see issue #351. - Calibration: improved usability, added buttons to directly control calibration actions, checking candidate patterns before calibration is now mandatory (issue #297). - Accumulator: add event-number driven image reconstruction (issue #327). - SDK ConfigTree API: low-level C API is const-correct now (issue #350). - ConfigServer: add receivedID to PUSH messages. - CMake: drop support for boost < 1.56. BUG FIXES - dv-filestat: fix crash on usage related to type discovery (issue #342). - dv-filestat: fix executable missing from Ubuntu packages (issue #342). - Converter AEDAT 3.X: fix setting of Frame's StartOfFrame and EndOfFrame timestamps (issue #350). - SDK wrappers.hpp: ensure failures to allocate memory on commit() are properly handled (issue #350). - SDK wrappers.hpp: copying from an empty/null input to an output cannot work and now throws an exception (issue #350). - SDK Modules: dv::ModuleBase not copyable/movable anymore (issue #350). - Calibration: ensure module can be stopped at any moment, even during calibration pattern review (issue #344). - Calibration: warn that loaded calibration files only apply after a restart of the module (issue #344). - Calibration: removed homography calculation and drawing of reprojected points on stereo calibratio (issue #345). Use the epipolar lines to verify the quality of stereo calibration. - Modules: fix deadlock on module shutdown if a commit() is being done in another thread started from that module (issue #348). - Modules: fix possible crash if module is waiting on child to start and child gets removed first (issue #349). - SDK ConfigTree: reported range for booleans is now 0-1.
-
1.2.3
de4fb016 · ·Release 1.2.3 - 20.06.2020 NEW FEATURES - Livestream: added new module for RTP live-streaming (H.264 encoded), allows to stream live video from frames with some delay (issue #288). - Testing/CI: improved internal testing capabilities and Continuous Integration infrastructure (issue #309). BUG FIXES - SDK API EventStore: add slice(size_t) to be more consistent with other parts of the API (issue #333). - File Input: discard data if a decompression error happens (issue #334). - File Input: fix reading files with custom types in them (issue #280). - Undistort: fix startup failure if only a frame input was connected (issue #332). - Ubuntu packages: do not auto-enable systemd service (issue #329). - System Service: block shutdown of runtime from clients if the runtime was started as a system service (issue #313). - Core: show username the runtime is running under in ConfigTree, available at /system/ 'user' string (issue #306).
-
1.2.1
c9add9f7 · ·Release 1.2.1 - 08.05.2020 NEW FEATURES - Modules: added new 'cpuTime' statistic to show total CPU time consumed by the current/last run of a module (issues #311, #325). - CSV Export: added new module export_csv to write events to a text file in Comma-Separated-Values format (issue #312). - SDK API Modules: allow any generic inputs to initialize any generic outputs using output.setup(input) (issue #321). - YNoise, KNoise: added new noise filtering modules (issue #308). BUG FIXES - MacOS X: handle edge-case error code returned on network write() correctly in TCP Output Module and ConfigServer (issue #300). - ArchLinux AUR: fixed symlink related installation failure (issue #322). - File Input: shutting down while paused will now reset pause (issue #302). - Accumulator: color demosaicing option will not be auto-enabled on every module start, respecting the users' choice (issue #305). - File Input: fix possible crash due to incorrectly accessing cached elements past the end of a vector (issue #323).
-
1.2.0
1a170d5c · ·Release 1.2.0 - 20.04.2020 NEW FEATURES - Calibration: added new camera calibration module, with better UI and support for stereo calibration. - Cameras: originDescription in data streams now more concise and unique. - eDVS: added 'cameraID' configuration attribute to specify a custom serial number, to allow the user to disambiguate multiple cameras. - MacOS X: set default CMake destination to /usr/local on Apple systems. - File/Netork Output: implement 'timeout' parameter to stop recording after a certain time has passed (issue #292). - Core: added support for Google Perftool's head and CPU profilers. Please see the relevant NOTE in README.md. - Services: added OpenRC init script, improved systemd install script, used more standard paths for systemd init script, added sysusers support. - Ubuntu: support for release 20.04 LTS 'Focal Fossa'. - dv-runtime CLI: -a 0/1 and -b 0/1 command-line options to dv-runtime are now only valid for that particular dv-runtime invocation and are not saved as part of the permanent XML configuration, nor do they modify it (issue #240). - ConfigServer: various improvements, all GET* requests now return the full attribute information, type specification is not needed anymore. - dv-control: new get_type command, type specification not needed anymore. - SDK API Portable IO: added C++ variants of portable IO functions. BUG FIXES - MacOS X: fix duplicate-symbol linker error with Apple Clang compiler and TLS __getDefaultConfig() function variable when including <dv-sdk/module.hpp> into multiple compilation units within the same module. - File Input: fix reset of 'seekEnd' configuration attribute if manually removed. - SDK API Types: add missing const to TimeElementExtractor argument. - SDK API portable_get_user_home_directory(): correctly handle getenv() and getpwuid_r() failures. - Config / Log: write temporary configuration and log files to global temporary directory to avoid permission issues, original system directories might not allow writing to dv-runtime user. - ConfigTree: ensure attribute updaters are removed when their corresponding attributes or nodes are, to avoid dangling references (issue #212). - Modules / Log: per-module log-level now only applies to messages originating from user functions within a module, all other messages use the system log-level (issues #226 and #246).
-
1.1.3
72f56919 · ·Release 1.1.3 - 12.03.2020 BUG FIXES - DVS132S: fix support for DVS132S camera. - Config: write configuration to separate file, rename only on success. - Config: load values with whitespace from XML configuration correctly.
-
1.1.2
d123e53e · ·Release 1.1.2 - 04.03.2020 NEW FEATURES - DVXplorer: added controls for IMU, ExternalInput, USB features. - Cameras: added support for DVXplorer Lite camera. - Services: added systemd script for dv-runtime service, see manual install under services/. BUG FIXES - Cameras: fixed crash on exceptional camera disconnect/shutdown. - Cameras: fixed statistics updates.
-
1.1.1
e702f410 · ·Release 1.1.1 - 11.02.2020 INCOMPATIBLE CHANGES - C++ API, Modules: renamed one more function for consistency (issue #272): - addTypes() -> initTypes() BUG FIXES - C++ API, Frames: add missing assignment operator and <<commit operators. - Accumulator, Lens Calibration modules: fix frame commit.
-
1.1.0
aa01543e · ·Release 1.1.0 - 10.02.2020 INCOMPATIBLE CHANGES - C++ API, data wrappers: the C++ data types for Event, Frame, IMU, Trigger and BoundingBox have been renamed to not include the T suffix anymore (ie. FrameT -> Frame). The underlying Flatbuffer types have been renamed to include the Flatbuffer suffix for clarity (ie. Frame -> FrameFlatbuffer). See issue #214 for more details. - DAVIS camera: changed the names of several configuration nodes and attributes. - C++ API, Modules: renamed several functions for consistency (issue #272): - getDescription() -> initDescription() - getConfigOptions() -> initConfigOptions() - addInputs() -> initInputs() - addOutputs() -> initOutputs() - C++ API, Frames: removed commitMat() function, replaced by setMat(). Use setMat() followed by commit() to get old behavior (issue #273). NEW FEATURES - C++ API, config: added new RuntimeConfig.get()/set() methods that take the value as second argument and figure the type out by themselves, checking at runtime that it is correct (issue #269). - File Input: added new configuration attributes 'seekStart' and 'seekEnd' to set custom start and end points for playback in a file (issue #260). - Cameras: updated camera modules to use new C++ API (issue #276), DVS240 module now only allows either events or frames to be enabled at a time (issue #257). 'tsOffset' is now added to all data streams to allow offline time alignment. - VideoOutput: added new VideoOutput module, writes frames to a video file. - ImageOutput: added new ImageOutput module, writes frames to PNG image files. - CropScale: added new CropScale module to allow cropping and scaling of both events and frames (issue #277). Replaces the old Scaling module. - Config API: added dv::ConfigOption::stringOption() with min/max string length parameters. - Config API: setPriorityOptions() now supports sub-nodes, same as get() and set(), by using node names in the key, for example: 'node1/node2/attrName'. - ConfigTree API: existsRelativeNode() and getRelativeNode() now support './' notation to refer to the same node, and '../' to refer to the parent node. BUG FIXES - File Input: updates to the 'seek' configuration attribute are limited to four per second now, to not overload slow clients (dv-gui #106). - File Input: fixed seeking forwards/backwards while being paused (dv-gui #115). - Cameras: do not throw parsing exception if timestamp reset packet arrives. - Modules: isConnected() returns correct, consistent value during constructor, run and destructor phases (issue #254).
-
1.0.10
98da4471 · ·Release 1.0.10 - 24.01.2020 NEW FEATURES - Windows: executables now carry metadata to ease debugging and are signed (issue #202). - Network Output: new configuration attributes 'maxConnectionsBacklog' and 'maxConcurrentConnections' enable enforcing of TCP connection limits. New attribute 'maxDataBacklog' limits outbound data queue size, preventing unbounded memory growth and delays if the TCP receiver is slow (issue #263). - DVXplorer/Samsung EVK: busNumber/devAddress/serialNumber restrictions are now supported. 'tsOffset' added to stream infoNodes. - Samsung EVK: add more information to SourceInfo/ node. - libcaer 3.3.2 is now required, includes fixes for DVXplorer and Samsung EVK.