2802
|
1 static int init(priv_t *priv, tvi_param_t *params);
|
|
2 static int uninit(priv_t *priv);
|
2790
|
3 static int control(priv_t *priv, int cmd, void *arg);
|
2802
|
4 static int start(priv_t *priv);
|
2790
|
5 static int grab_video_frame(priv_t *priv, char *buffer, int len);
|
|
6 static int get_video_framesize(priv_t *priv);
|
|
7 static int grab_audio_frame(priv_t *priv, char *buffer, int len);
|
|
8 static int get_audio_framesize(priv_t *priv);
|
|
9
|
|
10 static tvi_functions_t functions =
|
|
11 {
|
|
12 init,
|
2802
|
13 uninit,
|
2790
|
14 control,
|
2802
|
15 start,
|
2790
|
16 grab_video_frame,
|
|
17 get_video_framesize,
|
|
18 grab_audio_frame,
|
|
19 get_audio_framesize
|
|
20 };
|
|
21
|
|
22 static tvi_handle_t *new_handle()
|
|
23 {
|
|
24 tvi_handle_t *h = malloc(sizeof(tvi_handle_t));
|
|
25
|
|
26 if (!h)
|
|
27 return(NULL);
|
2802
|
28 h->priv = (priv_t *)malloc(sizeof(priv_t));
|
2790
|
29 if (!h->priv)
|
|
30 {
|
|
31 free(h);
|
|
32 return(NULL);
|
|
33 }
|
|
34 memset(h->priv, 0, sizeof(priv_t));
|
|
35 h->info = &info;
|
|
36 h->functions = &functions;
|
2802
|
37 h->params = NULL;
|
|
38 h->seq = 0;
|
2790
|
39 return(h);
|
|
40 }
|
|
41
|
|
42 static void free_handle(tvi_handle_t *h)
|
|
43 {
|
|
44 if (h->priv)
|
|
45 free(h->priv);
|
|
46 if (h)
|
|
47 free(h);
|
|
48 }
|