NVIDIA DeepStream SDK API Reference

9.2 Release
rs2::frame Class Reference

Detailed Description

Inheritance diagram for rs2::frame:

Public Member Functions

 frame ()
 Base class for multiple frame extensions. More...
 
 frame (rs2_frame *ref)
 Base class for multiple frame extensions with internal frame handle. More...
 
 frame (frame &&other) noexcept
 Change the internal frame handle to the one in parameter, then put the other frame internal frame handle to nullptr. More...
 
frame & operator= (frame other)
 Change the internal frame handle to the one in parameter, the function exchange the internal frame handle. More...
 
 frame (const frame &other)
 Set the internal frame handle to the one in parameter, the function create additional reference if internal reference exist. More...
 
void swap (frame &other)
 Swap the internal frame handle with the one in parameter. More...
 
 ~frame ()
 releases the frame handle More...
 
void keep ()
 keep the frame, otherwise if no refernce to the frame, the frame will be released. More...
 
 operator bool () const
 Parenthesis operator check if internal frame handle is valid. More...
 
rs2_sensor * get_sensor ()
 
double get_timestamp () const
 retrieve the time at which the frame was captured During the frame's lifetime it receives timestamps both at the device and host levels. More...
 
rs2_timestamp_domain get_frame_timestamp_domain () const
 retrieve the timestamp domain More...
 
rs2_metadata_type get_frame_metadata (rs2_frame_metadata_value frame_metadata) const
 retrieve the current value of a single frame_metadata More...
 
bool supports_frame_metadata (rs2_frame_metadata_value frame_metadata) const
 determine if the device allows a specific metadata to be queried More...
 
unsigned long long get_frame_number () const
 retrieve frame number (from frame handle) More...
 
const int get_data_size () const
 retrieve data size from frame handle More...
 
const void * get_data () const
 retrieve data from frame handle More...
 
stream_profile get_profile () const
 retrieve stream profile from frame handle More...
 
template<class T >
bool is () const
 Template function, checking if current instance is the type of another class. More...
 
template<class T >
T as () const
 Template function, cast current instance as the type of another class. More...
 
rs2_frame * get () const
 Retrieve back the internal frame handle. More...
 
 operator rs2_frame * ()
 
frame apply_filter (filter_interface &filter)
 
 frame ()
 Base class for multiple frame extensions. More...
 
 frame (rs2_frame *ref)
 Base class for multiple frame extensions with internal frame handle. More...
 
 frame (frame &&other) noexcept
 Change the internal frame handle to the one in parameter, then put the other frame internal frame handle to nullptr. More...
 
frame & operator= (frame other)
 Change the internal frame handle to the one in parameter, the function exchange the internal frame handle. More...
 
 frame (const frame &other)
 Set the internal frame handle to the one in parameter, the function create additional reference if internal reference exist. More...
 
void swap (frame &other)
 Swap the internal frame handle with the one in parameter. More...
 
 ~frame ()
 releases the frame handle More...
 
void keep ()
 keep the frame, otherwise if no refernce to the frame, the frame will be released. More...
 
 operator bool () const
 Parenthesis operator check if internal frame handle is valid. More...
 
rs2_sensor * get_sensor ()
 
double get_timestamp () const
 retrieve the time at which the frame was captured During the frame's lifetime it receives timestamps both at the device and host levels. More...
 
rs2_timestamp_domain get_frame_timestamp_domain () const
 retrieve the timestamp domain More...
 
rs2_metadata_type get_frame_metadata (rs2_frame_metadata_value frame_metadata) const
 retrieve the current value of a single frame_metadata More...
 
bool supports_frame_metadata (rs2_frame_metadata_value frame_metadata) const
 determine if the device allows a specific metadata to be queried More...
 
unsigned long long get_frame_number () const
 retrieve frame number (from frame handle) More...
 
const int get_data_size () const
 retrieve data size from frame handle More...
 
const void * get_data () const
 retrieve data from frame handle More...
 
stream_profile get_profile () const
 retrieve stream profile from frame handle More...
 
template<class T >
bool is () const
 Template function, checking if current instance is the type of another class. More...
 
template<class T >
T as () const
 Template function, cast current instance as the type of another class. More...
 
rs2_frame * get () const
 Retrieve back the internal frame handle. More...
 
 operator rs2_frame * ()
 
frame apply_filter (filter_interface &filter)
 

Protected Member Functions

void add_ref () const
 add additional reference to a frame without duplicating frame data More...
 
void reset ()
 
void add_ref () const
 add additional reference to a frame without duplicating frame data More...
 
void reset ()
 

Friends

class rs2::frame_source
 
class rs2::frame_queue
 
class rs2::syncer
 
class rs2::processing_block
 
class rs2::pointcloud
 
class rs2::points
 

Constructor & Destructor Documentation

◆ frame() [1/8]

rs2::frame::frame ( )
inline

Base class for multiple frame extensions.

Definition at line 349 of file sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

Referenced by rs2::frameset::foreach_rs(), and rs2::frameset::operator[]().

◆ frame() [2/8]

rs2::frame::frame ( rs2_frame *  ref)
inline

Base class for multiple frame extensions with internal frame handle.

Parameters
[in]rs2_frameframe_ref - internal frame instance

Definition at line 354 of file sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

References rs2_get_frame_number(), and rs2_get_frame_stream_profile().

◆ frame() [3/8]

rs2::frame::frame ( frame &&  other)
inlinenoexcept

Change the internal frame handle to the one in parameter, then put the other frame internal frame handle to nullptr.

Parameters
[in]frameother - another frame instance to be pointed to

Definition at line 378 of file sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

◆ frame() [4/8]

rs2::frame::frame ( const frame &  other)
inline

Set the internal frame handle to the one in parameter, the function create additional reference if internal reference exist.

Parameters
[in]frameother - another frame instance to be pointed to

Definition at line 400 of file sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

References add_ref().

◆ ~frame() [1/2]

rs2::frame::~frame ( )
inline

releases the frame handle

Definition at line 426 of file sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

References rs2_release_frame().

◆ frame() [5/8]

rs2::frame::frame ( )
inline

Base class for multiple frame extensions.

Definition at line 349 of file 9.2/sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

◆ frame() [6/8]

rs2::frame::frame ( rs2_frame *  ref)
inline

Base class for multiple frame extensions with internal frame handle.

Parameters
[in]rs2_frameframe_ref - internal frame instance

Definition at line 354 of file 9.2/sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

References rs2_get_frame_number(), and rs2_get_frame_stream_profile().

◆ frame() [7/8]

rs2::frame::frame ( frame &&  other)
inlinenoexcept

Change the internal frame handle to the one in parameter, then put the other frame internal frame handle to nullptr.

Parameters
[in]frameother - another frame instance to be pointed to

Definition at line 378 of file 9.2/sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

◆ frame() [8/8]

rs2::frame::frame ( const frame &  other)
inline

Set the internal frame handle to the one in parameter, the function create additional reference if internal reference exist.

Parameters
[in]frameother - another frame instance to be pointed to

Definition at line 400 of file 9.2/sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

References add_ref().

◆ ~frame() [2/2]

rs2::frame::~frame ( )
inline

releases the frame handle

Definition at line 426 of file 9.2/sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

References rs2_release_frame().

Member Function Documentation

◆ add_ref() [1/2]

void rs2::frame::add_ref ( ) const
inlineprotected

add additional reference to a frame without duplicating frame data

Parameters
[out]resultnew frame reference, release by destructor
Returns
true if cloning was successful

Definition at line 604 of file sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

References rs2::error::handle(), and rs2_frame_add_ref().

Referenced by frame().

◆ add_ref() [2/2]

void rs2::frame::add_ref ( ) const
inlineprotected

add additional reference to a frame without duplicating frame data

Parameters
[out]resultnew frame reference, release by destructor
Returns
true if cloning was successful

Definition at line 604 of file 9.2/sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

References rs2::error::handle(), and rs2_frame_add_ref().

◆ apply_filter() [1/2]

frame rs2::frame::apply_filter ( filter_interface &  filter)
inline

◆ apply_filter() [2/2]

frame rs2::frame::apply_filter ( filter_interface &  filter)
inline

◆ as() [1/2]

template<class T >
T rs2::frame::as ( ) const
inline

Template function, cast current instance as the type of another class.

Returns
class instance.

Definition at line 580 of file 9.2/sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

◆ as() [2/2]

template<class T >
T rs2::frame::as ( ) const
inline

Template function, cast current instance as the type of another class.

Returns
class instance.

Definition at line 580 of file sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

Referenced by rs2::frameset::get_pose_frame().

◆ get() [1/2]

rs2_frame* rs2::frame::get ( ) const
inline

Retrieve back the internal frame handle.

Returns
rs2_frame - internal frame handle.

Definition at line 590 of file 9.2/sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

◆ get() [2/2]

◆ get_data() [1/2]

const void* rs2::frame::get_data ( ) const
inline

retrieve data from frame handle

Returns
the pointer to the start of the frame data

Definition at line 545 of file 9.2/sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

References rs2::error::handle(), and rs2_get_frame_data().

◆ get_data() [2/2]

const void* rs2::frame::get_data ( ) const
inline

retrieve data from frame handle

Returns
the pointer to the start of the frame data

Definition at line 545 of file sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

References rs2::error::handle(), and rs2_get_frame_data().

Referenced by rs2::motion_frame::get_motion_data().

◆ get_data_size() [1/2]

const int rs2::frame::get_data_size ( ) const
inline

retrieve data size from frame handle

Returns
the number of bytes in frame

Definition at line 533 of file sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

References rs2::error::handle(), and rs2_get_frame_data_size().

◆ get_data_size() [2/2]

const int rs2::frame::get_data_size ( ) const
inline

retrieve data size from frame handle

Returns
the number of bytes in frame

Definition at line 533 of file 9.2/sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

References rs2::error::handle(), and rs2_get_frame_data_size().

◆ get_frame_metadata() [1/2]

rs2_metadata_type rs2::frame::get_frame_metadata ( rs2_frame_metadata_value  frame_metadata) const
inline

retrieve the current value of a single frame_metadata

Parameters
[in]frame_metadatathe frame_metadata whose value should be retrieved
Returns
the value of the frame_metadata

Definition at line 497 of file sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

References rs2::error::handle(), and rs2_get_frame_metadata().

◆ get_frame_metadata() [2/2]

rs2_metadata_type rs2::frame::get_frame_metadata ( rs2_frame_metadata_value  frame_metadata) const
inline

retrieve the current value of a single frame_metadata

Parameters
[in]frame_metadatathe frame_metadata whose value should be retrieved
Returns
the value of the frame_metadata

Definition at line 497 of file 9.2/sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

References rs2::error::handle(), and rs2_get_frame_metadata().

◆ get_frame_number() [1/2]

unsigned long long rs2::frame::get_frame_number ( ) const
inline

retrieve frame number (from frame handle)

Returns
the frame number of the frame, in milliseconds since the device was started

Definition at line 521 of file sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

References rs2::error::handle(), and rs2_get_frame_number().

◆ get_frame_number() [2/2]

unsigned long long rs2::frame::get_frame_number ( ) const
inline

retrieve frame number (from frame handle)

Returns
the frame number of the frame, in milliseconds since the device was started

Definition at line 521 of file 9.2/sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

References rs2::error::handle(), and rs2_get_frame_number().

◆ get_frame_timestamp_domain() [1/2]

rs2_timestamp_domain rs2::frame::get_frame_timestamp_domain ( ) const
inline

retrieve the timestamp domain

Returns
timestamp domain (clock name) for timestamp values

Definition at line 485 of file sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

References rs2::error::handle(), and rs2_get_frame_timestamp_domain().

◆ get_frame_timestamp_domain() [2/2]

rs2_timestamp_domain rs2::frame::get_frame_timestamp_domain ( ) const
inline

retrieve the timestamp domain

Returns
timestamp domain (clock name) for timestamp values

Definition at line 485 of file 9.2/sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

References rs2::error::handle(), and rs2_get_frame_timestamp_domain().

◆ get_profile() [1/2]

stream_profile rs2::frame::get_profile ( ) const
inline

retrieve stream profile from frame handle

Returns
stream_profile - the pointer to the stream profile

Definition at line 557 of file 9.2/sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

References rs2::error::handle(), and rs2_get_frame_stream_profile().

◆ get_profile() [2/2]

◆ get_sensor() [1/2]

◆ get_sensor() [2/2]

◆ get_timestamp() [1/2]

double rs2::frame::get_timestamp ( ) const
inline

retrieve the time at which the frame was captured During the frame's lifetime it receives timestamps both at the device and host levels.

The different timestamps are gathered and managed under the frame's Metadata attributes. Chronologically the list of timestamps comprises of: SENSOR_TIMESTAMP - Device clock. For video sensors designates the middle of exposure. Requires metadata support. FRAME_TIMESTAMP - Device clock. Stamped at the beginning of frame readout and transfer. Requires metadata support. BACKEND_TIMESTAMP - Host (EPOCH) clock in Kernel space. Frame transfer from USB Controller to the USB Driver. TIME_OF_ARRIVAL - Host (EPOCH) clock in User space. Frame transfer from the USB Driver to Librealsense.

During runtime the SDK dynamically selects the most correct representaion, based on both device and host capabilities: In case the frame metadata is not configured:

  • The function call provides the TIME_OF_ARRIVAL stamp. In case the metadata is available the function returns:
  • HW Timestamp (FRAME_TIMESTAMP), or
  • Global Timestamp Host-corrected derivative of HW Timestamp required for multi-sensor/device synchronization
  • The user can select between the unmodified and the host-calculated Hardware Timestamp by toggling the RS2_OPTION_GLOBAL_TIME_ENABLED option. To query which of the three alternatives is active use get_frame_timestamp_domain() function call
    Returns
    the timestamp of the frame, in milliseconds according to the elaborated flow

Definition at line 474 of file 9.2/sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

References rs2::error::handle(), and rs2_get_frame_timestamp().

◆ get_timestamp() [2/2]

double rs2::frame::get_timestamp ( ) const
inline

retrieve the time at which the frame was captured During the frame's lifetime it receives timestamps both at the device and host levels.

The different timestamps are gathered and managed under the frame's Metadata attributes. Chronologically the list of timestamps comprises of: SENSOR_TIMESTAMP - Device clock. For video sensors designates the middle of exposure. Requires metadata support. FRAME_TIMESTAMP - Device clock. Stamped at the beginning of frame readout and transfer. Requires metadata support. BACKEND_TIMESTAMP - Host (EPOCH) clock in Kernel space. Frame transfer from USB Controller to the USB Driver. TIME_OF_ARRIVAL - Host (EPOCH) clock in User space. Frame transfer from the USB Driver to Librealsense.

During runtime the SDK dynamically selects the most correct representaion, based on both device and host capabilities: In case the frame metadata is not configured:

  • The function call provides the TIME_OF_ARRIVAL stamp. In case the metadata is available the function returns:
  • HW Timestamp (FRAME_TIMESTAMP), or
  • Global Timestamp Host-corrected derivative of HW Timestamp required for multi-sensor/device synchronization
  • The user can select between the unmodified and the host-calculated Hardware Timestamp by toggling the RS2_OPTION_GLOBAL_TIME_ENABLED option. To query which of the three alternatives is active use get_frame_timestamp_domain() function call
    Returns
    the timestamp of the frame, in milliseconds according to the elaborated flow

Definition at line 474 of file sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

References rs2::error::handle(), and rs2_get_frame_timestamp().

◆ is() [1/2]

template<class T >
bool rs2::frame::is ( ) const
inline

Template function, checking if current instance is the type of another class.

Returns
bool - true or false.

Definition at line 570 of file 9.2/sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

◆ is() [2/2]

template<class T >
bool rs2::frame::is ( ) const
inline

Template function, checking if current instance is the type of another class.

Returns
bool - true or false.

Definition at line 570 of file sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

◆ keep() [1/2]

void rs2::frame::keep ( )
inline

keep the frame, otherwise if no refernce to the frame, the frame will be released.

Definition at line 437 of file sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

References rs2_keep_frame().

Referenced by rs2::frame_queue::enqueue().

◆ keep() [2/2]

void rs2::frame::keep ( )
inline

keep the frame, otherwise if no refernce to the frame, the frame will be released.

Definition at line 437 of file 9.2/sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

References rs2_keep_frame().

◆ operator bool() [1/2]

rs2::frame::operator bool ( ) const
inline

Parenthesis operator check if internal frame handle is valid.

Returns
bool - true or false.

Definition at line 443 of file 9.2/sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

◆ operator bool() [2/2]

rs2::frame::operator bool ( ) const
inline

Parenthesis operator check if internal frame handle is valid.

Returns
bool - true or false.

Definition at line 443 of file sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

◆ operator rs2_frame *() [1/2]

rs2::frame::operator rs2_frame * ( )
inlineexplicit

◆ operator rs2_frame *() [2/2]

rs2::frame::operator rs2_frame * ( )
inlineexplicit

◆ operator=() [1/2]

frame& rs2::frame::operator= ( frame  other)
inline

Change the internal frame handle to the one in parameter, the function exchange the internal frame handle.

Parameters
[in]frameother - another frame instance to be pointed to

Definition at line 390 of file 9.2/sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

References swap().

◆ operator=() [2/2]

frame& rs2::frame::operator= ( frame  other)
inline

Change the internal frame handle to the one in parameter, the function exchange the internal frame handle.

Parameters
[in]frameother - another frame instance to be pointed to

Definition at line 390 of file sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

References swap().

◆ reset() [1/2]

◆ reset() [2/2]

void rs2::frame::reset ( )
inlineprotected

◆ supports_frame_metadata() [1/2]

bool rs2::frame::supports_frame_metadata ( rs2_frame_metadata_value  frame_metadata) const
inline

determine if the device allows a specific metadata to be queried

Parameters
[in]frame_metadatathe frame_metadata to check for support
Returns
true if the frame_metadata can be queried

Definition at line 509 of file 9.2/sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

References rs2::error::handle(), and rs2_supports_frame_metadata().

◆ supports_frame_metadata() [2/2]

bool rs2::frame::supports_frame_metadata ( rs2_frame_metadata_value  frame_metadata) const
inline

determine if the device allows a specific metadata to be queried

Parameters
[in]frame_metadatathe frame_metadata to check for support
Returns
true if the frame_metadata can be queried

Definition at line 509 of file sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

References rs2::error::handle(), and rs2_supports_frame_metadata().

◆ swap() [1/2]

void rs2::frame::swap ( frame &  other)
inline

Swap the internal frame handle with the one in parameter.

Parameters
[in]frameother - another frame instance to be swaped

Definition at line 413 of file sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

References absl::swap_internal::swap().

Referenced by operator=().

◆ swap() [2/2]

void rs2::frame::swap ( frame &  other)
inline

Swap the internal frame handle with the one in parameter.

Parameters
[in]frameother - another frame instance to be swaped

Definition at line 413 of file 9.2/sources/libs/ds3d/3rdparty/realsense2/include/librealsense2/hpp/rs_frame.hpp.

References absl::swap_internal::swap().

Friends And Related Function Documentation

◆ rs2::frame_queue

◆ rs2::frame_source

◆ rs2::pointcloud

◆ rs2::points

◆ rs2::processing_block

◆ rs2::syncer


The documentation for this class was generated from the following file: