annotate libmpdemux/tvi_def.h @ 15978:c8dc500e078e

memcpy and memmove both copy memory, but when using memcpy the source and destination must not overlap, but here, they did overlap. Committed with the kind blessing of Richard, patch by uau
author gpoirier
date Fri, 15 Jul 2005 22:09:30 +0000
parents 9fc45fe0d444
children f580a7755ac5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3815
622a9ade4517 updated
alex
parents: 3611
diff changeset
1 #include <stdlib.h> /* malloc */
8123
9fc45fe0d444 *HUGE* set of compiler warning fixes, unused variables removal
arpi
parents: 5572
diff changeset
2 #include <string.h> /* memset */
3815
622a9ade4517 updated
alex
parents: 3611
diff changeset
3
622a9ade4517 updated
alex
parents: 3611
diff changeset
4 static int init(priv_t *priv);
2802
09d5c9834580 tv update
alex
parents: 2790
diff changeset
5 static int uninit(priv_t *priv);
2790
98769cea155c added tv subsystem
alex
parents:
diff changeset
6 static int control(priv_t *priv, int cmd, void *arg);
2802
09d5c9834580 tv update
alex
parents: 2790
diff changeset
7 static int start(priv_t *priv);
5572
8cd761968f35 BSD-BT848 TV update patch by Charles Henrich <henrich@sigbus.com>
arpi
parents: 3815
diff changeset
8 static double grab_video_frame(priv_t *priv, char *buffer, int len);
8cd761968f35 BSD-BT848 TV update patch by Charles Henrich <henrich@sigbus.com>
arpi
parents: 3815
diff changeset
9 #ifdef HAVE_TV_BSDBT848
8cd761968f35 BSD-BT848 TV update patch by Charles Henrich <henrich@sigbus.com>
arpi
parents: 3815
diff changeset
10 static double grabimmediate_video_frame(priv_t *priv, char *buffer, int len);
8cd761968f35 BSD-BT848 TV update patch by Charles Henrich <henrich@sigbus.com>
arpi
parents: 3815
diff changeset
11 #endif
2790
98769cea155c added tv subsystem
alex
parents:
diff changeset
12 static int get_video_framesize(priv_t *priv);
5572
8cd761968f35 BSD-BT848 TV update patch by Charles Henrich <henrich@sigbus.com>
arpi
parents: 3815
diff changeset
13 static double grab_audio_frame(priv_t *priv, char *buffer, int len);
2790
98769cea155c added tv subsystem
alex
parents:
diff changeset
14 static int get_audio_framesize(priv_t *priv);
98769cea155c added tv subsystem
alex
parents:
diff changeset
15
98769cea155c added tv subsystem
alex
parents:
diff changeset
16 static tvi_functions_t functions =
98769cea155c added tv subsystem
alex
parents:
diff changeset
17 {
98769cea155c added tv subsystem
alex
parents:
diff changeset
18 init,
2802
09d5c9834580 tv update
alex
parents: 2790
diff changeset
19 uninit,
2790
98769cea155c added tv subsystem
alex
parents:
diff changeset
20 control,
2802
09d5c9834580 tv update
alex
parents: 2790
diff changeset
21 start,
2790
98769cea155c added tv subsystem
alex
parents:
diff changeset
22 grab_video_frame,
5572
8cd761968f35 BSD-BT848 TV update patch by Charles Henrich <henrich@sigbus.com>
arpi
parents: 3815
diff changeset
23 #ifdef HAVE_TV_BSDBT848
8cd761968f35 BSD-BT848 TV update patch by Charles Henrich <henrich@sigbus.com>
arpi
parents: 3815
diff changeset
24 grabimmediate_video_frame,
8cd761968f35 BSD-BT848 TV update patch by Charles Henrich <henrich@sigbus.com>
arpi
parents: 3815
diff changeset
25 #endif
2790
98769cea155c added tv subsystem
alex
parents:
diff changeset
26 get_video_framesize,
98769cea155c added tv subsystem
alex
parents:
diff changeset
27 grab_audio_frame,
98769cea155c added tv subsystem
alex
parents:
diff changeset
28 get_audio_framesize
98769cea155c added tv subsystem
alex
parents:
diff changeset
29 };
98769cea155c added tv subsystem
alex
parents:
diff changeset
30
98769cea155c added tv subsystem
alex
parents:
diff changeset
31 static tvi_handle_t *new_handle()
98769cea155c added tv subsystem
alex
parents:
diff changeset
32 {
2819
2e58962dc9fe cleaned up some warnings, and tv_param_on moved out from #ifdef USE_TV
alex
parents: 2802
diff changeset
33 tvi_handle_t *h = (tvi_handle_t *)malloc(sizeof(tvi_handle_t));
2790
98769cea155c added tv subsystem
alex
parents:
diff changeset
34
98769cea155c added tv subsystem
alex
parents:
diff changeset
35 if (!h)
98769cea155c added tv subsystem
alex
parents:
diff changeset
36 return(NULL);
2802
09d5c9834580 tv update
alex
parents: 2790
diff changeset
37 h->priv = (priv_t *)malloc(sizeof(priv_t));
2790
98769cea155c added tv subsystem
alex
parents:
diff changeset
38 if (!h->priv)
98769cea155c added tv subsystem
alex
parents:
diff changeset
39 {
98769cea155c added tv subsystem
alex
parents:
diff changeset
40 free(h);
98769cea155c added tv subsystem
alex
parents:
diff changeset
41 return(NULL);
98769cea155c added tv subsystem
alex
parents:
diff changeset
42 }
98769cea155c added tv subsystem
alex
parents:
diff changeset
43 memset(h->priv, 0, sizeof(priv_t));
98769cea155c added tv subsystem
alex
parents:
diff changeset
44 h->info = &info;
98769cea155c added tv subsystem
alex
parents:
diff changeset
45 h->functions = &functions;
2802
09d5c9834580 tv update
alex
parents: 2790
diff changeset
46 h->seq = 0;
2941
60c1b7c0ea21 added support for norm=,chanlist=,channel= and also on-the-fly channel chaning with keys
alex
parents: 2819
diff changeset
47 h->chanlist = -1;
60c1b7c0ea21 added support for norm=,chanlist=,channel= and also on-the-fly channel chaning with keys
alex
parents: 2819
diff changeset
48 h->chanlist_s = NULL;
60c1b7c0ea21 added support for norm=,chanlist=,channel= and also on-the-fly channel chaning with keys
alex
parents: 2819
diff changeset
49 h->norm = -1;
60c1b7c0ea21 added support for norm=,chanlist=,channel= and also on-the-fly channel chaning with keys
alex
parents: 2819
diff changeset
50 h->channel = -1;
2790
98769cea155c added tv subsystem
alex
parents:
diff changeset
51 return(h);
98769cea155c added tv subsystem
alex
parents:
diff changeset
52 }
98769cea155c added tv subsystem
alex
parents:
diff changeset
53
98769cea155c added tv subsystem
alex
parents:
diff changeset
54 static void free_handle(tvi_handle_t *h)
98769cea155c added tv subsystem
alex
parents:
diff changeset
55 {
3611
178c562948ff checkings for malloc results (potential memleaks)
pl
parents: 2941
diff changeset
56 if (h) {
178c562948ff checkings for malloc results (potential memleaks)
pl
parents: 2941
diff changeset
57 if (h->priv)
178c562948ff checkings for malloc results (potential memleaks)
pl
parents: 2941
diff changeset
58 free(h->priv);
2790
98769cea155c added tv subsystem
alex
parents:
diff changeset
59 free(h);
3611
178c562948ff checkings for malloc results (potential memleaks)
pl
parents: 2941
diff changeset
60 }
2790
98769cea155c added tv subsystem
alex
parents:
diff changeset
61 }