Struct ILLIXR::data_format::dual_frames
ClassList > ILLIXR > data_format > dual_frames
#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