Monado OpenXR Runtime
Loading...
Searching...
No Matches
xrt_fs Interface Reference

Frameserver that generates frames. More...

#include <xrt/xrt_frameserver.h>

Inheritance diagram for xrt_fs:
Collaboration diagram for xrt_fs:

Static Public Member Functions

static xrt_result_t xrt_fs_enumerate_modes (struct xrt_fs *xfs, struct xrt_fs_mode **out_modes, uint32_t *out_count)
 Enumerate all available modes that this frameserver supports.
 
static xrt_result_t xrt_fs_configure_capture (struct xrt_fs *xfs, struct xrt_fs_capture_parameters *cp)
 Set the capture parameters, not all types of parameters may be supported on some capture devices.
 
static xrt_result_t xrt_fs_stream_start (struct xrt_fs *xfs, struct xrt_frame_sink *xs, enum xrt_fs_capture_type capture_type, uint32_t descriptor_index)
 Start the capture stream.
 
static xrt_result_t xrt_fs_slam_stream_start (struct xrt_fs *xfs, struct xrt_slam_sinks *sinks)
 Setup SLAM sinks for all the sensors a SLAM implementation may supports and start the frame server stream.
 
static xrt_result_t xrt_fs_stream_stop (struct xrt_fs *xfs)
 Stop the capture stream.
 
static xrt_result_t xrt_fs_is_running (struct xrt_fs *xfs, bool *out_is_running)
 Is the capture stream running.
 

Data Fields

char name [512]
 Name of the frame server source, from the subsystem.
 
char product [32]
 Frame server product identifier, matches the prober device.
 
char manufacturer [32]
 Frame server manufacturer, matches the prober device.
 
char serial [32]
 Frame server serial number, matches the prober device.
 
uint64_t source_id
 All frames produced by this frameserver are tagged with this id.
 
xrt_result_t(* enumerate_modes )(struct xrt_fs *xfs, struct xrt_fs_mode **out_modes, uint32_t *out_count)
 Enumerate all available modes that this frameserver supports.
 
xrt_result_t(* configure_capture )(struct xrt_fs *xfs, struct xrt_fs_capture_parameters *cp)
 Set the capture parameters, not all types of parameters may be supported on some capture devices.
 
xrt_result_t(* stream_start )(struct xrt_fs *xfs, struct xrt_frame_sink *xs, enum xrt_fs_capture_type capture_type, uint32_t descriptor_index)
 Start the capture stream.
 
xrt_result_t(* slam_stream_start )(struct xrt_fs *xfs, struct xrt_slam_sinks *sinks)
 Setup SLAM sinks for all the sensors a SLAM implementation may supports and start the frame server stream.
 
xrt_result_t(* stream_stop )(struct xrt_fs *xfs)
 Stop the capture stream.
 
xrt_result_t(* is_running )(struct xrt_fs *xfs, bool *out_is_running)
 Is the capture stream running.
 

Detailed Description

Frameserver that generates frames.

Multiple subframes (like stereo and mipmaps) can be generate in one frame.

Member Function Documentation

◆ xrt_fs_configure_capture()

static xrt_result_t xrt_fs_configure_capture ( struct xrt_fs *  xfs,
struct xrt_fs_capture_parameters *  cp 
)
inlinestatic

Set the capture parameters, not all types of parameters may be supported on some capture devices.

This function must not fail from a subset of requested parameters being unsupported!

Helper for calling through the function pointer.

References configure_capture.

◆ xrt_fs_enumerate_modes()

static xrt_result_t xrt_fs_enumerate_modes ( struct xrt_fs *  xfs,
struct xrt_fs_mode **  out_modes,
uint32_t *  out_count 
)
inlinestatic

Enumerate all available modes that this frameserver supports.

This may return no modes, which should be checked by the caller. In this case, the frameserver does not support streaming frames.

Helper for calling through the function pointer.

References enumerate_modes.

◆ xrt_fs_is_running()

static xrt_result_t xrt_fs_is_running ( struct xrt_fs *  xfs,
bool *  out_is_running 
)
inlinestatic

Is the capture stream running.

Helper for calling through the function pointer.

References is_running.

◆ xrt_fs_slam_stream_start()

static xrt_result_t xrt_fs_slam_stream_start ( struct xrt_fs *  xfs,
struct xrt_slam_sinks *  sinks 
)
inlinestatic

Setup SLAM sinks for all the sensors a SLAM implementation may supports and start the frame server stream.

Use xrt_fs::stream_start instead if you only need the image stream.

Note
Having this method extends the scope of the frameserver to something more akin to a generic data source instead of just serving frames.
Todo:
Fix this incongruence. Maybe rename the interface to xrt_data_source.

Helper for calling through the function pointer.

References slam_stream_start.

◆ xrt_fs_stream_start()

static xrt_result_t xrt_fs_stream_start ( struct xrt_fs *  xfs,
struct xrt_frame_sink *  xs,
enum xrt_fs_capture_type  capture_type,
uint32_t  descriptor_index 
)
inlinestatic

Start the capture stream.

Parameters
xfsThe frameserver
xsThe sink for this frameserver to push frames into
capture_typeThe type of capture this is
descriptor_indexThe mode the stream should start with.

Helper for calling through the function pointer.

References stream_start.

◆ xrt_fs_stream_stop()

static xrt_result_t xrt_fs_stream_stop ( struct xrt_fs *  xfs)
inlinestatic

Stop the capture stream.

Helper for calling through the function pointer.

References stream_stop.

Field Documentation

◆ configure_capture

xrt_result_t(* xrt_fs::configure_capture) (struct xrt_fs *xfs, struct xrt_fs_capture_parameters *cp)

Set the capture parameters, not all types of parameters may be supported on some capture devices.

This function must not fail from a subset of requested parameters being unsupported!

Referenced by euroc_player_create(), rs_source_create(), u_frameserver_populate_function_pointers(), v4l2_fs_create(), wmr_source_create(), and xrt_fs_configure_capture().

◆ enumerate_modes

xrt_result_t(* xrt_fs::enumerate_modes) (struct xrt_fs *xfs, struct xrt_fs_mode **out_modes, uint32_t *out_count)

Enumerate all available modes that this frameserver supports.

This may return no modes, which should be checked by the caller. In this case, the frameserver does not support streaming frames.

Referenced by euroc_player_create(), rs_source_create(), u_frameserver_populate_function_pointers(), v4l2_fs_create(), wmr_source_create(), and xrt_fs_enumerate_modes().

◆ is_running

xrt_result_t(* xrt_fs::is_running) (struct xrt_fs *xfs, bool *out_is_running)

◆ manufacturer

char xrt_fs::manufacturer[32]

Frame server manufacturer, matches the prober device.

Referenced by euroc_player_create(), rs_source_create(), v4l2_fs_create(), and wmr_source_create().

◆ name

◆ product

char xrt_fs::product[32]

Frame server product identifier, matches the prober device.

Referenced by euroc_player_create(), rs_source_create(), v4l2_fs_create(), and wmr_source_create().

◆ serial

char xrt_fs::serial[32]

Frame server serial number, matches the prober device.

Referenced by euroc_player_create(), rs_source_create(), v4l2_fs_create(), and wmr_source_create().

◆ slam_stream_start

xrt_result_t(* xrt_fs::slam_stream_start) (struct xrt_fs *xfs, struct xrt_slam_sinks *sinks)

Setup SLAM sinks for all the sensors a SLAM implementation may supports and start the frame server stream.

Use xrt_fs::stream_start instead if you only need the image stream.

Note
Having this method extends the scope of the frameserver to something more akin to a generic data source instead of just serving frames.
Todo:
Fix this incongruence. Maybe rename the interface to xrt_data_source.

Referenced by euroc_player_create(), rs_source_create(), u_frameserver_populate_function_pointers(), wmr_source_create(), and xrt_fs_slam_stream_start().

◆ source_id

uint64_t xrt_fs::source_id

◆ stream_start

xrt_result_t(* xrt_fs::stream_start) (struct xrt_fs *xfs, struct xrt_frame_sink *xs, enum xrt_fs_capture_type capture_type, uint32_t descriptor_index)

Start the capture stream.

Parameters
xfsThe frameserver
xsThe sink for this frameserver to push frames into
capture_typeThe type of capture this is
descriptor_indexThe mode the stream should start with.

Referenced by euroc_player_create(), rs_source_create(), u_frameserver_populate_function_pointers(), v4l2_fs_create(), wmr_source_create(), and xrt_fs_stream_start().

◆ stream_stop


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