Tags

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

    6c2111cc · changelog: update. ·
    Release: 2.0.3
    Release 2.0.3 - 19.02.2026
    BUG FIXES
    
    DVXplorer cameras: slightly improve timing accuracy of CONSTANT_LOSSY eFPS modes.
    CMake/Eigen: added compatibility with Eigen 5.X releases.
  • 2.0.2

    Release: 2.0.2
    Release 2.0.2 - 31.07.2025
    
    BUG FIXES
    
    - USBDevice: cleanup exceptional USB shutdown (device detached, ...).
    - Linux: add udev rules file for iniVation cameras.
    - Fedora: fix dv-processing-utils packaging.
    
    NEW FEATURES
    
    - USBDevice: add getPortPath().
  • 2.0.1

    Release: 2.0.1
    Release 2.0.1 - 19.07.2025
    
    INCOMPATIBLE CHANGES
    
    - Cameras: minor API change resulting from switch to libusb per-context loggers
      - remove static USBDevice::setLibUsbLogger().
      - add logger callback arguments to discover(), findDevices(), open() and openSync().
      - change order of default arguments deviceLogger/deviceLogLevel on camera construction.
    
    BUG FIXES
    
    - Cameras: fix usb control transfer in notification.
    - Cameras: improve logging and cleanup on startup errors.
    - CMake: improve linking of lz4, zstd and libbacktrace when falling back to FIND_LIBRARY().
    
    NEW FEATURES
    
    - Python Wheels: add support for NumPy 2.x.
    - Python Wheels: add support for free-threaded CPython with no GIL.
    - Python Wheels: pre-built wheels only available for MacOS 15 and newer.
  • 2.0.0

    Release: 2.0.0
    Release 2.0.0 - 15.07.2025
    INCOMPATIBLE CHANGES
    
    CMake: renamed options with DVP_ prefix to prevent collisions, ie. DVP_ENABLE_TESTS.
    Build: raised minimum compiler versions to GCC 13, clang 18, XCode 16 or MSVC 19.39 (Visual Studio 2022 17.9).
    Build: raised minimum dependency versions to boost 1.80, fmt 9.1.0, libusb 1.0.23.
    C++/Python: removed all deprecated functions and types.
    C++/Python: fixed naming of constants and enums, now SCREAMING_SNAKE_CASE as per guidelines.
    cstring/cvector: removed own re-implementations of std::string (dv::cstring) and std::vector (dv::cvector), the
    standard containers are used instead. You will need to recompile.
    CameraCapture: removed CameraCapture class, see NEW FEATURES for replacement.
    StereoCapture: removed StereoCapture class, see NEW FEATURES for replacement.
    Renamed OutputBase::writeIMU() function to writeImu() to be consistent with other function names.
    dv::runtime_assert(): changed to use functors, allowing guaranteed removal on non-debug builds.
    StereoGeometry: instances of trasformToLeft have changed type to dv::kinematics::Transformationf instead of
    std::vector.
    Accumulator: getShape() renamed to getResolution().
    fmt: removed custom std::vector formatter, use the official one from the fmt library instead.
    Ubuntu: dropped support for Bionic 18.04.
    Python: dropped support for Python 3.6.
    Point cloud sample: removed due to build issues with PCL dependency.
    PoseVisualizer: significantly refactored to improve rendering and add new features.
    
    NEW FEATURES
    
    
    Device Access: new set of classes and functions to access cameras in the dv::io::camera namespace, replacing
    CameraCapture, StereoCapture and libcaer. Classes DVS128, DAVIS, DVXplorer and DVXplorerM (for Mini/Micro) allow
    access to all camera features. New base classes CameraInputBase and SyncCameraInputBase allow for generic handling of
    features supported by all cameras, as well as enhanced synchronization support. A selection of notable new features:
    
    all camera features are properly exposed through a simple API now, no need to use cryptic libcaer codes
    proper inheritance allows generic handling of cameras and common functionality
    significantly improved data parser performance, especially for S5K231Y sensor on DVXplorer Mini/Micro
    synchronization of an arbitrary number of cameras supported via dv::io::camera::synchronizeAny()
    DAVIS: supply your own exposure control function
    DVS128/DAVIS: simplified biasing with clearer names
    DVXplorer: allow finer bias control for ON/OFF contrast thresholds
    For DVXplorer Mini/Micro only: a firmware upgrade (v10) is required for compatibility with new classes.
    
    
    CMake: added support for sanitizer checks.
    Ubuntu: added support for Noble 24.04.
    Boost: added compatibility with latest boost::ASIO releases.
    fmt: added printers for all enums (also work with std::ostream <<).
    Noise Filters: added frequency filters LowPassFilter, HighPassFilter, BandPassFilter, BandCutFilter.
    Noise Filters: added KNoiseFilter, implementation as proposed by Khodamoradi in his paper: "O(N)-Space
    Spatiotemporal Filter for Reducing Noise in Neuromorphic Vision Sensors".
    Inputs: added isStreamAvailable(streamName), isRunning(streamName) and isRunningAny().
    Inputs/Outputs: now properly inherit from InputBase/OutputBase respectively, allowing generic handling.
    Motion compensation benchmarks: separate motion compensation benchmarks from accumulation benchmarks.
    Contrast maximization benchmarks: add benchmarks for contrast maximization under translational motion.
    Noise filtering samples: added all noise filters present in dv-processing.
    StereoGeometry: added convertDisparityToDepth() function.
    fmt::format: added formatters for cv::Mat, cv::Size, cv::Point and cv::Rect.
    SimpleFile: added readInto() to read file contents into a given memory location.
    
    BUG FIXES
    
    StereoGeometry: fixed bug with rectified image size when handling cameras of different resolutions.
  • 1.7.9

    Release: 1.7.9
    Release 1.7.9 - 20.07.2023
    
    BUG FIXES
    - CMake: fix VCPKG tools compilation on MSVC.
    - Python: improve pip installation scripts.
    - CameraCapture: do not return empty trigger packets to user.
    - CameraCapture: do not generate timestamp reset twice on startup.
    - CameraCapture: better DVX Mini synchronization to system time.
    - CalibrationSet: fix writeToFile() function const-ness.
    - RedetectionStrategy: fix deprecated decideRedection() function return.
    - i686: fix alignment checks for 32bit architectures.
    - eDVS: fix support for eDVS4337 device.
    - StereoGeometry: fix bug with rectified image size when handling cameras
      of different resolutions.
    - MeanShiftTracker: fix bug with track updates' timestamp.
    - EventStore: do not accept null EventPackets on construction.
    - StreamSlicer: fix unbounded growth of non-EventStore stream slicers when
      using slice-by-time mode.
    - Submodules: update all external git submodule dependencies.
    - Python: add missing methods get/setNeutralPotential() to EdgeMapAccumulator.
    - CameraCalibration: fix getTransformMatrix() row-major ordering.
    - StereoGeometry: fix computation of right to left transformation from existing
      camera calibration.
    - StereoGeometry: fix toDepthFrame() using incorrect signed integers.
    - MultiStreamSlicer: fix time slicing of multiple streams and deletion of
      delivered data after usage.
    - Python: add missing method getPotentialSurface() to Accumulator.
  • 1.7.8

    Release: 1.7.8
    Release 1.7.8 - 02.02.2023
    
    BUG FIXES
    - Mean-Shift Tracker: new tracks not always added after redetection.
    - Mean-Shift Tracker: use lowest timestamp to be in line with other trackers.
    - Redetection Strategy: fixed naming of parameters.
  • 1.7.7_internal

    228fa6a7 · fix clang-format. ·
    Release: 1.7.7_internal
    Release 1.7.7 - 20.01.2023
    
    BUG FIXES
    - CameraCapture: fix DVXplorer Mini support.
    - StereoCapture: improve time synchronization behavior.
  • 1.7.6_internal

    Release: 1.7.6_internal
    Release 1.7.6 - 13.01.2023
    
    BUG FIXES
    - CameraCapture: fix timestamp resets not being correctly processed on
      camera start, if multiple were present or other data was present.
  • 1.7.5_internal

    1561cb21 · version.hpp: update. ·
    Release: 1.7.5_internal
    Release 1.7.5 - 09.01.2023
    
    BUG FIXES
    - CameraCapture: fix timestamp reset not available in DVX Mini.
  • 1.7.4_internal

    Release: 1.7.4_internal
    Release 1.7.4 - 21.12.2022
    
    BUG FIXES
    - NetworkReader: throw exception if no streams found, don't crash.
  • 1.7.3_internal

    Release: 1.7.3_internal
    Release 1.7.3 - 20.12.2022
    
    BUG FIXES
    - fmt::format: fix compatibility with fmt library version 8.
  • 1.7.2_internal

    689d2561 · update version.hpp. ·
    Release: 1.7.2_internal
    Release 1.7.2 - 19.12.2022
    
    BUG FIXES
    - CMake: fix targets include, fix Python discovery.
  • 1.7.1_internal

    Release: 1.7.1_internal
    Release 1.7.1 - 16.12.2022
    
    BUG FIXES
    - CMake Tests: fix boost-ut integration, issues with Ubuntu packages and CMake CPM fixed.
  • 1.7.0_internal

    Release: 1.7.0_internal
    Release 1.7.0 - 15.12.2022
    
    NEW FEATURES
    - dv::io::NetworkReader class for reading data from TCP / UNIX socket servers.
    - dv::io::NetworkWriter class for writing data as TCP / UNIX socket servers.
    - New utility `dv-tcpstat` to get information about an existing network stream.
    - Introduce generic `dv::StreamSlicer` that supports any type of stream for slicing.
    - Introduce `dv::MultiStreamSlicer` which performs synchronous slicing on multiple streams.
    - `dv::CameraCapture` now provides methods to read seek timestamps of available data streams.
    - New event-based blob detector.
    - New event-based feature tracker using mean shift algorithm with optimal mode search on time surface.
    - Redetection Strategy: added new strategies UpdateIntervalRedetection and UpdateIntervalOrFeatureCountRedetection.
    - EventStore: added sliceRate() method to slice an EventStore to keep a specific event-rate.
    - Data Packets: added ostream printers for all data packets.
    - Camera Capture: added control functions getDavisExposureDuration(), setDVXplorerGlobalReset() and
      setDVXplorerEFPS().
    - Event Visualizer: added generateImage() method to draw events on a given background image.
    - core/time.hpp: concentrated time-related definitions and functions in one header file.
    
    BUG FIXES
    - Some performance improvements in `dv::CameraCapture` and `dv::MonoCameraRecording` by avoiding some memory copies.
    - Camera calibration: fixed ostream printer, wrong transformation matrix was printed.
    - Python: fixed CameraCapture.enableDavisAutoExposure() calling wrong C++ function.
    - TimeSurface: fix type checks in getOCVMat() and getOCVMatScaled().
    - Features: fixed typo redection -> redetection in several function names.
    - Camera Capture: disabled global hold setting for DVXplorer, not useful for most users and inconsistent with
      other libraries published.
    - CMake: cleanup, better submodule support.
    - dv-imu-bias-estimation utility: fix crash if no camera name provided.
  • 1.6.0

    Release: 1.6.0
    Release 1.6.0 - 18.10.2022
    
    NEW FEATURES
    - New documentation available, with multiple examples in C++ and Python.
    - Optimized event filtering , reduced execution time for all event filters, speed-up up to 150%.
    - dv::io::ReadOnlyFile: more robust detection of corrupted/incomplete files.
    - VCPKG: dv-processing is now available in the VCPKG repository. Manual build is possible via
      the BUILD_CONFIG_VCPKG CMake flag.
    - `dv::PixelAccumulator` (now deprecated) is renamed into `dv::EdgeMapAccumulator` for better naming.
    - `cv::features::FeatureDetector` now uses `cv::GFTTDetector` as default feature detector.
    - Added getter for last keypoints inside FeatureTracks class and accept for batch of keypoints.
    
    BUG FIXES
    - `dv::EventStore::sliceBack()` is now correctly marked as const method.
    - camera capture: returned dv::Frame timestamp was incorrectly set, now correctly represents the start of exposure.
    - dv::io::ReadOnlyFile: when reading an empty file, an exception was incorrectly thrown.
      Now, the empty file will correctly be opened and returned with no content.
    - Python: added missing isEventStreamAvailable(), isImuStreamAvailable() and isTriggerStreamAvailable()
      functions for CameraCapture.
    - StereoCameraRecording: fix inconsistent usage of std::string instead of fs::path in constructor.
    - CMake: fixed detection of LZ4 and ZSTD libraries in multiple environments.
    - CMake: fixed detection of custom boost in cross-compile environments.
    - CMake: fixed compiler check.
    - Fixing feature redetection bug that returns invalid features when no additional feature are found.
    - Explicit timestamp reset signal is now sent in the `dv::io::CameraCapture` class constructor.
    - FeatureTracks: fixed bug in clear method. Missing reset "mHighestTime".
    - Fixed a bug in FeatureTracks which causes out-of-order exception after calling clear() method.
  • 1.6.0_internal

    Release: 1.6.0_internal
    Release 1.6.0 - 18.10.2022
    
    NEW FEATURES
    - New documentation available, with multiple examples in C++ and Python.
    - Optimized event filtering , reduced execution time for all event filters, speed-up up to 150%.
    - dv::io::ReadOnlyFile: more robust detection of corrupted/incomplete files.
    - VCPKG: dv-processing is now available in the VCPKG repository. Manual build is possible via
      the BUILD_CONFIG_VCPKG CMake flag.
    - `dv::PixelAccumulator` (now deprecated) is renamed into `dv::EdgeMapAccumulator` for better naming.
    - `cv::features::FeatureDetector` now uses `cv::GFTTDetector` as default feature detector.
    - Added getter for last keypoints inside FeatureTracks class and accept for batch of keypoints.
    
    BUG FIXES
    - `dv::EventStore::sliceBack()` is now correctly marked as const method.
    - camera capture: returned dv::Frame timestamp was incorrectly set, now correctly represents the start of exposure.
    - dv::io::ReadOnlyFile: when reading an empty file, an exception was incorrectly thrown.
      Now, the empty file will correctly be opened and returned with no content.
    - Python: added missing isEventStreamAvailable(), isImuStreamAvailable() and isTriggerStreamAvailable()
      functions for CameraCapture.
    - StereoCameraRecording: fix inconsistent usage of std::string instead of fs::path in constructor.
    - CMake: fixed detection of LZ4 and ZSTD libraries in multiple environments.
    - CMake: fixed detection of custom boost in cross-compile environments.
    - CMake: fixed compiler check.
    - Fixing feature redetection bug that returns invalid features when no additional feature are found.
    - Explicit timestamp reset signal is now sent in the `dv::io::CameraCapture` class constructor.
    - FeatureTracks: fixed bug in clear method. Missing reset "mHighestTime".
    - Fixed a bug in FeatureTracks which causes out-of-order exception after calling clear() method.
  • 1.5.1

    Release: 1.5.1
    Release 1.5.1 - 05.08.2022
    
    BUG FIXES
    - camera capture: returned dv::Frame timestamp was incorrectly set, now correctly represents the start of exposure.
  • 1.5.0

    Release: 1.5.0
    Release 1.5.0 - 19.07.2022
    
    NEW FEATURES
    - Introducing `dv::SparseEventBlockMatcher`, a class which efficiently performs stereo depth matching on sparse
      set of coordinates among two calibrated stereo streams. It estimates disparity between two event streams by sparsely
      accumulating only the regions of interest to reduce computational complexity.
    - New implementation of Contrast Maximization, see documentation at docs/source/contrast_maximization.md.
    - StereoGeometry: introducing `unmapPoint` method which transforms coordinates from undistorted rectified pixel space
      into original camera pixel space.
    - Samsung EVK is now supported in `dv::io::CameraCapture`
    - `dv::io::CameraCapture` introduces new methods to get and set timestamp offset.
    - Introducing `dv::io::CameraInputBase`: an interface class to abstract live camera and AEDAT4 recordings with
      a common interface.
    - Python: NumPy accessors for data.
    - Python: support for pip install via setup.py, see docs/python-installation/ubuntu.md.
    
    BUG FIXES
    - FilterChain: ignore empty packets during time monotonicity check.
    - CameraGeometry: fixed a bug which caused incorrect `distort` method results with RadTan model containing 4 parameters.
    - StereoEventStreamSlicer: fixed failed synchronization in case when right camera data is forward in time with fixed
      offset. Accept now supports optionals also, making it easier to use directly with camera input.
    - MeanShift clustering: making low level functions available, so users can access intermediate results from clustering.
    - CalibrationSet: fixing a crash while parsing V1 format invalid XML calibration files, throws an exception instead.
    - Adding convenience methods to access timestamps, coordinates, and polarities as Eigen (C++)/NumPy (Python) arrays.
    - Adding missing packet data types for more convenient IO operations in python.
    - Adding samples of reading / writing live cameras.
    - `dv::PixelAccumulator` now return `-1` timestamp when no events were passed into accept.
    - `dv::Accumulator` generates identical output when called `generateFrame` without passing data.
    - CameraGeometry: `undistort` method returned incorrect result if used with floating point coordinates.
    - CameraGeometry: minor performance improvements.
    - PixelAccumulator: decay is now applied before accumulation, decay values are now interpreted within [0.0; 1.0] to
      simplify the approach.
    - `dv.io.discoverDevices()` is added to Python bindings.
    - Adding missing constructor for `dv.io.MonoCameraWriter.Config` class.
    - Adding `dv.io.StereoCameraRecording` in Python bindings.
    
    BACKPORTED BUG FIXES
    - dv::io::ReadOnlyFile: more robust detection of corrupted/incomplete files.
    - dv::io::ReadOnlyFile: when reading an empty file, an exception was incorrectly thrown.
      Now, the empty file will correctly be opened and returned with no content.
    - Python: added missing isEventStreamAvailable(), isImuStreamAvailable() and isTriggerStreamAvailable()
      functions for CameraCapture.
    - StereoCameraRecording: fix inconsistent usage of std::string instead of fs::path in constructor.
    - CMake: fixed detection of LZ4 and ZSTD libraries in multiple environments.
    - CMake: fixed detection of custom boost in cross-compile environments.
    - CMake: fixed compiler check.
  • 1.5.0_internal

    Release: 1.5.0_internal
    Internal release 1.5.0.
  • 1.4.0

    Release: 1.4.0
    Release 1.4.0 - 25.05.2022
    
    INCOMPATIBLE CHANGES
    - `dv::Accumulator` now generates 8-bit integer images instead of floating point, which is easier to
      use and is more consistent with other classes generating images.
    - Data type `dv::Point2f` used in `dv::TimedKeyPoint` has been changed to a Flatbuffer struct instead
      of a table for performance and consistency reasons. This will not allow previous `dv::TimedKeyPointPackets`
      to load properly from storage. At this point we do not believe such files to exist and this change will
      have no to minimal impact to users.
    - Converted several simple enums to enum classes in all headers for better code quality, this will require
      users to use the fully qualified class name, eg. dv::Accumulator::Decay::EXPONENTIAL.
    
    NEW FEATURES
    - Native Windows (MSVC) support
    - Calibration: improved support for DV-SDK XML files, also supports oldest file format now.
    - CameraCalibration: added getCameraMatrix() method to get a standard OpenCV 3x3 camera matrix.
    - Concepts: new Enum concept, consistent naming for concepts, header includes cleanup.
    - utils.hpp: introduce and use TimestampClock and TimestampResolution.
    - Adding a method for device discovery.
    - Adding `dv::camera::StereoGeometry` class that handles rectification of stereo data streams (events and images) and
      depth estimation.
    - Adding `dv::SemiDenseStereoMatcher` class that calculates disparity on stereo synchronized event streams or images
      by applying accumulation into frames and disparity using a stereo block matching algorithm.
    - New landmark type is added with an ability to be visualized in `PoseVisualizer` class.
    - `dv::io::CameraCapture` introduces getPixelPitch method that can be used to lookup the pixel pitch distance.
    - `dv::io::CameraCapture` adds frame interval setting and exposes low level config setting functions.
    - Fully support Equidistant (fish-eye) lens calibration model for undistortion.
    
    BUG FIXES
    - Fixed a bug in `dv::Accumulator` which caused timestamps to be incorrectly generated when
      generating multiple frames.
    - CalibrationSet: const-ify several functions that do not modify the content.
    - Removing unnecessary asserts in `CameraGeometry::backProject` method when sub-pixel
      implementation is used.
    - CMake: improved handling of custom Boost version, will now always use custom version on
      systems that require it (Ubuntu LTS 18.04 Bionic and 20.04 Focal).
    - Dependencies increased to CMake 3.16, Eigen 3.3.9, fmt 7.1.3.
    - Stereo transformToC0 was loaded incorrectly, fixing the correct order of transformation matrix values.
    - `dv::EventStore` added missing assignment operator for dv::EventPacket as in constructor.
    - `dv::visualization::colors::someNeonColor` method is now inline to fix compilation errors.
    - `dv::io::MonoCameraWriter` was not saving resolution metadata correctly.
    - Fixing a bug in `dv::features::EventFeatureLKTracker` to maintain a minimum amount of events to prevent
      wrong behaviour when event stream contains very little amount of events.
    - CMake project now validates compiler version to be compatible with the project.
    - Adding a few missing methods in python bindings: `dv::now()`, `dv::toTimePoint()`, and `modifyTimeInterval` in
      `EventStreamSlicer` that accepts a `timedelta` variable type.
    - dv::io::SimpleFile: fixed possible race condition on creation of writeable files.
    - dv::(Pixel)Accumulator: consistent checking if events are within size bounds; DEBUG mode will check all events
      with resulting drop in performance. Release builds will not check bounds at all for maximum performance.
    - Use dv::runtime_assert() instead of assert() in most places for more consistent error reporting.
    - `dv::io::MonoCameraRecording` bugfix that caused runtime errors when built with MSVC.
    - `dv::StereoEventStreamSlicer` is now guaranteed to execute the callbacks only when both streams supply enough
      data.
    - Changed `dv::Accumulator` constructor to provide more reasonable default parameters.
    - Transformation.hpp: fix delta() function to get relative transformation.
    - `CameraCalibration` and `IMUCalibration` now validate transformation matrices to be strictly homogeneous.
    
    BACKPORTED BUG FIXES
    - FilterChain: ignore empty packets during time monotonicity check.
    - `dv::PixelAccumulator` now return `-1` timestamp when no events were passed into accept.
    - `dv::Accumulator` generates identical output when called `generateFrame` without passing data.
    - CameraGeometry: `undistort` method returned incorrect result if used with floating point coordinates.