-
Notifications
You must be signed in to change notification settings - Fork 4.8k
API Changes
Version 2.56.1 beta
Please note that API changes in beta versions may not be final.
- added
RS2_OPTION_REGION_OF_INTEREST
and its type,RS2_OPTION_TYPE_RECT
andrs2_option_rect
- New APIs
-
rs2_start_collecting_fw_logs
andrs2_stop_collecting_fw_logs
to start/stop FW logging for a specific device, with C++rs2::device::start_collecting()
andstop_collecting()
-
rs2_get_fw_log_parsed_module_name
to get the FW log parsed message module name -
rs2_pipeline_set_device
to set the device used by the pipeline, with C++rs2::pipeline::set_device()
-
rs2_get_calibration_config
andrs2_set_calibration_config
to get & set calibration configuration using JSON -
rs2::motion_frame::get_combined_motion_data()
can be used for access to the plain motion data used withRS2_STREAM_MOTION
andRS2_FORMAT_COMBINED_MOTION
-
Version 2.55.1
-
RS2_FRAME_METADATA_ACTUAL_FPS
better reflects actual HW FPS (based on timestamp & frame counts; same as shown in the Viewer as "Hardware FPS") but with better precision, with each unit being 0.001 FPS (see #12326) - When a context is deleted any callback set with
rs2_set_devices_changed_callback
will no longer get called (see #12275) - In the Python wrapper,
config.enable_stream()
no longer has default arguments (see #11861) - New APIs
-
rs2_create_context_ex
accepts a JSON configuration to use (see #10386), which can override the default one now loaded fromRS2_CONFIG_FILENAME
(realsense-config.json already used by the Viewer; see #12432) -
rs2_device_is_connected
is the same asrs2_device_hub_is_device_connected
, but does not need ars2_device_hub
(see #12240) - Added options-changed callbacks via
rs2_set_options_changed_callback
, periodically (by default, every second) querying all options in the sensor and triggering a callback (see 12483)- The resulting
rs2_options_list
can then be used withrs2_get_option_value_from_list
, returningrs2_option_value
comprising an (id, type, and value) (see #12616) - Options IDs can now be queried by name via
rs2_option_from_string
, the reverse ofrs2_option_to_string
(see #12163) - Related APIs include
rs2_get_option_value
,rs2_delete_option_value
,rs2_set_option_value
,rs2_option_type_to_string
- Related types include
rs2_option_type
enum,rs2_option_value
- The resulting
- Added
rs2_gyro_sensitivity_to_string
,RS2_OPTION_GYRO_SENSITIVITY
,rs2_gyro_sensitivity
enum - C++ (
rs2::
)- Added
context( uninitialized )
constructor syntax to verbosely construct an uninitialized context - Added
context( char const * json_settings )
constructor to go withrs2_create_context_ex
- Added
context::operator bool()
- Added
device::get_type()
,::get_description()
to somewhat "standardize" how devices are reported in a common place - Added
device::operator<()
to properly order devices - Added
device::is_connected()
, callingrs2_device_is_connected
- Added try-catch block inside
calibration_change_callback::on_calibration_change
- Added
option_value
class managingrs2_option_value
lifetime - Added
options_list
class managingrs2_options_list
lifetime, iteration over which results inoption_value
- Added
options::get_option_value()
and::set_option_value()
, callingrs2_get_option_value
andrs2_set_option_value
- Added
options::get_supported_option_values()
, similar toget_supported_options()
but returning anoptions_list
rather than a vector of option-IDs - Added
options::on_options_changed
, making use of newoptions_changed_callback
- Added
rs2_frame_callback_sptr
,rs2_frame_processor_callback_sptr
,rs2_notifications_callback_sptr
,rs2_software_device_destruction_callback_sptr
,rs2_log_callback_sptr
,rs2_calibration_change_callback_sptr
,rs2_devices_changed_callback_sptr
,rs2_playback_status_changed_callback_sptr
,rs2_update_progress_callback_sptr
,rs2_options_changed_callback
struct andrs2_options_changed_callback_sptr
shared_ptr typedefs
- Added
-
- Removed APIs
-
rs2_get_dsm_params
&rs2_override_dsm_params
, both of which were never really in use, alogsiders2_dsm_params
,rs2_dsm_correction_model
- Removed
rs2::zero_order_invalidation
filter - Removed
rs2::calibrated_sensor
class
-
- Added
RS2_CONFIG_FILENAME
define containing the filename of the RealSense configuration file (underAppData
for Windows, and hidden under the user's home directory with Linux)
Version 2.54.1
- Firmware versions reported by librealsense will no longer have leading zeros; i.e.,
05.14.0.0
will now be5.14.0.0
- Sqlite, originally meant for use in internal unit-tests, has not been in used for a while and has been removed, and with it
rs2::recording_context
andrs2::mock_context
Version 2.53.1
Functionality:
- OCC/Tare Host-Assistance (HA) mode
- Calibration algorithms used in both regular and HA modes are similar, however the differences in implementation require minor API adaptation:
- HA mode shall be applied for RealSense MIPI cameras only; RealSense USB camera shall continue to use existing (on-chip) calibration mode
- The selection of the HA/Regular calibration mode is done via calibration Json file via a new attribute
- The presence of
host-assistance
parameter is not mandatory for USB cameras
- The presence of
- Modified Tare calibration routine now also extracts the camera health metric before and after the calibration, to facilitate the user decision and provision for unattended execution/automation
- OCC/Tare calibration routines the camera shall be configured as following:
- Depth 1280X720@30FPS
- For details please refer to example code
- Tare calibration API
rs2_run_tare_calibration
arguments have changed and therefore break backwards compatibility
Version 2.51.1
Functionality:
-
rs2_build_debug_protocol_command - See #10261 and #10279 - this API, and
rs2::device::build_command()
, generates a raw data cmd from opcode, params, and data, to help withrs2_send_and_receive_raw_data
Version 2.50.0
Functionality:
- rs2_run_focal_length_calibration_cpp - [UCAL] Perform Target-based Focal Length calibration (UCAL). The API call expect to receive Y8 frames gathered from Left and Right IR/Intensity sensors, to find and extract the targets captured by the camera, and then to readjust the focal length of the lef/right sensors. The output is the new calibration table ready to be flashed to the device. The user can pass on a callback that will get the algorithm processing status in percentage. Follow the Release Notes for v2.50.0 and read the accompanying White Paper for in-depth discussion of the camera intrinsic properties and the provided calibration methods
- rs2_run_focal_length_calibration - [UCAL] C-language version of the above call
- rs2_run_uv_map_calibration_cpp - [UCAL] UV-Mapping calibration is a provisional API for future enhancements (UCAL).
- rs2_run_uv_map_calibration - [UCAL] UV-Mapping calibration is a provisional API for future enhancements.
- rs2_calculate_target_z_cpp - [UCAL] The API call accepts frame collected by the Left sensor that include Y8 stream data, extracts the target that was captured by the camera and provides the estimated distance to the target's plane. Note that the accuracy of the algorithm is bounded by the precision of the target dimensions measured and provided by the customer
- rs2_calculate_target_z - C-language API call for the above algorithm
- rs2_frame_queue_size - Retrieve the number of frames that the queue holds.
- rs2_matchers_to_string -Auxiliary function utilized by the Python wrapper
Enumerations:
- RS2_CALIB_TARGET_ROI_RECT_GAUSSIAN_DOT_VERTICES
- RS2_CALIB_TARGET_POS_GAUSSIAN_DOT_VERTICES
- Printed Target types in use by UCAL
Options:
-
RS2_OPTION_AUTO_EXPOSURE_LIMIT_TOGGLE - Toggles D400 series Auto-exposure limit on/off. When both this and Auto-Exposure controls are set on, changing the value of
RS2_OPTION_AUTO_EXPOSURE_LIMIT
would set the upper bound of exposure values in FW, allowing to keep the required FPS rate. -
RS2_OPTION_AUTO_GAIN_LIMIT_TOGGLE - Toggles D400 series Auto-gain limit on/off. When both this and Auto-Exposure controls are set on, changing the value of
RS2_OPTION_AUTO_GAIN_LIMIT
would set the upper bound of digital gain values in FW, preventing over-saturation.
Version 2.47.0
Functionality:
- rs2_check_firmware_compatibility - Check the FW image provided by the users and the target device. Prevent flashing devices with incompatible FW images to prevent bricking and malfunctioning. In case of incompatible match a user warning is issued and the DFU process is interrupted. Note that the protection is not invoked to devices that were originally enumerated in recovery (DFU) mode
New options:
- RS2_OPTION_AUTO_RX_SENSITIVITY,RS2_OPTION_TRANSMITTER_FREQUENCY - L515-specific options.
- Enable receiver sensitivity according to ambient light, bounded by the Receiver Gain control
- Changes the transmitter frequencies increasing effective range over sharpness Experimental options deprecated: Options:
-
RS2_OPTION_TRIGGER_CAMERA_ACCURACY_HEALTH,RS2_OPTION_RESET_CAMERA_ACCURACY_HEALTH - L515-specific.
The two options are rendered not functional as of v2.46.0 of the SDK.
Enum:
rs2_cah_trigger
Function:rs2_cah_trigger_to_string
Version 2.45.0
Documentation updates only
Version 2.43.0
Class:
-
calibration_change_device - is the new base class that separates calibration updates observer and calibration invocation.
Casting
device
to the type allows to utilize the extension interface and register to thermal adjustment notifications. -
video_stream_profile - Adding comparison operator for
video_profile
that takes into account stream resolution
Types:
- RS2_CALIBRATION_THERMAL - [D400] Calibration type supported by selected Realsense Stereo devices.
- RS2_EXTENSION_CALIBRATION_CHANGE_DEVICE [D400] - Extension API allowing to register user-defined callbacks for notifications of Thermal adjustments invocation. These callbacks are informative in their nature and can be used for environmental monitoring.
Version 2.42.0
Functions:
- rs2_reset_logger - Cleanup logger selection.
- rs2_enable_rolling_log_file - Upon reaching a certain limit close and remove the old log and start writing to a new file. Requires permissions to remove/rename files in log file directory.
Options:
- RS2_OPTION_AUTO_EXPOSURE_LIMIT - [D400] Limit maximal exposure used in Auto-Exposure to preserve FPS.
- RS2_OPTION_AUTO_GAIN_LIMIT - [D400] Limit maximal digital gain value used in Auto-Exposure.
Version 2.41.0
Functions:
- rs2_get_debug_stream_profiles - Retrieve list of debug stream profiles that given sub-device can provide. Types:
- RS2_FORMAT_FG - [L515] 16-bit per-pixel Frame Grabber format.
- RS2_EXTENSION_DEBUG_STREAM_SENSOR - Auxiliary type
Version 2.40.0
Functions:
-
rs2_get_number_of_fw_logs - Returns number of fw logs already polled from device waiting to be parsed by user.
-
rs2_get_fw_log_parsed_sequence_id - Read logger's sequence id - a cyclic number set by FW in [0..15] range
-
rs2_get_max_usable_depth_range - [L515] Assess the maximum range of the camera given the amount of ambient light in the scene
Types:
-
RS2_OPTION_DIGITAL_GAIN - [L515] The option tag
RS2_OPTION_AMBIENT_LIGHT
is deprecated for L515 and replaced by the mentioned enum. The previous value is left intact for back-compatibility - RS2_OPTION_HUMIDITY_TEMPERATURE - [L515] Humidity sensor temperature reading
- RS2_OPTION_ENABLE_MAX_USABLE_RANGE - [L515] Turn on/off the maximum usable depth sensor range given the amount of ambient light in the scene
- RS2_OPTION_ALTERNATE_IR - [L515] Toggle the alternate IR, When enabling alternate IR, the IR image is holding the amplitude of the depth correlation.
- RS2_OPTION_NOISE_ESTIMATION - [L515] Indicates the noise level in the IR image.
- RS2_OPTION_ENABLE_IR_REFLECTIVITY - [L515] Enables data collection for calculating IR pixel reflectivity.
- rs2_digital_gain enumeration - provides the range of values applicable for `RS2_OPTION_DIGITAL_GAIN.
- RS2_EXTENSION_MAX_USABLE_RANGE_SENSOR - [L515] Auxiliary type
Version 2.39.0
Functions:
- rs2_create_hdr_merge_processing_block - Depth HDR Post-processing module (Alpha).
- rs2_create_sequence_id_filter - Processing module that filters frame according to metadata attributes. (Alpha)
- rs2_host_perf_mode_to_string - Utility function
Options:
- RS2_OPTION_HOST_PERFORMANCE - Presets low-level USB transactions sizes for selected devices (L515).
- RS2_OPTION_HDR_ENABLED - Toggles Depth HDR functionality for supported devices (D400 with FW 5.12.8.200+)
- RS2_OPTION_SEQUENCE_NAME - Sets Sequence ID to identify the HDR preset configuration
- RS2_OPTION_SEQUENCE_SIZE - Controls the HDR configuration size (currently preset to 2)
- RS2_OPTION_SEQUENCE_ID - Specifies the active configuration item for querying/setting values for HDR preset
Enumerations:
- rs2_host_perf_mode - Host/Device configuration mode that modifies USB transactions size of transport layer. Allows to optimize traffic balance and improve frame drops on low-end hosts
- RS2_FRAME_METADATA_SEQUENCE_NAME,\nRS2_FRAME_METADATA_SEQUENCE_ID, \nRS2_FRAME_METADATA_SEQUENCE_SIZE - Metadata attributes utilized in HDR preset mode, supported by D400/FW 5.12.8.200+.
Extension types:
- RS2_EXTENSION_HDR_MERGE, RS2_EXTENSION_SEQUENCE_ID_FILTER, - New Processing Block types registration
Version 2.38.1
- rs2_cah_trigger_to_string - Utility function
- rs2_cah_trigger - enumeration. L515-specific
Version 2.37.0
- RS2_FRAME_METADATA_GPIO_INPUT_DATA - Metadata attribute for GPIO state. Applicable for selected SKUs.
- points pointcloud::calculate(frame depth) const - to use const modifier.
Version 2.36.0
Types:
- rs2_calibration_type - [Enum] Supported Calibration types
- rs2_calibration_status - [Enum] Calibration result
- rs2_calibration_change_callback - [Struct] Calibration Change
- RS2_OPTION_TRIGGER_CAMERA_ACCURACY_HEALTHRS2_OPTION_RESET_CAMERA_ACCURACY_HEALTH - [Option] Provisions for Camera Accuracy Health routine.
- rs2_dsm_params - [Struct] DSM (Digital Sync Module) calibration parameters
- rs2_dsm_correction_model - [Enum] Supported DSM model
- RS2_EXTENSION_FW_LOGGER - Device interface for accessing hardware logs RS2_EXTENSION_AUTO_CALIBRATION_FILTER - Calibration Utility Interface RS2_EXTENSION_DEVICE_CALIBRATION - Calibration Extension Interface RS2_EXTENSION_CALIBRATED_SENSOR - Sensor Calibration Interface
API Calls:
- rs2_register_calibration_change_callback - C-Callback to be invoked upon calibration completion .
- rs2_register_calibration_change_callback_cpp - CPP-Callback to be invoked upon calibration completion.
- rs2_trigger_device_calibration - Start calibration process.
- rs2_override_extrinsics - Replace existing extrinsic.
- rs2_override_intrinsics - Replace sensor's intrinsic.
- rs2_get_dsm_params - Retrieve DSM parameters structure.
- rs2_override_dsm_params - Replace sensor's DSM parameters.
- rs2_reset_sensor_calibration - Reset sensor's DSM parameters.
- rs2_calibration_type_to_string,rs2_calibration_status_to_string - Utility functions.
- rs2_create_fw_log_message - Allocate resources to hold FW log entry.
- rs2_get_fw_log - Retrieve the most recent FW log message.
- rs2_get_flash_log - Flash logs store data collected during the latest power cycle. The API retrieves a single message from that log stored on Flash.
- rs2_delete_fw_log_message - Deallocate existing FW log entry.
- rs2_fw_log_message_data - Retrieve the text message stored in a single FW log entry.
- rs2_fw_log_message_size - Get size in bytes of the relevant FW log message.
- rs2_fw_log_message_timestamp - Get FW-assigned timestamp of the relevant FW log message.
- rs2_fw_log_message_severity - Retrieve FW log severety level.
- rs2_init_fw_log_parser - Initialize and load FW log parser with XML dictionary.
- rs2_create_fw_log_parsed_message - Allocate resources to store and proceed a single FW log message.
- rs2_delete_fw_log_parsed_message - Dealocate parsed message resources.
- rs2_parse_firmware_log - Convert raw FW log message to human-readable format.
- rs2_get_fw_log_parsed_message - Extract the core text from the parsed FW log message.
- rs2_get_fw_log_parsed_file_name - Extract file name of the message's origin.
- rs2_get_fw_log_parsed_thread_name - Get thread id. of the message's origin.
- rs2_get_fw_log_parsed_severity - Read FW log's severety level.
- rs2_get_fw_log_parsed_line - Retrieve the line number of the message's origin.
- rs2_get_fw_log_parsed_timestamp - FW-assigned timestamp of the FW log entry.
- rs2_create_terminal_parser - Create Terminal Command parser.
- rs2_delete_terminal_parser - Delete Terminal object instance.
- rs2_terminal_parse_command - Convert Terminal-generated command into binary format compatible with HW-monitor interface.
- rs2_terminal_parse_response - Convert results obtained from FW into human-readable format.
Version 2.35.0
- RS2_OPTION_THERMAL_COMPENSATION - Provisioning for Thermal Compensation mechanism for selected SKUs.
Version 2.34.0
-
rs2_create_net_device - Establish connection to a hosts that runs Realsense server application and create a proxy camera class. The proxy then can be injected to Librealsense context and retrieved and queried as any other device instance (e.g
query_devices()
). -
RS2_CAMERA_INFO_IP_ADDRESS - Stores the IP address of the remote server. The attribute is applicable for IP device only.
- rs2_get_active_streams - Utility API allows to query the streams currently generated by a given sensor
-
rs2_allocate_synthetic_motion_frame - Allows
Software-device
to produce inertial motion frames. -
rs2_software_device_set_destruction_callback - Execute user-defined code when
software_device
instance's destructor is invoked. The most-common usage is to de-allocate resources and notify user's 3rd-party modules. - rs2_software_device_set_destruction_callback_cpp - The C++ version of the above API.
-
rs2_software_device_register_info - Populate
software_device
with user-defined atrtibutes -
rs2_software_device_update_info - Override
software_device
attributes with user-defined values. The function shal throw if the attribute does not exist - rs2_software_sensor_on_notification - Notification injection to emulate events produced by the external code
-
rs2_software_sensor_add_video_stream_ex - Extends
rs2_software_sensor_add_video_stream
with the notion ofdefault_stream
. Thedefault_stream
attribute provides a hint for the SDK to activate the specific stream when user requests a parameter-less configuration, e.g.pipe.start(void)
-
rs2_software_sensor_add_motion_stream_ex - Extends
rs2_software_sensor_add_motion_stream
withdefault_stream
attribute. -
rs2_software_sensor_add_pose_stream_ex - Extends
rs2_software_sensor_add_pose_stream
withdefault_stream
attribute. -
rs2_software_sensor_add_option - Add user-defined options to
software_device
-
rs2_software_sensor_detach - Disconnect the lifetime of
software_sensor
from the embodiedsoftware_device
in order to release the circular dependency. Follow the link for more details. - rs2_software_notification - used to pass user-defined data into the SDK's notifications mechanism.
- rs2_depth_frame_get_units - Retrieves the Raw Depth -> Metric Depth scaling factor that was previously availabel only via the depth sensor's API.
- RS2_OPTION_EMITTER_ALWAYS_ON - Enable the projector to remain constantly on. Applies to D400 Global Shutter models (D43x) only.
Version 2.33.1
- rs2_serialize_json - Serialize JSON content, returns ASCII-serialized JSON string on success
- rs2_load_json - Load JSON and apply advanced-mode controls
- rs2_log_to_callback - Propagate SDK-generated logs to user-provided callback function
- rs2_log_to_callback_cpp - Propagate SDK-generated logs using c++ callback object
- rs2_get_log_message_line_number - Retrieve the logged line number
- rs2_get_log_message_filename - Retrieve the logged file name
- rs2_get_raw_log_message
- rs2_get_full_log_message
Controls:
- RS2_OPTION_FREEFALL_DETECTION_ENABLED - Toggle sensor free-fall protection mechanism (on by default)
- RS2_OPTION_AVALANCHE_PHOTO_DIODE - Set the exposure interval for the receiver's APD
- RS2_OPTION_POST_PROCESSING_SHARPENING - Set the sharpening level in post-processed phase
- RS2_OPTION_PRE_PROCESSING_SHARPENING - Set the sharpening level in pre-processed phase
- RS2_OPTION_NOISE_FILTERING - Control the edge thresholds for the noise filtering
- RS2_OPTION_INVALIDATION_BYPASS - Toggle pixels invalidation processing
- RS2_OPTION_AMBIENT_LIGHT - Select the ambient light settings
- RS2_OPTION_SENSOR_MODE - Preset the scanning mode resolution
Presets: /** \brief For L500 devices: provides optimized settings (presets) for specific types of usage. */
- rs2_l500_visual_preset - Provides optimized settings for specific types of usage
Option characterization:
-
rs2_sensor_mode - utilized by
RS2_OPTION_SENSOR_MODE
-
rs2_ambient_light - utilized by
RS2_OPTION_AMBIENT_LIGHT
Enum to string convenience APIs
Version 2.32.1
- rs2_remove_static_node - T265: Remove a named location tag
-
rs2_create_huffman_depth_decompress_block - Generates a processing block dedicated for decoding
Z16H
compressed depth format. -
RS2_FORMAT_Z16H - Provision for
Z16H
format. A variable-length compression dedicated for 16-bit depth values using customized Huffman code implementation. - RS2_FRAME_METADATA_RAW_FRAME_SIZE - Metadata attribute for the size in bytes of the transmitted frame payload (w/o metadata header). For non-compressed video streams is equal to Width*Height*BytesPerPixel.
-
RS2_EXTENSION_COLOR_SENSOR,
RS2_EXTENSION_MOTION_SENSOR,
RS2_EXTENSION_FISHEYE_SENSOR,
RS2_EXTENSION_DEPTH_HUFFMAN_DECODER - Extension types used for class instance identification/affiliation.
Version 2.31.0
D4xx Calibration routines: https://github.com/IntelRealSense/librealsense/commit/e89e4d6477e619291789d5b2be141e55303687e5
- rs2_run_on_chip_calibration_cpp - Invoke built-in target-less calibration routine (with progress report)
- rs2_run_tare_calibration_cpp - Adjust camera distance w.r.t. flat target. Requires known ground-truth plane (with progress report)
- rs2_run_on_chip_calibration - Invoke built-in calibration routine
- rs2_run_tare_calibration - Adjust camera distance w.r.t. flat target. Requires known ground-truth plane
- rs2_get_calibration_table - Read calibration table from device Flash
- rs2_set_calibration_table - Write calibration table to the device Flash
Metadata attributes:
-
RS2_FRAME_METADATA_FRAME_LASER_POWER_MODE
has been superseded and will be gradually replaced by RS2_FRAME_METADATA_FRAME_EMITTER_MODE attribute - RS2_FRAME_METADATA_FRAME_LED_POWER value support has been added for selected SKUs.
Options:
- RS2_OPTION_LED_POWER - LED Power settings (mW)
- RS2_OPTION_ZERO_ORDER_ENABLED - L500-specific Depth post-processing filter control (on by default)
- RS2_OPTION_ENABLE_MAP_PRESERVATION - T265: Preserve previous map when starting
Raw Streaming Formats:
-
RS2_FORMAT_Y8I - 8-bit per pixel interleaved. 8-bit left, 8-bit right
-
RS2_FORMAT_Y12I - up to 12-bit intensity date per pixel, interleaved, packed into 24-bit word (little-endian)
-
RS2_FORMAT_INZI - Multi-planar Depth 16bit + IR 10bit (SR3xx)
-
RS2_FORMAT_INVI - 8-bit intensity stream (SR3xx)
-
RS2_FORMAT_W10 - 10 bit per pixel intensity data. Y10BPACK-complient [8,8,8,8,[2,2,2,2]]
-
RS2_EXTENSION_AUTO_CALIBRATED_DEVICE - Enabled for D4xx devices that support auto-calibration
PLY Exporter customization
- OPTION_PLY_MESH - Store Depth as Pointcloud/Polygons (Mesh) selector.
- OPTION_PLY_BINARY - Selec ASCII/Binary representation
- OPTION_PLY_NORMALS - Generate normals per polygon vertex (applicable Mesh only)
- OPTION_PLY_THRESHOLD - Set the threshold for polygon generation
Version 2.30.0
-
RS2_NOTIFICATION_CATEGORY_POSE_RELOCALIZATION - category added to
rs2_notification_category
. The notification designates T265 performing relocalization event, i.e. finding a match between the current position and a previously recorded map.
Version 2.29.0
Changed enum RS2_CAMERA_INFO_FIRMWARE_UPDATE_SERIAL_NUMBER to RS2_CAMERA_INFO_FIRMWARE_UPDATE_ID
Version 2.27.0
-
T265 Calibration Write APIs: Allow custom calibration to be provided to the device and committed to device flash memory. There is also a mechanism to roll-back to factory calibration. Currently these APIs are only implemented for the T265, but similar scheme is likely to be used for other families
- rs2_set_intrinsics - set video stream profile intrinsic calibration
- rs2_set_extrinsics - set extrinsic calibration between two stream profiles
- rs2_set_motion_device_intrinsics - set motion stream profile intrinsics
- rs2_reset_to_factory_calibration - Resets the device to factory calibration when available
- rs2_write_calibration - Commit calibration changes to device flash memory
-
rs2_clone_video_stream_profile - Utility function used when developing custom processing blocks that modify video stream resolution
Version 2.26.0
Firmware Update with non Digitally-signed images:
- rs2_update_firmware_unsigned_cpp - Invoke Firmware Update flow using unsigned DFU image.
- rs2_update_firmware_unsigned - Same as above for C-code users
- rs2_get_frame_data_size - The actual frame size may differ from the initially-negotiated max size. Required to properly support the compressed data streams, such as MJPEG.
- RS2_FORMAT_MJPEG - Adding SDK support for MJPEG compressed stream type
- RS2_OPTION_DEPTH_OFFSET- Provides the offset from the sensor to the depth origin for affected camera types.
Version 2.25.0
Introduce T265-specific options
- RS2_OPTION_ENABLE_MAPPING - Enable internal mapping generation required for location correction (feedback). Turning this option off will result in device running in an open loop.
- RS2_OPTION_ENABLE_RELOCALIZATION - Allow the device ti utilize the internal/stored map to correct the current location based on previously recorded data.
- RS2_OPTION_ENABLE_POSE_JUMPING - Allow the device to correct the location by making a discontinuous transformation (jump)
- RS2_OPTION_ENABLE_DYNAMIC_CALIBRATION Read more in the above link
Version 2.24.0
- Firmware Update functionality
- Switch SR300 and D400 camera into DFU (Firmware Update) mode rs2_enter_update_state. When applied, the D400 camera will disconnect from host and reconnect as boot-loader device with a different VID/PID.
- Perform Firmware Upgrade for D400/SR300 device rs2_update_firmware. The functionality requires a digitally-signed image to be provided as an input
- Perform Firmware Upgrade for D400/SR300 device, report progress to user-provided callback rs2_update_firmware_cpp
- Generate a firmware image copy rs2_create_flash_backup. Note that the generated backup image format is different from the file required in
rs2_update_firmware/rs2_update_firmware_cpp
and cannot be used with these APIs. - Generate a firmware image copy, report progress to user-provided callback rs2_create_flash_backup_cpp. The limitations are similar to
rs2_create_flash_backup
Version 2.23.0
- Depth linearity enhancement - Mitigate the half-pixel disparity issue by adjusting the Amplitude factor in the modulation funciton ()
- Adding getter/setter for the Half-disparity modulation function control rs2_set_amp_factor/rs2_get_amp_factor into the Advanced-mode parameters block.
- Adding a new temperature sensor
RS2_OPTION_APD_TEMPERATURE
option. - Enumerating Global Timer-supported sensors with explicit extension type
RS2_EXTENSION_GLOBAL_TIMER
.
Version 2.22.0
- Global Camera Timestamp:
- Add
rs2_timestamp_domain::RS2_TIMESTAMP_DOMAIN_GLOBAL_TIME
enumeration type that will be used as default when the HW timestamp is available via the appropriate metadata attribute. - Add
rs2_sensor* rs2_get_frame_sensor
function - Add
RS2_OPTION_GLOBAL_TIME_ENABLED
option
- Depth units transformation - Processing block
-
rs2_processing_block* rs2_create_units_transform
function -
Add
rs2_format::RS2_FORMAT_DISTANCE
synthetic stream format -
Add
units_transform
class -
Add
rs2_error * rs2_create_error
functionality -
Add
pose_stream_profile
class to handle T265 pose sensor. -
Add
frame::get_sensor()
functionality -
Add
sensor_from_frame(frame f)
functionality
- GLSL Processing Blocks Module:
- New header files with new API for GLSL-supported modules are added to include/librealsense2-gl directory
New IR format introduced to D415 - W10
:
- Rectified, 10 bit per-pixels (packed) IR stream
- FullHD configuration only 30 fps
- Can be configured for use in conjunction with Depth stream (which is limited to 720p)
- Available as:
- parsed 10 bit per pixel RS2_FORMAT_Y10BPACK
- Raw packed data (4pixel/5bytes) according to V4L2-PIX-FMT-Y10BPACK specification
New Lens distortion model support added for T265 optical sensors -
RS2_DISTORTION_KANNALA_BRANDT4.
The model is utilized in Project/Deproject routines
rs2_send_wheel_odometry - Wheel odometer API velocity type updated from angular to linear.
No API changes
-
rs2_get_recommended_processing_blocks
Retrieving an ordered list of processing blocks/filters that are recommended to be used for a specific sensor. For instance, for the Depth sensor the list may include (Decimation->Disparity->Spatial->Temporal->HoleFilling->Disparity``) sequence. -
rs2_get_recommended_processing_blocks_count
Retrieving the number of elements on the processing blocks list -
rs2_get_processing_block
Extracting a specific processing block from the list -
rs2_delete_recommended_processing_blocks
Deleting the processing blocks list. The function shall be used in conjunction withrs2_get_recommended_processing_blocks
mentioned above to explicitly release the allocated resources. -
rs2_supports_processing_block_info
Test for attribute availbility without throwing exception -
rs2_get_processing_block_info
Retrieve processing block attribute -
rs2_is_processing_block_extendable_to
Check API extension support -
rs2_create_zero_order_invalidation_block
Adding zero order invalidation processing block
-
rs2_get_options_list
Dynamic discovery of the options supported by a librealsense entity (sensor/processing_block/etc`). -
rs2_get_options_list_size
Retrieve the number of elements in the options list. -
rs2_get_option_name
Return human-readable option's name attribute. -
rs2_get_option_from_list
Return an indexed element from the lsit -
rs2_delete_options_list
Deleting the processing blocks list. The function shall be used in conjunction withrs2_get_options_list
to explicitly release previously allocated resources. - Extending RS2_OPTIONS enumeration list with:
RS2_OPTION_ZERO_ORDER_POINT_X
,RS2_OPTION_ZERO_ORDER_POINT_Y
,RS2_OPTION_LLD_TEMPERATURE
,RS2_OPTION_MC_TEMPERATURE
,RS2_OPTION_MA_TEMPERATURE
-
rs2_get_stereo_baseline
Retrieve Stereo-based Depth sensor baseline -
rs2_context_add_software_device
Inject a software (mockup) device into the SDK's context to be discoverable viaquery_devices
API call.
-
rs2_context_unload_tracking_module
Unload all perviously acquired tracking device instances. A device query for T265 will automatically take ownership of the connected device. This new API allows to explicitly release the devices so that they will be available for use by external processes. -
rs2_export_localization_map
Advanced feature that allows to export the localization map for later reuse. -
rs2_import_localization_map
Import previously-obtained localization map into device. -
rs2_set_static_node
Add a positional bookmark (name&location) for positional referencing. -
rs2_get_static_node
Retrieve previously stored bookmark position. -
rs2_load_wheel_odometry_config
Load the robot platform configuration and calibration data into device. The data includes the rigid body transformation as well as calibration parameters. -
rs2_send_wheel_odometry
Feed odometer data generated by a third-party sensor into the tracking device.
-
rs2_option_to_string
- For existing options it will return option name, but for future API additions the user should call rs2_get_option_name instead
-
rs2_create_yuy_decoder
Adding YUY2 to RGB processing block #3056 : -
rs2_create_error
Exposing librealsense error to avoid cross-boundary new/delete operations: -
rs2_create_threshold
Adding depth min/max clamp filter (processing block): -
RS2_OPTION_EMITTER_ON_OFF
- addingRS2_OPTION_EMITTER_ON_OFF
to options enumeration -
rs2_processing_block_register_simple_option
- adding ability to register custom processing block options - Adding
save_to_ply
andsave_single_frameset
processing blocks to C++ headers only (staging to be added to the API) under rs_export.hpp.
- set_devices_changed_callback - was removed from C++ header files
-
#2773 introduced asynchronous pipeline API (recommended for high frequency data such as IMU). This change is limited to adding new overloads to
pipeline.start
method:
-
rs2_pipeline_start_with_callback - pipeline start with C function pointer and user data, similar to
sensor.start
-
rs2_pipeline_start_with_callback_cpp - pipeline start with C++ frame callback object, similar to
sensor.start
- rs2_pipeline_start_with_config_and_callback - pipeline start with callback and config
- rs2_pipeline_start_with_config_and_callback_cpp - pipeline start with callback and config (C++ frame callback object)
- #2687 introduces new API to control recording compression:
- rs2_create_record_device_ex - create recorder and explicitly enable or disable compression. By default, compression will be enabled based on device type. D435i and T265 devices that provide high FPS streams disable compression by default to avoid frame drops during recording.
-
#2673 adds API to generate IMU and pose data with
software_device
:
Added support for IMU stream and recording IMU frames in software sensor:
- stream_profile add_motion_stream(rs2_motion_stream motion_stream)
- rs2_stream_profile* rs2_software_sensor_add_motion_stream(rs2_sensor* sensor, rs2_motion_stream motion_stream, rs2_error** error);
- void on_motion_frame(rs2_software_motion_frame frame)
- void rs2_software_sensor_on_motion_frame(rs2_sensor* sensor, rs2_software_motion_frame frame, rs2_error** error);
Added support for pose stream and recording pose frames in software sensor:
- stream_profile add_pose_stream(rs2_pose_stream pose_stream)
- rs2_stream_profile* rs2_software_sensor_add_pose_stream(rs2_sensor* sensor, rs2_pose_stream pose_stream, rs2_error** error);
- void on_pose_frame(rs2_software_pose_frame frame)
- void rs2_software_sensor_on_pose_frame(rs2_sensor* sensor, rs2_software_pose_frame frame, rs2_error** error);
-
#2757 is splitting C++
processing_block
class intoprocessing_block
andfilter
classes, withfilter
being derived fromprocessing_block
.processing_block
abstraction offersstart
andinvoke
operations and does not guaranty results will be immediately available (processing_block
can chose to delay frames).filter
is special type of processing block that performs its operation immediately. This lets users compose filters usingapply_filter
operation.
-
rs2_project_color_pixel_to_depth_pixel - map pixel in the color image to pixel in depth image
-
rs2_allocate_points - allows the user to write custom processing block that outputs frame of type points
-
frame::apply_filter - this method allows unified application of processing blocks, regardless of processing or frame type. This allows easy composition of processing blocks.
-
processing_block::operator()(frame f) const
was removed to reduce the overall ways processing block can be invoked. All processing blocks still containinvoke
method for async processing (that sends the results to callback), and can be applied using addedapply_filter
method, in addition to helper methods likecolorize
andcalculate
specific to each block.
- rs2_query_devices_ex - provide a list of connected devices with user-specified mask. This allows to cherry-pick specific types (e.g D400/SR300) during device acquisition stage.
-
rs2_try_wait_for_frame, rs2_pipeline_try_wait_for_frames - wait_for_frames overload that does not throw an exception on timeout
-
was_added and get_new_devices methods added to event_information C++ class
-
rs2_option::RS2_OPTION_INTER_CAM_SYNC_MODE - Master/Slave control for multi-cam setup synchronization.
-
rs2_frame_metadata_value - Extending available attributes:
- Depth Sensor:
- Laser Power, Laser Power Mode, Exposure Priority, Exposure ROI.
- RGB Sensor:
- Brightness, Contrast, Saturation, Sharpness, Backlight_Compensation, Hue, Gamma, White_Balance_Mode & Temperature, Powerline Frequency and Low Light Compensation.
- Depth Sensor:
- rs2_camera_info::RS2_CAMERA_INFO_RECOMMENDED_FIRMWARE_VERSION - Field was moved next to RS2_CAMERA_INFO_FIRMWARE_VERSION.
- rs2_create_processing_block_fptr - Allows to create custom processing blocks using C-bindings (C, LabView, .NET)
- rs2_start_processing_fptr - Allows to start a processing block with a callback
- rs2_config_enable_device_from_file_repeat_option - Allows to configure pipeline to play from recording while controlling playback-repeat behavior
-
rs2_create_hole_filling_filter_block - Hole-Filling filter supports three modes of operation:
- Fill from left - fill the hole by the value from an immediate left neighbor
- Fill from Far - select one of the up/down/left/right pixel neighbors farthest away from the camera
- Fill from Near - select one of the up/down/left/right neighbors closest to the camera.
It is recommended to use this post-processing block last in the filters chain. The functionality is integrated and can be reviewed in realsense-viewer/post-processing section
No API changes
Adding RS2_CAMERA_INFO_USB_TYPE_DESCRIPTOR
enumeration to detect USB2 vs USB3 mode (when supported by the firmware).
Adding RS2_OPTION_AUTO_EXPOSURE_CONVERGE_STEP
enumeration to control the FishEye Auto-Exposure algorithm
The option is available for TM1-enabled devices only.
No API changes
-
rs2::frameset::get_infrared_frame() - Simpler way for users to get infrared frames from a
rs2::frameset
- Fixed
rs2_set_devices_changed_callback
- missingconst
specifier andvoid** user
parameter were added. - Change the 'Holes Filling' control for Temporal Post-Processing filter to be activated with
RS2_OPTION_HOLES_FILL
instead ofRS2_OPTION_FILTER_MAGNITUDE
- rs2_keep_frame - this function can be used to preserve specific frame for longer processing. Calling it signals the intention to not return this frame to the pool within next 100ms.
-
rs2_create_disparity_transform_block A depth data conversion class that transforms depth data info/from disparity domain for stereo-based depth sensors (D400 series). This functionality allows to run post-processing filters in disparity domain to enhance the filtered outcome.
-
rs2_depth_stereo_frame_get_baseline Retrieve the stereoscopic baseline in mm for stereo-based depth camera.
-
rs2_export_to_ply Making the export functionality publicly available, also addressing #862
- rs2_log - Usability function that allows the user to add logs to librealsense internal logger. The feature is useful in debugging and profiling scenarios.
Post-processing depth filters:
- rs2_create_decimation_filter_block - Down-sampling filter that effectively reduces the depth map resolution.
- rs2_create_spatial_filter_block - Spatial edge-preserving depth filter.
- rs2_create_temporal_filter_block - Temporal filter that rectifies depth values based on previously-available frames.
The filters have been integrated into the realsense-viewer and depth-quality tools.
No API changes introduced
- rs2_start_processing_queue - convenience function that lets the user target the output of a processing block (for example align) directly into a frame_queue. This helps in languages where function pointers are not available, such as LabView
Signature of rs2_is_option_read_only, rs2_get_option, rs2_set_option, rs2_supports_option, rs2_get_option_description and rs2_get_option_value_description was changed. First parameter used to be pointer to rs2_sensor and now is pointer to rs2_options. However, it is 100% safe to cast pointer to rs2_sensor to pointer to rs2_options.
See Pipeline Changes pull-request for explanation
- rs2_stop_pipeline is now available as rs2_pipeline_stop
- rs2_start_pipeline is now available as rs2_pipeline_start
- rs2_pipeline_get_device is now available as rs2_pipeline_profile_get_device
- rs2_pipeline_get_active_streams is now available as rs2_pipeline_profile_get_streams
- rs2_enable_pipeline_stream is now available as rs2_config_enable_stream
- rs2_enable_pipeline_device is now available as rs2_config_enable_device
- rs2_disable_stream_pipeline is now available as rs2_config_disable_stream
- rs2_disable_all_streams_pipeline is now available as rs2_config_disable_all_streams
- rs2_pipeline_start_with_config
- rs2_pipeline_get_active_profile
- rs2_delete_pipeline_profile
- rs2_create_config
- rs2_delete_config
- rs2_config_enable_all_stream
- rs2_config_enable_device_from_file
- rs2_config_enable_record_to_file
- rs2_config_resolve
- rs2_config_can_resolve
- rs2_config_disable_indexed_stream
- rs2_get_stream_profile_size - This function was intended to offer an estimate of USB bandwidth, however USB3 performance is affect by factors other then bytes/second, rendering this method useless
- rs2_open_pipeline - This function was offered to force pipeline configuration prior to streaming. This can be more effectively achieved by rs2_config_resolve and rs2_config_can_resolve
- rs2_start_pipeline_with_callback - and rs2_start_pipeline_with_callback_cpp - Pipeline is always performing synchronization at the moment. If you wish to get minimum latency you can use callback API of the individual sensors
- rs2_pipeline_get_selection_count, rs2_pipeline_get_stream_selection, rs2_pipeline_get_stream_type_selection, rs2_pipeline_delete_selection - These methods were redundant
- rs2_get_context_time is now available as rs2_get_time
- rs2_create_pipeline_with_device is now available as rs2_enable_pipeline_device
- rs2_enable_stream_pipeline is now available as rs2_enable_pipeline_stream
- rs2_pipeline_get_selection is now available as rs2_pipeline_get_active_streams
- rs2_can_enable_stream_pipeline - This method, while useful, was not 100% clearly defined. The same goal was more cleanly achieved in a later release - rs2_config_can_resolve
- rs2_pipeline_get_extrinsics - Extrinsics can be queried between stream profiles, and don't require the pipeline or context.
- rs2_pipeline_get_context - Context can be passed to pipeline constructor for dependency injection, but should not be required for anything useful later on.
- rs2_create_pointcloud used to accept 2 parameters but rs2_create_pointcloud accepts 1 parameters!
- rs2_create_processing_block used to accept 3 parameters but rs2_create_processing_block accepts 2 parameters!
- rs2_create_align used to accept 3 parameters but rs2_create_align accepts 2 parameters!
Intel® RealSense™ SDK Wiki
- Home
- Troubleshooting Q&A
- Release Notes
- API Changes
- API How-To
- Build Configuration
- Overview of Depth from Stereo
- Post-Processing
- Sample Data for SDK examples
- D400 Series Visual Presets
- Projection in RealSense SDK 2.0
- API Documentation
- About Android Support
- RealSense with Raspberry Pi 3
- RealSense with Raspberry Pi 4
- RealSense with NVidia Jetson
- Using Two Cameras with ROS
- Frame Buffering Management
- Supported Matrix
- Docker