Monado OpenXR Runtime
u_sink_force_genlock Struct Reference

An xrt_frame_sink that takes two frames in any order, and pushes downstream in left-right order once it has two frames that are close enough together. More...

Inheritance diagram for u_sink_force_genlock:
Collaboration diagram for u_sink_force_genlock:

Data Fields

struct xrt_frame_sink left
 Base sink for left. More...
 
struct xrt_frame_sink right
 Base sink for right. More...
 
struct xrt_frame_node node
 For tracking on the frame context. More...
 
struct xrt_frame_sinkconsumer_left
 The consumer of the frames that are queued. More...
 
struct xrt_frame_sinkconsumer_right
 
struct xrt_frameframes [2]
 The current queued frame. More...
 
pthread_t thread
 
pthread_mutex_t mutex
 
pthread_cond_t cond
 
int64_t last_ts
 Timestamp of the last frameset we pushed. More...
 
bool running
 Should we keep running? currently, true upon startup, false as we're exiting. More...
 
- Data Fields inherited from xrt_frame_sink
void(* push_frame )(struct xrt_frame_sink *sink, struct xrt_frame *frame)
 Push a frame into the sink. More...
 
- Data Fields inherited from xrt_frame_node
struct xrt_frame_nodenext
 
void(* break_apart )(struct xrt_frame_node *node)
 Called first in when the graph is being destroyed, remove any references frames and other objects and stop threads. More...
 
void(* destroy )(struct xrt_frame_node *node)
 Do the actual freeing of the objects. More...
 

Additional Inherited Members

- Public Member Functions inherited from xrt_frame_sink
void u_sink_create_format_converter (struct xrt_frame_context *xfctx, enum xrt_format f, struct xrt_frame_sink *downstream, struct xrt_frame_sink **out_xfs)
 
void u_sink_create_to_r8g8b8_or_l8 (struct xrt_frame_context *xfctx, struct xrt_frame_sink *downstream, struct xrt_frame_sink **out_xfs)
 
void u_sink_create_to_r8g8b8_bayer_or_l8 (struct xrt_frame_context *xfctx, struct xrt_frame_sink *downstream, struct xrt_frame_sink **out_xfs)
 
void u_sink_create_to_rgb_yuv_yuyv_uyvy_or_l8 (struct xrt_frame_context *xfctx, struct xrt_frame_sink *downstream, struct xrt_frame_sink **out_xfs)
 
void u_sink_create_to_yuv_yuyv_uyvy_or_l8 (struct xrt_frame_context *xfctx, struct xrt_frame_sink *downstream, struct xrt_frame_sink **out_xfs)
 
void u_sink_create_to_yuv_or_yuyv (struct xrt_frame_context *xfctx, struct xrt_frame_sink *downstream, struct xrt_frame_sink **out_xfs)
 
void u_sink_create_to_r8g8b8_r8g8b8a8_r8g8b8x8_or_l8 (struct xrt_frame_context *xfctx, struct xrt_frame_sink *downstream, struct xrt_frame_sink **out_xfs)
 
void u_sink_deinterleaver_create (struct xrt_frame_context *xfctx, struct xrt_frame_sink *downstream, struct xrt_frame_sink **out_xfs)
 
bool u_sink_queue_create (struct xrt_frame_context *xfctx, uint64_t max_size, struct xrt_frame_sink *downstream, struct xrt_frame_sink **out_xfs)
 
bool u_sink_simple_queue_create (struct xrt_frame_context *xfctx, struct xrt_frame_sink *downstream, struct xrt_frame_sink **out_xfs)
 
void u_sink_quirk_create (struct xrt_frame_context *xfctx, struct xrt_frame_sink *downstream, struct u_sink_quirk_params *params, struct xrt_frame_sink **out_xfs)
 
void u_sink_split_create (struct xrt_frame_context *xfctx, struct xrt_frame_sink *left, struct xrt_frame_sink *right, struct xrt_frame_sink **out_xfs)
 
- Static Public Member Functions inherited from xrt_frame_sink
static void xrt_sink_push_frame (struct xrt_frame_sink *sink, struct xrt_frame *frame)
 Push a frame into the sink. More...
 

Detailed Description

An xrt_frame_sink that takes two frames in any order, and pushes downstream in left-right order once it has two frames that are close enough together.

Shouldn't ever drop frames.

Field Documentation

◆ consumer_left

struct xrt_frame_sink* u_sink_force_genlock::consumer_left

The consumer of the frames that are queued.

◆ frames

struct xrt_frame* u_sink_force_genlock::frames[2]

The current queued frame.

◆ last_ts

int64_t u_sink_force_genlock::last_ts

Timestamp of the last frameset we pushed.

◆ left

struct xrt_frame_sink u_sink_force_genlock::left

Base sink for left.

Referenced by u_sink_force_genlock_create().

◆ node

struct xrt_frame_node u_sink_force_genlock::node

For tracking on the frame context.

◆ right

struct xrt_frame_sink u_sink_force_genlock::right

Base sink for right.

◆ running

bool u_sink_force_genlock::running

Should we keep running? currently, true upon startup, false as we're exiting.


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