Monado OpenXR Runtime
u_sink_combiner.c File Reference

An xrt_frame_sink that combines two frames into a stereo frame. More...

#include "util/u_misc.h"
#include "util/u_sink.h"
#include "util/u_frame.h"
#include "util/u_logging.h"
#include "util/u_trace_marker.h"
#include <stdio.h>
#include <pthread.h>
Include dependency graph for u_sink_combiner.c:

Data Structures

struct  u_sink_combiner
 An xrt_frame_sink combiner, frames pushed to the left and right side will be combined into one xrt_frame with format XRT_STEREO_FORMAT_SBS. More...
 

Functions

static void combine_frames_l8 (struct xrt_frame *l, struct xrt_frame *r, struct xrt_frame *f)
 
static void combine_frames_r8g8b8 (struct xrt_frame *l, struct xrt_frame *r, struct xrt_frame *f)
 
static void combine_frames (struct xrt_frame *l, struct xrt_frame *r, struct xrt_frame **out_frame)
 
static void combiner_left_frame (struct xrt_frame_sink *xfs, struct xrt_frame *xf)
 
static void combiner_right_frame (struct xrt_frame_sink *xfs, struct xrt_frame *xf)
 
static void combiner_break_apart (struct xrt_frame_node *node)
 
static void combiner_destroy (struct xrt_frame_node *node)
 
bool u_sink_combiner_create (struct xrt_frame_context *xfctx, struct xrt_frame_sink *downstream, struct xrt_frame_sink **out_left_xfs, struct xrt_frame_sink **out_right_xfs)
 Combines stereo frames. More...
 

Detailed Description

An xrt_frame_sink that combines two frames into a stereo frame.

Author
Jakob Bornecrantz jakob.nosp@m.@col.nosp@m.labor.nosp@m.a.co.nosp@m.m
Moses Turner moses.nosp@m.@col.nosp@m.labor.nosp@m.a.co.nosp@m.m

Function Documentation

◆ u_sink_combiner_create()

bool u_sink_combiner_create ( struct xrt_frame_context xfctx,
struct xrt_frame_sink downstream,
struct xrt_frame_sink **  out_left_xfs,
struct xrt_frame_sink **  out_right_xfs 
)

Combines stereo frames.

Opposite of u_sink_stereo_sbs_to_slam_sbs_create

References u_sink_combiner::left, xrt_frame_sink::push_frame, u_sink_combiner::right, u_sink_force_genlock_create(), and U_TYPED_CALLOC.