Tags

Tags give the ability to mark specific points in history as being important
  • 1.4.6

    Release 1.4.6 - 26.08.2021
    
    BUG FIXES
    - CMake: fix reference to Boost::system in dv-modules.cmake.
  • 1.4.5

    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

    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

    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

    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

    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

    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

    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

    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

    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

    Release 1.2.5 - 28.08.2020
    
    BUG FIXES
    - Config: fix configuration file being wiped on restart (issue #352).
  • 1.2.4

    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

    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

    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

    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

    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

    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

    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

    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

    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.