Axoverlay Library
axoverlay.h
Go to the documentation of this file.
1 
30 #ifndef AXOVERLAY_H
31 #define AXOVERLAY_H
32 
33 #include <glib.h>
34 
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38 
54 };
55 
68 };
69 
91 };
92 
101 };
102 
113 };
114 
116 #define AXOVERLAY_QUAD_CAMERA_ID 0
117 
119 #define AXOVERLAY_DEFAULT_CAMERA_ID 1
120 
122 #define AXOVERLAY_Z_PRIO_LOW 0
123 
125 #define AXOVERLAY_Z_PRIO_MEDIUM 1000
126 
128 #define AXOVERLAY_Z_PRIO_HIGH 2000
129 
131 #define AXOVERLAY_Z_PRIO_VERY_HIGH 3000
132 
133 enum axoverlay_stream_type {
134  AXOVERLAY_STREAM_JPEG,
135  AXOVERLAY_STREAM_H264,
136  AXOVERLAY_STREAM_H265,
137  AXOVERLAY_STREAM_YCBCR,
138  AXOVERLAY_STREAM_VOUT,
139  AXOVERLAY_STREAM_OTHER
140 };
141 
148  gint id;
149  gint camera;
150  gint width;
153  gint height;
156  gint rotation;
157  gboolean is_mirrored;
159  enum axoverlay_stream_type type;
160 };
161 
164  enum axoverlay_anchor_point anchor_point;
167  enum axoverlay_position_type postype;
172  gfloat x;
174  gfloat y;
176  gint width;
180  gint height;
184  gint z_priority;
188  enum axoverlay_colorspace colorspace;
197  gboolean scale_to_stream;
203 };
204 
207  guchar red;
208  guchar green;
209  guchar blue;
210  guchar alpha;
211  gboolean pixelate;
213 };
214 
229 typedef gboolean (*axoverlay_stream_select_function)(gint camera, gint width,
230  gint height, gint rotation,
231  gboolean is_mirrored,
232  enum axoverlay_stream_type type);
233 
256 typedef void (*axoverlay_adjustment_function)(gint id,
257  struct axoverlay_stream_data *stream,
258  enum axoverlay_position_type *postype,
259  gfloat *overlay_x, gfloat *overlay_y,
260  gint *overlay_width,
261  gint *overlay_height,
262  gpointer user_data);
263 
286 typedef void (*axoverlay_render_function)(gpointer rendering_context, gint id,
287  struct axoverlay_stream_data *stream,
288  enum axoverlay_position_type postype,
289  gfloat overlay_x, gfloat overlay_y,
290  gint overlay_width, gint overlay_height,
291  gpointer user_data);
292 
321  enum axoverlay_backend_type backend;
324 };
325 
331 
341  GError **error);
342 
346 void axoverlay_cleanup(void);
347 
358 void axoverlay_reload_streams(GError **error);
359 
366 void axoverlay_redraw(GError **error);
367 
374 
391  gpointer user_data, GError **error);
392 
403 void axoverlay_destroy_overlay(gint id, GError **error);
404 
418 void axoverlay_set_overlay_position(gint id,
419  enum axoverlay_position_type postype,
420  gfloat x, gfloat y, GError **error);
421 
432 void axoverlay_set_overlay_size(gint id, gint width, gint height,
433  GError **error);
434 
442 gint axoverlay_get_max_resolution_width(gint camera, GError **error);
443 
451 gint axoverlay_get_max_resolution_height(gint camera, GError **error);
452 
458 
465 gint axoverlay_get_number_of_palette_colors(GError **error);
466 
474 void axoverlay_get_palette_color(gint index,
475  struct axoverlay_palette_color *color,
476  GError **error);
477 
485 void axoverlay_set_palette_color(gint index,
486  struct axoverlay_palette_color *color,
487  GError **error);
488 
489 #ifdef __cplusplus
490 }
491 #endif
492 
493 #endif
gint axoverlay_get_number_of_palette_colors(GError **error)
void axoverlay_init_overlay_data(struct axoverlay_overlay_data *data)
gint z_priority
Definition: axoverlay.h:184
void(* axoverlay_render_function)(gpointer rendering_context, gint id, struct axoverlay_stream_data *stream, enum axoverlay_position_type postype, gfloat overlay_x, gfloat overlay_y, gint overlay_width, gint overlay_height, gpointer user_data)
Definition: axoverlay.h:286
Definition: axoverlay.h:64
Definition: axoverlay.h:67
guchar red
Definition: axoverlay.h:207
gboolean(* axoverlay_stream_select_function)(gint camera, gint width, gint height, gint rotation, gboolean is_mirrored, enum axoverlay_stream_type type)
Definition: axoverlay.h:229
gboolean is_mirrored
Definition: axoverlay.h:157
Definition: axoverlay.h:111
axoverlay_position_type
Definition: axoverlay.h:82
Definition: axoverlay.h:65
Definition: axoverlay.h:43
gint id
Definition: axoverlay.h:148
guchar green
Definition: axoverlay.h:208
void axoverlay_destroy_overlay(gint id, GError **error)
void axoverlay_cleanup(void)
Definition: axoverlay.h:86
Definition: axoverlay.h:84
Definition: axoverlay.h:206
void axoverlay_reload_streams(GError **error)
Definition: axoverlay.h:112
Definition: axoverlay.h:85
axoverlay_adjustment_function adjustment_callback
Definition: axoverlay.h:305
void axoverlay_set_overlay_size(gint id, gint width, gint height, GError **error)
Definition: axoverlay.h:163
void axoverlay_init(struct axoverlay_settings *axoverlay_settings, GError **error)
axoverlay_anchor_point
Definition: axoverlay.h:110
Definition: axoverlay.h:48
axoverlay_backend_type
Definition: axoverlay.h:97
Definition: axoverlay.h:50
gboolean axoverlay_is_backend_supported(enum axoverlay_backend_type backend)
void axoverlay_set_overlay_position(gint id, enum axoverlay_position_type postype, gfloat x, gfloat y, GError **error)
Definition: axoverlay.h:100
void(* axoverlay_adjustment_function)(gint id, struct axoverlay_stream_data *stream, enum axoverlay_position_type *postype, gfloat *overlay_x, gfloat *overlay_y, gint *overlay_width, gint *overlay_height, gpointer user_data)
Definition: axoverlay.h:256
Definition: axoverlay.h:99
Definition: axoverlay.h:87
gint height
Definition: axoverlay.h:153
gfloat y
Definition: axoverlay.h:174
gfloat x
Definition: axoverlay.h:172
gint axoverlay_get_max_resolution_width(gint camera, GError **error)
Definition: axoverlay.h:297
gint height
Definition: axoverlay.h:180
Definition: axoverlay.h:147
gint width
Definition: axoverlay.h:176
void axoverlay_get_palette_color(gint index, struct axoverlay_palette_color *color, GError **error)
gboolean pixelate
Definition: axoverlay.h:211
axoverlay_error_code
Definition: axoverlay.h:42
gint axoverlay_create_overlay(struct axoverlay_overlay_data *data, gpointer user_data, GError **error)
Definition: axoverlay.h:47
Definition: axoverlay.h:83
Definition: axoverlay.h:66
void axoverlay_set_palette_color(gint index, struct axoverlay_palette_color *color, GError **error)
Definition: axoverlay.h:52
void axoverlay_init_axoverlay_settings(struct axoverlay_settings *axoverlay_settings)
gint axoverlay_get_max_resolution_height(gint camera, GError **error)
Definition: axoverlay.h:89
Definition: axoverlay.h:98
gboolean scale_to_stream
Definition: axoverlay.h:197
axoverlay_stream_select_function select_callback
Definition: axoverlay.h:314
Definition: axoverlay.h:45
guchar blue
Definition: axoverlay.h:209
guchar alpha
Definition: axoverlay.h:210
gint width
Definition: axoverlay.h:150
gint rotation
Definition: axoverlay.h:156
void axoverlay_redraw(GError **error)
axoverlay_colorspace
Definition: axoverlay.h:63
gint camera
Definition: axoverlay.h:149
Definition: axoverlay.h:46
axoverlay_render_function render_callback
Definition: axoverlay.h:298