2019-07-23 12:38:58 +00:00
|
|
|
// Copyright 2019, Collabora, Ltd.
|
|
|
|
// SPDX-License-Identifier: BSL-1.0
|
|
|
|
/*!
|
|
|
|
* @file
|
2019-08-20 11:17:24 +00:00
|
|
|
* @brief @ref xrt_frame_sink converters and other helpers.
|
2019-07-23 12:38:58 +00:00
|
|
|
* @author Jakob Bornecrantz <jakob@collabora.com>
|
|
|
|
* @ingroup aux_util
|
|
|
|
*/
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
2019-08-20 11:17:24 +00:00
|
|
|
#include "xrt/xrt_frame.h"
|
2019-07-23 12:38:58 +00:00
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
2020-01-17 21:50:43 +00:00
|
|
|
struct u_sink_quirk_params
|
|
|
|
{
|
|
|
|
bool stereo_sbs;
|
|
|
|
bool ps4_cam;
|
2020-01-18 21:03:36 +00:00
|
|
|
bool leap_motion;
|
2020-01-17 21:50:43 +00:00
|
|
|
};
|
|
|
|
|
2019-07-23 12:38:58 +00:00
|
|
|
void
|
2019-08-22 13:15:41 +00:00
|
|
|
u_sink_create_format_converter(struct xrt_frame_context *xfctx,
|
|
|
|
enum xrt_format f,
|
2019-08-20 11:17:24 +00:00
|
|
|
struct xrt_frame_sink *downstream,
|
|
|
|
struct xrt_frame_sink **out_xfs);
|
2019-07-23 12:38:58 +00:00
|
|
|
|
2019-10-19 22:14:19 +00:00
|
|
|
void
|
|
|
|
u_sink_create_to_r8g8b8_or_l8(struct xrt_frame_context *xfctx,
|
|
|
|
struct xrt_frame_sink *downstream,
|
|
|
|
struct xrt_frame_sink **out_xfs);
|
|
|
|
|
2020-01-17 22:24:54 +00:00
|
|
|
void
|
2020-04-24 19:00:23 +00:00
|
|
|
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);
|
2020-01-17 22:24:54 +00:00
|
|
|
|
2019-08-05 18:20:53 +00:00
|
|
|
void
|
2019-08-22 13:15:41 +00:00
|
|
|
u_sink_create_to_yuv_or_yuyv(struct xrt_frame_context *xfctx,
|
|
|
|
struct xrt_frame_sink *downstream,
|
2019-08-05 18:20:53 +00:00
|
|
|
struct xrt_frame_sink **out_xfs);
|
|
|
|
|
2020-01-18 20:59:38 +00:00
|
|
|
void
|
|
|
|
u_sink_deinterleaver_create(struct xrt_frame_context *xfctx,
|
|
|
|
struct xrt_frame_sink *downstream,
|
|
|
|
struct xrt_frame_sink **out_xfs);
|
|
|
|
|
2019-08-22 13:15:41 +00:00
|
|
|
bool
|
|
|
|
u_sink_queue_create(struct xrt_frame_context *xfctx,
|
|
|
|
struct xrt_frame_sink *downstream,
|
|
|
|
struct xrt_frame_sink **out_xfs);
|
|
|
|
|
2020-01-17 14:17:54 +00:00
|
|
|
void
|
|
|
|
u_sink_quirk_create(struct xrt_frame_context *xfctx,
|
|
|
|
struct xrt_frame_sink *downstream,
|
2020-01-17 21:50:43 +00:00
|
|
|
struct u_sink_quirk_params *params,
|
2020-01-17 14:17:54 +00:00
|
|
|
struct xrt_frame_sink **out_xfs);
|
|
|
|
|
2019-09-03 09:07:20 +00:00
|
|
|
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);
|
|
|
|
|
2019-07-23 12:38:58 +00:00
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|