|
RealSense Cross Platform API
RealSense Cross-platform API
|
#include <rs_frame.hpp>
Public Member Functions | |
| gpu_frame (const frame &f) | |
| const void * | get_gpu_data () const |
Public Member Functions inherited from rs2::frame | |
| frame () | |
| frame (rs2_frame *ref) | |
| frame (frame &&other) noexcept | |
| frame & | operator= (frame other) |
| frame (const frame &other) | |
| void | swap (frame &other) |
| ~frame () | |
| void | keep () |
| operator bool () const | |
| rs2_sensor * | get_sensor () |
| double | get_timestamp () const |
| rs2_timestamp_domain | get_frame_timestamp_domain () const |
| rs2_metadata_type | get_frame_metadata (rs2_frame_metadata_value frame_metadata) const |
| bool | supports_frame_metadata (rs2_frame_metadata_value frame_metadata) const |
| unsigned long long | get_frame_number () const |
| const int | get_data_size () const |
| const void * | get_data () const |
| const void * | get_gpu_data_or_upload (bool *copied=nullptr) const |
| stream_profile | get_profile () const |
| template<class T > | |
| bool | is () const |
| template<class T > | |
| T | as () const |
| rs2_frame * | get () const |
| operator rs2_frame * () | |
| frame | apply_filter (filter_interface &filter) |
Additional Inherited Members | |
Protected Member Functions inherited from rs2::frame | |
| void | add_ref () const |
| void | reset () |
GPU-Frame extension: present when the frame's pixels reside in GPU-accessible (zero-copy) memory. Reach it with frame::as<gpu_frame>() — the cast is null unless the SDK was built with BUILD_WITH_CUDA_ZEROCOPY and the frame is GPU-resident (integrated GPU / Jetson). This mirrors rs2::gl::gpu_frame: get_data() on the base frame keeps returning the HOST pointer (the viewer, recording, pyrealsense2/OpenCV and any CPU code still use it); the GPU device pointer is a SEPARATE accessor on this extension. Typical use:
auto color = frames.get_color_frame();
const void * host = color.get_data(); // host pointer, always valid
if( auto gf = color.as<rs2::gpu_frame>() ) // true only when GPU-resident
feed_cuda( gf.get_gpu_data() ); // device pointer, no host->device copy
else
feed_cuda( color.get_gpu_data_or_upload() ); // not zero-copy: upload (a copy)
|
inline |
|
inline |
Retrieve the CUDA device pointer aliasing the frame data for zero-copy GPU consumption (e.g. binding the frame directly as a CUDA / TensorRT / NPP input with no host->device copy). The frame must stay alive (hold it) until the GPU work completes.
1.8.14