Monado OpenXR Runtime
|
An xrt_frame_sink queue, any frames received will be pushed to the downstream consumer on the queue thread. More...
Data Fields | |
struct xrt_frame_sink | base |
Base sink. More... | |
struct xrt_frame_node | node |
For tracking on the frame context. More... | |
struct xrt_frame_sink * | consumer |
The consumer of the frames that are queued. More... | |
struct u_sink_queue_elem * | front |
Front of the queue (oldest frame, first to be consumed) More... | |
struct u_sink_queue_elem * | back |
Back of the queue (newest frame, back->next is always null) More... | |
uint64_t | size |
Number of currently enqueued frames. More... | |
uint64_t | max_size |
Max amount of frames before dropping new ones. 0 means unbounded. More... | |
pthread_t | thread |
pthread_mutex_t | mutex |
pthread_cond_t | cond |
So we can wake the mainloop up. More... | |
bool | running |
Should we keep running. More... | |
struct xrt_frame * | frame |
The current queued frame. More... | |
struct { | |
uint64_t current | |
uint64_t last | |
} | seq |
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_node * | next |
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... | |
An xrt_frame_sink queue, any frames received will be pushed to the downstream consumer on the queue thread.
An xrt_frame_sink queue that holds buffers a single xrt_frame and passes it to the downstream consumer on the queue thread.
Will drop frames should multiple frames be queued up.
If another frame arrives before the current frame is consumed, the new frame replaces the old one.
struct u_sink_queue_elem* u_sink_queue::back |
Back of the queue (newest frame, back->next is always null)
Referenced by queue_pop(), queue_refclear(), and queue_try_refpush().
struct xrt_frame_sink u_sink_queue::base |
Base sink.
Referenced by xrt_frame_sink::u_sink_queue_create(), and xrt_frame_sink::u_sink_simple_queue_create().
pthread_cond_t u_sink_queue::cond |
So we can wake the mainloop up.
struct xrt_frame_sink * u_sink_queue::consumer |
The consumer of the frames that are queued.
struct xrt_frame* u_sink_queue::frame |
The current queued frame.
struct u_sink_queue_elem* u_sink_queue::front |
Front of the queue (oldest frame, first to be consumed)
Referenced by queue_pop(), queue_refclear(), and queue_try_refpush().
uint64_t u_sink_queue::max_size |
Max amount of frames before dropping new ones. 0 means unbounded.
Referenced by queue_is_full().
struct xrt_frame_node u_sink_queue::node |
For tracking on the frame context.
bool u_sink_queue::running |
Should we keep running.
uint64_t u_sink_queue::size |
Number of currently enqueued frames.
Referenced by queue_is_empty(), queue_is_full(), queue_pop(), queue_refclear(), and queue_try_refpush().