diff stream/tvi_dummy.c @ 19271:64d82a45a05d

introduce new 'stream' directory for all stream layer related components and split them from libmpdemux
author ben
date Mon, 31 Jul 2006 17:39:17 +0000
parents libmpdemux/tvi_dummy.c@d2d9d011203f
children ac69ba536915
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stream/tvi_dummy.c	Mon Jul 31 17:39:17 2006 +0000
@@ -0,0 +1,120 @@
+/*
+    Only a sample!
+*/
+
+#include "config.h"
+
+#include <stdio.h>
+#include "libvo/img_format.h"
+#include "tv.h"
+
+/* information about this file */
+static tvi_info_t info = {
+	"NULL-TV",
+	"dummy",
+	"alex",
+	NULL
+};
+
+/* private data's */
+typedef struct {
+    int width;
+    int height;
+} priv_t;
+
+#include "tvi_def.h"
+
+/* handler creator - entry point ! */
+tvi_handle_t *tvi_init_dummy(char *device)
+{
+    return(new_handle());
+}
+
+/* initialisation */
+static int init(priv_t *priv)
+{
+    priv->width = 320;
+    priv->height = 200;
+    return(1);
+}
+
+/* that's the real start, we'got the format parameters (checked with control) */
+static int start(priv_t *priv)
+{
+    return(1);
+}
+
+static int uninit(priv_t *priv)
+{
+    return(1);
+}
+
+static int control(priv_t *priv, int cmd, void *arg)
+{
+    switch(cmd)
+    {
+	case TVI_CONTROL_IS_VIDEO:
+	    return(TVI_CONTROL_TRUE);
+	case TVI_CONTROL_VID_GET_FORMAT:
+//	    *(int *)arg = IMGFMT_YV12;
+	    *(int *)arg = IMGFMT_YV12;
+	    return(TVI_CONTROL_TRUE);
+	case TVI_CONTROL_VID_SET_FORMAT:
+	{
+//	    int req_fmt = *(int *)arg;
+	    int req_fmt = *(int *)arg;
+	    if (req_fmt != IMGFMT_YV12)
+		return(TVI_CONTROL_FALSE);
+	    return(TVI_CONTROL_TRUE);
+	}
+	case TVI_CONTROL_VID_SET_WIDTH:
+	    priv->width = *(int *)arg;
+	    return(TVI_CONTROL_TRUE);
+	case TVI_CONTROL_VID_GET_WIDTH:
+	    *(int *)arg = priv->width;
+	    return(TVI_CONTROL_TRUE);
+	case TVI_CONTROL_VID_SET_HEIGHT:
+	    priv->height = *(int *)arg;
+	    return(TVI_CONTROL_TRUE);	    
+	case TVI_CONTROL_VID_GET_HEIGHT:
+	    *(int *)arg = priv->height;
+	    return(TVI_CONTROL_TRUE);	    
+	case TVI_CONTROL_VID_CHK_WIDTH:
+	case TVI_CONTROL_VID_CHK_HEIGHT:
+	    return(TVI_CONTROL_TRUE);
+	case TVI_CONTROL_TUN_SET_NORM:
+	    return(TVI_CONTROL_TRUE);
+    }
+    return(TVI_CONTROL_UNKNOWN);
+}
+
+#ifdef HAVE_TV_BSDBT848
+static double grabimmediate_video_frame(priv_t *priv, char *buffer, int len)
+{
+    memset(buffer, 0xCC, len);
+    return(1);
+}
+#endif
+
+static double grab_video_frame(priv_t *priv, char *buffer, int len)
+{
+    memset(buffer, 0x42, len);
+    return(1);
+}
+
+static int get_video_framesize(priv_t *priv)
+{
+    /* YV12 */
+    return(priv->width*priv->height*12/8);
+}
+
+static double grab_audio_frame(priv_t *priv, char *buffer, int len)
+{
+    memset(buffer, 0x42, len);
+    return(1);
+}
+
+static int get_audio_framesize(priv_t *priv)
+{
+    return(1);
+}