diff options
author | ben <ben@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-07-31 17:39:17 +0000 |
---|---|---|
committer | ben <ben@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-07-31 17:39:17 +0000 |
commit | 49867bd432352d19172ab26cf873bd5651e69e25 (patch) | |
tree | c2d419bb4f81564036baa12832a44b8aac27c6d1 /stream/tvi_def.h | |
parent | d3b998da64927403879ad588287c178f86b7c849 (diff) | |
download | mpv-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.h | 61 |
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); + } +} |