![]() |
![]() |
![]() |
UCIL Reference Manual | ![]() |
---|---|---|---|---|
#define UCIL_FOURCC (a,b,c,d) struct ucil_rgb24_t; struct ucil_rgb32_t; struct ucil_yuv_t; struct ucil_y8_t; struct ucil_color_t; void ucil_convolution_mask (unicap_data_buffer_t *dest, unicap_data_buffer_t *src, ucil_convolution_mask_t *mask); struct ucil_convolution_mask_t; struct ucil_font_object_t; struct ucil_video_file_object_t; unicap_status_t ucil_check_version (unsigned int major, unsigned int minor, unsigned int micro); void ucil_set_pixel (unicap_data_buffer_t *data_buffer, ucil_color_t *color, int x, int y); void ucil_set_pixel_alpha (unicap_data_buffer_t *data_buffer, ucil_color_t *color, int alpha, int x, int y); void ucil_draw_line (unicap_data_buffer_t *data_buffer, ucil_color_t *color, int x1, int y1, int x2, int y2); void ucil_draw_rect (unicap_data_buffer_t *data_buffer, ucil_color_t *color, int x1, int y1, int x2, int y2); void ucil_fill (unicap_data_buffer_t *data_buffer, ucil_color_t *color); void ucil_draw_box (unicap_data_buffer_t *data_buffer, ucil_color_t *color, int x1, int y1, int x2, int y2); void ucil_draw_circle (unicap_data_buffer_t *dest, ucil_color_t *color, int cx, int cy, int r); ucil_font_object_t* ucil_create_font_object (int size, const char *font); void ucil_draw_text (unicap_data_buffer_t *dest, ucil_color_t *color, ucil_font_object_t *fobj, const char *text, int x, int y); void ucil_destroy_font_object (ucil_font_object_t *fobj); void ucil_text_get_size (ucil_font_object_t *fobj, const char *text, int *width, int *height); void ucil_get_pixel (unicap_data_buffer_t *data_buffer, ucil_color_t *color, int x, int y); void ucil_convert_color (ucil_color_t *src, ucil_color_t *dest); unicap_status_t ucil_convert_buffer (unicap_data_buffer_t *dest, unicap_data_buffer_t *src); int ucil_conversion_supported (unsigned int dest_fourcc, unsigned int src_fourcc); ucil_colorspace_t ucil_get_colorspace_from_fourcc (unsigned int fourcc); void ucil_blend_alpha (unicap_data_buffer_t *dest, unicap_data_buffer_t *bg, unicap_data_buffer_t *fg, int alpha); ucil_convolution_mask_t* ucil_create_convolution_mask (unsigned char *array, int size, ucil_colorspace_t cs, int mode); ucil_video_file_object_t* ucil_create_video_file (const char *path, unicap_format_t *format, const char *codec, ...); unicap_status_t ucil_encode_frame (ucil_video_file_object_t *vobj, unicap_data_buffer_t *buffer); unicap_status_t ucil_close_video_file (ucil_video_file_object_t *vobj); unicap_status_t ucil_open_video_file (unicap_handle_t *unicap_handle, char *filename); const char* ucil_get_video_file_extension (const char *codec);
#define UCIL_FOURCC(a,b,c,d) (unsigned int)((((unsigned int)d)<<24)+(((unsigned int)c)<<16)+(((unsigned int)b)<<8)+a)
a : |
|
b : |
|
c : |
|
d : |
struct ucil_rgb32_t { unsigned char r; unsigned char g; unsigned char b; unsigned char a; };
struct ucil_color_t { ucil_colorspace_t colorspace; union { ucil_yuv_t yuv; ucil_rgb24_t rgb24; ucil_rgb32_t rgb32; ucil_y8_t y8; }; };
void ucil_convolution_mask (unicap_data_buffer_t *dest, unicap_data_buffer_t *src, ucil_convolution_mask_t *mask);
Apply a convolution mask
dest : |
target buffer |
src : |
source buffer |
mask : |
an ucil_convolution_mask |
struct ucil_convolution_mask_t { ucil_colorspace_t colorspace; ucil_color_t *mask; int size; };
struct ucil_video_file_object_t { int ucil_codec_id; void *codec_data; };
unicap_status_t ucil_check_version (unsigned int major, unsigned int minor, unsigned int micro);
major : |
|
minor : |
|
micro : |
|
Returns : |
void ucil_set_pixel (unicap_data_buffer_t *data_buffer, ucil_color_t *color, int x, int y);
Draws a pixel on the data buffer.
data_buffer : |
|
color : |
|
x : |
|
y : |
void ucil_set_pixel_alpha (unicap_data_buffer_t *data_buffer, ucil_color_t *color, int alpha, int x, int y);
Draws a pixel on the data buffer, applying an alpha ( transparency ) value to the pixel.
data_buffer : |
target buffer |
color : |
an ucil_color_t. The colorspace of the color has to match the colorspace of the data_buffer. |
alpha : |
the alpha value that should be applied to this pixel |
x : |
x position |
y : |
y position |
void ucil_draw_line (unicap_data_buffer_t *data_buffer, ucil_color_t *color, int x1, int y1, int x2, int y2);
Draws a line on the data buffer. The endpoints are clipped to the buffer dimensions
data_buffer : |
|
color : |
|
x1 : |
|
y1 : |
|
x2 : |
|
y2 : |
void ucil_draw_rect (unicap_data_buffer_t *data_buffer, ucil_color_t *color, int x1, int y1, int x2, int y2);
Draws a rectangle filled with color.
data_buffer : |
|
color : |
|
x1 : |
|
y1 : |
|
x2 : |
|
y2 : |
void ucil_fill (unicap_data_buffer_t *data_buffer, ucil_color_t *color);
Fill the buffer with a color.
data_buffer : |
|
color : |
void ucil_draw_box (unicap_data_buffer_t *data_buffer, ucil_color_t *color, int x1, int y1, int x2, int y2);
Draws a box
data_buffer : |
|
color : |
|
x1 : |
|
y1 : |
|
x2 : |
|
y2 : |
void ucil_draw_circle (unicap_data_buffer_t *dest, ucil_color_t *color, int cx, int cy, int r);
Draws a circle.
dest : |
|
color : |
an ucil_color_t. The colorspace of the color has to match the colorspace of the data_buffer. |
cx : |
center of the circle ( x position ) |
cy : |
center of the circle ( y position ) |
r : |
radius |
ucil_font_object_t* ucil_create_font_object (int size, const char *font);
Creates a font object required for text operations. The application must free the font object with ucil_destroy_font_object.
size : |
size of font in points |
font : |
name of font or NULL to use default font |
Returns : | a new ucil_font_object_t |
void ucil_draw_text (unicap_data_buffer_t *dest, ucil_color_t *color, ucil_font_object_t *fobj, const char *text, int x, int y);
Draws a text string onto the target buffer.
dest : |
target buffer |
color : |
an ucil_color_t. The colorspace of the color has to match the colorspace of the data_buffer. |
fobj : |
an ucil_font_object_t |
text : |
text string to draw |
x : |
x position |
y : |
y position |
void ucil_destroy_font_object (ucil_font_object_t *fobj);
Frees all resources allocated by the font object
fobj : |
void ucil_text_get_size (ucil_font_object_t *fobj, const char *text, int *width, int *height);
Determines the size in pixels a text string will take up when drawn onto a buffer.
fobj : |
an ucil_font_object_t |
text : |
text string |
width : |
pointer to int which will receive the width of the text |
height : |
pointer to int which will receive the height of the text |
void ucil_get_pixel (unicap_data_buffer_t *data_buffer, ucil_color_t *color, int x, int y);
Reads the pixel at position (x,y) and stores the result in color
.
data_buffer : |
buffer |
color : |
pointer to an ucil_color_t to store the result |
x : |
x position |
y : |
y position |
void ucil_convert_color (ucil_color_t *src, ucil_color_t *dest);
Convert colors between colorspaces. The
colorspace
field of
dest needs to be set to the target
colorspace, like in this example:
src.colorspace = UCIL_COLORSPACE_RGB24; src.rgb24.r = 0xff; src.rgb24.g = 0xff; src.rgb24.b = 0xff; dest.colorspace = UCIL_COLORSPACE_YUV; ucil_convert_color( &dest, &src );
src : |
|
dest : |
unicap_status_t ucil_convert_buffer (unicap_data_buffer_t *dest, unicap_data_buffer_t *src);
Convert the colorspace of a data buffer. The colorspaces are
denoted by the buffer.format.fourcc
field. The dest->format.fourcc gets set to the correct value.
dest : |
target buffer |
src : |
source buffer |
Returns : | STATUS_SUCCESS if the buffer could be converted successfully. STATUS_FAILURE if no conversion exists. |
int ucil_conversion_supported (unsigned int dest_fourcc, unsigned int src_fourcc);
Tests whether a specific conversion is supported.
dest_fourcc : |
target fourcc |
src_fourcc : |
source fourcc |
Returns : | 1 when the conversion is supported |
ucil_colorspace_t ucil_get_colorspace_from_fourcc (unsigned int fourcc);
Gets the ucil_colorspace_t that matches the fourcc.
fourcc : |
fourcc |
Returns : | an ucil_colorspace_t. This is UCIL_COLORSPACE_UNKNOWN when no conversion exists. |
void ucil_blend_alpha (unicap_data_buffer_t *dest, unicap_data_buffer_t *bg, unicap_data_buffer_t *fg, int alpha);
Blends two buffers into a target buffer. Colorspaces of buffers should match.
dest : |
target buffer |
bg : |
background buffer |
fg : |
foreground buffer |
alpha : |
transparency value |
ucil_convolution_mask_t* ucil_create_convolution_mask (unsigned char *array, int size, ucil_colorspace_t cs, int mode);
array : |
|
size : |
|
cs : |
|
mode : |
|
Returns : |
ucil_video_file_object_t* ucil_create_video_file (const char *path, unicap_format_t *format, const char *codec, ...);
Creates a video file to be used for video recording. After creation, add frames to the video file with ucil_encode_frame.
path : |
filename with full path |
format : |
image format of individual frames |
codec : |
codec name or NULL to use default codec |
... : |
codec parameters in the form ["parameter",value...] , terminated with NULL |
Returns : | A new ucil_video_file_object_t or NULL on error. |
unicap_status_t ucil_encode_frame (ucil_video_file_object_t *vobj, unicap_data_buffer_t *buffer);
Adds a frame to a video file.
vobj : |
a video file object |
buffer : |
data buffer |
Returns : | STATUS_SUCCESS if the frame got added successfully. |
unicap_status_t ucil_close_video_file (ucil_video_file_object_t *vobj);
Close a video file created with ucil_create_video_file
vobj : |
an ucil_video_file_object |
Returns : |
unicap_status_t ucil_open_video_file (unicap_handle_t *unicap_handle, char *filename);
Opens a video file for playback. The resulting handle can be used like a video capture device.
unicap_handle : |
pointer to an unicap_handle_t where the new handle gets stored. |
filename : |
full path of the video file |
Returns : |