summaryrefslogtreecommitdiffstats
path: root/stream/tvi_def.h
diff options
context:
space:
mode:
Diffstat (limited to 'stream/tvi_def.h')
-rw-r--r--stream/tvi_def.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/stream/tvi_def.h b/stream/tvi_def.h
new file mode 100644
index 0000000000..27b797c603
--- /dev/null
+++ b/stream/tvi_def.h
@@ -0,0 +1,61 @@
+#include <stdlib.h> /* malloc */
+#include <string.h> /* memset */
+
+static int init(priv_t *priv);
+static int uninit(priv_t *priv);
+static int control(priv_t *priv, int cmd, void *arg);
+static int start(priv_t *priv);
+static double grab_video_frame(priv_t *priv, char *buffer, int len);
+#ifdef HAVE_TV_BSDBT848
+static double grabimmediate_video_frame(priv_t *priv, char *buffer, int len);
+#endif
+static int get_video_framesize(priv_t *priv);
+static double grab_audio_frame(priv_t *priv, char *buffer, int len);
+static int get_audio_framesize(priv_t *priv);
+
+static tvi_functions_t functions =
+{
+ init,
+ uninit,
+ control,
+ start,
+ grab_video_frame,
+#ifdef HAVE_TV_BSDBT848
+ grabimmediate_video_frame,
+#endif
+ get_video_framesize,
+ grab_audio_frame,
+ get_audio_framesize
+};
+
+static tvi_handle_t *new_handle(void)
+{
+ tvi_handle_t *h = (tvi_handle_t *)malloc(sizeof(tvi_handle_t));
+
+ if (!h)
+ return(NULL);
+ h->priv = (priv_t *)malloc(sizeof(priv_t));
+ if (!h->priv)
+ {
+ free(h);
+ return(NULL);
+ }
+ memset(h->priv, 0, sizeof(priv_t));
+ h->info = &info;
+ h->functions = &functions;
+ h->seq = 0;
+ h->chanlist = -1;
+ h->chanlist_s = NULL;
+ h->norm = -1;
+ h->channel = -1;
+ return(h);
+}
+
+static void free_handle(tvi_handle_t *h)
+{
+ if (h) {
+ if (h->priv)
+ free(h->priv);
+ free(h);
+ }
+}