Monado OpenXR Runtime
t_hsv_filter.c File Reference

A simple HSV filter. More...

#include "util/u_var.h"
#include "util/u_misc.h"
#include "util/u_sink.h"
#include "util/u_debug.h"
#include "util/u_frame.h"
#include "util/u_format.h"
#include "util/u_trace_marker.h"
#include "tracking/t_tracking.h"
#include <stdio.h>
#include <assert.h>
Include dependency graph for t_hsv_filter.c:

Data Structures

struct  t_hsv_filter
 An xrt_frame_sink that splits the input based on hue. More...
 

Macros

#define MOD_180(v)   ((uint32_t)(v) % 180)
 
#define NUM_CHANNELS   4
 

Functions

static bool check_range (struct t_hsv_filter_color color, uint32_t h, uint32_t s, uint32_t v)
 
void t_hsv_build_convert_table (struct t_hsv_filter_params *params, struct t_convert_table *t)
 
void t_hsv_build_large_table (struct t_hsv_filter_params *params, struct t_hsv_filter_large_table *t)
 
void t_hsv_build_optimized_table (struct t_hsv_filter_params *params, struct t_hsv_filter_optimized_table *t)
 
static void process_sample (struct t_hsv_filter *f, uint8_t y, uint8_t cb, uint8_t cr, uint8_t *dst0, uint8_t *dst1, uint8_t *dst2, uint8_t *dst3)
 
static XRT_NO_INLINE void hsv_process_frame_yuv (struct t_hsv_filter *f, struct xrt_frame *xf)
 
static XRT_NO_INLINE void hsv_process_frame_yuyv (struct t_hsv_filter *f, struct xrt_frame *xf)
 
static void ensure_buf_allocated (struct t_hsv_filter *f, struct xrt_frame *xf)
 
static void push_buf (struct t_hsv_filter *f, struct xrt_frame *orig_xf, struct xrt_frame_sink *xsink, struct u_sink_debug *usd, struct xrt_frame *xf)
 
static void hsv_frame (struct xrt_frame_sink *xsink, struct xrt_frame *xf)
 
static void hsv_break_apart (struct xrt_frame_node *node)
 
static void hsv_destroy (struct xrt_frame_node *node)
 
int t_hsv_filter_create (struct xrt_frame_context *xfctx, struct t_hsv_filter_params *params, struct xrt_frame_sink *sinks[4], struct xrt_frame_sink **out_sink)
 

Detailed Description

A simple HSV filter.

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