Skip to content

Struct ILLIXR::data_format::dual_frames

ClassList > ILLIXR > data_format > dual_frames

More...

  • #include <frame.hpp>

Inherits the following classes: ILLIXR::switchboard::event

Public Attributes

Type Name
double encode_time = {0.}
float far_z = {0.0f}
frame_format format = {frame\_format::nv12}
uint64_t frame_number = {0}
bool has_depth = {[**false**](namespaceILLIXR.md#function-normalize)}
int height = {0}
eye_frame left_depth = {}
Depth eye images (432×432, valid when has_valid_depth() is true)
eye_frame left_eye = {}
Color eye images.
float near_z = {0.0f}
BUFFER_TYPE pose = {}
uint64_t pose_id = {0}
time_point render_time = {}
eye_frame right_depth = {}
eye_frame right_eye = {}
int width = {0}

Public Functions

Type Name
dual_frames () = default
dual_frames (time_point tp, std::vector< uint8_t > left, std::vector< uint8_t > right, int w, int h, uint64_t frame_num=0, bool has_depth=false)
Construct with raw NV12 data.
dual_frames (time_point tp, GLuint left_tex, const float * left_transform, GLuint right_tex, const float * right_transform, int w, int h, uint64_t frame_num=0, bool has_depth=false)
Construct with external OES texture handles (GL path)
dual_frames (time_point tp, GLuint left_tex, const float * left_transform, GLuint right_tex, const float * right_transform, GLuint left_depth_tex, const float * left_depth_transform, GLuint right_depth_tex, const float * right_depth_transform, int w, int h, uint64_t frame_num=0)
Construct with external OES texture handles for BOTH color and depth (GL path)
bool has_valid_depth () const
bool is_valid () const
Check if both eyes have valid data.

Public Functions inherited from ILLIXR::switchboard::event

See ILLIXR::switchboard::event

Type Name
void serialize (Archive & ar, const unsigned int version)
virtual ~event () = default

Detailed Description

Dual-eye video frame for stereo VR rendering. Published by the decoder plugin, consumed by the renderer and oxr_interface.

Field ownership (hardware_buffer format): left_eye / right_eye — color AHardwareBuffers, retained by this struct. left_depth / right_depth — depth AHardwareBuffers, retained by this struct. left_motion_vec / right_mv — motion-vector AHardwareBuffers, retained by this struct.

The switchboard consumer (oxr_interface) must call stereo_surface_decoder::release_frame() after the Vulkan submission that reads these buffers has completed.

Public Attributes Documentation

variable encode_time

double ILLIXR::data_format::dual_frames::encode_time;

variable far_z

float ILLIXR::data_format::dual_frames::far_z;

variable format

frame_format ILLIXR::data_format::dual_frames::format;

variable frame_number

uint64_t ILLIXR::data_format::dual_frames::frame_number;

variable has_depth

bool ILLIXR::data_format::dual_frames::has_depth;

variable height

int ILLIXR::data_format::dual_frames::height;

variable left_depth

Depth eye images (432×432, valid when has_valid_depth() is true)

eye_frame ILLIXR::data_format::dual_frames::left_depth;


variable left_eye

Color eye images.

eye_frame ILLIXR::data_format::dual_frames::left_eye;


variable near_z

float ILLIXR::data_format::dual_frames::near_z;

variable pose

BUFFER_TYPE ILLIXR::data_format::dual_frames::pose;

variable pose_id

uint64_t ILLIXR::data_format::dual_frames::pose_id;

variable render_time

time_point ILLIXR::data_format::dual_frames::render_time;

variable right_depth

eye_frame ILLIXR::data_format::dual_frames::right_depth;

variable right_eye

eye_frame ILLIXR::data_format::dual_frames::right_eye;

variable width

int ILLIXR::data_format::dual_frames::width;

Public Functions Documentation

function dual_frames [1/4]

ILLIXR::data_format::dual_frames::dual_frames () = default

function dual_frames [2/4]

Construct with raw NV12 data.

inline ILLIXR::data_format::dual_frames::dual_frames (
    time_point tp,
    std::vector< uint8_t > left,
    std::vector< uint8_t > right,
    int w,
    int h,
    uint64_t frame_num=0,
    bool has_depth=false
) 


function dual_frames [3/4]

Construct with external OES texture handles (GL path)

inline ILLIXR::data_format::dual_frames::dual_frames (
    time_point tp,
    GLuint left_tex,
    const  float * left_transform,
    GLuint right_tex,
    const  float * right_transform,
    int w,
    int h,
    uint64_t frame_num=0,
    bool has_depth=false
) 


function dual_frames [4/4]

Construct with external OES texture handles for BOTH color and depth (GL path)

inline ILLIXR::data_format::dual_frames::dual_frames (
    time_point tp,
    GLuint left_tex,
    const  float * left_transform,
    GLuint right_tex,
    const  float * right_transform,
    GLuint left_depth_tex,
    const  float * left_depth_transform,
    GLuint right_depth_tex,
    const  float * right_depth_transform,
    int w,
    int h,
    uint64_t frame_num=0
) 


function has_valid_depth

inline bool ILLIXR::data_format::dual_frames::has_valid_depth () const

function is_valid

Check if both eyes have valid data.

inline bool ILLIXR::data_format::dual_frames::is_valid () const



The documentation for this class was generated from the following file /home/friedel/devel/ILLIXR/illixr_release/ILLIXR/include/illixr/data_format/frame.hpp