> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.stereolabs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.stereolabs.com/_mcp/server.

# ZED SDK 3.4

> **Note**
>
> Release notes of the ZED SDK 3.4 series. Patch releases are listed newest first. Download links and the full changelog, including ZED Tools and integrations, are available on the [ZED SDK 3.4 release page](https://www.stereolabs.com/developers/release/3.4).

## What's New

The new ZED SDK 3.4 brings major improvements to positional tracking area recognition and ZEDfu spatial mapping application, along with many other fixes and SDK enhancements.

This release also adds support for JetPack 4.5.

## 3.4.2

### General Improvements

* Improved local streaming on receiver side by optimizing the frame packet reception rate. This greatly reduces the number of frames dropped on the receiver.

### Bug Fixes

* Fixed a random crash that would occur when using `sl::ObjectDetectionParameters::enable_mask_output = true`.
* Fixed a random crash that would occur when changing `sl::ObjectDetectionRuntimeParameters::object_class_detection_confidence_threshold`.
* Fixed `sl::Camera::getStreamingDeviceList()` when using multiple sub-network.
* Improved API Documentation of `sl::FLIP_MODE`.

## 3.4.1

### General Improvements

* Improved local streaming on server side that should reduce packet drops.

### Bug Fixes

* Fixed a bug when using `sl::SENSING_MODE::FILL` on Jetson, causing a black depth image in fill mode.

* Added missing `texture_confidence_threshold` in `sl::RuntimeParameters::save/load` functions. This parameter can now be correctly saved and loaded.

* Fixed `sl::Mat::write()` function when using `U16_C1` `sl::Mat` format (provided by `sl::MEASURE::DEPTH_U16_MM` and `sl::MEASURE::DEPTH_U16_MM_RIGHT`).

* Fixed an issue in SVO real time mode where `grab()` returns an `sl::ERROR_CODE::CAMERA_NOT_INITIALIZED` when next image in SVO was not available in the next 2 seconds.\
  This is fixed by waiting for the next image without considering a timeout of 2 seconds.\
  This only affects SVO real time mode.

* Fixed memory address sanitizer issue in Object Detection module.

* Fixed a bug with `sl::InitParameters::load/save` functions when using streaming input type. The IP/port was not properly saved in the .yml file and load function was therefore returning false. It is now correctly saved and therefore will be properly parsed during load.

* Fixed a bug with IMU online bias correction that leads to corrupted stored bias values. Maximum correction has been decreased to avoid wrong orientation for IMU. It only affects ZED Mini and ZED 2.

* Fixed missing `sl::SensorsData::imu::pose_covariance` and `sl::CameraInformation::sensors_configuration::camera_imu_transform` when using Streaming or SVO input mode.

* Fixed a bug in `sl::FusedPointCloud::save()` when trying to save a fused point cloud as an OBJ file.

## 3.4.0

### New Features

#### Positional Tracking

* **Positional Tracking with area memory is now faster and more accurate, leading to improved global tracking accuracy.**\
  Previously, camera re-localization and loop closures required the camera to be close to the image and position saved in the database. It is now more robust and accurate, and will recognize places even if the camera is not close to the saved position in the database.

### SDK

#### Depth

* **Added a new depth format `sl::MEASURE::DEPTH_U16_MM` and `sl::MEASURE::DEPTH_U16_MM_RIGHT`.**\
  Retrieved depth maps can now have a `sl::MAT_TYPE::U16_C1` type with values stored in millimeters. This is useful for applications and integrations that require a 16-bit depth format.

#### Camera

* **Added a parameter to import external OpenCV calibration files with `sl::InitParameters::optional_opencv_calibration_file`.**\
  This allows users to calibrate their stereo cameras with OpenCV stereo calibration module, and provide an XML/YAML/JSON calibration file to the ZED SDK.
* **Added `sl::Camera::updateSelfCalibration()` function to launch a camera self calibration update process at runtime.**\
  This allows to run self-calibration while the camera is running, improving depth estimation in rare cases where mechanical shocks or thermal changes might have impacted left/right image alignment. Self-calibration can be called anytime after `sl::Camera::open()` has been successfully called. This function is similar to `resetSelfCalibration()` that was removed in 3.0.
* **Added `sl::Resolution getResolution(RESOLUTION resolution)` function.**\
  You can now get the actual resolution (width and height) of a specific camera video mode.
* **Increased image timestamp adjustment speed when the system clock changes (when using NTP/PTP synchronization).**\
  Previously, the maximum allowed correction for the image timestamp was 500μs for a single frame. Now it is at a maximum of 4ms per frame.\
  Therefore, the correction should be much faster when a sudden jump happens in system clock.

#### Streaming

* Fixed an issue with `sl::SensorsData::imu` that provided different data between LIVE input and STREAMING input. This issue was reported on [GitHub](https://github.com/stereolabs/zed-sdk/issues/337).\
  Now `sl::Camera::getSensorsData()` will provide the same values if using `LIVE` or `STREAMING` input.

#### Object Detection

* **Added skeletons keypoints confidence in `sl::ObjectData::keypoint_confidence`.**\
  It is now possible to get the confidence of every skeleton keypoint. This can be used to filter low confidence keypoints, or to help fusing keypoints seen by multiple stereo cameras.
* **Added a max range parameter for Object Detection module using `sl::ObjectDetectionParameters::max_range`.**\
  You can now set a maximum distance for 3D object detection. This allows to limit the 3D tracking space and remove detections outside a given range.

#### Bug Fixes

* **Fixed magnetometer data coordinate frame.**\
  Previously it was given in the coordinate frame of the magnetometer. It is now given in the coordinate frame of the IMU, so that the gyroscope, accelerometer and magnetometer on the ZED 2 share the same coordinate frame.
* Fixed an issue with Tegra encoder limiting the number of calls to the recording module.\
  Previously, it was limited to around 900-1000 `enableRecording()`/`disableRecording()` calls due to a bug in the Tegra encoder. Calls are now unlimited.