summary refs log tree commit diff
path: root/drivers/media/video/vivi.c
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@infradead.org>2007-09-22 02:01:33 -0300
committerMauro Carvalho Chehab <mchehab@infradead.org>2007-10-10 00:02:54 -0300
commit3bef5e4a1f73898dc8c8433f938d3a8b22f2be22 (patch)
treed1243b7734cd1058719e87ee233538dbc718e284 /drivers/media/video/vivi.c
parent123f8ef64e3996e06a930756b6b2cdede4b18da0 (diff)
downloadlinux-3bef5e4a1f73898dc8c8433f938d3a8b22f2be22.tar.gz
V4L/DVB (6264): Make the vertical lines to move
While this is not the standard color bar behaviour, having some movement
there allows to check if buffers are being properly handled.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/vivi.c')
-rw-r--r--drivers/media/video/vivi.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/drivers/media/video/vivi.c b/drivers/media/video/vivi.c
index 01c977671311..650e959aeb78 100644
--- a/drivers/media/video/vivi.c
+++ b/drivers/media/video/vivi.c
@@ -229,9 +229,8 @@ static u8 bars[8][3] = {
 #define TSTAMP_MAX_Y TSTAMP_MIN_Y+15
 #define TSTAMP_MIN_X 64
 
-
 static void gen_line(char *basep,int inipos,int wmax,
-		     int hmax, int line, char *timestr)
+		     int hmax, int line, int count, char *timestr)
 {
 	int  w,i,j,pos=inipos,y;
 	char *p,*s;
@@ -242,9 +241,10 @@ static void gen_line(char *basep,int inipos,int wmax,
 
 	/* Generate a standard color bar pattern */
 	for (w=0;w<wmax;w++) {
-		r=bars[w*7/wmax][0];
-		g=bars[w*7/wmax][1];
-		b=bars[w*7/wmax][2];
+		int colorpos=((w+count)*8/(wmax+1)) % 8;
+		r=bars[colorpos][0];
+		g=bars[colorpos][1];
+		b=bars[colorpos][2];
 
 		for (color=0;color<4;color++) {
 			p=basep+pos;
@@ -327,18 +327,23 @@ static void vivi_fillbuff(struct vivi_dev *dev,struct vivi_buffer *buf)
 	struct timeval ts;
 	char *tmpbuf = kmalloc(wmax*2,GFP_KERNEL);
 	void *vbuf=videobuf_to_vmalloc (&buf->vb);
+	/* FIXME: move to dev struct */
+	static int mv_count=0;
 
 	if (!tmpbuf)
 		return;
 
 	for (h=0;h<hmax;h++) {
-		gen_line(tmpbuf,0,wmax,hmax,h,dev->timestr);
+		gen_line(tmpbuf,0,wmax,hmax,h,mv_count,
+			 dev->timestr);
 		/* FIXME: replacing to __copy_to_user */
 		if (copy_to_user(vbuf+pos,tmpbuf,wmax*2)!=0)
 			dprintk(2,"vivifill copy_to_user failed.\n");
 		pos += wmax*2;
 	}
 
+	mv_count++;
+
 	kfree(tmpbuf);
 
 	/* Updates stream time */