]> git.karo-electronics.de Git - linux-beck.git/commitdiff
V4L/DVB (6264): Make the vertical lines to move
authorMauro Carvalho Chehab <mchehab@infradead.org>
Sat, 22 Sep 2007 05:01:33 +0000 (02:01 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Wed, 10 Oct 2007 03:02:54 +0000 (00:02 -0300)
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>
drivers/media/video/vivi.c

index 01c97767131135d7cb49a7569ab1762ded1656dd..650e959aeb7820f064359e3a0d109f8c9564b69b 100644 (file)
@@ -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 */