summaryrefslogtreecommitdiffstats
path: root/stream/tvi_def.h
diff options
context:
space:
mode:
authorben <ben@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-07-31 17:39:17 +0000
committerben <ben@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-07-31 17:39:17 +0000
commit49867bd432352d19172ab26cf873bd5651e69e25 (patch)
treec2d419bb4f81564036baa12832a44b8aac27c6d1 /stream/tvi_def.h
parentd3b998da64927403879ad588287c178f86b7c849 (diff)
downloadmpv-49867bd432352d19172ab26cf873bd5651e69e25.tar.bz2
mpv-49867bd432352d19172ab26cf873bd5651e69e25.tar.xz
introduce new 'stream' directory for all stream layer related components and split them from libmpdemux
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19277 b3059339-0415-0410-9bf9-f77b7e298cf2
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);
+ }
+}