69#define VIDCAP_MAGIC 0x76ae98f0
84 printf(
"Available capture devices:\n");
110 if (tprev !=
param) {
112 "specified before capture (-t)\n");
124 if (tprev !=
param) {
126 "specified before capture (-t)\n");
164 "Unable to start video capture device %s\n",
169 "Video capture driver does not support selected embedded/analog/AESEBU audio.\n");
236 if (
state->funcs->generic_fps_indicator_prefix == NULL) {
239 _Thread_local
static char buf[
SHORT_STR];
241 unsigned len = snprintf(buf,
sizeof buf,
"%s",
242 state->funcs->generic_fps_indicator_prefix);
243 if (
len >
sizeof buf - 1) {
244 len =
sizeof buf - 1;
246 if (
len > 0 && buf[
len - 1] ==
' ') {
struct video_frame * frame
struct audio_frame ** audio
void capture_filter_destroy(struct capture_filter *state)
struct video_frame * capture_filter(struct capture_filter *state, struct video_frame *frame)
int capture_filter_init(struct module *parent, const char *cfg, struct capture_filter **state)
void log_msg(int level, const char *format,...)
#define LOG_LEVEL_ERROR
general errors
void module_init_default(struct module *module_data)
void module_register(struct module *module_data, struct module *parent)
void module_done(struct module *module_data)
#define VIDCAP_INIT_NOERR
state not initialized, other action performed (typically help)
void list_video_capture_devices(bool full)
#define VIDCAP_INIT_OK
initialization successful
struct video_frame * vidcap_grab(struct vidcap *state, struct audio_frame **audio)
Grabs video frame. This function may block for a short period if waiting for incoming frame....
int initialize_video_capture(struct module *parent, struct vidcap_params *param, struct vidcap **state)
Initializes video capture.
void vidcap_done(struct vidcap *state)
Destroys vidap state.
#define VIDEO_CAPTURE_ABI_VERSION
const char * vidcap_get_fps_print_prefix(struct vidcap *state)
#define VIDCAP_INIT_FAIL
error ocured
#define VIDCAP_INIT_AUDIO_NOT_SUPPORTED
card does not support audio
void list_modules(enum library_class cls, int abi_version, bool full)
const void * load_library(const char *name, enum library_class cls, int abi_version)
@ LIBRARY_CLASS_VIDEO_CAPTURE
struct used to comunicate with audio capture/playback device
This struct represents video capture state.
const struct video_capture_info * funcs
void * state
state of the created video capture driver
uint32_t magic
For debugging. Conatins VIDCAP_MAGIC.
struct capture_filter * capture_filter
capture_filter_state
int(* init)(struct vidcap_params *param, void **state)
Struct video_frame represents a video frame and contains video description.
void vidcap_params_set_parent(struct vidcap_params *params, struct module *mod)
const char * vidcap_params_get_capture_filter(const struct vidcap_params *params)
struct vidcap_params * vidcap_params_get_next(const struct vidcap_params *curr)
const char * vidcap_params_get_driver(const struct vidcap_params *params)
void vidcap_params_set_flags(struct vidcap_params *params, unsigned int flags)
void vidcap_params_set_capture_filter(struct vidcap_params *params, const char *req_capture_filter)
unsigned int vidcap_params_get_flags(const struct vidcap_params *params)