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.