/**
|
* @file rem_vidmix.h Video Mixer
|
*
|
* Copyright (C) 2010 Creytiv.com
|
*/
|
|
|
struct vidmix;
|
struct vidmix_source;
|
|
/**
|
* Video mixer frame handler
|
*
|
* @param ts Timestamp
|
* @param frame Video frame
|
* @param arg Handler argument
|
*/
|
typedef void (vidmix_frame_h)(uint32_t ts, const struct vidframe *frame,
|
void *arg);
|
|
int vidmix_alloc(struct vidmix **mixp);
|
int vidmix_source_alloc(struct vidmix_source **srcp, struct vidmix *mix,
|
const struct vidsz *sz, unsigned fps, bool content,
|
vidmix_frame_h *fh, void *arg);
|
bool vidmix_source_isenabled(const struct vidmix_source *src);
|
bool vidmix_source_isrunning(const struct vidmix_source *src);
|
void *vidmix_source_get_focus(const struct vidmix_source *src);
|
void vidmix_source_enable(struct vidmix_source *src, bool enable);
|
int vidmix_source_start(struct vidmix_source *src);
|
void vidmix_source_stop(struct vidmix_source *src);
|
int vidmix_source_set_size(struct vidmix_source *src, const struct vidsz *sz);
|
void vidmix_source_set_rate(struct vidmix_source *src, unsigned fps);
|
void vidmix_source_set_content_hide(struct vidmix_source *src, bool hide);
|
void vidmix_source_toggle_selfview(struct vidmix_source *src);
|
void vidmix_source_set_focus(struct vidmix_source *src,
|
const struct vidmix_source *focus_src,
|
bool focus_full);
|
void vidmix_source_set_focus_idx(struct vidmix_source *src, unsigned pidx);
|
void vidmix_source_put(struct vidmix_source *src,
|
const struct vidframe *frame);
|